From ed68ae127079509c582ddc8c5fba647c72567df8 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Sat, 17 Aug 2024 11:56:03 -0400 Subject: [PATCH 01/27] wip --- .../generated/image_caching_c5tnibJL.gif | Bin 278457 -> 0 bytes .../generated/image_caching_woxVKegn.gif | Bin 271641 -> 0 bytes .../.superdeck/generated/mermaid_s3Iic43G.png | Bin 40881 -> 0 bytes .../generated/thumbnail_9aLrluQc.png | Bin 23710 -> 0 bytes .../generated/thumbnail_AbUkCAD1.png | Bin 52454 -> 0 bytes .../generated/thumbnail_HR8xUsF0.png | Bin 57812 -> 0 bytes .../generated/thumbnail_PeqJdaN7.png | Bin 0 -> 18219 bytes .../generated/thumbnail_RiJb4GGG.png | Bin 166991 -> 0 bytes .../generated/thumbnail_bztq1AdA.png | Bin 22687 -> 0 bytes .../generated/thumbnail_hhnMdIWj.png | Bin 170507 -> 0 bytes .../generated/thumbnail_kXnyZsjq.png | Bin 20488 -> 0 bytes .../generated/thumbnail_lNPO0gW7.png | Bin 0 -> 19616 bytes .../generated/thumbnail_nuiio8i0.png | Bin 20149 -> 0 bytes .../generated/thumbnail_q6arHVVz.png | Bin 45330 -> 0 bytes .../generated/thumbnail_shPxXVHO.png | Bin 18028 -> 0 bytes .../generated/thumbnail_xRHNCnNN.png | Bin 18816 -> 0 bytes .../superdeck/example/.superdeck/slides.json | 184 +----- packages/superdeck/example/lib/src/style.dart | 1 + .../example/lib/src/widget/mix_demo.dart | 1 + packages/superdeck/example/pubspec.yaml | 1 + packages/superdeck/example/slides.md | 288 +-------- .../components/atoms/cache_image_widget.dart | 1 + .../lib/components/atoms/markdown_viewer.dart | 1 + .../lib/components/atoms/slide_thumbnail.dart | 68 ++- .../lib/components/atoms/slide_view.dart | 4 +- .../components/molecules/slide_content.dart | 2 +- .../lib/components/organisms/chat_panel.dart | 2 +- .../lib/components/remix/button.dart | 5 - .../lib/components/superdeck_app.dart | 1 + .../superdeck/lib/helpers/extensions.dart | 5 + .../lib/helpers/section_parsing.dart | 237 ++++++++ .../superdeck/lib/helpers/section_tag.dart | 65 --- .../superdeck/lib/models/options_model.dart | 6 +- .../lib/models/options_model.mapper.dart | 24 +- .../superdeck/lib/models/slide_model.dart | 109 +--- .../lib/models/slide_model.mapper.dart | 551 ------------------ .../lib/providers/slide_provider.dart | 6 +- .../lib/providers/style_provider.dart | 2 +- packages/superdeck/lib/styles/style_util.dart | 3 +- packages/superdeck/lib/superdeck.dart | 1 - .../lib/templates/image_template.dart | 2 +- .../lib/templates/simple_template.dart | 4 +- .../lib/templates/template_builder.dart | 41 +- .../superdeck/lib/templates/templates.dart | 7 +- .../lib/templates/two_column_template.dart | 76 --- packages/superdeck/pubspec.yaml | 1 + .../test/helpers/section_parsing_test.dart | 438 ++++++++++++++ .../test/models/syntax_tag_test.dart | 155 ----- .../superdeck/test/options_model_test.dart | 7 +- packages/superdeck/test/test_helpers.dart | 1 + 50 files changed, 811 insertions(+), 1489 deletions(-) delete mode 100644 packages/superdeck/example/.superdeck/generated/image_caching_c5tnibJL.gif delete mode 100644 packages/superdeck/example/.superdeck/generated/image_caching_woxVKegn.gif delete mode 100644 packages/superdeck/example/.superdeck/generated/mermaid_s3Iic43G.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_9aLrluQc.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_AbUkCAD1.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_HR8xUsF0.png create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_PeqJdaN7.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_RiJb4GGG.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_bztq1AdA.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_hhnMdIWj.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_kXnyZsjq.png create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_lNPO0gW7.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_nuiio8i0.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_q6arHVVz.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_shPxXVHO.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_xRHNCnNN.png create mode 100644 packages/superdeck/lib/helpers/section_parsing.dart delete mode 100644 packages/superdeck/lib/helpers/section_tag.dart delete mode 100644 packages/superdeck/lib/templates/two_column_template.dart create mode 100644 packages/superdeck/test/helpers/section_parsing_test.dart delete mode 100644 packages/superdeck/test/models/syntax_tag_test.dart diff --git a/packages/superdeck/example/.superdeck/generated/image_caching_c5tnibJL.gif b/packages/superdeck/example/.superdeck/generated/image_caching_c5tnibJL.gif deleted file mode 100644 index 87935e86f96bb9e0e3eefa951f469477641946c7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 278457 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
    w4=$4fcw%Vy z2Vcnlc=kq{udMi1btQ&MYbI8JB8%F=i;w-k?C>dKk?lc@=65}l?7}kSyfa9fv%>`c z;EXRp2+WX;oXs>otDtMz=UkgH&10so>MBg)M)ZM!hJwU_mKwpJ0y9e%S2lgGIBi~C z(^A@;>d}o)h%Ym71^+XxCd`<84W#1L{$2|n6R|*;q_L_1tB*l1_1;D-2(~cP`#6Z2 zFl0d4#JEcVX-5Tv1yDD!Qkt6_6^@h8`7Ra;R>Srq|1s1`pKDIpLp8jU_aS;neyK5D zRoH>y$YNqFrz}0+&r|Zq=IR`d2~rbC}fuJ*|8^z*-^Ts#!jm-+%io|;<!H2ln9Nu2wicXBd`3c`te3utx8+{W!lD)Rj-2{ zI_g>)Yx=vJZ^GnWJqAwL`H1k)$%Vll+pMqQn70Q|y>ax}7!VsK24aYj0z%1PitK!d z{+18Z6I{HESbm#S>Aq;@DFQU#*ue!kWu3y}D1U!5sa#bCo|52Z$Hh=!4uO;~*=PB>D2K%gMl@%nYtTkN~D{LhS-A+p6N| zd6v}2!F8Pf9YH0yi=m(wQj1+X-dA{unL;#Tzybu2pe#2wvUr#F`E1&Ue|iKLuHzR^ zuLANMTR_IZGZA^r*mV{&dmm}0UaVmQDp+7mv8zSMfd0x9hhyl(NV)UNaD>q;0~| zJF9A`=l+6xznuD6+j>WPzA{UJXK8fFY%`=GqocRA#d6F3I3id;6X(Er^0QXZ_%y}t z&j*$~h5ALYICd0qYxLq;KLgi$Fkk2F!R1u@n3ZFGZpm+;@BLB7Fp}L)u?vkHxvwsR z##?LrzmJ$}5o3v8WLwZdK{L-3iEnBx`N-Sb97#$p5fW#$Rz(N<@5u0{ZCtQ>R(*!o zeV8^#IOq&FM9A(zp>=Pqn2W=Po#)`=2`v}W{5irn=?BLF`9Pzw=kvWAofj$l9qwDe z6_;{3f?*Gdr`*JO-$`7c-K# zKCxuL@Y|uMV@|g+iyr45L^|Co--@`DRY~`k+rUu3PP=}VU;DSCmiXt}UzM`?SO0!o zbGi$!TjNJKX;gW!rxosAYmv^4a6+LbMzxF z@)Udr`#|Gn%+W)6li<5-?bp9u_oau%ev82=_dBe3fOW_at}wrhk0B{lv5aA80vXP` z!o+ayfH?shp&$P*8IcqxDkQo1P!fIW4b|3^Cr4eJvwK_l8OFtHSH~?a$44+fHrfI( zVdIG=306r7HVR@pQZoB{k9)2w{0W7C@?$*|Zd^qoXzn`s=SOJIfSZ5Dgg~R7WIh&+ zdGy2mVZD2-E;1onDDkmSRM;g?QY|`G?ffynd#nZv{wfoZAt>6xOCz5fmd|gHauEEi zI{6x%2!k5UVxT*5CHw&nY%~M7rjt_Xm6EQ`HHV?;`We@)bMJ-+h{l<()hp%6icoD* z)C!)`_2hmsp8vt0rjvhBx^2#_P{xikiMQ22L-{3 zUBz+Qv1cB!I?e#>!zUv7PdK<`9hP$`u#e-ymMGJvmJ(Ti5oSj+&IcZ&R_y|DAk%7) zm35|oH{Nt!TfRoE^)i^L0jHuhK%H?y#bK?AuYMYr@IRJ)O~@fkIC zHLC$l!~FxSp6q`k3*7u7d#Wj0??9t;S3^RUOJ9u+kAjBxIq~Xbrz9qUi6QrzlAK_< zjO{`Vnz`=bxeVOU5gb)wTV{Z;d87%Y9{TBho4g0YH@>%MgxQ!!c;}|L7|oFom0;;# za{0Yp00mq|YI2Sv~$C~^W7+Yi_yd4d1BIyvk3v!)v7BDo^WTpX_ zlibgOy33!CM1jbOUxgv<4>M7)M`Ws~8LF-=&1e8L23gXzMfJ6VDw7P5JGuMeR|$L( zG zSx})+Q0`9^Ah5=bBml3>cA)FUpX4f5-B^9d2swg>YkP&ENQ7}jJSRN`5=litwzf>E z^t06x$OnJ?S?SDHW%OSqWgmcY#xSz4pj*dd^6Z5f#^dfnRjnJ9ApvxwwjxCTMZl%& zi<=PueM&<|D~3RkpvO!R}6Ri}SMD3AVgPV#nT~aBmC~bXTQ;h#^8d;p z%pFnV9>CySKSkb0##I2S6Dix70@xBR-VK}|1nO_En^>!x8Uq+1b&tW6l<2r*#k_O2 zEK{8_))PPw1|SFVd7GjUSpYF00-9?Yj>a1D=a5><;FnsE0A#9jQZ%|oS{WTmmHO%u zil&~T^2z&4xmH|Sz`&kbJXJVvWZq02nSF;%g#ZM z322<(+^#hlS>t4lY$`G6nCb+mMaC7vyAs*E0utNJ^FcCO&WmB47MY!o=W9nrnuFrH zIz_u)M1Z(DU$?<~ro6kTC+uEDuz<<>bh7bPbdQ!0*fVyfb1WJ2OoMGetZ2LBJ*$z zq-gh70>f#qo|pBnQFQ$H-G>$%z#Mn>@S3uP@;;Rply=s5n7SWNfh`_Y?L8CuTp53=1@RFv6Apt5O7GlyscdC1&x3>{P zVUPIl!6~t%&ib3Sv>GyQGgn^_Vhl%R4WgO7#L}32yMe1g_#?CbE4y#~KQa|$GIlS# zdo)zPUx5tHm7~n&An|LGWQhnlB+WPpp=|mrrvm{cArk(8=k!Mt_4~OI{e|7*OnCsX z^PrrZ>+}qQbRU|CmQ5eXtLV^pJSYev(V%}z3N3eZPK+;2v>O4`cG)0T7BvzA8tptW zf}l39nb>XA=pw=2uu^?|SnudNd4dQFKWVc77u^re0?>mC^P~u+T&O_6Q=Ss5`!S^YFmRv1&jo@ zg62g2QbW>#NuQ8tXNBp*S+2{^uh~(cOcE6?kVDC4PNaTL`0u>XCKZ{$%sP{X=A2iT znwNE$lokU<>cIQ9V1FJN-U?YX9i@JSf_FH>qw>0qRP*p5Gc=EYQYfm7KqxR>z64`6 zyak=(ctkB-C9Ap=jsU?$;IFWSJTO3Q$4qa+uh$0O%r|?>Z z!@5NVb=9WMTMR6iP+jM*aPtJACI*`2k;uYA`vM;na85H20lcysJ;CUbKc$(5UEp*4AnXgIK?7tVJ`?N|oKJ3-Y(X9W zPB~4qv%M1&=#>urt}%q%Ri_=?NZ0G=ZyVTN)!*I8CaihsEV~=+mOxcZZ&BPgyM4RG zEWduwofG)acF6Hx>s!tR=$YsfEWA*)MN4;AD4M~kOF9mz5fB|&-A5JNyLR6=lm-J( z+CK^Ps2)zSO5Of`rC{~H4}D&oZFmS! zy>{|g?Kvw^_4`itNj5CR`N@`VUL%C++8Z9XH$P;ZK0CfLxQ{x&`zHGe>C|dqEvbRO zp7~+p4u914Z_%_f8 z{i*x(XU0AF@YaWmW~$!}r)~Q4(h`m`|7*X;*?F5H?2=k#LD>I}3Heo>gJBxqG1w0?_Tbg;*CeVZm!JMz zUEs{#`CX*|lqW-o#lP#{JS1KIRnYoxzVO%5D{jJVsz}_#@invNr?D^I0Q>+*zkVFI z+054Uco>s}+X|8!@PGSPU14dgl78L9RAW)o0{L`4R{e$l*S~6T#f43ok3uu~9JsZQ zp@Fj>?-1GS5Jo1Y>I{6eITG&wp%2WeIs8AkfI!_8&>eq&A*fRx0V;aP?>TY?T+pnKrzSGQBKQixI`;0B8{=#AI zpi=tv1)~y|FTbw*=k?jjVL!01aTbc0pGRc_(i4Uh2|YjAx<3<~&8zPT!ivEcY&OO zIY{kr7o3YU;()lrbYW}~q(x!)?G@mbNK1xb9loSWKe? zX(E%1y2e;BE;+DZX2_x;ZFXID(Vih*{zg)nhT=!VOQT`MIo`SJy5BcK=JJc5?=q+f zbx2@oAVtJj4x;YeBvJiVbrYlphjgDVf907)u2_*K(#8=*J!~Au7XyZI;V5R!OvGQ2 zSzHN~8RnVpNK22qQM(zK06My5`?zd?xkB>Hl7`ETu9*ZC`VQYA_vdoU*&mUt;5_e| zMGFmD;70Cxz`FF;PAje-6&oSXicULJ>;v1@;IE=WP~!9rdB$H32)u8jc&A=ErI`HJ zmS?$(%r}eu{*nk3dVQcEbspe$YnTlf1+X@%}Og)M)ACqVC|B*sOrx%i5}oi*Ntt2wnO zGgK`YQ`$K9x$VtQ_uL;+=b7CemAk#q`f!tV-$7Z?IjHdB!!y-)Od4J;|2Co281aa= zn}`3sU$vcl=VXb}bGxa2(<9{Hz%6$iEZ&I!wnf|FEw_uantM?spZB7M@i%_WK9yw< z;vk(5zaa{F3Vn>b12DQtwo-GY8-~J%8LcmG!_c@8ZI;E4T^{44`zhRWlCQz%v)1)wSS5E(sVN*?Mrou2Si9)x5+xi}fx7hi>Q9PR0Es>Gw z_jglAz+{0U@vN8GnI;^_#J0ChS@A6+aGp~to^LO+t5n>Z#A@^{Az6Wx3L9Y_9bI>5 zgThib_KF465bPFSzIAW`QO-ad&t;f#?l8xa)-DpJKhgNir9e~ECj;)iW=OSCvoCTD zkRWpwn7&~@rX?Mis?QjdUBU6f-xN6cT+hwn3oVpH%7Ch&mQB` zhpFH(DVRI2lg%!yP7p^{^Rg;zm&;pRVF6n3tg*uvm{8;mq2btaW+CwM1hd(5ky0Bk z-n=BtC-WNH=UOQ7sE^qOma4f|23$3QqXXk{0NtV^1@@I^l-qxGV|0f94GA$Q0PePo z>UAo4NK0OE(=yxZ9B=1j>Bq$GztN*14{JQ3C(Ih1a44c5Bhq1{?jDldH_ zq~GP$h|N7UB7F?b%}Yz!wt!EX`PkI|9*r5W(x)`u9wp&t7P6d`!q67Y`Znd36x79S zDl|3}N0COv?yx1kaO(OT>^*1C)X2j;o956bLBzE~xVu2q?!nw2H}f&388dq@Z5f~9 zbVCd<0MM_pJf7XiHXHjj;g!MeOCFb#rQWFBDQ!kfTo}*!o2R3O36uI;6w0YgZl6JW z|19g+Yd_mE=;GLSg|}hNmHkESXuM1}eJ(Zc^}}vf&axF}N+ha(=*q3W{QW~O%803I z5r)2#%lWt9DolI%z|dmj$Q8wVnv_j*aQJVifO*RhsISnU{LH>kXnClms7WmN>^WHS zG3$iOmkD$raOK|T6bkCM+1kR|9ZrY7(r2m8ix?g zWDXj{c#yLR%}}w=jj*k)>6Os4a_*iSJ-`lgPH)R_AaO_gVL^Y%RLTtzZk_^~%4v8Z zhBgyRIam`hSyz=j=j^{{BYCp$;5@d0a`H(37m(##O|4lY+sSCTbOk5>AS;8D!Q`o| z{(!Mu%F9iH?;FikhHszU<)Y&GBY&^MVQmJQ;-;(KOjMAA;LhdE><2puburc8g;?B zCPY6=c|gbQ%o`EX-cU2=^3R)F=L7S)FmNDh2M}Sld1!Tc#s{D)t@+e))A8eGr3~S_ z5QodwKThTL49>LrR6va1J>^UqG9+of=L_Oji(g8qN*z8d02!m)@EH9$>00p#A=ikn z`zFuZyR1CUw_|s>C4X5ovxdhLF+MNG*$TCYu;8cjJG|E-9(+{H$T@M`XXgO2qtsLy z9;+TRT=M+h^{#s;J9Gvv08GF8{qBp4N5Yx+Nv z5cyK-P3G=z<%X8}3%$Qpe?`9!Dar20eg8+&BjKE({^Xn;LhCp3~IoJg4XB}nl?I$oCmlIB&aQBG-?E1^7-1>Em-n3b=u#jz7akGe3A2E>C)R_(eY7v(0&u;3sX{V)KP=BY_!R`za{?k9> zTXm_YE2<{~(NIAB$-)S<3@ja}|GGP{7ozb?1TQrq%*LUqVn|D)7JIle5DV9^A`GB* zmDI&Fo1ifqx)@4xO_BQpn)G1)!nprp2X(UtiD7`7)*6N_uY-8XN;AM}-PdYiTGdGa ztXl7`^4nWig9(&vvo);k((TeK4Lt2b8S(xerg;#2;esJrg=nd--5?yI}o z50wyNRD|Bv!uve$C-Fycn4?5jb>p>1;w=5xWDqHZK@2=%4FPVc(icPLP3ktpf%!=7x_Pw-luw0Zvd>^2S)ce< z$miXM=I@r?o1lsNQ=~khH)vgq431?D94SHQdSdag*KS6nAnCcy>ElF&|I9|;dcLww$ikC>Utzy7z1#xrAcY3;Xx3ZIj zsxklbvdV(|R}zwfjaRWoS%qX(YT)+qn+?{l3;T$y?pSb$vL}s1yS`k z`F=2W6l)eRXkn&i5m1>O=$BxRvk2OI0>V&FZ8XcUx=u zTBEse7=C@iT$MZT;U*SW#Pu{28=Et)R&RQ_ie2ITv^?f2|J@Y_CWvB+tQ9RFqy=zV zDBWt9#mnQaTM0OjHAODtYV2QqV{74Tex3|I{7ctt*sP=+5_FkuBV{q5-9GdDZ@d|M)epdKno^Fc_E z$zt%XP`iDlRV_4R?30$aINy^b06%=KwbEL+8gdIc`blBck|^D!MZ1@e+b~=2Wisck z#`_`dbH*x1ZOmkAaTEW|J@&JIQ#tv{kdG>yL#|a-X1=3)*Iw<1J)i38nr;bgWSPhj zhDsNg|3hb?a^(Zx@aSGVxNEJ_sPvM97;}WkUH@UXY!>$_>ZvNP!{DUiOIF8qamV33 zAQxccr!JaYI`y6ipdth7#VkHqr0DGdWvU_jg|s~19UQ`eRL-${Tk9v4)~LX^b3)@6 zJDXglYK{XsgLJ1IRE`ohuGcl;Y;r<@SB5nVBu8|-`0-x;7_o}pSW$JBjs*C#y|)Y9 zGCYP?6va~rtb+vV2#d~MyQ#DiEx+C01<3)fFH9i>T+Gw#o+V@CxG|soyBJ4eG~->) zW4HXiPqOv8a0F2N>$2pM*lsw9bHTb$%P;dnG#c8oZ|q~K18nS~K3u+JTsL(MW_U}R zc0=6;fPU*L6rC&>*;XbraH-Zu2lnbY;NPL!fV=ZHTQhxl<$L!e;qJZNRKIaYQs=FKmeDZu9DHY zl!icjy#Z0%VK*5XgN@!c8Mvv(|i9Cq4eTpix+=(|v2 zP+;jldj_-~R$Tk8VjkvLw(ANyc1wC55B448ckTeddqF^C!#=sg!w>K7ztqX1+eJy~ zxk~pjsQ0b*hyA8BrO+w52LT_A1S-{ult`JaaC|0m<&EKz`vK0A-R@4ktr{z~+=I*W zAh0*KcU?`&Sz*QHGBSEU2X&xy{Lw<*Suk)n<+WE1soU+`HC_9FV`T5?zt|u7@mu8{ zI^y0SS|(wmPdW0QY89^e`<{@%I|Y`=*y1W$@~1+4CJY0JD~c6XF!qx#dQ`m6&v96S z-4N39seG`XbrHvKMzqBrnpe?pl=>t`?PZO4GQ{*|zIy`QDpjLAN|A_HZ=Zm@^J(Z! z(qO&o$M2FcG;zQ9$b5hPNy8>AbieG+-E{3NW-ma*Rm=A1y(od>{{8uLi{rOk?)AC8 zz3(#Ep<4+{?#;b^+IZaUb-%H5KPEoco3vhH0{%>f<8;yPVG%zV1ph_FC8-47M924iQxBTSuYndKOY|}=Kj{^S70W)1u zENCeI`sl5IW8>00gE4F@tlw|>sMFp<6*-u4TbwPq{rE@2zK%00bNp!h`Qib*hI?7z z*+N(E=AUBC#(V(v7D4Urm&@E$0M(nq$XJk0;Lelxl$Z5X*0BTO??-QaxGHehm>d_* z-_s0l54Hn^uoRF7ee+8v$d5&T37;751aUc@ehKUSPgmo<#_2Nw7uJ%Xsz#jU&?(2m zElw+)74JM)5@^!jXfA<`1A>mvOW0HGDy5cvnTXK za{3$kw!!6AEl4bJTjnAB?dQ)oY2VA|A>a*GiY4Fmzy}I>jw(0dwo^cb%fQml-4rFb(%F5c9@@!OW0Q*o{!) z30djj)$iW>=1+azy3y2;aS*H`#;p%9uYk0C12sMB?=>saG!LO&nBV@iJqzsY<*v8rqT zW7FU{IR4c2D;DqIYbc=pI*8?lLBvP9;5y{`g}0v{d6jRVi{CXq(mXcv+Jh$LS%-hZ zXa70_qonA?fH{9G=_@0e06&@(FftU8e32diSJG^=ou5*nm{<0h$;3o`Nn!WTW2z^lZvx?@+ ze-dK*{BPly;SdTwGYGPUh6pt5)*jnbe}X{4ca zEK}rpNtVodKfY`b{e5;5v9iwv{Gs?v>ND0+gdN@!izAH=U&`f+74p@e?&{@55#IOV zYp(hW$NWpvSG~{(cJW0jI`HxvRqDUU(ZGMd(&_(~rtg`Z7M<6XF5i`r&`QTE3Vw_6 zHqq7OMxGa+ly1{D#xRp26+|{yk1Un`7m)g8+ zn8_5ii%f_eEkzFeR+(EZ$(=?ij(Bi zTX_*}`MLXoQ7!y)u8Iyz;N9H~)sVZqhKuXlt#90Bud%6PG8sRSUa4^{0C|vsU}c^{ zOXpL`A%RHv6)NgNYxjFJGqfawz>_kyFpBXJWIc|;&7F#=NvY4wo!57GJrTPj3&`ZD zq(7VhoP1WyBTc=qs<$yhTVl0DfPKedq%F&`nRVRGEoo=v1`AiSCM39QXRk)NU&Suu@mI5|utx4KaPmZ*?d=pLn6pj` z`qTSvy^RxdcCt3aD#GVRH>)|7W<~|l5H^uwE%H?bS60G{S^}T3hUTGj_A8A$ocT>! z4Z~E+T?6CnGFrh0Pw&-(9Y;!<8u$(yNZVl)5Z2-Bs$fhh0sh8$Ny>2W=ME8-d)!7Y zFWxU$2Za{%q4e>DKOmHj+BP#f58FM7*HwfGWg)`ZXJQ9fLOoexE=6~q^T!RISQL;- zY#P^--j-QBk+_Qw2PgfcOOLn;{h=+Qo=~4|Jq1$?D^!Z09}nZioIKvnTVt2-}hYZ`H6&hdjTuFzn56{FuXK0 zR4|D<=6ANP7teB{AiK2uQ_>d!!s%v&cVaDA&WI49@xmLlZ$%c_f&h)gvH@x2@FVs! z99@+!PXu9Xol~M;!n6knC>7xYdwM5vb7SlzY3u~H#$*YK)5h>g%;(zH1$lSrp)<7f9#^-}Wi6?;wV5irEc@RB>d*1Y|4K z^kHn|x4j`^hL)Te3cmo6GFP!*)4Ce|gC3M49zRWN>{ z?tsK{ueWOGUZpCq@oe$(n~ZZYd)@bja2c%5k4rofzb97rMB8_L(D}z<&V7T#iFx+; z$GfRHs~0TN{1I==ip2Bx%^V~$r{lcD3^EQ5sqv~e(Aucpw9H#qEmcGA`;31mke_Gd zac9?a`Gn4pYjRwvi(*>p3QbOPze*i+oy5W|yx#hOi#bI70swz&Qu0O1@ zSCpKTwj4EHOcdr_rSr}+niv3@&huqIS+mI?^YUjXD&%p#-MgimE}8UB-T+Q3<_Gra znyOS9lvax78&97~uv6qUR2a3Y57f9_xHB>FD{t+7E33SGr(~PxKp8R9IyfCmi^U{* zgs(5!%}UO0rE7jGJMim_PUtE+l$X$7{M$Mg8 z|8Srwg@;W(@<4u_dajKF0gRoQsnHk6Y=>Mfc_kNNQKqw+inih0Q>c=iADnGpdgV$8 zXD~aIY;hCIUTDXJ+mB=)V}nH$H*y~DTRKOZIRRmRkpIf2xtR}7t{Sr zrDS;yU&yR9^h)o2=f7zxtUM*SbL0fxDqa0La*CR5SU)8%Kn6T3<@|R)QlBYJ4o5=tTU9 zi@Lea1j0Thu5P*Bt;&q&HLtn$w2|Jv(}KC6~R=Safum?Y8!gEBCTfHx%qCmt&@#uZ?rvlrX(tW5AG44 zT;4f7?@ZK#prKdZVVq`6mudaTf243O6i_Vk^9$8PZ<>}0>wtDipQldf-T;fL-H0Rk4i$CkgWzkhrkpYmHb_BS+w_-Fdf!iN~1&JFW% z4l5ilI2i%|n(^0A;b&m7whc=!5z<%Be4e@)5?G(~`3VbOhKZeKs4pv==b}l0CjO^% zJ1#VDknmn}Lis0$KTnFJeji%RKCFm0+R1u35j@81L}&QpJpbn5ICo)C56R;LI@@Ol zOs@X@l<=u}Qs;|viwy%?4zmkzIxY-E_Jex}{RhSAB zB#3-Gtb$TJZv4GigTRl3;{8zZN{LeHLWNw=sMf$jZloOFIk0vh2)v_%?)kk+J$WrO z_+$_PLAJuPqaYj6AwTDYDU3s$z+ zTi=YbO^3LsgtM1L`bx)aqn`x_%}2*M>Y7Ru=w*2(Lp&*XG@nVk#USy@4I@7JM#%c} zj|@cHwZRMKAq}KjCW>)=4QiH=_Hq7@^g3L6NPOuo-zc_5K5c|k7G-jId`n-rJ0zmW z4-#32i}4($L`P8Ts;5usq)F36lM-g$B;5HWB&UTP&^#EYWnbj+7~!Pt-c7ua!jAR#0N7tIH{qCg%+d+q8yboW{RE>QHgZcF8%Aq)(yK($l) zk6C_QgZT9nsUUPyJjVjvw6QrF7kCR_YyMuQZL0F7aM=y1E)( zpTCc`Ny6_^M%9HBW~a176r{!dja$|mJ(&>fcm4_iFZavbNV8H9^=}^IrF*i;Ul_;8 z?4=fY3aJ5&_0_^FV31nfH`cM48SD2L=`!VcxI)qqVMfU=Chnf3EaGZu9=!yi?+6Tr zZIfj(EXaAW+hdp=39Xz`05TfMyd~JCWY*2xK z{IUfOUUXSLrXElDZhkJ_+eti*H;Cjod)trlgd{55>zD)#lLQtrLXW{Wf39LjgfejC^XT?2lI}!3bxusnlDC0(oxSMgVN{_Em;jz7?d9e9=u1O3(=PBvH=o zVl5z9%-_on38&)|CMAqIaptHDBfoHb(U#5EQIwz$!=o=IYtQpgNv9~X+4@urdq!99 z{ub)YDpJRya-1=|u+It^Xf(U^M1u$O*Byx_(U7|d`DxyjBJfxIx{ zE{-YgEh=rq3(H2i`x_UyjuvI#C&)V~!CrU}j)GK_TZGNg*W7c~<+G2O!iRO(wkl`& zq8G7RNkx9BrR7Ee8J%5!)r+tPX7u@%`tb3Qg9sgHqtkXvca+@;)sS07AhAM`!oUm* ze8OfCZuabyhVo)Rl@fw^+ zmx~607aS3=9`Sx23-ks63G}NqCrIxoFVk#A8170FKWNya4OWP1$lvFCGwnl@o5k@Z z*f*&4y#h1a(wn8z=DxYwaRuNV0h;>~<6o|jJW-MGx_uhJ((`$yp)(0(C z^K|cJJ2~y0Dgls)o+@9wwnA%hv0^Q|!1mzCt_XJmnfWduYMUPCu0AS;NHi3Z7vJW_ zLrCCNN7l}i0{_rHEGfhe+GKNEjW_2K>)y<5Tf;FnmHfzl06%&zMJ|HdGKHUsbpQ3- zO3^_W`vv#xUmI{>Xf)etWIi2Ke>0%wiDwq8yC*S)AXmc#Zf z&&O#^4hHrRrQ!52<;G|IeS+hq>9E)qjehNL0)<9baeMaf#%8aF`rk`J7?wLB%Dt+U zmCDu4pHf@Qv#I=O+k3|(TS-6ZSKEiYi#iSb^vsK(6ERS9O>LOhu^9iL70G)RZyP$F z#OlgrtvOhlLDdEkBcJ`~_;9V#$9gnoe6d-IWSv){YR z&c`^D*>Bi~;$h0KKFWmw2`_ocu1}p$qotjCJ$|(p5RO**B!*=V()i|=4u~aaJWWf; z4mmKc5x}djei}U$mp2Y29i|RRACtW|YSmsy>R>$AZqb|f?niUnq3T%3FPj%KSY1^E z9eI$1y)Lq{w_SA6mRfbx z-=+_*98806@g-zQ$;?$7xN*Z^%BBw=>sLaEMl(3py%gV9QUZVttdJYVZz=uw)pW?_ zvc9G!K}IA&P|x`5_mag!xI8qIpCeTJmLDTvv+}QM{PM|D-3gTk@n4y1a*T_GpSbsD zFK~RF(KYX=qJZlN&LbYq&>&im6#6Qa0t+V~13jN>^Yxe+;AFoPT9_E#qZT`VYp!K< z)}sOf`7}Ow5w<#2SJ^Mh>owh%_jqT%^l@PzOK@dEtbGby2BfH4n7*0)h{fq4I##L` z<9D<|$Qy4XD7T%DpFR}_&s;3qKbpi`_K34#>XX}Qtw zxl?@zcSGIX;ajEe;yqyQNkxr)$RL6$f^S&l5eMuOUPv9mkZ$SH2W<|Eb%m2n)1D3N zbOKiO9wCX%2|bTmC_$4*IxJt02!Nv^f^GW~Nzg=J8rznplu%{*jqE`|54RLAob9b+7lb9^r1AKwB|M3GN5& zNe68RO4pQGIx3(h68n|gUc+k!m6Ss{9^j<$+*Q6F;}AfP73?AcR)QUdCLK=H9E#i= z(p>^@kQ>~ukLE4tmw$LHxm6pzUoA{O{K|}N4nNw`rr$~WA=36^sb!z-DUgix$Encq zU^ny4+v8{EKw@`*73}C4;ABYXI|dGe13k2@J0UDMA`W5s@*3a(!+vdXN)&Q>(0hz~ zg3YjY%8bTgU1J7Y0-QunP2JB}3eNP=>_Cp=GklVBF%o8K_Y*FXb6~-_K08Podd7Hs z{+Q%qkn9K#0k(!+oF!ch^?KkTv9*pb&WSJE3*9hCayK|O-pfms{4on4QCQiC09uY*2cXOdybz^|QzZz4X@ zQJ}7#3g75_yor2_Wlw_b06j%KzDa#av%`#)$a0e%a+zC8vv`iQOTLLMxGgTAWt0Nm zdyOs3@)Pj!r_O)}z6d}Cbtxr$C#rK7HFLvdan$wruDgJS&HdT|wqF1ESB~W`8xNEk z;OF?-uSphaA`I^*^6uT^U*FJ{)Z)0fUmyRTS^GV`f`uWg{er$UtNXLQcDHHy$8#N^ z3B}3!{O9Q9>9M5-j`6uM4E;y=&n*cxr7lo<>MQ__J}N-ZCIcueFVG?ATQn6e^R_!0 zeO-XI6a|v%0k)oYpcE@Ov-Z#R=abttsx#qVmm%l@Oq=fji4%~CF8W_` zq7!TjceHW=+Wb5Aixc#<z5a|$(qC%ANFhXqXP6WCweU8pOZ}hHtE6j@%g{*e!@H@{PVVe zoEQqiyx6$_P5Je|Hvs+n@lAjP;QBiG{8onz(IEl{fF!Ja4_Z^vlh%fT%|<-`X?X*5gdb)$sf9VgzowKV$2#|UBjZ70(|)l zl7rzGO#QiiNh1vd$OEw5Nve4J2^cd-_hTFjJ4$zd5#DSy`0FNGQO$;?V5?ca+PAm$s8pR@?`bmre5KaMzdH}Zt=>La@ zE;;GHi!O=(Uqy3L*kdVK<@;#m^*;?iPm!%O+p90t$Plr?kZTxh4wK0$B_tSDV4^v~ zf1^1P6%&MXrcG^6M`+55bQ9GR)tmYBO8B-7&%&L)&iq$2$FVmlt2k`0ytVQxhFqhy z1{2Mp7Fi~ z*mvUZJUlli8(msISb=6+dZZiCvQPf}ygJ_%^g|OTAWrq(jppj;e0*d-+ZOTRdRZpD z0zJCGje61BIK6*@GLX+KYJ}ab=swsJ+7k0ffn& zHd9pjob0@WH|NxayY%o-Z(vw7B_gjbQq?jojOey=kn(e(ks=x71$hR{Bis2I?P~Vv z8(&Py^Zmiw?(l(c6Uqtx5x>&6I9jq$_=gg_{{4s zL~TovShD+-wqLBq_%ln;d@dE$vz63LsVDDX35}-C2etYWUtiqy+P1{D2X$@h^VG161^+kJ4 z?GcuS2Isq(`0Wpt+jj>9J(T1d9|2xGBJE!D3L}N*gE=P&1dVb0Vx&852LlO43Gbe} z|2`wA#0xsC5ecmeg9NjCjTes;b)TubI-~{*kBf4z*G^Du999T*Y(j)SOWg_Z)WlS; z^L{y?PjtXxLy1B9gm4cpa#X+TbA5YinRtJu?{Kzi%p%+gs82Skav#F0iH2Xv5BmRHZ{+WbTGi&Dls?M1(~DE`=kg7~|Yw&V`gKEKUW9qkR% zj3Ddn$t;Gd+wC{g0c9TwT^@AAwE4nGGZ@bhDa7cJ zhhWluMOK|Gbag`ABS#uaSCULX&lZDkk>tuoStvkm)ki@s6uBdsDZ;MTC?j8EE0SOZ zF>AcXuu2M((Ilxs8x=OWkR^G@%OzjO`73d9c{~tt{M_7)+s7@t!^!LQ30Ktd$&ult zZf&O}O(ta*>1;pX}!$*cM)W4H-p>5Y%h^E#pr#A%BS%#@_=7#KW-q5 zUfE;RsgBvyDrG9)$Qlq)uC&z&!>Wvr8W5E!P(kD-ZHLThYPSL@$2Ic>aipP#+4MlcoCR(6-6Y+R48%N zE6NPZ7etE;)JW4ScB9s*8&Gq@F-rPJwB)=Z%})ftq7Y04r_zN0UQKxz!E+QlbrUIA z+eTH#bQDz)L|3V?w-8qBdG4y7SZP?U{;ksVveI~>(x`RxTTS3)6^y9Lcu0M=A?LE% zQLD;yZgjS#AAN^Hbj8?TZ&Di{) z>{UG?vD%hfV`0?vsv&El+FojGVKVTl5lQskQAK0%YtB_uh1PrLXJd=A9aqhDiSJz< zG?o_8i&rge6Yt&p#+FupUbXfR)woA%EU(jFw+(C6{KKdrd)+>jSmRx;v9fP^-7!B= z;t5q8~H@14!asA;Wu{L-|W9{eSb@$Cg?d$8YwLd?v zKVrg6PvR^s{?70q?> z+?xR&?fST9JuC^H|Upc2BjzKll;avnD1_epu`P`Xw6M_hTCCP?S|CM z@lCD=wNGFr#Cgo19zV8o4CLz>%Sxwqp+U*S1(t|pSX%IJn| zPjTFBMw5~-)TGRacs@!MuzbtQgYU z*FP|2yn#a7cTe;wX&GjREnEm$0YES(lKDHUinRB{fuC{b+!`uMMpckFPy*n5tRLEz zwqjH^Doeb-8`bn(Z{OJ_XzqwrMQWZb)UQ5fd26;8#77z(2=8B6@@|{Kv zxUM{kJ#Jp*1Rfw;I&myc!qNhlR#1bI%KFDqL3!2Wj_`*aqWeybx$DPGlFgmptl%lt z(cf95sxY-S0Uqhai(D!JqhlWD0SHs3Q}=d181s4ks1=B?E_%S{?OEBg=K!*KKz*!* zcfA_`e=|#ZI{&R_&?ai@>EkLnRpR52m-z=>)GCy=uMX?de1LnyfeRDbeod{p44X*Y zrFTEBYK-83!j?|d(h5;A%0DAe;*>;D6m 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

    *sY_kW)lnEmH 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 z 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%0Dtf9g{z(*Q_?i~li}r>{LAoq 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 z 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 A7ytkO diff --git a/packages/superdeck/example/.superdeck/generated/image_caching_woxVKegn.gif b/packages/superdeck/example/.superdeck/generated/image_caching_woxVKegn.gif deleted file mode 100644 index aaabb82d592dfeb5ecd0a8e097359b05f2df636c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271641 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≻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

    shRzFW&T;u9 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 diff --git a/packages/superdeck/example/.superdeck/generated/mermaid_s3Iic43G.png b/packages/superdeck/example/.superdeck/generated/mermaid_s3Iic43G.png deleted file mode 100644 index 44cc94d25ac92017492aefbe37b8d7e4d3e9a3eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40881 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 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_9aLrluQc.png b/packages/superdeck/example/.superdeck/generated/thumbnail_9aLrluQc.png deleted file mode 100644 index 31336ca3788df7f0129914ae834feac44a8a0b9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23710 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 fbj|#yFyP_7b*8+dAam@BvUQ diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_AbUkCAD1.png b/packages/superdeck/example/.superdeck/generated/thumbnail_AbUkCAD1.png deleted file mode 100644 index 8907df88f3a83b8293e993228ec0888138f40b35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52454 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 E9|Zqu!2kdN literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_RiJb4GGG.png b/packages/superdeck/example/.superdeck/generated/thumbnail_RiJb4GGG.png deleted file mode 100644 index 80a38e8e88e854596bf309b3de26222b436a9f35..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 166991 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 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_bztq1AdA.png b/packages/superdeck/example/.superdeck/generated/thumbnail_bztq1AdA.png deleted file mode 100644 index 64f04f2dfd272b0f781465b1bd6d0c4426a6958f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22687 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 P5`s?R9I+J`|HQumh1pWr diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_hhnMdIWj.png b/packages/superdeck/example/.superdeck/generated/thumbnail_hhnMdIWj.png deleted file mode 100644 index 9f45237977988704c427c4e799093628004ad5ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170507 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Μ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

    Ss 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 P00000NkvXXu0mjfVz?vL diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_kXnyZsjq.png b/packages/superdeck/example/.superdeck/generated/thumbnail_kXnyZsjq.png deleted file mode 100644 index baf4100c9951b11044c03cf3fc755e9d47372148..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20488 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 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_lNPO0gW7.png b/packages/superdeck/example/.superdeck/generated/thumbnail_lNPO0gW7.png new file mode 100644 index 0000000000000000000000000000000000000000..6b123280e71396c2d1a26d8fe43d27c055b090e4 GIT binary patch literal 19616 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 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_q6arHVVz.png b/packages/superdeck/example/.superdeck/generated/thumbnail_q6arHVVz.png deleted file mode 100644 index 2f0e3424e7852bb11644125b3fd43b04b6630075..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45330 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

    !-}#du{(ix_lX7QhM}nvI zuDygwpON@!yT<35&~-+7t_hgU2(vk3f8Jr%X>g~}bs7g0jU-!uxW@_S9KBJ!Z@`V>Z*6%{68nFzXnw=jRe@(JmAg8f2sLXc@pXz7KnXV<0u0t2 zR8ygDYK%t>#-j?VW^3DT^ZK2;U0u%Jm9&*wDX~awA!|+K7qn!lMQ)dC^+o7*FoxaE z-!Hh$#PxiW{_He358%bjs~`V_)j`Sp#=v}+D?80?o{;sh=W{v5GbVtvSEXYLvVqWX z_meQwjQttoVAf$i>u@mdFq?OncXMm9S3#o+Jt0CROnSXef;{?T&ujGhAHO9hc+63J z^68H9%ZtIT9bfi_IcnFx7_(J;WH5Emb3h-=a6kuW>jq8JVARxTM>U$df~u>)so3|g zk7R9N;Fc77LCkX^_OZILG^s zkSW&RT?PS}0l6Ait7RMDe3HY{@^y|10*mT&V}?jv9`Yo;pTn&nd9Rkwk*v#5XK>)< zR-#?~m5xL2 z7pGE6;qxD1+z*R4AuOMPL>j^9_0TvCQr9lX)e|t8YOEpupM8Yh{{S3=O zq=_Gd)S4*O)=l4LG0|KPy`BsNWx(^v1e_<3MCov!dbQcyzZ^@X3B|hL-qv2Z&DNVf zS721G05mCR+uu$D`yH^q-{I=j16y($2y*Vgs7NqL|LrkrF z!+R8kRH|`VgD#CA^=8^Ga1;5AO*1x0t4Y*cYUJ1?MwjRe6MeRPYax8AR%7nWc^y@KX$}5kjI0$QEt=S z9J8*&)fwa9pu=o7$4nDu8p7ir`7?LFO%PWK`$h!wVIRiCU*vO|#4L_avi17sR+8cJ z3ne|r1aOuC%Mo+V#9d)6(!?0{#+-#_fPH3}h^_-zcVGs(jxj&zaJ2$zWh^1;RO`7H zmh_T-$n>hJ&^CtnPsTNx%1q%JY%T%{6gx5?4sI{|wJrmxmAt6D!~tpV*MZYPQq$W5 ziX@=Grob`Tj)@19^YBMPwr%5`HVnYk{SLE(1MD9h;L1UVd1p-LG%Dz-vW~=**DGMb zy@xwN#Jo;ut%mch&)z@2&*yZH5COWbj81`b+kiLG9YgM%MyPKq;vdJ=tlKa zq`BX3C%ZJo%-sev?l7NsIN$?Rq)}BhNGW$0fGd>lfm|mCo|p7PGa7Ne>k%U27BXUa+w;W;&4mw2N0F_CQSZ8w!Kwhn~8rA zmkLAyc^$GCH=r;DTLjzub;8b_yf--4up<@*-T@9#<+i< zu|LyhhuT$`K{+qF_GnOO?l|W_u0sn3#?VHNB!ZDB-#uYjB7_{*6n>`*-|1UO(fKM7`i>dG%awi2JzvM*&ez(NL`L=W5)Reb@TXlK_Ym1E=}j44mFK zSPZ$j8WLl|K(u@mmXFs^ju(5T{{_CJ zq#rDvXO}tRBLw)(nt?isQmlK}AIJg)$a>l8gs*-E5u>gYMy)yTpNwma6refMZ#4`ob$2Gnht-Qlu2vZdmmTtxw2S)N)~piN@dx z42*-89L3 zjgi>c;xUfJDd6|n{beH@4lL0D%YKQC;h zz_!47M@bz2BX+t&>tor7CG{X)6EfzkcpP&tt$6_B^ry4Gugrk^XN=ha<6y={>wgZg zCNS4v6|U2j{qV%S*X>va=%0Ew*o?GbFqvaFX`KyPG0n{ym<hsx~yBkg%k z@DU|_O#AAvN9G+k%_UTp zp~&z1x^b% z^t>{?UkE&~?FK3)k1U+0L5g$$1j7}T;ePYW=30)4$#uQNPfwienN)>2D$Jo&jkZ?U z9Vtv&W$vMdhGK2zjdM=nGFwX$qW(np_&GWuvibwjwlNW9mBfiRhVnSffe~baG-H8*O<>L%(Q|gPmyC~ zLU;ACAR57xmtt(dDShJjBB7-BF(D1lU~y0I{KqyeIP;M@as6?UwZ(+q*)TB3>tcld zr^H%Dr4E$n51bMpdHsdZgB%8w=dID#i!HaTD`S7X+M-jS(i(bL{Uk4(4Rf`kkG8 z1*Qs2!EWB$&o2R=W56D78U2EIUGfTa@c1n*&uK~fI38G8&JQQ2&!ZfoY%Cd|Bu#!E z;&5wf^j0k6;ew_92(VxR#PgfK;5nwqzz%7kz5?e2n9WqI*ogK=^&D-@nC`Tgj2g5A zG|JvCWlHqtj2C&i3pwQCO1R{Rixs?lV#^v$$*k7%B35*T_m+$ER9**se&O88ZF-h0 zw5Fc`S|Sh3vFygP+(8FCa4^UH5A5UWOk>s=H@_XjUiMRgpg^qbB|bVVX>x&3wDU+L zrg|BZ_SGSkAo$0Ln2-|ZWB#av7StipRDT9azXtw^(DY}|T*-dMWA7~)7D_WI!M}m< zdn14GJ_-yk8juB|{AvkoETqW8qsT#c~jZMYA>E8=kQ-5v`9DK z_Us-bB{P&A&-sRmXQ(hkUDasn3VYKAJL3jTO{f$=x)WToSkm^)inZAcl>h)B07*na zRGg1+XnQE2?Cx3z&wp?e-yIVi?>q}v=3-!%Q|A4)0-xuvBZ>YBJAIMaRj@)n_M1IKlGb+`qpy%Lc;FtBHPLcRBCy=lWCWTRra4^;c_l@IKPJcb<3w&H|#jBDcFsQUCheB z-_j}A@Qv{vmETPn*f)huS(5NG5yBP^IliEgYW@w!**0{ZmBFe{ZO=mX&*rl(yOxxB z+_ALfA#I*=*fe-x7uPSY9Oav|4Tmsfl5-jHwBc@!T)&GCfBZbN;uYEd?V*+M_d7M% zosFwP#+i>(uBA4Aj(ML4in_(%P39HIuH{&~mc{U(FO}K>`WVdNCNNg%i>xc$;jEvy6H)Qls3zt>Iohvh zE3N(&W6z~+lNarOC6C@;3U2CfJFxzoWUKj^v+L6b>iR`wP{AohuggD9-(rOlPDz&a zIPo=egxOc@<|*&bs-A6Yw{~zEpT0qUMeTa8az;K_yTH?WbBIPM2wh*FC)jxRvK54h z52OpkL61^{X9Ka2)@|~+kJh+cKF%^@h%xD)JB+&Fce|2DhV!$P8Tbi^e`|&Z`aHiz zdZK3p#?Eh=slxByd&ZCR&t}5HH6IM+NzEG(W_`u~INoGME$DRSMY`vncn{6TZ!og{ zO$B;={QoobUK_U_DTv$od@!}MaIM)8*tK^SXv;c7KDh}qvU9Ljw|Dtt7Td$~FaWB1 z>Vj_YPpIv=P5+_VZHgcVFS&!pjc@6hZ zg*#@8joyNjO7t95epWS)+iN{HTS^Y@P%S}9DRSNtXI9=eG#o|aoHV-^d@9pUTO&<_Mww$^)W1a^ z$KDiB_eeJEk>oC2yc{#PpL3^d?`pde173n>AI2*lxOlx{7j>gpK|G!o5Bo-(bl_Gr+DVSux8WghLH);vPKBisE}7GeN8N8G%+Oh@SsWo1UwZ(*rSqGE zwUF#n(Jxn}ES>oT^;!D_sMB*xmalqrO^H zwY36zs@cVbe9Gpm6geWvJ>ShZ^SxcPY_eb(Ub}jMe4%9GYkj!-`o-NB(XwJoH0F*l zveGMhMMtiP%Qd4(G2yF{PhzG9Hx5!#O&<3b4CX>tB-J2VA?f!>WzwNr!7Db4CX6p2 z${zlwPAzjqg_(SOrpoF62sj%<_D|jWpRy(l*JD=;S~Y+FNNnfBU5Fit_5n%pgr*mx zYeHAX&$#({u3sEt7~;|x;?@WyUH7D$`t*RxUSCZJ_s!&Ga|ZL|qBY@Pdju5rn2JT; zW4!Q1k#Qywdokjc2cRLvc~{__hPa&6)TVS*VH_n96z)+wi$lnx2Z)VV-|xIqI(Lrw zT)EJthtlCjsQVVqQC(NGiVDcuQIJI63C*or@h=$t%9Y;AKJDS3vCLxW6|;D!B;yj$ zUAeNR4%Yf6&+#jF6_=7Ppk~061f7etO*$-x^E_{H_#LTE%l@Z!i?9Lu?=DJdvM0m& zS|(|eJ0M)CL%#aG?pfNIl#P;vJ2Obl7jM{YB2#;6oMn#k8MHqWN|NvaluMlJxrPOi zU)A4kD^;kRJc3s!(7wY_-A9_spA4~t=Y-=_7A`MkUq(M@CTQi7ncIy+8ps;l}^?E$d_;L zb(XX(V=z=&?K5!-a#7nRi1c@_smcCl{=ntBPbu1W?u+Z&A9~ZWVbhbJ6z=)QPf`y! z&=uAjoN|%eB$NfkYSEWDFWv@W1&x($bW4bGCeXMSe@uLY55!3XWLH7IcpclvP^rRP zTuzxNP0z{G)~`Z3SLu|r#tKrn3`OE)|F@8Mo{Wa!1&+na@-*nRrI?QF~)vERInGuD7nfeWS>c^p82xdYOd?2j&Qi|fw=e(t2q@Xo|mt?xHLwd8*P zNnn&pJHP$JoP56Qymr0$v28jH^+c;h#8~Oc>kTEI_M^!a6}^Fwi*mg_SG3$VF-(i+ z#6vdiUmVAfZncT%$*81tjPz0JZatH^tx7(vwDVlS&-+^2N6cC8ONx`+nrWgQ4dR8P zQ}|6V{RAAW?Mu&Ii7rr8o8g6S-j`TjVPjJc-F2iZ<$}l%;!zk40(wcY}2VSA}=2;rA@dEbQ-GWrDaKfBbwvQ=|otW%txaAEkG=fK?=y6pa! z$Au;Tj-L3}%NFxY=FJe5ax*~ox%cL)zfRNfLJPQj{MVn?CFlqY*_N_^p)QOf=CTi> zq_r5)$2Mp&ZF03@$bQ_hG+XEGW0o@)_+6mu6}tD)m)d=hc{|)+_JZj#MP*Ag|EKWHz--Mw`j^Sy8V) z@};XlYJ6kGuX=h`i6zD!w8XIx2GQ#G?k--u0=7*N>Nd)^&Fu;7V)#aq-_WMbfJ4=7 z58o@s=ZB$^DVG-xPwcc(NOmV*p-Ij3V(^E2>JgI4AG*O!>$)|8y69eZ$j>O%Eu`A^ zjj^ZhUQw;|p#sv*{gvv#D2_kW*9kCa^yl`1<{Z8|wirUk-livZN=6i-mxKRAt8=)C zmeKrDY;XfX-foYQ_7<;!o!z$qN9EQp(D)-PxF^%^lzbVpMZKtTP(1&xJ8X1XyLj)a zwsRLsef?K!h4HG=#ehKxawwEEi+s-!(u_!lVk;5cND>0AM@l`Z?6R?rPBx{DA?H#^ zq>Qk&Pk-qKc0SJEqwgQ3GQP1n5S3-*Tvorn|E#K~cCVi z68pWY2BiErhvw=ubhlyP3_c*rNP+>jz_zb>(K>5#YH~n`cq8)VOQb}7wF`&QqeyfR zYvREhf+ILW==3;x9tmU zqmTjjh9%M@Qa_qlWS9y#9(Sc-N>?mRc=+DNewf-1KHD>%Z_^h5M~#+g?g~%ek6@DKx?gki z(u>H1tBNIe-$q@|Ke!Y#W82>Q3O}5X-BT`8q59^!(F4Eej_WH1d$q?gld!}QNCpb?f%E|nw1gMvu{vUaipNtq5?I;_M)Dj z^>eCN$Jp+KTS;$mpUvHfLWWAgr3!t+=aXVPI8yXC-?%+nXqqwmN?Hc{gO(^&-0A0P zHIJr>n^zcyqZ*y8>o%yk5z3a~{pRMoU-w<7i3>PFg3iMixu-t2q_*A3T|PH3QRUmV zY-}kC&EGf*ev;0_d@xVnwp)H!8N6380GXsy40Ok0W5d=Xv5K}qg5rL-&I4i9`S2~@ z_vHO%2?=s9w9Ae{v|G#r(Q#^1$mLcy?VV{rg~e4BOK8 z+8Vop%m^aSq9cqThkOj-y&xKv@Ub#bQvB!(n*$ik4I&kS-h&8KkkX~z1fTOxCtr;n zjrO_{627}0{4{Sp<2TRl)=7v*51M#)|aq zok9;&VO?n29(p+gO3c98(RX57(>*=-1ZI~uYCqnmIB=8YwCF@suQO!bdAVt)qH|<~ ztHQeReF&yi5I=`AZo#)AKXO9}D1nK9r4Di1lj;n%l(qy_B(b-kyn6i^SyNLpuv->! zRRk8$x-;Lfk)N#K2G+=1Osfn{Qw%uX=5JY(2V=K@4{i<&X;6o{2d2NA18#4xJgduy#qa(DY`Je>4vz%LjrR?@aB50<#0LYNRVJ%$)se@MWl9I5DtBw}}+K^#V5 z+n`RrNt+(urbuFFQgYa?BOwP#6s3$xPBVzHmj4k$KC028jO}s$@9JYfz*|P5$htbZ4_Gg5i z_GrOAvTpEX97+hmP*2fl7&;>`D)K=)H^eg<%j6#rfIZAWc3ACb9klVc9G8Q=ltnIf zjKd&oh*kZ3g&8ItTAa}$Mu&tC#D~zBX;d&pq4qY;jw8lMWyR|*mx5hOcqNn=e-K1p z9SuB)^yn&z7gWkY9aJTw}R9j#(5$lXY@5O_nFa?yZ98Rj|m)(1n^%1pRP> zuDXET$1`2r-G7SBHiz=(lUAjddv+97Ff^JY0fQm2&Jov8-76kpDhyv-U!6NyR)i|( z;A_Bf`8KV=;my#4VWObM#xw5tA7|uV737D`u6Poc#rLVJ#S=fhzyWM<=qR56ym2)r zw0#3401CvzmwCDAm|)io1=}`fouhUFrB_?Pj@YrWg3_Tlg!b;(CClQWGnZ;}?%ACv zEZ&D6_8N~f9DEg=7v{x*Xe*!|U7bT-$|5(7N5L-XSU~*nzgX7Ni0I{!Kidq1QHd}q zablnDi8nd~BV9veT)b6Dbei+(6?4h{ZoYrGHrPO1&+#Jf!B<|uNaq&_J*vxiC>_s= zbhLzuKzo$)BmS+Qp5saMZ`o!zJT}Lp>2z|?kmEsZao7!=;}WB#49Hf-K}7)dUOfWf zUc4yCNll@K4xt^?CP7=0;HpOr1&;XS&&n2?M5`jOx`HQkVN~EFlcX$cI{ehDQF;&k zv;^rlY_S(gk@j3kRCVe-;Y|*_oKHK_Jh)|t)1$O;QyBi;&q58d(-X&zCM2SxHncX> zUpgKB3o%D=oY21y6nI=}m#EshWl+yeB<;80MqKhK{jgAW2|^pVat@}6Y2kC9B^^Sk zlh8zb%Z9cwEeDJcMg@)de1#x@rN+WA2ZTXjI|qWPaMZ<93r1O$UO|xeJDV4d6;$%HGZZ;X2$a;Li}gl+XK3u5uqd_aPqPQuv!JK>n!+=M;_F}scz|n zVx_F7p7{BIl@P>6NX7~D?@?0)_66uzKnvf9vT+Tw1_l*?4pZH4+PR{Sv(=|_y@05Q zEcHTmd%Y%Y6#LJup8p3dAI)2sKu7mM2~9}>wS%O|`tRi#Wm6N;tu~>v?`)&(f@gDv z_SMzj;(Hm-C$Z4hO6}g;g>B?ujl`*aX$XVa+kp!{`)zcrDDs1qgp~h^?D8xOx|6)P z7C^)O#jgJJ96Nf=v2ug?xAX6j04)PUvlU!^7~AzNg42_*kL)OVwX;H*&o3>RP!#=e zm{332@^-1C@2{#z;sF&+XBJBC%{sRl&82lQG;oOndGl~T!#_ox!g>6J7WUV?^*kI+ z`(um1Bk8IK>#9iglH@8N7~!pZ&I0F(3+lm0s=w?R6kcYM{_i!hp-9I#bEb`%N6lA#*FNy^29O zb)-p&c$)QyWFipi1`TWJR>7!@#Eo+J!bccw3%Y{i95y-)4jx~cA-zXIftFE%0B*mc!VO~kRNoz4dzfjTd2hd5+U5OU6_X%Bagna43*CS*Kuaz)1OfY7et zKn}R3<{Dfbjh(S0ZvQpa)9P|0Oo1RwE7(5Ge3xty^ud7ON-tzvO!hCnPO+KKUDUsl zjxN?ooDNMAt!S1*#u4}j(6om}UHWze&=E-mhQj7Z5Nujj#K66DGMXm(SVn8}yQtTO zIf4fjx~{A}TDc=4s9?RBCa60o6u76RsjPzqvQd7>e!Dh)E)qmpl;}A=E1BD+6h=F4?SbZS3v2zT!iXd{(|K#A&l-#`$`}Qmu_bf}E`Lf+;5~SK zvz?oMki58q*nd|T5d@^ucxmmeCpzdN{fu8VHIZZt5;U9f@1@9uNdT*B4luO&%GcxK zltnh(A#vrENyy%$*#*W$6m1u|n1`Xj2`D?;m-*QOEpEnyDKmHe zceyx%@pASXFY}HwOdL(&U*DZ#VYxfS&(HsWMd$OEimzY3hBIB#JI{0WVvNnio#&p9 zl{^p|tUf)q@J%k=#1$PCXhsWs$&NLTuuJ zJQLPF2C|qz+moBQzGKCnC)3V}KPs9rjcn-VBk#Eobfg91X1B<@vS>WLS27Ug0PZfU zbFvIlopxak-5W~v>Tn*B8~9K1#(_jEO?06ey-=hfs0|lFBM&vKNh`4B?xH~+-6-?D zYGy;i0l8{J)HbaD4j}}+c1=`i_F4GV1ms{n4O)hL$Tdzlmqe++SMas?eCy#T`6xLqx z5V;X8T*7l3EB88nE)d1@-Jifon}GDOy=Dv|P3kul58t2}>^5%Xrx8zP!BE+~7e?CA zrln?nLSh?xS{u1Op38C4%N5Q0fAFLsWz^z!X=RV*f|rmul;S08lyaGHR1A8dIeRPUA>W(f1mABE7T_ zf;pZT=h#P(JuU>yRasQOej->hIOS592&{&U&!?y@LAV2KGRz_i^WS|g85=SHj!8fj zGB87;0gr82N`m;fJlx-lu%!FBB5aAnuFV}jZ)x zSnZQ*D6H)2i&NF&#cn>TvGMc%v%??h`vJ((r|*{2tvuR+t1X|{RlQ=-p<($xWo>i~ z+`3d4QMw2~4}hk~n^b2|h~CzWDB2?bdG_Nn%epg|Figk+VddB=8VTV3vN@7uxF(HSZeOk?TV`I19zc4;x_ zw_7P};Sx4v<9$p13yq3TJS;`q1>Hb*3;_Ycs6j zXkaH#gi;U>*#nV2c{DPufAoAi?*7eHRFy)RoTxK`d7AVdf~c?)t)pZ3T#U)Li=$5+$?fzgdKlugVM-a{f(b#(D2q*w#;j`@r2TCIV!Ji3v z!4aR4;7-E*Uq}H2)6WD&i+lG0k;_QXz270PvpzD{g(BYIze z%oXeHQC6|KW_`M%s?+<3intrG}2Oa&sU;Y`OrSD`7YNoq@ zxG}y?F9(Okn~s#jX=ef!f{Ok2+L*cJ>YO+70_x9~cgG8^L<FEOt=e#=E@qmwLC_Sv`BsXY13#cb-&9mqU%7(qbYKi@qF?z)UBya87cGWwR|EL^!vWJD?V=FBC~p(-jX zd2fy0u=rKB?B>@G2N*U=sR!zvU8_(3a$rCIq}f6xH?#q#80bHWo2XOW!y2V+8RU|> zEAb}gZGF7zdiMx^?eus%i}#>8*UC*D>bSH?Ixadj2|h+!8bPk&UL!PeTXrh6OJCnc zZa2ZcPCw@9J#5y?0N-JWrg+L?)0 zM0_Yr(mGdeR$AX;aC^FI0RFoFoLnaI3j(q-UE;h{fl%~la={2#O%<;Ho5_-5nlZME zg5{UB?dXV3ww$~@Wq)6`m4_)==WTJnrgyWJk35s|iXf5@4LEsiHfn52Kwbpx=t{OPWeGpX_H7Af4rb#{k8F8quwm%{5T8*AEHKByuT^{ zw;jYpE#PLqw!>&WqTtysj>0T3TA>2&!Vd>vTrDY0*Ns7FWniIWQ%Q+_ zFx+7J%>j_QV;?>J@bza+QzEnWw`VV#d}U_#ZtK}YZ}WM?u9a6a?THFN;CRq>qtpkwsuMgwpnsN}=XtIJ z^BxOS#jSUpRdNj68XOALw2uG0aH+El+$>~+e(o%Xm*sMK2FbS!1@QXkBQpb_& zfO&)+t=yujqaYw<(sVPD=E$&YOnX_>eqwX-Zs8E6N~Cu&|AxpN7IW7~)iJM}^by-_w`uGfe< zZ<}!TC;paV@P6Z~^A5D$wRe7iqPlrs*P(yxN*ZyPJ}2*t0?|WzNj4g7SK8k$sJ>S7 z`QG|)J6h28*XBB|Bwn`r?%lmf)p2wv4pkOVDJQl)1CT?fog5+n>cu!zp629rdN?!J z?^*!y0TOko#(V7yFv0i0AvP_9<&=EPWEfm3$oBd_A^?;+p=|5JIU7{}5A1+&CCQ~j zum@_QjOCBAkSHL7-+CCtM4SoC=UV*e(7LhQV>H?;34fFUQ=D~BNjcOxxaIsb;4oDjQIjBhT@?EF zZ^>`hQ-2MFO)p;hCme5Gdh=-^3T14d>SD4H7je=)$u-yApNae z9MzR5rwRaSLRhZf#7m%rq!I?qzk^^ZgS`n#CGyz~S4iX`Z)xw!N*9AKpW7m5_INEdO0TZK$=*ZUCa)$J7bD zZf$riFqu%bigZBJg@2*}GpiI)=%7_9OE#8n<2+rZyQH zePS)r%EJi;;+xTt01YUsKYOff-pbq-yi-1Ds)L7bea|7ns<1xh4wW?{O=5%mBOg+; zs+M9-f@6W`+#e?Apr=Brec)~C?&Q6A^{FfR>Gq>vA3j2$El@!xyXD6rv`J`P+VD;# zvLY7$XI5Drgd$bMrO!^|5=?#W2WB3SS3qrhfXZ&uiB+ z?5sCdowSN9e^rHq$G-q&>F426p-{a6v7W-@X{ms-;E%p*A=@SS z-s}0Z>S>)M8-{tV=wc=6ESmnwZ|g&V#7{cyfQ)t+RiMz)x?RLPQH!7LA9T4qNO0xs zs6kO$Ki?BO>`1R(v^=#d8o2k)&T3^OfO4>7mx2EcC3Na$a5Z4tZxw@^w!U8}nBzSB zyL#+7DQMDIbZZGGwAHi-1S|`|bKb9B5LCAT&9L#W+Q(Kj@21g*5&+F{J22&P;NMbP z7KSOW-aOzqspiCxePKC{@c4hrIQv~iJGNIMnTkhq|5I_50`})p7STZI^=qf1^4eO! zWJ`m%CA)z5kd}*gW`o?qPNi=!kus}v5 z*)$#O+iUjH4>w{j|) zeibjTg+bvBg#oEhc0ftPXBfN|TLrw$Aa8nq1~K5$9s^I`8Ln$Vk1(T#4A2W{-H!MVd`kVlf*1V*7NQ9KRnS7)0iq;-PN z>jY7ZC+gmTN&GjB_YZ7%81E;Zx<5?G=!%+!lC5Ni6NHryMptyUuLY(E>pgA%x0ECE z0#0D87NI4#EJrR2h)7F4aJ=pQHW*seflCB=)?p`9CHmqky~-2XL(fukW4k`Kzw zID9r}<)1M?fmD0gdYD$(MI+DdL!l=%Il&O4R_dc1B!Nok1@!rW^U@Rsf*KoQ}< zZOq2A#LN3U)ChRDl&kLZ?WP3;x*sOy)y1ZT|8Q?`;$Cg;w`sTKahUq_vUHJK!`4gj zxmxl*-Oa|XCGdv06+z8{;U#PB_}M-GAnpF&&-l=4s6Ta4RiUN!Ce@-~baVcm zS{iR6d_w0pXv5(KWotwY&-Cs=b^jw#dz`^=xn9Ef2=Tircq{rD&?Lrr_EwIIipYnr z?4Sn9;q#{ZT0&DsA*ri@nca)}#0elyRr5hRaZM?}+PoRjR-TMfKil zSdA4AX4lV9C?DGK7}Z=1XO=_7nidiOF%{T6bOsajuCn#^$#k)WTHjE^UcKF9ee*bO z^GMVkf>YJfI(umhIf;a*s^r|S3!2+YCcb3z7lDlh&A1j%V@6(_08;$On1BgcJU(;* zEZ(L=-j8SI)_M$;2%d~vHx6fUq#jT7W*{kbW4@h=5E@6gj5)*e2>;T=bg-ym_IXcw?a%+ob+u)s3x0=Y!V4U1g)MA3UjV1p92{|5pDe ztacKKX-9-i>-7wnmU<2+A}>@WlvDgIFBCVd+WXhsE-}x4#yFi(cFwbt^8lb|#VXhRm)12ma%=SChiOC@U0Be@ zmv_Pn-1%WBtgIUp#)pN;cZDoj7r_*hFLx^TGiUO@T1!qGNBU??m8J$D3%=pp(ZIUB<{ z=6V5u`=7qB0mRS|**9ak%PR`dJ%n{7!hDVJ=FxmcTD&kiMNrAHM`U8T#Qs+O%M6)bAGweK zqAcsZvpjeBV9W z3(6uI0T&U54c0zsFod2ARa(YnS$OpF7U`vYxFJ8nV|=R5UAwDIxEK~;4#4P8uB+yR z`sSBN&&3F~PGV4Yr zuUvb;z>+6+RKCrEpl^l(lDyY`y3cy5GI^*8p`wkBe!|IAzEXLT_Gu z-bDJ{KkozK&xg`ftLQYcRlJ1iLZBn%s91Fo1*P$=kL1P64J!GpTTTIY_|?vOqT}b( z19)W*OCXX$<~GNCEjusGzj$S@;f7-6i$ z_ymxh;}Acrc?^Nq-2^P95~ISj)8CjZvY2FJgv$jS)#S}x zCj1t2@Eyp#X6gMLvXXe{Yn_zK?M*vF9XqylrCK`hT)eh~4sVIcuVY;5Q6xGcZ5aQt?L=`2&e-VOM{55RItXth*H{j`D zuBX)j&mq7>AyYWR7C0-KIB4g0+)~kcVp+-b4=Dy$9H~SBg`sk`^@zJaX`)z{9Ky1&&}Jg!8STNgyUt3Ze-A_$lInowFT2OXH@ zy2>z{t)nirq$^EW}2FO9n z7^9^he1<)E1YiZ>hX*ID1j)z}%6t<5)&VP-$is|Biny%57QP6a*DN9=5YG`NJ1KT%lGY|t)%rpHy`hvPxb5fE3UFC zi(57D#EPBxYY|^hcbbU-CW^+t9@@2nAG`+r^~R|cFDyoOzFPsjAxV8bGbPBMbOa>Q z6#Z4bU`=!e68OHtL!f!d#N?@*P1AXx9fR$lPf7>l{TJ`G6pe0wA{{n{(P(4^YC!-K zE+hl&HKhVJX-D%0L$1D$1ZJwv5rV#fG6GR+Z^3nyhPse@@jU_NRD`ZBWb(Tb3g`m zH`^bo2oS7Zn5R|+;zZ+huEbWew<$-t*+)5k;v9la(1yf!0b<=)evF^&D8PWYGAIWk zRue(5XDdDE5|nX7?9!IAfS<89qofdwJ~rt!#oL?wDdCtd4qcW|!)Ssw=f1@4N0N@5 zOFx^YE-;Hrudz1wQaU^9?Gn+A2<4A2(1^1`tvFg3r*X8m5KfD-ZAV!>|2R z*9#a4TN|iOKDq9jgRklp2!{I%=c@DB0d9V4kVn(j)eGKz?SLP z`yfL-dcDU13rYv)nj5_BTxH)*8Nh?Iv=U~)NHL&9QKC^cKpFctK&4-B@JmmF^h9+0OQ>6G8IDM(CQksGY+iOjz@q+A=Ro=$D-TfGn&XHhEU8QZ0bRBOL2jSL_wX(O(O+j*+0^C{JR5C3AdYBxkq37_{)1uZwLlL zl75$p>;mIb!)TH1e`(`qq@aUM+*jPHy3?nEcieydO}Dyepe&aOlHk^%TollzGo9ic zGr9QAIk1GY%!ToNP3ReR-c?KY-IHwd#hJlf$1c_RQCoLz2A}$cbDAC?wpou>{u$Sg zY~uN`$T>VizRgkYr;lx~A%%0t8R{y3x{_vx+mjSwky-C5PD|d@Qo$I{(c3zSPaurU z%rk+p^I6}x_e##KON8+z>1tmwh!hULbAdNI@zl6TTLPKdrE;wUCB;SX`dhT{y zR#l$$X-n1qGxQM9y+XG~o9eW}rI-qNb%oxpA}>32^?X7EC)GDFlwLe9``;5QCNo{# z7q?g?oX6gul&*Z*Q;#oHxlMAhh6HuuSWW9$^5Ji3>oV&HVWX& zJX)4axq!)PO*=X=NO-KVk|5KWaP^l{YL!#!4SC)Vg`u(+BRJP@mQG%f>(^5@e;;A; z?2NHjEB?PVF|RGs)Mq=s>yqn*HFq(E&p?3kBeRjl zNpa;L!$kb>*xh7nRO+RBdN*dyJ6h}?+x>L{9GPz~J&1$4G_R#wQ6E1A@qgHD>c5H2 zdB?sw7j2b&-ks0_3(pC|pKE0xV$@WdB{}(%Q^Q(r`uk8=Q zma*w^Pc(2(UUfWUdisuGIMX4hUuE!?3Aj0^hvulO=XdUHq2NzBxJBc!pR{$cPQkwEMJEbS3DLjr?9&00{Zq>d2QQ{WEEXR}>L^_#Sd zKca)~jsNMBa*VNG^`YJ8+?oYVWUKESMr#T6@m$mRT#~zED|wp>8A`f$rpD`M;i0*Y z9p6H~@7dBvUpzu79Wv9zQl8Bc+$0R{JwMw`zO@4IlDe|aSF*nzE1#{jjGj19nsF6< z&vNZ~67n&|`ne8u{z}o>8QFUoNh531M;}FZ1t!Sso2r+WhJC|taGDDd4Yn*d`&N&7 zc*7q(6?)4PBXT3f;^N2GY)+m(hsukdygYpn3n@@NxmHztLM3E$$hzjha~h+3-A(i@3RA|bj6H&aEbP91S&UvyAiLkkFwG&bpZbZfLKZhMcG zUz1l8@UEkKo+*3FSZW#NFCxWPbs@H!$9n`eC2)Tpr!ERY9qR>cgjiTt)H@Sh!7*1_ zwF_n`k~$06Ce5Z>dEbiC^qKaJ5LNb`roYJ^XxcZH05y{i z1CL4{%spz!&I26fZ(TrP=3uF{ita_wOw+vK=v#g(>gVVm9_62=sph68WlvrOTyyZ7 ziN<#L@jPSJk9}qor=hbJ-hSt~DpJL?t-B;ks=vH5N+|J^i;B=N>+fd^)FTo@UBhDo z#UJkX+{F6EtzKM^M>q8B`b+a?L)zZn`CFqHKz#8@>iCDC6J}cM=j8V(ly!hrQ{n5< zNR{5P`Bw`q#D=99*rgOb8qjH6!2QbUB42`8I*JIN5uVAqbN!H?mL36oLBPw$=Yj9l zIarixp!81eFm?l3e($83U)G9MPbv^E;}@7z_S~Rb(bxO^?V0`K?pa^c(UJ@Jm;8B0 zZ^b}fIvemusYzwwq3tbGl=Jcy;?qw9IOrGT9rVj2&aOb~A|9U=Lg$I{@3HuM&f@RLZx83kEX?Qi zkucu2#!8;6MsQ1+{(Y4JeDQ72fUQ`@$F zyJ0$<_P&xXkGx^U*vBKeat*&bDPZx}srJPqO+KEd&lxYuyI%TmNwxiYymsB}F*&OP zZAfo@X&R!x%2gNhB;xMFKU;MMrW!%#uR=8*oda^t?NOK8JgVm+D#{eLfjcO`O5 z?Dsq?WW!=XJ$Yc7W_S-4XBIt3Dj&>n5H{3=6=0;})v+zWPctWQJydiV=@KNWoh zH`8-Qny_BX{8ay<*3$j8>vto8A<$Cae+nI0Ipz|YqG=`1jlb5sEQv7GsKIEMf0r(O zGXL4UuQ`|t!$G_my;ZwZ-_E4;{PL$ekwSn*TTs9%!du9@p?7y=!K74-tjk{*CN}>= zo{^7pf*zAM%6wYe&hA2vtQx)UGnDTC(LY;qg+0p}lM2SgzlLq^7|*K-`+2Te78#1s zEZWlL+^oy*sk$;HPD|sh)qS-S7zcZYbB7A=i;Sp_hL8B zI4GU#agfdQmDI470038VU**x6O-&1{<3m#!;fIga?`cY%g$v2X0uh~%e({@}5#`wn z=;c-6i%J7L3{U8cZ|k)CO&`ZIf3+vC* zr65Mo#m1AZh`%=!*x56Kf4^H&H$PTp9g{=vAirKw$~~jb&k)3QO`XUoHsN{Q$){o8 zGBL>{Q0`;l60XTu!`zxXQ;yx4@ra#?r#H&!T)}k0sN2=YDUV^ZZ&3X;USI9nzvXE{ zB_2)0-yQ%5qM%tnk3+697K`G$-qrftDbwY9n9i-xg?#{Mg^T9c9Je zRw8_khs@2ch79tw-mpa!W%Z~8u>DU}ihxOo+yY?E4NcLIbpNb0d%1;=i#e_&;`~V8 zgfTr~G~;4DZ{f(qHrW+1hO=E*>+?41;->M>WO7p=_EO$h#;Kxy7ZcUK5TA&6XS-0R z@;axtzPj>|xWlw<0Z0JEh8$260jB3Z z6-pkKr;DoX!&)xMHAO_uT)Uz<*ZV=9hHx-K+F;IWf_kTTup|f=Kn5ZpiDL{Ugc;5J zgugh>_xZbXDC{{y!>Ob^e(??7E5ND}l_l&W9~hKJa8m@%=#o{pSo0A4fq)3!Yr@+`fFu?idpz}TcFiWF`N=sWds%(SO|Hjk970{Muf~_azRB4szLJKVqjrY z{nrBmdO=itLW2{+2}hUT5C)nlCDTjII*tg9#F+1o3nxDs*8W^r<(SvG*dSYEGjn1V=Wyma>jc&V;IM6l%H#999X8QW;Aq-(J zA#JeDtLxOz(V>%)yP81m+_d(fX?Ehd0zjPRC;AZ~A|Q?!jhHZPsEI~GNFpF2mACHZ zMth4vCZVUi?52#P%WWdyeZNYZG&C$kPjB)woUiPL}y0XD~2D6pf&X4v@MSj{JOMOEXn{RtE7R;`|M88bABS9j1dX-7buF6BoUfPTpa1kilNyqw^U*MNTnmB z5)qVu!9q|1T;;VcqiH`A&S>4Wt@-$>d@5a8T-5O?mH4ZeS7$k*XMO$+F_2}s0?=v; zwA;Btpmz_T`~k2-Aa;_;Kd9=%3Gomg=Xio~hWTwzs8QQIJd4U!H|3ctj`BJGBqlWC z2#uJLM9xUURU(X1+>LOoqzC&K?6GtF`Gh~G01H$7eK2!R3r&mX)veahNkVk!9Y_3v zD%E$b9B58vAkA_|KkZcH4u1rS*?K0;#HLz8N{KhuI~K%X`45)=p zsyfIRQM1~ctNn44-fGi`@_qhs0wggbCSiEQR06?RgG*e}^h+ZkU2lbDz$t(A3I(?| zcQ}J7-UUu&A?<$8-R9~hgD;KU+1K&1MQ8NzjmqtE=1p}05L6M41wDs9{n(YC!`gRGX1!LT zqD{yb^$`J4L`aedjU+}R1{#r~vGxbRPC0rtv3H>2&M}Sz-Pm>5L+{qEXrgQv8CiQm zd~(Fc=l$DiZm;>_nIdq?({jQ6dBDcpJ!}U;3?Rz{(p2O}`)2v*Uoi6dd@7`kdw;5X zuSPz2uy2d4`yd%FPhn9+vME}vm>^R1_X>76fd!JWo#>{VL;!IGXHt3Xg4@0Vz3_10_ki9J_1B1F zjN+AZ^eR?t93}|Flp%?LW*ngr7hC} z_L+V_3WcAHA3G&h@k`*J5FdR!$>aUis4` zFC)qq1+vcySfqln9nf{ms?(U<%=Xfvz%>D5ji`Qr>oaPPJ-zzFcJnJHBYkQgJB#n! z0l6M=E1jDegcLCeG^Cr~W)dNZ@`HVH#%5grTTH6Vb#9Bbr*NH1#cj)9+4+d2n0PyK zw%X(G;EnqF9kq)kryd62jg2pQd;q27nmx#{tQkWbok7v{INbWB((Jz~WvohplnH`j zWQdK!eF~OVp8eSD)yZ8`V456B%QIi6?|l#+R+$L-9O#pmp1`wro}Ir|D_!v{m+1s` zq;9c}AKHv(ccliwRuWhMND)zlC`!$ zx#ZET{`vSQzU$8T!T(J90Kvndjj8!Kj6-d#PP&_%jz@iS1HWmom(y!XK9G@)$@V|k z&VW^I&iDIg`KVs)|0zb~j#AG?Cl5B{jm`Hey;?U=zXqb#hTx>00Qnr~lZsy0w9IdL zBI8DDT{@K5sPIfyUUkdfIDrsHxtrfOQseHNff;$!cjw~Hh*I~Z)F&0YJZXtmS)L_Z;9aV#x@ zMNw+*KT?I6^2&1QY0IZVE=j&uUIWP%getD>mHi-(Lwr)lY5lEs>C^-D5vX8jiJYOz z%&)fs6D)>|SRg`%X0w55Lk%<{pb;yhV0Ybd=W$9=iksGN{-Yuolegh^{w}Ta9Rvid zPADb3nsci1n98kIE%zSq8{JbzWS z%#M>4^Oftiw_KDv5~{1Os{U?Onh+21(Z`GK*EfQ%&(D@}>{F5pkd@Eu?o}yLPJqEA za(N+tLU#UXme2VQr$8%1?%tQxbYZ0T`xECvGGgW2hwOHiPW0(;yInvnX9x%wZzO{- zA*-}ucFlPu8B=vHhLDN~Ni2`{Rh_@pXR{IH1U6m%>N5p$fur0ldOLaTY{(h;mxM*R z-E7ofav9pSQ0`3#hxq8@rrJndq@PUjV#}a$|5TkGBY9p-Qt^jg`dVoEhT=g6&#Ae0 zBE8+OodLrsBTX4;W*q4&JAGvnBrr&DvA|CW3pU!tYPHZ9DFOX2k^?3Q{C)uXEUsio zX#h?RuXIsf6cHMY1aTCV=0v#Ek$XlWS~%F3{bBV;#&#A`4vYHpMTwo#hp<0F^Zj!l zv}d*7f8K@aM=|El%i=>5PJvveG82RVG9mKqe(ijpzh3N1agkQ#(_8V_;Cg8eu;h!{ z72ron9Qfic`b7SQ_~eb#dRy*1$@NW^tATT;Khv5K))+(T#|CP&*mJKPPJLud$U%uRzkTIbx2*W9`vYlb&aEeyO5J(_6cksi^0E=Q8KzjMp z=lu~Gwhhl(1ui;qGVj3}IoLllozFs078z8MZ~ZKv1HJ$0wB8mwO==lM5QsQMBZ<&# zHqcBW3?*{JK&1Enn>iHN!-VWjW!G3n`4N-#ddj8Nmr*^n5Jm_A{Q;j?sp2Ldt(!89 z?%1<7Kp@J;?;`i--%c6rG)3BO=bb+_EHz&_>xEV!?E2J{A;XxGpkhf6>DmJi1`Gx) zKLC?4BqGFdj3kMXBoU&B)SyK3w`A;B|paTWU#T-!le9FUq*C=GUc8RK(B%+&PU zpGyy62*)c#2W7Z|v1+f|<>?W$WM*P_Q4qj_A%sAdiG03au-ecs=ke7X9mx_|cH*iA z(zMDUdevnz5A+5K?j@|Y+0|-V;Kr?1E8!;NqBsc$C{^+GC-*^fI zrHGLu6iBBiKR&WbDM~WO8FnirMGB&kZOl-a%BA}SaX`StLGceeSGvwms^gdWxG0ec zxnF-KWP*{V8B%qmui#uMpu)F5Ypx`zuy@0N1y2X=3K&!jj30n*VCwEr$NfSeiGVm_ z#ANK^D!&~TDcDJ;DU9+_r9F?h%pFaYNW~Zo;GrdU1d9{5@|2`=c|MN}>9W>e88=THX5{xX|2f zQ}sQvofFi>^O8NYFqCeQ0qwRxJIjz|!d4~RKeR(Jg9{l(X*mP4nZ}TtYz!(`h8BN2 zGS;;)^df<6>tsN{=nw&h59$FA0h6f#q6l#uBTf=Taa0)JEk3s;PQj~=&|-D+U3 zD%jmYAccslbjXIVa{cMlUl;0f*+(zxQBw*;y_Fxraoi{0#eR3yH}?8n^mACSnc|0v z^l;`XyYdepN9df-_viEe8PYUGnr4z|2$A<7YW7B5E?4}jDcUn=9-8eYwZuoC7U;?; zyA|EYH_}stMG4MP0-mrx7np-(iv|lf|ChIEpcpM3^xYA&zp+$d3b7TuwTu zK9kR;_%!gcP?3VGtZz7|Q7Af~Xk9=+e?xiHGcFj`I;S(N=SEMV6+;D4*;m>2@g79NFd6 zK8Cv6_sAm}LB0@%aCL{Y&Su+BqTwqc0;3TLG!nv4Gs%?zZwJpF&7THnG+(8(1O)Um zD!yBT^~g!bW?Cw!f`Lo`t#*cXD$veEzRzE#Ws0;-fwTh9J%_vMOt&ys5e$kn37DG5 zcLB)A>IyN!e4WF5dr=e-;)oC#qkkJ*@wYEcr?A)bV->;>X)c{7pgkcBVL4>yKNqZA z?izFR=B|5lmyY#iGb0nwi~Ux$1u~Hz_@laex6}8!_+gbAmZyI*=63`Re zuWYitww}0%Ay?@aA2fTONxrQv(hGN2wME|XXZaccJ6|!~!g)~Y)QdkR+tUvS=nhH2 zGIHZMbFnCgP%PUW0J_@W7|El5wa@+1s$*EU4XLvOq(=lM*$qqZl|Lcil2=2&C=KX0 z^u^~hUNG5~C7+h~QF5Tc-{v-2HS!l=u*iMg0)>T|7!&NI9bU*}2}Y z@-5H&gTy9f-52#ts^tr?-2>Krrt)MHu>E?N{FXl=dk_Y)XIT%#z@KJOAOi0rd?RJK?$dCDT z(HGA%AYcH{M`r<)$3R+hH(1&fm_?ZH1daei5s*ZLn4~$}KQ*aG`dTJc48i0!;QD>m zzU!#+FEI9@`8+0i-}#`2Sj~O|s=lAqe%~5ArtL48+qJe@{K!%W-0oX?>}N>-{sOJG zz;G)?DzxhF?9!)FwN|KpK~)Ht;-IxR*|wtV8^cPx-FrC=s?~s6iemXVj?qXWOm7g9 z*vH=EeyafiQxMfWT79*q`<4DY)SSQI{1m@dCeTXd(Y~30pcqWCzg&ITPuI0}Xl*yt zfPle5qAhGZz9Ee`U3Zi6YV|*9yFW|SfUV>rx>y2=Xf^P}=*&FJd zKDp07O$FMi(EI$!q#htU62R?0X7EsEP$N32>_AY|4;ef zHmgr`J3|=45OxX`*D|Z41qd0lcJPx5fsEChe*{LPZ2+WI0h{;p&R>>qtd+6orFhY< zPVo?iaL_|qd*e9;$MiECYaXE(Fc1Xd2xv4CG?EAnVni-?2LuH4HI(0eNLFvB0xMf7 zvP>TJiwFX-P7QX?63l%Cz+D)-I&We!U@|;3^#Kg}eJG66I~km_0N6I;6=81vk4PYv z9e;3!6A;kHPjq-j;*nT=Sw_c^aryu3K*iJBAoxzJ3bL z7vB%<>C=$b-guh{(UE-b$47&j*JA)=p5(2}djickMKfkJ8$(FqBsT@tC;>q~2nd)M zu<@@ekpz?8>eo&)WEmqB<~%=lkQ{@DPIogI?sh8Nqe8d+TEE<9VG2P=x=63r@# z@_9i5qZtV_W1!hc5XW(83ZN*{-8d8w5U@JI#=lB!2Lpoht$wRojJE9grFRe8UQn^S zhX*QxQvbByr2pCQO(G7i&&{bbKg1i;TPXm-a=14=u#I^LQ{Oq>e(U}Ytk|bSC z38>N|QYZhB+yziZ?LZ|X}xxfDM7d+TS>;W^aZ|JYan#u26osZ10gFoqh0p#(_c z2vJn$-MG9@I3OTkH1Hm>+huA(%0QX{t#*bqW7+u^{kpZzpZs;PENjqFE9=HFZ@;6{ zy-ntO9}CnypBg^^sJOm*>Exx`=ZBlSg3INaWtmsI9kGNkgdwcsQ?{KQkJ@Py>jf1c;n@{=PixFd$&^z;(b=hr(@7KJUL`SYS96GCLVddSR4l#-+Hj z*qStXP`O>+e&s!whb6jnofnl$Bqkl|o|pMNYUu;~y^Iv@cND2V2*yL}_fY;#BpruD z1fr;7dF2%0h=70zfyrNGampYF%58K^5d;VsfL1E7s+GwT{S@8JUm>2g1F*vBkG21Q z07E5%tK=}%$Z0a@W8E$uC4Ib~myb@}KCji#&e1-yDSLAa}w~U}mrY z+Cm`B7$Or!dZn04(vA-E`@*XF;itRTyOlRZ$Q5CI`MuWHuW`4>V3&qb(5GtLcrMlbn~zX_ zreo2b!8r>6<%grD0CLkm4D&ynj8*Y~fPhg$PbjKsw#YKr3*?=CI~7O;BLg8r1R*ye z5p({d;;cXNZ7(F_2Zx<~*F!kE5H)n4nC*o=Rl}<1LI&NJ&+PoiusyWa23ro`usBzr zq9{TfN0{CKnz2DE{T25A2L!BMcGMBm!~5ury5~6BcTk5quQ`2=`aK*zMX8{KFoYo--!Mm(3A9=%+F1r>q36)u z^g5R_94S_}I|K)=aUfvq(CL}hby@-4!88C=(J(@KZM`#Jw#C4`D>Y(J7Jz99p_#zr z5PUScQ9wYzNWhX6nK|F?*A`$F02quIf@1%A9OhCdZdw2sjz1uvM{vbR9v!$T@0_^FjVdIbO}HKE{lvw5Y7Jwr}Vo&3=ItL0L}+R#jI zhZQc|$4<`GU8m0UQMUu5p!3*2kJaAKbn_lY@cwGUy61*2=sngqkQM+S_XL>4G2%GF zPy#e!)T=)Oc$WbI*#&Ww~CLrYDJ^*=-x#{%o*-2Mwxe=L6{_o`@tGp*xX5y;+HF*O@hROU+2F4En zjkL#L`;ST|BOzR^A^M~plQq;*%YrA)WLVC~;TQLpUpKpRMM(vto#uP}g#cKVYjyhC zUq=VHbE)c*BM%6UT$lu*^?Xb^8TakWZ_xYUJ|QQu+EM|e8B4Q2Ae_WDN4h)v zeQhqcao~hhK)?VXfo99W3A+QAL=DO70sV&Z8|I+4jS6gaB@Lay000nxNklf=j3_qia{@=5W&gf#o7DMK)Wb$&7w1=aDhe-?tOU$`z!wb$E<$r)DNXZ72dTF9iiu6`hR+1qOh2!cqv<`p1hg3!(w!)<|700JbB{*647)Mk|R{(W+; zTNmUIg-oTyR491j<uCZ^J9IpRDeakX29hvE8b~Aq16_YLiY&XqIs^xZ)${{?sv5G z5KgW4No%gV$pH3@d6Q##7C=+(0;n?g=N3k30SLpB2?ZM?MD@19D;ay#uC;gA#BTv8 zLLtrmLZ~@^&bRu>{ypE5PezvN+B*pw>)UXw7gffL$@u+L-JkpXDrp{Z7x=9|;NyYP zdvXlc-F^eTqQCtBRDvqfc^;D~NvK#@G|~ICr)p?Ee{$j>9Lwiye*X?EKI8IwJLw*P ziSiJDkX!xQsX!)xEMJBTP^8!5kgTwdeYLJYzNu4t8o_8@kq^bphMFp!a5*(jVQDFa zIWU{d8eUpdYt(%<^Um5JdWV-`Uhx>p9m|0r| z$Wgb+sl#m@X| zwG;I%Mys#)A)!Wquo&iAB zJ(@Hh-4(KR^vUw9CL8MBJ)G~nYN~^}c-O1*TZkrlyfTtF88Mbamx0q_0s_VqYGm)4 z{_D-|dc<#Z{+aIli|u|e$~DWc5>{rdbwX^U@}N^V+VZR7=;HoIOCQVjhWOaUyXmZ} z(v!Q^reemR8~RwrX~x~XKO9OhllN4d(Gd5s2(nF&5 z40H82L+|s?_xb}FE2mm4tphOj)RdNM&T4Q9k zGBWa&{+W;?f6jk73Wxk;GM=h{3Wg+?Q9)k1#m5G}n%9*w&sIp)oqs>br4fd3wV-W|8jzVDd;FqfEE3fPjF3L(+K`qo3o&8UPpr7MQ7wkv~yx)}+!o=ppRqP`&nv zZpR>oZePt(^Ji&2U}j{3kO`Kn{o!=zF8}#pG9P zr|YyHBrK1b{BYlOf1d?V6>8)cn2Ynv^^NM#{i;KJu;MNzx;=vy_fzwI{)|ir2o`$I zUv(CMhu_?}M)!{pPFP6F;^U!{>inzdsHcZ;@`Pk6i3HH}SuYz%z0VxwH{$#(fH;b* zbpR@5K)_T6sm+0;6z2Ryzx-6cET8j7?BNxAOJS8Qp|j7yfPm41IvBKj$s3TP)_snv zKy;$7-jMWPYA&<qYL^(w?ELwl}^*wTHmYVncqeKB9}}F3B(a2juS)_7Yr>y zrN4q&+dpu>vhZ$3hq9l(!t@Uak;w(K5tyigC#q-lO|B|Wx&?n5qrqro?qJC4fbqmg zzJbWyQm4YAAU_>_K_@_-QYM(>iDhu;a#oX-8B~f#9fyts{6s1c8Y1X>*!3b3OG1`O6;wM8x?G#WCWTDpxkz56GPF z47zhb|G>ALwQh9Ho-bH1AOOq1ztF`}rNHPKMrL;l?xa8`c}N{-b$JIIb+o)9C< z*RNs4ZB@d|Z;!31LJDx*Q#6kAWg#4Ow?pS|4C%Ql&P6@l@F{hO_g&aY9@gA<{$Oh8 zo#a_R-2VW#udl*Ud`F7j%lD!!iBPal@rB1Y^f!E?dS4oN(lK%mf2qi)R#-5YqK>=z$8T&_cP9fcegXpe8YHC&5g~~QaYRrX zd6J24+~`mYMFari{QUALCM`g_5u^bDs~g>am(?94>4kWOB}>TdeW^74=OcEXrK=pL zaqW&>jtra`5HLDWNB$*d5OHqq*Ms9CRWgtYxIW3Ouy+t3-I>aTP)g{rIo46LtA=f6 z5br-=fS@`#UD<>E=9=KeF0hwP5>E9xU%nvsO`b%WtX+|v4R5~EJW zbfRHuJfeV+!k#wteJVuKIvyeak=Y@V+y&swCD>DteMmQxX{qJTp_U(3ugjjOL-Ifm z^v*EZ(vbMfdRdipHDA4}_(5F$7G8~gmd{DlfO(d}@=3Gq1bcSYFG z@~0O%*U(XuA06oZa(^SGqtDyd?{qU%e|Wwhq6kqO>(Rdj258!v>kOQZSu%4-1%QYU zQG_JUZ`Kvi?){gAb5#uiCF6&&}Wif`ib-| z{M^(JWX$sKd`YY`%&dj05U^9PsYmLLa$R8CR^C+{q>rDP(!HB zy^^&V5d!N zj@VUrh49YM%hBB7Wq*W@M};@(ZRL=SjcaK0KM%Yj-&j6SZQ1?3kc|EDE1^PrVjTJ#)7}z7P)p}dnyZ$ zfPjDrLOs6{^4>p|7H}f(n&J{F&jJ{{5K;&#BY?RMpelVpK!2gyE>T#tgpi|u{e2fx z1HD^3Oqim=9cqrZ#l?+>FoYpA`NK8zsLqb0lb_hw>rcd1+A8j&p&7FVwny|eTJF0y$Awf6caGeV7bqq)to@QI_ckBy|bPUH- zXm&7t!sk;Vv_^JS@=lw2o$Ictw-4?ogyR(!emzLe^Xtw(q7K`Q%S39P8%l%}Lemd&)fyKwCUlk&*Z z0Yta2VfDPOx-M6G|Ecul!ZPZhLAwp; zL-eZ9PG$vI_f*oiKLLhse`uwE%?$1XG3STmpUFT!vWkf@X0m#1+cTP>CFv1V{rc$v zenJ7`imI+%_279}rCyqDez}}mkNSluy!$bek)MnlZY`|Yqi9c6Uq4n~_(&Crz+nO9 z@mS?i7F15F7451|aKcQ3zMJvPvw7+6&B+-6B0cS`=?)jM9PL}T>tVAK3=da@Ksi+4<|?f5Fvc zegACmgIk}P?Dq(PG3C!1eksw-c%RCbexzfR^oeeN9lg%6L=~ND;-&s#BJR&*a4Ptf zJJ4k*mhDbmSEhf#K)`6h zU42((AIWU4^k<`t@O=gZ3<|3HrQUMOGOU&Uxe35uZg=tqlfw@HbX?7O+E@K&093;+ z-z~3V2o>V1E$(8X+tZ>^SjDB(df3z zk&LeRK3~M1ulA2BNBtv11oyb%L5jOmUN96Ob=?^8Tc@sB=2Txn0Rdx)&I?WToWEfa z0GtjUw*LzsT)!A47yCZC$93q0^LL1cc*XbIRes<1KLPin(9v&=%1=h;FTMO}vwtmm b@4x;(q3H|Q=3?Cn00000NkvXXu0mjfsO@#W diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_shPxXVHO.png b/packages/superdeck/example/.superdeck/generated/thumbnail_shPxXVHO.png deleted file mode 100644 index 51e344c67486a5e0ef730eab47813cb0459d7fbe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18028 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 pkD^n=FFp*fkqI6x)r{|!LKvkd?M diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_xRHNCnNN.png b/packages/superdeck/example/.superdeck/generated/thumbnail_xRHNCnNN.png deleted file mode 100644 index 46baf94eddf4f33f3f4270c91900b09d2b0fe4da..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18816 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 diff --git a/packages/superdeck/example/.superdeck/slides.json b/packages/superdeck/example/.superdeck/slides.json index a2fa57e5..c74ac03f 100644 --- a/packages/superdeck/example/.superdeck/slides.json +++ b/packages/superdeck/example/.superdeck/slides.json @@ -8,196 +8,28 @@ "slides": [ { "style": "quote", - "layout": "image", - "options": { - "src": "https://picsum.photos/600/600.webp", - "fit": "cover" - }, - "content": "> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo Farias", - "content_options": { - "alignment": "bottom_right" - }, - "key": "HR8xUsF0" + "content": "{.content flex: 2}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo", + "key": "22ByU02F" }, { - "background": "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZGt1MnQ5N2k3cXVma24wb3V5cThlZ3ExY2NvY3czcmozang0bGQ1ZSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/XzWd8acQ37byKR4tmd/giphy.gif", - "style": "cover", - "content": "# Complex layout", - "key": "RiJb4GGG" - }, - { - "layout": "image", - "content": "## Image Layout\n\nCreate beautiful slides with images that fit your content.\n\n##### Options\n```yaml\ncontent:\noptions:\n src: https//www.url.com/image.jpg\n fit: cover\n position: left\n flex: 1\n```\n\n> Define position fit and flex options for the image.", - "style": "show_sections", - "options": { - "src": "https://picsum.photos/900/700?waves", - "fit": "cover", - "position": "left", - "flex": 1 - }, - "content_options": { - "alignment": "bottom_right", - "flex": 1 - }, - "key": "hhnMdIWj" - }, - { - "layout": "two_column", - "style": "show_sections", - "sections": { - "left": { - "flex": 2 - }, - "right": { - "alignment": "bottom_left" - } - }, - "content": "::left::\n\n# Two Column\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n::right::\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n\n```yaml\nsections:\n left:\n flex: 2\n right:\n alignment: bottom_left\n```", - "key": "kXnyZsjq" - }, - { - "layout": "two_column_header", - "content": "# Two Column + Header\n\n\n::left::\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n::right::\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", - "sections": { - "left": { - "flex": 2 - }, - "right": { - "alignment": "bottom_left" - }, - "header": { - "alignment": "bottom_left" - } - }, "style": "show_sections", - "content_options": { - "alignment": "center", - "flex": 2 - }, - "key": "bztq1AdA" - }, - { - "style": "rad", - "layout": "two_column", - "content": "# Mix\n\nIntegration with Mix gives you complete control over all styling elements in your slides with a simple and intuitive API.\n\n::right::\n\n```dart\nVariantAttribute get radStyle {\n return const SlideVariant('rad')(\n $.h1.textStyle.as(GoogleFonts.poppins()),\n $.h1.textStyle.fontSize(140),\n $.code.decoration.border.all(\n color: Colors.red,\n width: 3,\n ),\n $.code.decoration(\n color: Colors.black54,\n ),\n $.code.padding.all(40),\n\n $.outerContainer.margin.all(60),\n\n $.innerContainer.borderRadius(25),\n $.innerContainer.shadow(\n blurRadius: 0,\n spreadRadius: 10,\n color: Colors.red.withOpacity(1),\n ),\n $.innerContainer.gradient.radial(\n stops: [0.0, 1.0],\n radius: 0.7,\n colors: [Colors.purple, Colors.deepPurple],\n ),\n\n // Events\n onMouseHover((event) {\n final position = event.position;\n final dx = position.x * 10;\n final dy = position.y * 10;\n\n return Style(\n $.innerContainer.transform(_transformMatrix(position)),\n $.innerContainer.shadow.offset(dx, dy),\n $.innerContainer.gradient.radial(\n center: position,\n ),\n );\n }),\n\n (onPressed | onLongPressed)(\n $.innerContainer.shadow(\n blurRadius: 5,\n spreadRadius: 1,\n offset: Offset.zero,\n color: Colors.purpleAccent,\n ),\n $.innerContainer.border.all(color: Colors.white, width: 1),\n $.innerContainer.gradient.radial\n .colors([Colors.purpleAccent, Colors.purpleAccent]),\n ),\n );\n}\n\n```", - "sections": { - "left": null, - "right": { - "alignment": "bottom_left", - "flex": 2 - } - }, - "content_options": { - "alignment": "center" - }, - "key": "AbUkCAD1" - }, - { - "style": "cover", - "background": "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGswdWJvY2oxazJoY3g2Y2poNHBvZXlpYmd5YTg0Z2g0ODRrbng4MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/oB6KlAvOuaLtxYy8l4/giphy.gif", - "content": "# Markdown support", - "key": "q6arHVVz" + "content": "{.content flex:2}\n\n# Two Column\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n{.content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", + "key": "PeqJdaN7" }, { "style": "show_sections", - "layout": "two_column", - "sections": null, - "content": "::left::\n\n\n**Bold Text**\n\n*Italic Text*\n\n~~Strikethrough~~\n\n`Inline Code`\n\n[Link here](https://github.com/leoafarias/superdeck)\n\n::right::\n\nLists\n\n1. Ordered list item 1\n2. Ordered list item 2\n\n- Unordered list item 1\n- Unordered list item 2\n\nQuotes\n\n> If you want to go fast, go alone. \n> If you want to go far, go together.\n> ### African Proverb", - "content_options": { - "flex": 4 - }, - "key": "shPxXVHO" - }, - { - "layout": "two_column", - "content": "::left::\n\n\nCode\n```dart\nint factorial(int n) {\n return n == 0 ? 1 : n * factorial(n - 1);\n}\n\n```\n\nTasks\n- [ ] Item 1\n- [x] Item 2\n\nSubtasks\n\n- [x] Item 1\n - [ ] Subitem 1\n\n::right::\n\nImages\n![Unsplash Image](https://picsum.photos/300/200?landscape)\n\n\nTable\n\n| Header 1 | Header 2 |\n|----------|----------|\n| Cell 1A | Cell 1B |\n| Cell 2A | Cell 2B |\n\nDivider\n\n___", - "key": "nuiio8i0" - }, - { - "title": "Mermaid example", - "layout": "two_column", - "content": "::left::\n\n![Mermaid Diagram](.superdeck/generated/mermaid_s3Iic43G.png)\n \n\n::right::\n\n## Mermaid Support\n\nSuperdeck allows you to use Mermaid diagrams in your slides. It automatically converts the code into a visual representation.", - "key": "9aLrluQc" - }, - { - "layout": "widget", - "options": { - "name": "demo", - "args": { - "text": "Hello, Superdeck!", - "height": 200.0, - "width": 300.0 - } - }, - "content": "## Showcase your widgets", - "key": "xRHNCnNN" + "content": "{.header}\n{.content align:bottom_right}\n\n## First\n\n{.content} \n\n\n## Header\n\n{.body flex:2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{.content}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", + "key": "lNPO0gW7" } ], "assets": [ { - "path": ".superdeck/generated/thumbnail_RiJb4GGG.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/image_caching_woxVKegn.gif", - "width": 500, - "height": 500, - "reference": "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZGt1MnQ5N2k3cXVma24wb3V5cThlZ3ExY2NvY3czcmozang0bGQ1ZSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/XzWd8acQ37byKR4tmd/giphy.gif" - }, - { - "path": ".superdeck/generated/thumbnail_hhnMdIWj.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_kXnyZsjq.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_bztq1AdA.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_AbUkCAD1.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_q6arHVVz.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/image_caching_c5tnibJL.gif", - "width": 270, - "height": 480, - "reference": "https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGswdWJvY2oxazJoY3g2Y2poNHBvZXlpYmd5YTg0Z2g0ODRrbng4MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/oB6KlAvOuaLtxYy8l4/giphy.gif" - }, - { - "path": ".superdeck/generated/thumbnail_shPxXVHO.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_nuiio8i0.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/mermaid_s3Iic43G.png", - "width": 600, - "height": 866 - }, - { - "path": ".superdeck/generated/thumbnail_9aLrluQc.png", + "path": ".superdeck/generated/thumbnail_PeqJdaN7.png", "width": 512, "height": 288 }, { - "path": ".superdeck/generated/thumbnail_xRHNCnNN.png", + "path": ".superdeck/generated/thumbnail_lNPO0gW7.png", "width": 512, "height": 288 } diff --git a/packages/superdeck/example/lib/src/style.dart b/packages/superdeck/example/lib/src/style.dart index 6ee08e0c..fb8d9d13 100644 --- a/packages/superdeck/example/lib/src/style.dart +++ b/packages/superdeck/example/lib/src/style.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:google_fonts/google_fonts.dart'; +import 'package:mix/mix.dart'; import 'package:superdeck/superdeck.dart'; final _util = SlideSpecUtility.self; diff --git a/packages/superdeck/example/lib/src/widget/mix_demo.dart b/packages/superdeck/example/lib/src/widget/mix_demo.dart index 0f8a2ffd..af6d04d6 100644 --- a/packages/superdeck/example/lib/src/widget/mix_demo.dart +++ b/packages/superdeck/example/lib/src/widget/mix_demo.dart @@ -1,6 +1,7 @@ import 'dart:math' as math; import 'package:flutter/material.dart'; +import 'package:mix/mix.dart'; import 'package:superdeck/components/molecules/code_preview.dart'; import 'package:superdeck/schema/schema_model.dart'; import 'package:superdeck/superdeck.dart'; diff --git a/packages/superdeck/example/pubspec.yaml b/packages/superdeck/example/pubspec.yaml index 0bdfffe6..4d0950e3 100644 --- a/packages/superdeck/example/pubspec.yaml +++ b/packages/superdeck/example/pubspec.yaml @@ -12,6 +12,7 @@ dependencies: flutter: sdk: flutter google_fonts: ^6.2.0 + mix: ^1.4.5 superdeck: path: ../ diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index d1b447f4..3ef37e8c 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -1,72 +1,28 @@ --- style: quote -layout: image -options: - src: https://picsum.photos/600/600.webp - fit: cover -content: - alignment: bottom_right --- -> Create your Flutter presentations faster and easier than ever. -> You can quote me on that -> ### Leo Farias - ---- -background: https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExZGt1MnQ5N2k3cXVma24wb3V5cThlZ3ExY2NvY3czcmozang0bGQ1ZSZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/XzWd8acQ37byKR4tmd/giphy.gif -style: cover ---- -# Complex layout ---- -layout: image -content: - alignment: bottom_right - flex: 1 -style: show_sections -options: - src: https://picsum.photos/900/700?waves - fit: cover - position: left - flex: 1 ---- -## Image Layout - -Create beautiful slides with images that fit your content. - -##### Options -```yaml -content: -options: - src: https//www.url.com/image.jpg - fit: cover - position: left - flex: 1 -``` - -> Define position fit and flex options for the image. +{.content flex: 2} +> Create your Flutter presentations faster and easier than ever. +> You can quote me on that +> ### Leo --- -layout: two_column style: show_sections -sections: - left: - flex: 2 - right: - alignment: bottom_left --- -::left:: +{.content flex:2} # Two Column This is a two-column layout. You can use it to compare two different concepts or ideas. -::right:: +{.content} ### Section Options @@ -75,39 +31,29 @@ Easily customize the content of each section to suit your needs. Use front matter to define the layout of each section -```yaml -sections: - left: - flex: 2 - right: - alignment: bottom_left -``` --- -layout: two_column_header -content: - alignment: center - flex: 2 -sections: - left: - flex: 2 - right: - alignment: bottom_left - header: - alignment: bottom_left style: show_sections --- -# Two Column + Header +{.header} +{.content align:bottom_right} + +## First + +{.content} -::left:: +## Header + +{.body flex:2} ### Left Section Easily customize the content of each section to suit your needs. Use front matter to define the layout of each section -::right:: + +{.content} #### Section Options @@ -122,203 +68,3 @@ sections: alignment: bottom_left ``` - ---- -style: rad -layout: two_column -content: - alignment: center -sections: - left: - right: - alignment: bottom_left - flex: 2 ---- - -# Mix - -Integration with Mix gives you complete control over all styling elements in your slides with a simple and intuitive API. - -::right:: - -```dart -VariantAttribute get radStyle { - return const SlideVariant('rad')( - $.h1.textStyle.as(GoogleFonts.poppins()), - $.h1.textStyle.fontSize(140), - $.code.decoration.border.all( - color: Colors.red, - width: 3, - ), - $.code.decoration( - color: Colors.black54, - ), - $.code.padding.all(40), - - $.outerContainer.margin.all(60), - - $.innerContainer.borderRadius(25), - $.innerContainer.shadow( - blurRadius: 0, - spreadRadius: 10, - color: Colors.red.withOpacity(1), - ), - $.innerContainer.gradient.radial( - stops: [0.0, 1.0], - radius: 0.7, - colors: [Colors.purple, Colors.deepPurple], - ), - - // Events - onMouseHover((event) { - final position = event.position; - final dx = position.x * 10; - final dy = position.y * 10; - - return Style( - $.innerContainer.transform(_transformMatrix(position)), - $.innerContainer.shadow.offset(dx, dy), - $.innerContainer.gradient.radial( - center: position, - ), - ); - }), - - (onPressed | onLongPressed)( - $.innerContainer.shadow( - blurRadius: 5, - spreadRadius: 1, - offset: Offset.zero, - color: Colors.purpleAccent, - ), - $.innerContainer.border.all(color: Colors.white, width: 1), - $.innerContainer.gradient.radial - .colors([Colors.purpleAccent, Colors.purpleAccent]), - ), - ); -} - -``` - ---- -style: cover -background: https://media.giphy.com/media/v1.Y2lkPTc5MGI3NjExeGswdWJvY2oxazJoY3g2Y2poNHBvZXlpYmd5YTg0Z2g0ODRrbng4MyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/oB6KlAvOuaLtxYy8l4/giphy.gif ---- - -# Markdown support - ---- -style: show_sections -layout: two_column -sections: -content: - flex: 4 ---- - -::left:: - - -**Bold Text** - -*Italic Text* - -~~Strikethrough~~ - -`Inline Code` - -[Link here](https://github.com/leoafarias/superdeck) - -::right:: - -Lists - -1. Ordered list item 1 -2. Ordered list item 2 - -- Unordered list item 1 -- Unordered list item 2 - -Quotes - -> If you want to go fast, go alone. -> If you want to go far, go together. -> ### African Proverb - - ---- -layout: two_column ---- - -::left:: - - -Code -```dart -int factorial(int n) { - return n == 0 ? 1 : n * factorial(n - 1); -} - -``` - -Tasks -- [ ] Item 1 -- [x] Item 2 - -Subtasks - -- [x] Item 1 - - [ ] Subitem 1 - -::right:: - -Images -![Unsplash Image](https://picsum.photos/300/200?landscape) - - -Table - -| Header 1 | Header 2 | -|----------|----------| -| Cell 1A | Cell 1B | -| Cell 2A | Cell 2B | - -Divider - -___ - - - ---- -title: "Mermaid example" -layout: two_column ---- - -::left:: - -```mermaid -flowchart TD - A[This is crazy] -->|Get money| B(Go shopping) - B --> C{Let me car} - C -->|One| D[Laptop] - C -->|Two| E[iPhone] - C -->|Three| F[fa:fa-car Car] -``` - - -::right:: - -## Mermaid Support - -Superdeck allows you to use Mermaid diagrams in your slides. It automatically converts the code into a visual representation. - ---- -layout: widget -options: - name: demo - args: - text: Hello, Superdeck! - height: 200.0 - width: 300.0 ---- - -## Showcase your widgets \ No newline at end of file diff --git a/packages/superdeck/lib/components/atoms/cache_image_widget.dart b/packages/superdeck/lib/components/atoms/cache_image_widget.dart index fd9ba9fe..0b7b8411 100644 --- a/packages/superdeck/lib/components/atoms/cache_image_widget.dart +++ b/packages/superdeck/lib/components/atoms/cache_image_widget.dart @@ -4,6 +4,7 @@ import 'dart:math'; import 'package:cached_network_image/cached_network_image.dart'; import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; +import 'package:mix/mix.dart'; import '../../helpers/constants.dart'; import '../../superdeck.dart'; diff --git a/packages/superdeck/lib/components/atoms/markdown_viewer.dart b/packages/superdeck/lib/components/atoms/markdown_viewer.dart index a23b7957..8729144c 100644 --- a/packages/superdeck/lib/components/atoms/markdown_viewer.dart +++ b/packages/superdeck/lib/components/atoms/markdown_viewer.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:markdown/markdown.dart' as md; +import 'package:mix/mix.dart'; import '../../helpers/constants.dart'; import '../../helpers/measure_size.dart'; diff --git a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart index ab338f65..daa090d0 100644 --- a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart +++ b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart @@ -3,6 +3,7 @@ import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:mix/mix.dart'; import 'package:remix/remix.dart'; import '../../helpers/constants.dart'; @@ -54,44 +55,41 @@ class SlideThumbnail extends HookWidget { onTap: onTap, child: _PreviewContainer( selected: selected, - child: AspectRatio( - aspectRatio: kAspectRatio, - child: Stack( - children: [ - AspectRatio( - aspectRatio: kAspectRatio, - child: child, + child: Stack( + children: [ + AspectRatio( + aspectRatio: kAspectRatio, + child: child, + ), + Positioned( + top: 0, + right: 0, + left: 0, + child: SizedBox( + child: processThumbnail.isRefreshing + ? const LinearProgressIndicator( + minHeight: 3, + backgroundColor: Colors.transparent, + ) + : null, ), - Positioned( - top: 0, - right: 0, - left: 0, - child: SizedBox( - child: processThumbnail.isRefreshing - ? const LinearProgressIndicator( - minHeight: 3, - backgroundColor: Colors.transparent, - ) - : null, - ), - ), - Positioned( - right: 0, - bottom: 0, - child: Container( - padding: const EdgeInsets.fromLTRB(12, 4, 12, 4), - color: Colors.black.withOpacity(0.9), - child: Text( - '$page', - style: const TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - ), + ), + Positioned( + right: 0, + bottom: 0, + child: Container( + padding: const EdgeInsets.fromLTRB(12, 4, 12, 4), + color: Colors.black.withOpacity(0.9), + child: Text( + '$page', + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, ), ), ), - ], - ), + ), + ], ), ), ); @@ -129,7 +127,7 @@ class _PreviewContainer extends StatelessWidget { return Box( style: style, - child: child, + child: AspectRatio(aspectRatio: kAspectRatio, child: child), ); } } diff --git a/packages/superdeck/lib/components/atoms/slide_view.dart b/packages/superdeck/lib/components/atoms/slide_view.dart index 1561225c..c3af8e0c 100644 --- a/packages/superdeck/lib/components/atoms/slide_view.dart +++ b/packages/superdeck/lib/components/atoms/slide_view.dart @@ -1,9 +1,11 @@ import 'package:flutter/material.dart'; +import 'package:mix/mix.dart'; +import '../../models/slide_model.dart'; import '../../providers/slide_provider.dart'; import '../../providers/snapshot_provider.dart'; import '../../providers/style_provider.dart'; -import '../../superdeck.dart'; +import '../../styles/style_spec.dart'; import 'cache_image_widget.dart'; import 'transition_widget.dart'; diff --git a/packages/superdeck/lib/components/molecules/slide_content.dart b/packages/superdeck/lib/components/molecules/slide_content.dart index da50a9ef..9012c86f 100644 --- a/packages/superdeck/lib/components/molecules/slide_content.dart +++ b/packages/superdeck/lib/components/molecules/slide_content.dart @@ -19,7 +19,7 @@ class SlideContent extends StatelessWidget { @override Widget build(context) { - final alignment = options?.alignment ?? ContentAlignment.center; + final alignment = options?.align ?? ContentAlignment.center; final spec = SlideSpec.of(context); final isCapturing = SnapshotProvider.isCapturingOf(context); diff --git a/packages/superdeck/lib/components/organisms/chat_panel.dart b/packages/superdeck/lib/components/organisms/chat_panel.dart index 258fef96..28310c79 100644 --- a/packages/superdeck/lib/components/organisms/chat_panel.dart +++ b/packages/superdeck/lib/components/organisms/chat_panel.dart @@ -11,7 +11,7 @@ import '../../helpers/extensions.dart'; import '../../services/reference_service.dart'; import '../atoms/markdown_viewer.dart'; -const _apiKey = ''; +const _apiKey = 'AIzaSyD37mFwHkiMeArz_hp1hnRwysOsqqgnhPQ'; final _geminiFlash = 'gemini-1.5-flash-latest'; final _geminiPro = 'gemini-1.5-pro'; diff --git a/packages/superdeck/lib/components/remix/button.dart b/packages/superdeck/lib/components/remix/button.dart index 89c271ce..231edfeb 100644 --- a/packages/superdeck/lib/components/remix/button.dart +++ b/packages/superdeck/lib/components/remix/button.dart @@ -19,7 +19,6 @@ class SDButton extends StatelessWidget { Widget build(BuildContext context) { return RxButton( onPressed: onPressed, - type: ButtonVariant.surface, iconLeft: icon, label: label, ); @@ -43,7 +42,6 @@ class SDButtonSolid extends StatelessWidget { Widget build(BuildContext context) { return RxButton( onPressed: onPressed, - type: ButtonVariant.solid, iconLeft: icon, label: label, ); @@ -67,7 +65,6 @@ class SDOutlinedButton extends StatelessWidget { Widget build(BuildContext context) { return RxButton( onPressed: onPressed, - type: ButtonVariant.outline, iconLeft: icon, label: label, ); @@ -91,9 +88,7 @@ class SDIconButton extends StatelessWidget { Widget build(BuildContext context) { return RxButton( onPressed: onPressed, - type: selected ? ButtonVariant.surface : ButtonVariant.ghost, iconLeft: icon, - size: ButtonSize.large, label: '', ); } diff --git a/packages/superdeck/lib/components/superdeck_app.dart b/packages/superdeck/lib/components/superdeck_app.dart index 53c8ec23..bd0cdf2e 100644 --- a/packages/superdeck/lib/components/superdeck_app.dart +++ b/packages/superdeck/lib/components/superdeck_app.dart @@ -3,6 +3,7 @@ import 'dart:async'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:mix/mix.dart'; import 'package:remix/remix.dart'; import 'package:window_manager/window_manager.dart'; diff --git a/packages/superdeck/lib/helpers/extensions.dart b/packages/superdeck/lib/helpers/extensions.dart index 1efeeb9a..61617665 100644 --- a/packages/superdeck/lib/helpers/extensions.dart +++ b/packages/superdeck/lib/helpers/extensions.dart @@ -43,3 +43,8 @@ extension StringX on String { .replaceAll(RegExp(r'^_|_$'), ''); } } + +extension ListX on List { + T? get tryFirst => isNotEmpty ? first : null; + T? get tryLast => isNotEmpty ? last : null; +} diff --git a/packages/superdeck/lib/helpers/section_parsing.dart b/packages/superdeck/lib/helpers/section_parsing.dart new file mode 100644 index 00000000..c9374a1f --- /dev/null +++ b/packages/superdeck/lib/helpers/section_parsing.dart @@ -0,0 +1,237 @@ +import 'dart:convert'; + +import 'package:collection/collection.dart'; +import 'package:flutter/widgets.dart'; +import 'package:yaml/yaml.dart'; + +import '../models/options_model.dart'; + +enum Section { + header, + body, + footer; + + String get _prefix => '{.'; + String get _suffix => '}'; + + String get tag => '${_prefix}${name}${_suffix}'; + + int get startIndex => '$_prefix$name'.length; + + static Section? getLocation(String line) { + return Section.values + .firstWhereOrNull((e) => line.startsWith(e._prefix + e.name)); + } + + static bool isLocationTag(String line) { + return getLocation(line) != null; + } + + String getContents(String line) { + return line.substring(startIndex, line.indexOf(_suffix)); + } +} + +abstract class Part { + final T options; + const Part({required this.options}); +} + +class ImagePart extends Part { + static const tag = '.image'; + const ImagePart({ + required super.options, + }); +} + +class ContentPart extends Part { + static const tag = '.content'; + String content = ''; + + ContentPart({ + required super.options, + }); + + // I woul dlike to parse the following as if it were a yaml + // {.content align:center flex:2} + // {.content align:bottom_center } + // {.content flex:2} + // {.content} + + static ContentPart? parse(String line) { + // Check if it starts with {+ ContentPart.tag + // if not return null + // if so remove {+ ContentPart.tag + } + final cleanedLine = line + .trim() + .replaceAll(RegExp(r'[{}]'), '') + .replaceAll(ContentPart.tag, ''); + + return ContentPart( + options: ContentOptionsMapper.fromMap(_converYamlToMap(cleanedLine)), + ); + } +} + +class SectionPart { + final Section location; + final int flex; + final List contentParts; + + SectionPart({ + required this.location, + required this.contentParts, + required this.flex, + }); +} + +typedef LayoutPartInfo = ({Section location, ContentOptions options}); + +List parseSections(String markdown) { + final lines = markdown.split('\n'); + + final sectionFlex = ({ + Section.header: 1, + Section.body: 1, + Section.footer: 1, + }); + + final sectionParts = ({ + Section.header: [], + Section.body: [], + Section.footer: [], + }); + + Section? currentLocation = null; + + int lineIndex = 0; + for (final line in lines) { + lineIndex++; + final trimmedLine = line.trim(); + // Skip empty lines + if (trimmedLine.isEmpty) { + continue; + } else if (Section.isLocationTag(trimmedLine)) { + final location = Section.getLocation(trimmedLine)!; + + if (currentLocation != null) { + if (location.index <= currentLocation.index) { + throw Exception( + 'Invalid location tag on line ${lineIndex}. ${location.tag} cannot be before ${currentLocation.tag}', + ); + } + } + + currentLocation = location; + sectionFlex[location] = _getFlexAttributeFromLine(line); + } else { + if (currentLocation == null) { + currentLocation = Section.body; + } + + final contentPart = ContentPart.parse(line); + + if (contentPart != null) { + // If previous content is empty there is no need to create a column + sectionParts[currentLocation]!.add(contentPart); + } else { + if (sectionParts[currentLocation]!.isEmpty) { + sectionParts[currentLocation]!.add( + ContentPart( + options: ContentOptions(), + ), + ); + } + + final lastPart = sectionParts[currentLocation]!.last; + + sectionParts[currentLocation]!.last = lastPart + ..content = (lastPart.content += line + '\n'); + } + } + } + + Section.values.forEach((section) { + final contentParts = sectionParts[section]!; + if (contentParts.isEmpty) { + sectionParts.remove(section); + } else { + sectionParts[section] = + contentParts.where((part) => !part.content.isEmpty).toList(); + } + }); + + // Return the parsed sections + // remove all sections that have empty parts + return sectionParts.entries.map((entry) { + final location = entry.key; + final parts = entry.value; + final options = sectionFlex[location]!; + + return SectionPart( + location: location, + contentParts: parts, + flex: options, + ); + }).toList(); +} + +int _getFlexAttributeFromLine(String line) { + final attributes = extractAttributesFromLine(line); + final flex = attributes['flex']; + + if (flex == null) { + return 1; + } + + final parsed = int.tryParse(flex); + if (parsed == null) { + throw Exception('Flex value must be an integer. Found: $flex'); + } + + return parsed; +} + +ContentAlignment? _getAlignmentAttributeFromLine(String value) { + final attributes = extractAttributesFromLine(value); + final alignment = attributes['align']; + + if (alignment == null) { + return null; + } + + try { + return ContentAlignmentMapper.fromValue(alignment); + } catch (e) { + throw Exception('Invalid alignment value: $alignment'); + } +} + +@visibleForTesting +Map extractAttributesFromLine(String line) { + final cleanedLine = line.trim().replaceAll(RegExp(r'[{}]'), ''); + + final regex = RegExp(r'(\w+):([^\s]+)'); + final matches = regex.allMatches(cleanedLine); + + final attributes = {}; + + for (final match in matches) { + final key = match.group(1); + final value = match.group(2); + + if (key != null && value != null) { + attributes[key] = value; + } + } + + return attributes; +} + +Map _converYamlToMap(String yamlString) { + final yamlMap = loadYaml(yamlString) as YamlMap? ?? YamlMap(); + + final yaml = jsonEncode(yamlMap); + + return jsonDecode(yaml); +} diff --git a/packages/superdeck/lib/helpers/section_tag.dart b/packages/superdeck/lib/helpers/section_tag.dart deleted file mode 100644 index 1ad778c5..00000000 --- a/packages/superdeck/lib/helpers/section_tag.dart +++ /dev/null @@ -1,65 +0,0 @@ -class SectionTag { - const SectionTag._(); - static const header = 'header'; - static const left = 'left'; - static const right = 'right'; - static const first = 'first'; -} - -const _syntaxTag = '::'; - -bool _isSyntaxTag(String line) { - final trimmed = line.trim(); - return trimmed.startsWith(_syntaxTag) && trimmed.endsWith(_syntaxTag); -} - -String _getTagName(String line) { - return line.trim().replaceAll(_syntaxTag, ''); -} - -Map parseContentSections(String input) { - final result = {}; - final lines = input.split('\n'); - var currentTag = SectionTag.first; - var currentContent = ''; - - // If ::tag:: is inside a ``` block, it should be ignored - var isCodeBlock = false; - - // For loop with index - for (var idx = 0; idx < lines.length; idx++) { - final line = lines[idx]; - - // Check if line is codeblock - if (line.startsWith('```')) { - isCodeBlock = !isCodeBlock; - } - - final isTag = _isSyntaxTag(line); - - if (isTag && !isCodeBlock) { - final tagName = _getTagName(line); - if (result.containsKey(tagName) || currentTag == tagName) { - throw Exception('Tag $tagName already exists'); - } - - if (currentContent.isNotEmpty) { - result[currentTag] = currentContent; - } - - currentContent = ''; - currentTag = tagName; - } else { - // check if its last line - if (idx == lines.length - 1) { - currentContent += line; - } else { - currentContent += '$line\n'; - } - } - } - if (currentContent.isNotEmpty) { - result[currentTag] = currentContent; - } - return result; -} diff --git a/packages/superdeck/lib/models/options_model.dart b/packages/superdeck/lib/models/options_model.dart index a1a76fc9..26f53dae 100644 --- a/packages/superdeck/lib/models/options_model.dart +++ b/packages/superdeck/lib/models/options_model.dart @@ -11,12 +11,12 @@ part 'options_model.mapper.dart'; @MappableClass() class ContentOptions with ContentOptionsMappable { - final ContentAlignment alignment; + final ContentAlignment? align; final int? flex; const ContentOptions({ this.flex, - this.alignment = ContentAlignment.centerLeft, + this.align, }); ContentOptions merge(ContentOptions? other) { @@ -26,7 +26,7 @@ class ContentOptions with ContentOptionsMappable { static final schema = SchemaShape( { - "alignment": ContentAlignment.schema.optional(), + "align": ContentAlignment.schema.optional(), "flex": Schema.integer.optional(), }, ); diff --git a/packages/superdeck/lib/models/options_model.mapper.dart b/packages/superdeck/lib/models/options_model.mapper.dart index 391f57ef..90a5d40b 100644 --- a/packages/superdeck/lib/models/options_model.mapper.dart +++ b/packages/superdeck/lib/models/options_model.mapper.dart @@ -538,22 +538,20 @@ class ContentOptionsMapper extends ClassMapperBase { static int? _$flex(ContentOptions v) => v.flex; static const Field _f$flex = Field('flex', _$flex, opt: true); - static ContentAlignment _$alignment(ContentOptions v) => v.alignment; - static const Field _f$alignment = Field( - 'alignment', _$alignment, - opt: true, def: ContentAlignment.centerLeft); + static ContentAlignment? _$align(ContentOptions v) => v.align; + static const Field _f$align = + Field('align', _$align, opt: true); @override final MappableFields fields = const { #flex: _f$flex, - #alignment: _f$alignment, + #align: _f$align, }; @override final bool ignoreNull = true; static ContentOptions _instantiate(DecodingData data) { - return ContentOptions( - flex: data.dec(_f$flex), alignment: data.dec(_f$alignment)); + return ContentOptions(flex: data.dec(_f$flex), align: data.dec(_f$align)); } @override @@ -609,7 +607,7 @@ extension ContentOptionsValueCopy<$R, $Out> abstract class ContentOptionsCopyWith<$R, $In extends ContentOptions, $Out> implements ClassCopyWith<$R, $In, $Out> { - $R call({int? flex, ContentAlignment? alignment}); + $R call({int? flex, ContentAlignment? align}); ContentOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t); } @@ -623,15 +621,13 @@ class _ContentOptionsCopyWithImpl<$R, $Out> late final ClassMapperBase $mapper = ContentOptionsMapper.ensureInitialized(); @override - $R call({Object? flex = $none, ContentAlignment? alignment}) => - $apply(FieldCopyWithData({ - if (flex != $none) #flex: flex, - if (alignment != null) #alignment: alignment - })); + $R call({Object? flex = $none, Object? align = $none}) => + $apply(FieldCopyWithData( + {if (flex != $none) #flex: flex, if (align != $none) #align: align})); @override ContentOptions $make(CopyWithData data) => ContentOptions( flex: data.get(#flex, or: $value.flex), - alignment: data.get(#alignment, or: $value.alignment)); + align: data.get(#align, or: $value.align)); @override ContentOptionsCopyWith<$R2, ContentOptions, $Out2> $chain<$R2, $Out2>( diff --git a/packages/superdeck/lib/models/slide_model.dart b/packages/superdeck/lib/models/slide_model.dart index 178068a9..f498ef92 100644 --- a/packages/superdeck/lib/models/slide_model.dart +++ b/packages/superdeck/lib/models/slide_model.dart @@ -1,6 +1,5 @@ import 'package:dart_mappable/dart_mappable.dart'; -import '../helpers/section_tag.dart'; import '../schema/schema_model.dart'; import '../schema/schema_validation.dart'; import '../superdeck.dart'; @@ -44,12 +43,7 @@ abstract class Slide extends BaseConfig with SlideMappable { case LayoutType.widget: WidgetSlide.schema.validateOrThrow(map); return WidgetSlide.fromMap(map); - case LayoutType.twoColumn: - TwoColumnSlide.schema.validateOrThrow(map); - return TwoColumnSlide.fromMap(map); - case LayoutType.twoColumnHeader: - TwoColumnHeaderSlide.schema.validateOrThrow(map); - return TwoColumnHeaderSlide.fromMap(map); + default: return InvalidSlide.invalidTemplate(layout); } @@ -165,107 +159,6 @@ class WidgetSlide extends SplitSlide with WidgetSlideMappable { @MappableRecord() typedef SectionData = ({String content, ContentOptions? options}); -@MappableClass() -abstract class SectionsSlide extends Slide with SectionsSlideMappable { - @MappableField() - final Map sections; - - SectionsSlide({ - super.title, - super.background, - required super.contentOptions, - super.style, - super.transition, - required super.content, - this.sections = const {}, - required super.layout, - required super.key, - }); - - Map? _sectionCache; - - Map get _contentSections { - if (_sectionCache != null) return _sectionCache!; - - return _sectionCache = parseContentSections(content); - } - - SectionData getSection(String section, [String? sectionFallback]) { - var content = _contentSections[section]; - - content ??= _contentSections[sectionFallback]; - - final payload = ( - content: content ?? '', - options: sections[section] ?? const ContentOptions(), - ); - - return payload; - } -} - -@MappableClass(discriminatorValue: LayoutType.twoColumn) -class TwoColumnSlide extends SectionsSlide with TwoColumnSlideMappable { - TwoColumnSlide({ - super.title, - super.background, - required super.contentOptions, - super.style, - super.transition, - required super.content, - super.sections, - required super.key, - }) : super(layout: LayoutType.twoColumn); - - SectionData get left => getSection(SectionTag.left, SectionTag.first); - - SectionData get right => getSection(SectionTag.right); - - static const fromMap = TwoColumnSlideMapper.fromMap; - - static const fromJson = TwoColumnSlideMapper.fromJson; - - static final schema = Slide.schema.merge({ - 'sections': SchemaMap({ - 'left': ContentOptions.schema.optional(), - 'right': ContentOptions.schema.optional(), - }), - }); -} - -@MappableClass(discriminatorValue: LayoutType.twoColumnHeader) -class TwoColumnHeaderSlide extends SectionsSlide - with TwoColumnHeaderSlideMappable { - TwoColumnHeaderSlide({ - super.title, - super.background, - required super.contentOptions, - super.style, - super.transition, - required super.content, - super.sections, - required super.key, - }) : super(layout: LayoutType.twoColumnHeader); - - SectionData get header => getSection(SectionTag.header, SectionTag.first); - - SectionData get left => getSection(SectionTag.left); - - SectionData get right => getSection(SectionTag.right); - - static const fromMap = TwoColumnHeaderSlideMapper.fromMap; - - static const fromJson = TwoColumnHeaderSlideMapper.fromJson; - - static final schema = TwoColumnSlide.schema.merge( - { - 'sections': SchemaMap({ - 'header': ContentOptions.schema.optional(), - }), - }, - ); -} - @MappableClass(discriminatorValue: LayoutType.invalid) class InvalidSlide extends Slide with InvalidSlideMappable { InvalidSlide({ diff --git a/packages/superdeck/lib/models/slide_model.mapper.dart b/packages/superdeck/lib/models/slide_model.mapper.dart index ee3c1c6e..b45dd7b7 100644 --- a/packages/superdeck/lib/models/slide_model.mapper.dart +++ b/packages/superdeck/lib/models/slide_model.mapper.dart @@ -16,7 +16,6 @@ class SlideMapper extends SubClassMapperBase { BaseConfigMapper.ensureInitialized().addSubMapper(_instance!); SimpleSlideMapper.ensureInitialized(); SplitSlideMapper.ensureInitialized(); - SectionsSlideMapper.ensureInitialized(); InvalidSlideMapper.ensureInitialized(); ContentOptionsMapper.ensureInitialized(); TransitionOptionsMapper.ensureInitialized(); @@ -852,556 +851,6 @@ class _WidgetSlideCopyWithImpl<$R, $Out> _WidgetSlideCopyWithImpl($value, $cast, t); } -class SectionsSlideMapper extends SubClassMapperBase { - SectionsSlideMapper._(); - - static SectionsSlideMapper? _instance; - static SectionsSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SectionsSlideMapper._()); - SlideMapper.ensureInitialized().addSubMapper(_instance!); - TwoColumnSlideMapper.ensureInitialized(); - TwoColumnHeaderSlideMapper.ensureInitialized(); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SectionsSlide'; - - static String? _$title(SectionsSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$background(SectionsSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static ContentOptions? _$contentOptions(SectionsSlide v) => v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static String? _$style(SectionsSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static TransitionOptions? _$transition(SectionsSlide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$content(SectionsSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static Map _$sections(SectionsSlide v) => v.sections; - static const Field> _f$sections = - Field('sections', _$sections, opt: true, def: const {}); - static String _$layout(SectionsSlide v) => v.layout; - static const Field _f$layout = - Field('layout', _$layout); - static String _$key(SectionsSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - - @override - final MappableFields fields = const { - #title: _f$title, - #background: _f$background, - #contentOptions: _f$contentOptions, - #style: _f$style, - #transition: _f$transition, - #content: _f$content, - #sections: _f$sections, - #layout: _f$layout, - #key: _f$key, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = 'SectionsSlide'; - @override - late final ClassMapperBase superMapper = SlideMapper.ensureInitialized(); - - static SectionsSlide _instantiate(DecodingData data) { - throw MapperException.missingSubclass( - 'SectionsSlide', 'layout', '${data.value['layout']}'); - } - - @override - final Function instantiate = _instantiate; - - static SectionsSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SectionsSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SectionsSlideMappable { - String toJson(); - Map toMap(); - SectionsSlideCopyWith - get copyWith; -} - -abstract class SectionsSlideCopyWith<$R, $In extends SectionsSlide, $Out> - implements SlideCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - MapCopyWith<$R, String, ContentOptions?, - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>?> get sections; - @override - $R call( - {String? title, - String? background, - ContentOptions? contentOptions, - String? style, - TransitionOptions? transition, - String? content, - Map? sections, - String? key}); - SectionsSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class TwoColumnSlideMapper extends SubClassMapperBase { - TwoColumnSlideMapper._(); - - static TwoColumnSlideMapper? _instance; - static TwoColumnSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = TwoColumnSlideMapper._()); - SectionsSlideMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'TwoColumnSlide'; - - static String? _$title(TwoColumnSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$background(TwoColumnSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static ContentOptions? _$contentOptions(TwoColumnSlide v) => v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static String? _$style(TwoColumnSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static TransitionOptions? _$transition(TwoColumnSlide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$content(TwoColumnSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static Map _$sections(TwoColumnSlide v) => - v.sections; - static const Field> _f$sections = - Field('sections', _$sections, opt: true, def: const {}); - static String _$key(TwoColumnSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - static String _$layout(TwoColumnSlide v) => v.layout; - static const Field _f$layout = - Field('layout', _$layout, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #title: _f$title, - #background: _f$background, - #contentOptions: _f$contentOptions, - #style: _f$style, - #transition: _f$transition, - #content: _f$content, - #sections: _f$sections, - #key: _f$key, - #layout: _f$layout, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = LayoutType.twoColumn; - @override - late final ClassMapperBase superMapper = - SectionsSlideMapper.ensureInitialized(); - - static TwoColumnSlide _instantiate(DecodingData data) { - return TwoColumnSlide( - title: data.dec(_f$title), - background: data.dec(_f$background), - contentOptions: data.dec(_f$contentOptions), - style: data.dec(_f$style), - transition: data.dec(_f$transition), - content: data.dec(_f$content), - sections: data.dec(_f$sections), - key: data.dec(_f$key)); - } - - @override - final Function instantiate = _instantiate; - - static TwoColumnSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static TwoColumnSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin TwoColumnSlideMappable { - String toJson() { - return TwoColumnSlideMapper.ensureInitialized() - .encodeJson(this as TwoColumnSlide); - } - - Map toMap() { - return TwoColumnSlideMapper.ensureInitialized() - .encodeMap(this as TwoColumnSlide); - } - - TwoColumnSlideCopyWith - get copyWith => _TwoColumnSlideCopyWithImpl( - this as TwoColumnSlide, $identity, $identity); - @override - String toString() { - return TwoColumnSlideMapper.ensureInitialized() - .stringifyValue(this as TwoColumnSlide); - } - - @override - bool operator ==(Object other) { - return TwoColumnSlideMapper.ensureInitialized() - .equalsValue(this as TwoColumnSlide, other); - } - - @override - int get hashCode { - return TwoColumnSlideMapper.ensureInitialized() - .hashValue(this as TwoColumnSlide); - } -} - -extension TwoColumnSlideValueCopy<$R, $Out> - on ObjectCopyWith<$R, TwoColumnSlide, $Out> { - TwoColumnSlideCopyWith<$R, TwoColumnSlide, $Out> get $asTwoColumnSlide => - $base.as((v, t, t2) => _TwoColumnSlideCopyWithImpl(v, t, t2)); -} - -abstract class TwoColumnSlideCopyWith<$R, $In extends TwoColumnSlide, $Out> - implements SectionsSlideCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - MapCopyWith<$R, String, ContentOptions?, - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>?> get sections; - @override - $R call( - {String? title, - String? background, - ContentOptions? contentOptions, - String? style, - TransitionOptions? transition, - String? content, - Map? sections, - String? key}); - TwoColumnSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _TwoColumnSlideCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, TwoColumnSlide, $Out> - implements TwoColumnSlideCopyWith<$R, TwoColumnSlide, $Out> { - _TwoColumnSlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - TwoColumnSlideMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions => $value.contentOptions?.copyWith - .$chain((v) => call(contentOptions: v)); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - MapCopyWith<$R, String, ContentOptions?, - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>?> - get sections => MapCopyWith($value.sections, - (v, t) => v?.copyWith.$chain(t), (v) => call(sections: v)); - @override - $R call( - {Object? title = $none, - Object? background = $none, - Object? contentOptions = $none, - Object? style = $none, - Object? transition = $none, - String? content, - Map? sections, - String? key}) => - $apply(FieldCopyWithData({ - if (title != $none) #title: title, - if (background != $none) #background: background, - if (contentOptions != $none) #contentOptions: contentOptions, - if (style != $none) #style: style, - if (transition != $none) #transition: transition, - if (content != null) #content: content, - if (sections != null) #sections: sections, - if (key != null) #key: key - })); - @override - TwoColumnSlide $make(CopyWithData data) => TwoColumnSlide( - title: data.get(#title, or: $value.title), - background: data.get(#background, or: $value.background), - contentOptions: data.get(#contentOptions, or: $value.contentOptions), - style: data.get(#style, or: $value.style), - transition: data.get(#transition, or: $value.transition), - content: data.get(#content, or: $value.content), - sections: data.get(#sections, or: $value.sections), - key: data.get(#key, or: $value.key)); - - @override - TwoColumnSlideCopyWith<$R2, TwoColumnSlide, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _TwoColumnSlideCopyWithImpl($value, $cast, t); -} - -class TwoColumnHeaderSlideMapper - extends SubClassMapperBase { - TwoColumnHeaderSlideMapper._(); - - static TwoColumnHeaderSlideMapper? _instance; - static TwoColumnHeaderSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = TwoColumnHeaderSlideMapper._()); - SectionsSlideMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'TwoColumnHeaderSlide'; - - static String? _$title(TwoColumnHeaderSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$background(TwoColumnHeaderSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static ContentOptions? _$contentOptions(TwoColumnHeaderSlide v) => - v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static String? _$style(TwoColumnHeaderSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static TransitionOptions? _$transition(TwoColumnHeaderSlide v) => - v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$content(TwoColumnHeaderSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static Map _$sections(TwoColumnHeaderSlide v) => - v.sections; - static const Field> - _f$sections = Field('sections', _$sections, opt: true, def: const {}); - static String _$key(TwoColumnHeaderSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - static String _$layout(TwoColumnHeaderSlide v) => v.layout; - static const Field _f$layout = - Field('layout', _$layout, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #title: _f$title, - #background: _f$background, - #contentOptions: _f$contentOptions, - #style: _f$style, - #transition: _f$transition, - #content: _f$content, - #sections: _f$sections, - #key: _f$key, - #layout: _f$layout, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = LayoutType.twoColumnHeader; - @override - late final ClassMapperBase superMapper = - SectionsSlideMapper.ensureInitialized(); - - static TwoColumnHeaderSlide _instantiate(DecodingData data) { - return TwoColumnHeaderSlide( - title: data.dec(_f$title), - background: data.dec(_f$background), - contentOptions: data.dec(_f$contentOptions), - style: data.dec(_f$style), - transition: data.dec(_f$transition), - content: data.dec(_f$content), - sections: data.dec(_f$sections), - key: data.dec(_f$key)); - } - - @override - final Function instantiate = _instantiate; - - static TwoColumnHeaderSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static TwoColumnHeaderSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin TwoColumnHeaderSlideMappable { - String toJson() { - return TwoColumnHeaderSlideMapper.ensureInitialized() - .encodeJson(this as TwoColumnHeaderSlide); - } - - Map toMap() { - return TwoColumnHeaderSlideMapper.ensureInitialized() - .encodeMap(this as TwoColumnHeaderSlide); - } - - TwoColumnHeaderSlideCopyWith - get copyWith => _TwoColumnHeaderSlideCopyWithImpl( - this as TwoColumnHeaderSlide, $identity, $identity); - @override - String toString() { - return TwoColumnHeaderSlideMapper.ensureInitialized() - .stringifyValue(this as TwoColumnHeaderSlide); - } - - @override - bool operator ==(Object other) { - return TwoColumnHeaderSlideMapper.ensureInitialized() - .equalsValue(this as TwoColumnHeaderSlide, other); - } - - @override - int get hashCode { - return TwoColumnHeaderSlideMapper.ensureInitialized() - .hashValue(this as TwoColumnHeaderSlide); - } -} - -extension TwoColumnHeaderSlideValueCopy<$R, $Out> - on ObjectCopyWith<$R, TwoColumnHeaderSlide, $Out> { - TwoColumnHeaderSlideCopyWith<$R, TwoColumnHeaderSlide, $Out> - get $asTwoColumnHeaderSlide => - $base.as((v, t, t2) => _TwoColumnHeaderSlideCopyWithImpl(v, t, t2)); -} - -abstract class TwoColumnHeaderSlideCopyWith< - $R, - $In extends TwoColumnHeaderSlide, - $Out> implements SectionsSlideCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - MapCopyWith<$R, String, ContentOptions?, - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>?> get sections; - @override - $R call( - {String? title, - String? background, - ContentOptions? contentOptions, - String? style, - TransitionOptions? transition, - String? content, - Map? sections, - String? key}); - TwoColumnHeaderSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _TwoColumnHeaderSlideCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, TwoColumnHeaderSlide, $Out> - implements TwoColumnHeaderSlideCopyWith<$R, TwoColumnHeaderSlide, $Out> { - _TwoColumnHeaderSlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - TwoColumnHeaderSlideMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions => $value.contentOptions?.copyWith - .$chain((v) => call(contentOptions: v)); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - MapCopyWith<$R, String, ContentOptions?, - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>?> - get sections => MapCopyWith($value.sections, - (v, t) => v?.copyWith.$chain(t), (v) => call(sections: v)); - @override - $R call( - {Object? title = $none, - Object? background = $none, - Object? contentOptions = $none, - Object? style = $none, - Object? transition = $none, - String? content, - Map? sections, - String? key}) => - $apply(FieldCopyWithData({ - if (title != $none) #title: title, - if (background != $none) #background: background, - if (contentOptions != $none) #contentOptions: contentOptions, - if (style != $none) #style: style, - if (transition != $none) #transition: transition, - if (content != null) #content: content, - if (sections != null) #sections: sections, - if (key != null) #key: key - })); - @override - TwoColumnHeaderSlide $make(CopyWithData data) => TwoColumnHeaderSlide( - title: data.get(#title, or: $value.title), - background: data.get(#background, or: $value.background), - contentOptions: data.get(#contentOptions, or: $value.contentOptions), - style: data.get(#style, or: $value.style), - transition: data.get(#transition, or: $value.transition), - content: data.get(#content, or: $value.content), - sections: data.get(#sections, or: $value.sections), - key: data.get(#key, or: $value.key)); - - @override - TwoColumnHeaderSlideCopyWith<$R2, TwoColumnHeaderSlide, $Out2> - $chain<$R2, $Out2>(Then<$Out2, $R2> t) => - _TwoColumnHeaderSlideCopyWithImpl($value, $cast, t); -} - class InvalidSlideMapper extends SubClassMapperBase { InvalidSlideMapper._(); diff --git a/packages/superdeck/lib/providers/slide_provider.dart b/packages/superdeck/lib/providers/slide_provider.dart index 97fd8965..b7e7baaf 100644 --- a/packages/superdeck/lib/providers/slide_provider.dart +++ b/packages/superdeck/lib/providers/slide_provider.dart @@ -1,6 +1,7 @@ // Create a SlideProvider that extends an Inherited widget import 'package:flutter/material.dart'; +import '../helpers/constants.dart'; import '../models/slide_model.dart'; import '../templates/templates.dart'; @@ -45,7 +46,10 @@ class SlideBuilder extends StatelessWidget { Widget build(BuildContext context) { return SlideProvider( slide: config, - child: TemplateBuilder.buildTemplate(config), + child: ConstrainedBox( + constraints: BoxConstraints.tight(kResolution), + child: TemplateBuilder.buildTemplate(config), + ), ); } } diff --git a/packages/superdeck/lib/providers/style_provider.dart b/packages/superdeck/lib/providers/style_provider.dart index 34fcceb5..f6a3380a 100644 --- a/packages/superdeck/lib/providers/style_provider.dart +++ b/packages/superdeck/lib/providers/style_provider.dart @@ -1,7 +1,7 @@ import 'package:flutter/widgets.dart'; +import 'package:mix/mix.dart'; import '../styles/style_util.dart'; -import '../superdeck.dart'; class StyleProvider extends InheritedWidget { StyleProvider({ diff --git a/packages/superdeck/lib/styles/style_util.dart b/packages/superdeck/lib/styles/style_util.dart index 6a258b67..55fdd1e9 100644 --- a/packages/superdeck/lib/styles/style_util.dart +++ b/packages/superdeck/lib/styles/style_util.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; +import 'package:mix/mix.dart'; -import '../superdeck.dart'; +import 'style_spec.dart'; class SlideVariant extends Variant { const SlideVariant(super.name); diff --git a/packages/superdeck/lib/superdeck.dart b/packages/superdeck/lib/superdeck.dart index dc013a99..fd6734da 100644 --- a/packages/superdeck/lib/superdeck.dart +++ b/packages/superdeck/lib/superdeck.dart @@ -1,6 +1,5 @@ library superdeck; -export 'package:mix/mix.dart'; export 'package:superdeck/components/superdeck_app.dart'; export 'package:superdeck/models/asset_model.dart'; export 'package:superdeck/models/options_model.dart'; diff --git a/packages/superdeck/lib/templates/image_template.dart b/packages/superdeck/lib/templates/image_template.dart index 39441020..a398ed3d 100644 --- a/packages/superdeck/lib/templates/image_template.dart +++ b/packages/superdeck/lib/templates/image_template.dart @@ -15,7 +15,7 @@ class ImageTemplate extends SplitTemplateBuilder { // THis slide breaks in half and I want to calculate the size based on if its in top or bottom // or left or right. Also there is a property called flex which is how much of the slide it takes // so I can use that to calculate the size of the canvas - final firstHalf = config.contentOptions?.flex ?? defaultFlex; + final firstHalf = config.contentOptions?.flex ?? 1; final imageHalf = config.options.flex; // available size const width = 1280.0; diff --git a/packages/superdeck/lib/templates/simple_template.dart b/packages/superdeck/lib/templates/simple_template.dart index 1c144da8..7809a072 100644 --- a/packages/superdeck/lib/templates/simple_template.dart +++ b/packages/superdeck/lib/templates/simple_template.dart @@ -7,5 +7,7 @@ class SimpleTemplate extends TemplateBuilder { }); @override - Widget build(BuildContext context) => buildContent(); + Widget build(BuildContext context) { + return render(); + } } diff --git a/packages/superdeck/lib/templates/template_builder.dart b/packages/superdeck/lib/templates/template_builder.dart index e4f60148..8618a9d3 100644 --- a/packages/superdeck/lib/templates/template_builder.dart +++ b/packages/superdeck/lib/templates/template_builder.dart @@ -4,8 +4,6 @@ sealed class TemplateBuilder extends StatelessWidget { @visibleForTesting final T config; - int get defaultFlex => 1; - const TemplateBuilder(this.config, {super.key}); static TemplateBuilder buildTemplate(T config) { @@ -13,14 +11,37 @@ sealed class TemplateBuilder extends StatelessWidget { (SimpleSlide c) => SimpleTemplate(c), (WidgetSlide c) => WidgetTemplate(c), (ImageSlide c) => ImageTemplate(c), - (TwoColumnSlide c) => TwoColumnTemplate(c), - (TwoColumnHeaderSlide c) => TwoColumnHeaderTemplate(c), (InvalidSlide c) => InvalidTemplate(c), _ => throw UnimplementedError( 'Slide config not implemented ${config.runtimeType}'), } as TemplateBuilder; } + Widget render() { + final sections = parseSections(config.content); + + return Column( + children: sections.map((section) { + final sectionFlex = section.flex; + + return Expanded( + flex: sectionFlex, + child: Row( + children: section.contentParts.map((part) { + return Expanded( + flex: part.options.flex ?? 1, + child: SlideContent( + content: part.content, + options: part.options, + ), + ); + }).toList(), + ), + ); + }).toList(), + ); + } + Widget buildContent() { return _buildContent( config.content, @@ -35,13 +56,6 @@ sealed class TemplateBuilder extends StatelessWidget { options: options, ); } - - Widget buildContentSection(SectionData section) { - return Expanded( - flex: section.options?.flex ?? defaultFlex, - child: _buildContent(section.content, section.options), - ); - } } abstract class SplitTemplateBuilder @@ -56,10 +70,7 @@ abstract class SplitTemplateBuilder final flex = config.options.flex; List children = [ - buildContentSection(( - content: config.content, - options: config.contentOptions ?? const ContentOptions(), - )), + Expanded(child: render()), Expanded(flex: flex, child: side), ]; diff --git a/packages/superdeck/lib/templates/templates.dart b/packages/superdeck/lib/templates/templates.dart index 12be6bf8..8dcd58c5 100644 --- a/packages/superdeck/lib/templates/templates.dart +++ b/packages/superdeck/lib/templates/templates.dart @@ -1,15 +1,18 @@ import 'package:flutter/material.dart'; +import 'package:mix/mix.dart'; import '../components/atoms/cache_image_widget.dart'; import '../components/molecules/code_preview.dart'; import '../components/molecules/slide_content.dart'; import '../helpers/constants.dart'; +import '../helpers/section_parsing.dart'; +import '../models/options_model.dart'; +import '../models/slide_model.dart'; import '../providers/examples_provider.dart'; -import '../superdeck.dart'; +import '../styles/style_spec.dart'; part 'image_template.dart'; part 'invalid_template.dart'; part 'simple_template.dart'; part 'template_builder.dart'; -part 'two_column_template.dart'; part 'widget_example_template.dart'; diff --git a/packages/superdeck/lib/templates/two_column_template.dart b/packages/superdeck/lib/templates/two_column_template.dart deleted file mode 100644 index 7759c207..00000000 --- a/packages/superdeck/lib/templates/two_column_template.dart +++ /dev/null @@ -1,76 +0,0 @@ -part of 'templates.dart'; - -class TwoColumnTemplate extends TemplateBuilder { - const TwoColumnTemplate( - super.config, { - super.key, - }); - - @override - Widget build(BuildContext context) { - final options = config.contentOptions ?? const ContentOptions(); - final alignment = options.alignment; - - return Container( - alignment: alignment.toAlignment(), - child: Row( - children: [ - buildContentSection(config.left), - buildContentSection(config.right), - ], - ), - ); - } -} - -class TwoColumnHeaderTemplate extends TemplateBuilder { - const TwoColumnHeaderTemplate( - super.config, { - super.key, - }); - - @override - Widget build(BuildContext context) { - final options = config.contentOptions ?? const ContentOptions(); - final alignment = options.alignment; - final flex = options.flex ?? defaultFlex; - - final header = config.header; - - final left = config.left; - final right = config.right; - return Column( - children: [ - Expanded( - flex: header.options?.flex ?? defaultFlex, - child: Row( - children: [ - buildContentSection(( - content: header.content, - options: options.merge(header.options), - )), - ], - ), - ), - Expanded( - flex: flex, - child: Container( - alignment: alignment.toAlignment(), - child: Row( - children: [ - buildContentSection(( - content: left.content, - options: options.merge(left.options), - )), - buildContentSection(( - content: right.content, - options: options.merge(right.options), - )), - ], - ), - ), - ), - ], - ); - } -} diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index 9c2ee43d..1c393ea5 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -42,6 +42,7 @@ dependencies: image_picker: ^1.1.2 open_filex: ^4.5.0 google_generative_ai: ^0.4.4 + meta: ^1.15.0 dev_dependencies: flutter_test: diff --git a/packages/superdeck/test/helpers/section_parsing_test.dart b/packages/superdeck/test/helpers/section_parsing_test.dart new file mode 100644 index 00000000..75ae2d0a --- /dev/null +++ b/packages/superdeck/test/helpers/section_parsing_test.dart @@ -0,0 +1,438 @@ +import 'package:superdeck/helpers/section_parsing.dart'; +import 'package:superdeck/superdeck.dart'; +import 'package:test/test.dart'; + +extension on List { + SectionPart get header => + firstWhere((part) => part.location == Section.header); + SectionPart get body => firstWhere((part) => part.location == Section.body); + SectionPart get footer => + firstWhere((part) => part.location == Section.footer); +} + +void main() { + group('LayoutSection', () { + group('Successful cases', () { + test('Header with columns', () { + const markdown = ''' +{.header} +# Header Title + +{.content} +Header content column 1. + +{.content} +Header content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(3)); + expect(sections.body.contentParts.length, equals(0)); + expect(sections.footer.contentParts.length, equals(0)); + expect( + sections.header.contentParts[0].content.trim(), '# Header Title'); + expect(sections.header.contentParts[1].content.trim(), + 'Header content column 1.'); + expect(sections.header.contentParts[2].content.trim(), + 'Header content column 2.'); + }); + + test('Body with columns', () { + const markdown = ''' +{.body} +{.content} +Body content column 1. + +{.content} +Body content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(0)); + expect(sections.body.contentParts.length, equals(2)); + expect(sections.footer.contentParts.length, equals(0)); + expect(sections.body.contentParts[0].content.trim(), + 'Body content column 1.'); + expect(sections.body.contentParts[1].content.trim(), + 'Body content column 2.'); + }); + + test('Footer with columns', () { + const markdown = ''' +{.footer} +{.content} +Footer content column 1. + +{.content} +Footer content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(0)); + expect(sections.body.contentParts.length, equals(0)); + expect(sections.footer.contentParts.length, equals(2)); + expect(sections.footer.contentParts[0].content.trim(), + 'Footer content column 1.'); + expect(sections.footer.contentParts[1].content.trim(), + 'Footer content column 2.'); + }); + + test('Only columns without header, body, or footer', () { + const markdown = ''' +{.content} +Content column 1. + +{.content} +Content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(0)); + expect(sections.body.contentParts.length, equals(2)); + expect(sections.footer.contentParts.length, equals(0)); + expect( + sections.body.contentParts[0].content.trim(), 'Content column 1.'); + expect( + sections.body.contentParts[1].content.trim(), 'Content column 2.'); + }); + + test('Header, body, and footer with columns', () { + const markdown = ''' +{.header} +# Header Title + +{.content} +Header content column. + +{.body} +{.content} +Body content column 1. + +{.content} +Body content column 2. + +{.footer} +{.content} +Footer content column. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(2)); + expect(sections.body.contentParts.length, equals(2)); + expect(sections.footer.contentParts.length, equals(1)); + expect( + sections.header.contentParts[0].content.trim(), '# Header Title'); + expect(sections.header.contentParts[1].content.trim(), + 'Header content column.'); + expect(sections.body.contentParts[0].content.trim(), + 'Body content column 1.'); + expect(sections.body.contentParts[1].content.trim(), + 'Body content column 2.'); + expect(sections.footer.contentParts[0].content.trim(), + 'Footer content column.'); + }); + }); + group('Fail cases', () { + test('Fail case - Column tag appears outside header, body, or footer', + () { + const markdown = ''' +# Regular Markdown + +{.content} +This is some regular markdown content. + +{.header} +## Header Title + +{.content} +Content inside the header. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + + test('Fail case - Header appears after body', () { + const markdown = ''' +{.body} +# Body Title + +{.content} +Content in the body. + +{.header} +## Header Title + +{.content} +Content in the header. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + + test('Fail case - Body appears after footer', () { + const markdown = ''' +{.footer} +# Footer Title + +{.content} +Content in the footer. + +{.body} +## Body Title + +{.content} +Content in the body. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + }); + }); + + group('ContentPart - Attribute Testing', () { + test('Header with columns and flex attribute', () { + const markdown = ''' +{.header} +{.content flex="1"} +Header content column 1. + +{.content flex="2"} +Header content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(2)); + expect(sections.body.contentParts.length, equals(0)); + expect(sections.footer.contentParts.length, equals(0)); + + expect(sections.header.contentParts[0].content.trim(), + 'Header content column 1.'); + expect(sections.header.contentParts[1].content.trim(), + 'Header content column 2.'); + + expect(sections.header.contentParts[0].options.flex, equals(1)); + expect(sections.header.contentParts[1].options.flex, equals(2)); + }); + + test('Body with columns and alignment attribute in snake case', () { + const markdown = ''' +{.body} +{.content alignment="center"} +Body content column 1. + +{.content alignment="bottom_right"} +Body content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(0)); + expect(sections.body.contentParts.length, equals(2)); + expect(sections.footer.contentParts.length, equals(0)); + + expect(sections.body.contentParts[0].content.trim(), + 'Body content column 1.'); + expect(sections.body.contentParts[1].content.trim(), + 'Body content column 2.'); + + expect(sections.body.contentParts[0].options.align, + equals(ContentAlignment.center)); + expect(sections.body.contentParts[1].options.align, + equals(ContentAlignment.bottomRight)); + }); + + test('Footer with columns, flex, and alignment attributes in snake case', + () { + const markdown = ''' +{.footer} +{.content flex="3" alignment="top_left"} +Footer content column 1. + +{.content flex="1" alignment="center_right"} +Footer content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(0)); + expect(sections.body.contentParts.length, equals(0)); + expect(sections.footer.contentParts.length, equals(2)); + + expect(sections.footer.contentParts[0].content.trim(), + 'Footer content column 1.'); + expect(sections.footer.contentParts[1].content.trim(), + 'Footer content column 2.'); + + expect(sections.footer.contentParts[0].options.flex, equals(3)); + expect(sections.footer.contentParts[0].options.align, + equals(ContentAlignment.topLeft)); + + expect(sections.footer.contentParts[1].options.flex, equals(1)); + expect(sections.footer.contentParts[1].options.align, + equals(ContentAlignment.centerRight)); + }); + + test('Mixed header, body, and footer with columns and attributes', () { + const markdown = ''' +{.header} +{.content flex="1" alignment="center"} +Header content. + +{.body} +{.content flex="2" alignment="center_left"} +Body content column 1. + +{.content flex="1" alignment="center_right"} +Body content column 2. + +{.footer} +{.content flex="1" alignment="bottom_center"} +Footer content. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(1)); + expect(sections.body.contentParts.length, equals(2)); + expect(sections.footer.contentParts.length, equals(1)); + + expect(sections.header.contentParts[0].content.trim(), 'Header content.'); + expect(sections.header.contentParts[0].options.flex, equals(1)); + expect(sections.header.contentParts[0].options.align, + equals(ContentAlignment.center)); + + expect(sections.body.contentParts[0].content.trim(), + 'Body content column 1.'); + expect(sections.body.contentParts[0].options.flex, equals(2)); + expect(sections.body.contentParts[0].options.align, + equals(ContentAlignment.centerLeft)); + + expect(sections.body.contentParts[1].content.trim(), + 'Body content column 2.'); + expect(sections.body.contentParts[1].options.flex, equals(1)); + expect(sections.body.contentParts[1].options.align, + equals(ContentAlignment.centerRight)); + + expect(sections.footer.contentParts[0].content.trim(), 'Footer content.'); + expect(sections.footer.contentParts[0].options.flex, equals(1)); + expect(sections.footer.contentParts[0].options.align, + equals(ContentAlignment.bottomCenter)); + }); + }); + + group('ContentPart - Fail Cases', () { + test('Fail case - Column tag appears outside header, body, or footer', () { + const markdown = ''' +# Regular Markdown + +{.content flex="1"} +This is some regular markdown content. + +{.header} +## Header Title + +{.content} +Content inside the header. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + + test('Fail case - Invalid flex attribute format', () { + const markdown = ''' +{.header} +{.content flex="invalid"} +Header content. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + + test('Fail case - Invalid alignment attribute value', () { + const markdown = ''' +{.header} +{.content alignment="invalid_alignment"} +Header content. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + }); + + // Group that checks if columns inherit options from the parent + group('ContentPart - Inheritance', () { + test('Columns inherit options from the parent', () { + const markdown = ''' +{.header alignment="center"} +{.content} +Header content. + +{.body alignment="top_left" flex="2"} +{.content flex="3"} +Body content. + +{.footer alignment="bottom_right" flex="1"} +{.content alignment="bottom_right"} +Footer content. + +'''; + + final sections = parseSections(markdown); + expect(sections.header.contentParts.length, equals(1)); + expect(sections.body.contentParts.length, equals(1)); + expect(sections.footer.contentParts.length, equals(1)); + + expect(sections.header.contentParts[0].content.trim(), 'Header content.'); + expect(sections.header.contentParts[0].options.align, + equals(ContentAlignment.center)); + + expect(sections.body.contentParts[0].content.trim(), 'Body content.'); + expect(sections.body.contentParts[0].options.align, + equals(ContentAlignment.topLeft)); + expect(sections.body.contentParts[0].options.flex, equals(3)); + + expect(sections.footer.contentParts[0].content.trim(), 'Footer content.'); + expect(sections.footer.contentParts[0].options.align, + equals(ContentAlignment.bottomRight)); + expect(sections.footer.contentParts[0].options.flex, equals(1)); + }); + }); + + group('extractAttributes', () { + test('Extracts attributes from a valid tag', () { + const tag = '{.content width:50% align:center}'; + final attributes = extractAttributesFromLine(tag); + expect(attributes, equals({'width': '50%', 'align': 'center'})); + }); + + test('Returns an empty map when no attributes are present', () { + const tag = '{.content}'; + final attributes = extractAttributesFromLine(tag); + expect(attributes, equals({})); + }); + + test('Handles attributes with special characters', () { + const tag = '{.content data_custom:some_value}'; + final attributes = extractAttributesFromLine(tag); + expect(attributes, equals({'data_custom': 'some_value'})); + }); + + test('Ignores invalid attribute syntax', () { + const tag = '{.content width:65% align:bottom_right invalid}'; + final attributes = extractAttributesFromLine(tag); + expect(attributes, equals({'width': '65%', 'align': 'bottom_right'})); + }); + }); +} diff --git a/packages/superdeck/test/models/syntax_tag_test.dart b/packages/superdeck/test/models/syntax_tag_test.dart deleted file mode 100644 index 4f6bb2cc..00000000 --- a/packages/superdeck/test/models/syntax_tag_test.dart +++ /dev/null @@ -1,155 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:superdeck/helpers/section_tag.dart'; - -void main() { - group('Tag Detection Tests', () { - test('Detects left and right tags with content', () { - const input = ''' -::left:: - -## Content One -Description of content - -::right:: - -#### Content Two - -- First bullet point -- Second bullet point -- Third bullet point -'''; - final expected = { - SectionTag.left: ''' - -## Content One -Description of content - -''', - SectionTag.right: ''' - -#### Content Two - -- First bullet point -- Second bullet point -- Third bullet point -''' - }; - expect( - parseContentSections(input), - expected, - ); - }); - - test('Handles input without tags correctly', () { - const input = ''' -## Content One -Description of content -'''; - final expected = { - SectionTag.first: ''' -## Content One -Description of content -''' - }; - expect(parseContentSections(input), expected); - }); - - test('Detects right tag only with content', () { - const input = ''' -## Content One -Description of content - -::right:: - -#### Content Two - -- First bullet point -- Second bullet point -- Third bullet point -'''; - final expected = { - SectionTag.first: ''' -## Content One -Description of content - -''', - SectionTag.right: ''' - -#### Content Two - -- First bullet point -- Second bullet point -- Third bullet point -''' - }; - expect(parseContentSections(input), expected); - }); - - test('Detects misaligned left tag with content', () { - const input = ''' -## Content One -Description of content - -::left:: - -#### Content Two - -- First bullet point -- Second bullet point -- Third bullet point -'''; - final expected = { - SectionTag.first: ''' -## Content One -Description of content - -''', - SectionTag.left: ''' - -#### Content Two - -- First bullet point -- Second bullet point -- Third bullet point -''' - }; - expect(parseContentSections(input), expected); - }); - - test('Throws exception for duplicate tags', () { - const input = ''' -::left:: - -## Content One -Description of content - -::left:: - -#### Content Two - -- First bullet point -- Second bullet point -- Third bullet point -'''; - expect( - () => parseContentSections( - input, - ), - throwsException); - }); - - test('Throws exception for empty content between same tags', () { - const input = ''' -::left:: -::left:: - -Description of content -'''; - expect( - () => parseContentSections( - input, - ), - throwsException); - }); - }); -} diff --git a/packages/superdeck/test/options_model_test.dart b/packages/superdeck/test/options_model_test.dart index 003b0579..576b19df 100644 --- a/packages/superdeck/test/options_model_test.dart +++ b/packages/superdeck/test/options_model_test.dart @@ -9,12 +9,11 @@ void main() { }); test('merge returns new instance with merged values', () { - const options1 = - ContentOptions(flex: 2, alignment: ContentAlignment.topLeft); - const options2 = ContentOptions(alignment: ContentAlignment.bottomRight); + const options1 = ContentOptions(flex: 2, align: ContentAlignment.topLeft); + const options2 = ContentOptions(align: ContentAlignment.bottomRight); final merged = options1.merge(options2); expect(merged.flex, options1.flex); - expect(merged.alignment, options2.alignment); + expect(merged.align, options2.align); }); }); diff --git a/packages/superdeck/test/test_helpers.dart b/packages/superdeck/test/test_helpers.dart index 16a51574..d2dff187 100644 --- a/packages/superdeck/test/test_helpers.dart +++ b/packages/superdeck/test/test_helpers.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_test/flutter_test.dart'; +import 'package:mix/mix.dart'; import 'package:superdeck/components/atoms/slide_view.dart'; import 'package:superdeck/providers/assets_provider.dart'; import 'package:superdeck/providers/examples_provider.dart'; From 67c75d503524c8b453514ef0b6ea17c34b5a86db Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Sat, 17 Aug 2024 22:54:58 -0400 Subject: [PATCH 02/27] better parsing --- packages/superdeck/example/slides.md | 6 +- .../lib/helpers/section_parsing.dart | 376 +++++++++++------- .../lib/templates/template_builder.dart | 23 +- .../test/helpers/section_parsing_test.dart | 304 ++++++++------ 4 files changed, 413 insertions(+), 296 deletions(-) diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index 3ef37e8c..7e092d21 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -2,10 +2,6 @@ style: quote --- - - - - {.content flex: 2} > Create your Flutter presentations faster and easier than ever. > You can quote me on that @@ -18,6 +14,8 @@ style: show_sections {.content flex:2} +{.image } + # Two Column This is a two-column layout. You can use it to compare two different concepts or ideas. diff --git a/packages/superdeck/lib/helpers/section_parsing.dart b/packages/superdeck/lib/helpers/section_parsing.dart index c9374a1f..b701af01 100644 --- a/packages/superdeck/lib/helpers/section_parsing.dart +++ b/packages/superdeck/lib/helpers/section_parsing.dart @@ -1,237 +1,307 @@ import 'dart:convert'; import 'package:collection/collection.dart'; -import 'package:flutter/widgets.dart'; +import 'package:flutter/foundation.dart'; import 'package:yaml/yaml.dart'; import '../models/options_model.dart'; -enum Section { +abstract class Part { + const Part(); +} + +enum SectionPartType { + root, header, body, footer; - String get _prefix => '{.'; - String get _suffix => '}'; - - String get tag => '${_prefix}${name}${_suffix}'; - - int get startIndex => '$_prefix$name'.length; - - static Section? getLocation(String line) { - return Section.values - .firstWhereOrNull((e) => line.startsWith(e._prefix + e.name)); - } + String get tag => '.$name'; +} - static bool isLocationTag(String line) { - return getLocation(line) != null; - } +enum SubSectionPartType { + content, + image; - String getContents(String line) { - return line.substring(startIndex, line.indexOf(_suffix)); - } + String get tag => '.$name'; } -abstract class Part { +sealed class SubSectionPart extends Part { final T options; - const Part({required this.options}); -} -class ImagePart extends Part { - static const tag = '.image'; - const ImagePart({ - required super.options, + SubSectionPart({ + required this.options, }); } -class ContentPart extends Part { +class ContentPart extends SubSectionPart { static const tag = '.content'; - String content = ''; + final String content; ContentPart({ + required this.content, required super.options, }); - // I woul dlike to parse the following as if it were a yaml - // {.content align:center flex:2} - // {.content align:bottom_center } - // {.content flex:2} - // {.content} - - static ContentPart? parse(String line) { - // Check if it starts with {+ ContentPart.tag - // if not return null - // if so remove {+ ContentPart.tag + } - final cleanedLine = line - .trim() - .replaceAll(RegExp(r'[{}]'), '') - .replaceAll(ContentPart.tag, ''); - + ContentPart copyWith({ + String? content, + }) { return ContentPart( - options: ContentOptionsMapper.fromMap(_converYamlToMap(cleanedLine)), + content: content ?? this.content, + options: this.options, ); } } -class SectionPart { - final Section location; - final int flex; - final List contentParts; +class ImagePart extends Part { + static const tag = '.image'; + final ImageOptions options; + const ImagePart({ + required this.options, + }); +} + +Part? parsePart(String line) { + if (!_isSyntax(line)) { + return null; + } + + final tagContents = _getTagContents(line); + + final sectionName = SectionPartType.values.firstWhereOrNull( + (part) => tagContents.startsWith(part.tag), + ); + + if (sectionName != null) { + return SectionPart.build( + sectionName, + ContentOptionsMapper.fromMap( + getOptionsMapFromLine(sectionName.tag, tagContents), + ), + ); + } + + final subSectionName = SubSectionPartType.values.firstWhereOrNull( + (part) => tagContents.startsWith(part.tag), + ); + + if (subSectionName != null) { + final options = getOptionsMapFromLine(subSectionName.tag, tagContents); + + switch (subSectionName) { + case SubSectionPartType.content: + return ContentPart( + content: '', + options: ContentOptionsMapper.fromMap(options), + ); + case SubSectionPartType.image: + return ImagePart( + options: ImageOptionsMapper.fromMap(options), + ); + } + } + return null; +} + +sealed class SectionPart extends Part { + final SectionPartType type; + final ContentOptions options; + List subSections = []; SectionPart({ - required this.location, - required this.contentParts, - required this.flex, + required this.type, + required this.options, }); + + factory SectionPart.build( + SectionPartType type, + ContentOptions options, + ) { + return switch (type) { + SectionPartType.header => HeaderLayoutPart(options), + SectionPartType.body => BodyLayoutPart(options), + SectionPartType.footer => FooterLayoutPart(options), + SectionPartType.root => RootLayoutPart(options), + }; + } + + String get name => type.name; + + void concatLine(String content) { + final lastPart = subSections.lastOrNull; + + if (lastPart is ContentPart) { + final contentPart = lastPart; + + subSections.last = contentPart.copyWith( + content: contentPart.content + '\n' + content, + ); + } else { + subSections.add(ContentPart( + content: content, + options: ContentOptions(), + )); + } + } +} + +class RootLayoutPart extends SectionPart { + RootLayoutPart(ContentOptions options) + : super(type: SectionPartType.root, options: options); } -typedef LayoutPartInfo = ({Section location, ContentOptions options}); +class HeaderLayoutPart extends SectionPart { + HeaderLayoutPart(ContentOptions options) + : super(type: SectionPartType.header, options: options); +} + +class BodyLayoutPart extends SectionPart { + BodyLayoutPart(ContentOptions options) + : super(type: SectionPartType.body, options: options); +} + +class FooterLayoutPart extends SectionPart { + FooterLayoutPart(ContentOptions options) + : super(type: SectionPartType.footer, options: options); +} -List parseSections(String markdown) { +List parseSections(String markdown, [ContentOptions? options]) { final lines = markdown.split('\n'); - final sectionFlex = ({ - Section.header: 1, - Section.body: 1, - Section.footer: 1, - }); + final rootSection = RootLayoutPart(options ?? ContentOptions()); - final sectionParts = ({ - Section.header: [], - Section.body: [], - Section.footer: [], - }); + final layoutParts = {rootSection}; - Section? currentLocation = null; + // Start with the header + SectionPart currentSection = rootSection; int lineIndex = 0; + for (final line in lines) { lineIndex++; final trimmedLine = line.trim(); // Skip empty lines if (trimmedLine.isEmpty) { continue; - } else if (Section.isLocationTag(trimmedLine)) { - final location = Section.getLocation(trimmedLine)!; + } - if (currentLocation != null) { - if (location.index <= currentLocation.index) { - throw Exception( - 'Invalid location tag on line ${lineIndex}. ${location.tag} cannot be before ${currentLocation.tag}', - ); - } - } + if (trimmedLine.startsWith('{') && !trimmedLine.endsWith('}')) { + throw Exception( + 'Invalid syntax on line ${lineIndex}. Missing closing tag', + ); + } - currentLocation = location; - sectionFlex[location] = _getFlexAttributeFromLine(line); - } else { - if (currentLocation == null) { - currentLocation = Section.body; + if (!_isSyntax(trimmedLine)) { + currentSection.concatLine(line); + continue; + } + + final part = parsePart(line); + + if (part == null) { + continue; + } + + if (part is SectionPart) { + if (part.type.index <= currentSection.type.index) { + throw Exception( + 'Invalid location tag on line ${lineIndex}. ${part.type.tag} cannot be before ${currentSection.type.tag}', + ); } - final contentPart = ContentPart.parse(line); - - if (contentPart != null) { - // If previous content is empty there is no need to create a column - sectionParts[currentLocation]!.add(contentPart); - } else { - if (sectionParts[currentLocation]!.isEmpty) { - sectionParts[currentLocation]!.add( - ContentPart( - options: ContentOptions(), - ), + if (currentSection is RootLayoutPart) { + if (currentSection.subSections.isNotEmpty) { + // throw error that says if to use any section wrapping all the content of the markdown + throw Exception( + 'Invalid location tag on line ${lineIndex}. ${part.type.tag} cannot be before ${currentSection.type.tag}', ); } - - final lastPart = sectionParts[currentLocation]!.last; - - sectionParts[currentLocation]!.last = lastPart - ..content = (lastPart.content += line + '\n'); } + // Save current section before setting as current + layoutParts.add(currentSection); + currentSection = part; + } else if (part is SubSectionPart) { + // final lastSubSection = currentSection.subSections.lastOrNull; + // if (part is ContentPart && lastSubSection is ContentPart) { + // // If last section is empty it should just replace it + // if (lastSubSection.content.isEmpty) { + // currentSection.subSections.last = part; + // } else { + // currentSection.subSections.add(part); + // } + // } + + currentSection.subSections.add(part); } } - Section.values.forEach((section) { - final contentParts = sectionParts[section]!; - if (contentParts.isEmpty) { - sectionParts.remove(section); - } else { - sectionParts[section] = - contentParts.where((part) => !part.content.isEmpty).toList(); - } - }); + layoutParts.add(currentSection); // Return the parsed sections // remove all sections that have empty parts - return sectionParts.entries.map((entry) { - final location = entry.key; - final parts = entry.value; - final options = sectionFlex[location]!; - - return SectionPart( - location: location, - contentParts: parts, - flex: options, - ); + return layoutParts.where((part) { + return part.subSections.isNotEmpty; }).toList(); } -int _getFlexAttributeFromLine(String line) { - final attributes = extractAttributesFromLine(line); - final flex = attributes['flex']; - - if (flex == null) { - return 1; +Map _converYamlToMap(String yamlString) { + if (yamlString.isEmpty) { + return {}; } + final yamlMap = loadYaml(yamlString) as YamlMap? ?? YamlMap(); - final parsed = int.tryParse(flex); - if (parsed == null) { - throw Exception('Flex value must be an integer. Found: $flex'); - } + final yaml = jsonEncode(yamlMap); - return parsed; + return jsonDecode(yaml); } -ContentAlignment? _getAlignmentAttributeFromLine(String value) { - final attributes = extractAttributesFromLine(value); - final alignment = attributes['align']; +bool _isSyntax(String line) { + final trimmedLine = line.trim(); + return trimmedLine.startsWith('{') && trimmedLine.endsWith('}'); +} - if (alignment == null) { - return null; +@visibleForTesting +Map getOptionsMapFromLine( + String tag, + String contents, +) { + var rawString = contents.substring(tag.length).trim(); + + if (rawString.isEmpty) { + return {}; } - try { - return ContentAlignmentMapper.fromValue(alignment); - } catch (e) { - throw Exception('Invalid alignment value: $alignment'); - } -} + // I would like to replace any value with ":" and any number of spaces after with just ":" + final regex = RegExp(r':\s+'); -@visibleForTesting -Map extractAttributesFromLine(String line) { - final cleanedLine = line.trim().replaceAll(RegExp(r'[{}]'), ''); + // this will turn "key: value" into "key:value" + final values = rawString.replaceAll(regex, ':'); - final regex = RegExp(r'(\w+):([^\s]+)'); - final matches = regex.allMatches(cleanedLine); + print('Values: $values'); + // Add space to is easier to separate just in case + // final values = rawString.replaceAll(': ', ':'); - final attributes = {}; + // Now I want to split every value into value also with space, and combine + // the key and value back together + final pairs = values.split(' '); - for (final match in matches) { - final key = match.group(1); - final value = match.group(2); + // Join the formatted pairs back into a string + final formattedString = pairs.join('\n').replaceAll(':', ': '); - if (key != null && value != null) { - attributes[key] = value; - } + try { + return _converYamlToMap(formattedString); + } catch (e) { + throw FormatException('Error parsing tags: $formattedString'); } - - return attributes; } -Map _converYamlToMap(String yamlString) { - final yamlMap = loadYaml(yamlString) as YamlMap? ?? YamlMap(); +String _getTagContents(String line) { + final regex = RegExp(r'{(.*?)}'); + final match = regex.firstMatch(line); - final yaml = jsonEncode(yamlMap); + if (match != null) { + return match.group(1)?.trim() ?? ''; + } - return jsonDecode(yaml); + return ''; } diff --git a/packages/superdeck/lib/templates/template_builder.dart b/packages/superdeck/lib/templates/template_builder.dart index 8618a9d3..7d8abe92 100644 --- a/packages/superdeck/lib/templates/template_builder.dart +++ b/packages/superdeck/lib/templates/template_builder.dart @@ -18,23 +18,26 @@ sealed class TemplateBuilder extends StatelessWidget { } Widget render() { - final sections = parseSections(config.content); + final sections = parseSections(config.content, config.contentOptions); return Column( children: sections.map((section) { - final sectionFlex = section.flex; + final sectionFlex = section.options.flex ?? 1; return Expanded( flex: sectionFlex, child: Row( - children: section.contentParts.map((part) { - return Expanded( - flex: part.options.flex ?? 1, - child: SlideContent( - content: part.content, - options: part.options, - ), - ); + children: section.subSections.map((part) { + if (part is ContentPart) { + return Expanded( + flex: part.options.flex ?? 1, + child: SlideContent( + content: part.content, + options: part.options, + ), + ); + } + return Container(); }).toList(), ), ); diff --git a/packages/superdeck/test/helpers/section_parsing_test.dart b/packages/superdeck/test/helpers/section_parsing_test.dart index 75ae2d0a..a233bd6d 100644 --- a/packages/superdeck/test/helpers/section_parsing_test.dart +++ b/packages/superdeck/test/helpers/section_parsing_test.dart @@ -1,15 +1,8 @@ +import 'package:collection/collection.dart'; import 'package:superdeck/helpers/section_parsing.dart'; import 'package:superdeck/superdeck.dart'; import 'package:test/test.dart'; -extension on List { - SectionPart get header => - firstWhere((part) => part.location == Section.header); - SectionPart get body => firstWhere((part) => part.location == Section.body); - SectionPart get footer => - firstWhere((part) => part.location == Section.footer); -} - void main() { group('LayoutSection', () { group('Successful cases', () { @@ -27,14 +20,15 @@ Header content column 2. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(3)); - expect(sections.body.contentParts.length, equals(0)); - expect(sections.footer.contentParts.length, equals(0)); + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, equals(3)); + expect(sections.body?.subSections.length, isNull); + expect(sections.footer?.subSections.length, isNull); expect( - sections.header.contentParts[0].content.trim(), '# Header Title'); - expect(sections.header.contentParts[1].content.trim(), + sections.header?.subSections[0].content.trim(), '# Header Title'); + expect(sections.header?.subSections[1].content.trim(), 'Header content column 1.'); - expect(sections.header.contentParts[2].content.trim(), + expect(sections.header?.subSections[2].content.trim(), 'Header content column 2.'); }); @@ -50,12 +44,13 @@ Body content column 2. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(0)); - expect(sections.body.contentParts.length, equals(2)); - expect(sections.footer.contentParts.length, equals(0)); - expect(sections.body.contentParts[0].content.trim(), + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, isNull); + expect(sections.body?.subSections.length, equals(2)); + expect(sections.footer?.subSections.length, isNull); + expect(sections.body?.subSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body.contentParts[1].content.trim(), + expect(sections.body?.subSections[1].content.trim(), 'Body content column 2.'); }); @@ -71,12 +66,13 @@ Footer content column 2. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(0)); - expect(sections.body.contentParts.length, equals(0)); - expect(sections.footer.contentParts.length, equals(2)); - expect(sections.footer.contentParts[0].content.trim(), + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, isNull); + expect(sections.body?.subSections.length, isNull); + expect(sections.footer?.subSections.length, equals(2)); + expect(sections.footer?.subSections[0].content.trim(), 'Footer content column 1.'); - expect(sections.footer.contentParts[1].content.trim(), + expect(sections.footer?.subSections[1].content.trim(), 'Footer content column 2.'); }); @@ -91,13 +87,14 @@ Content column 2. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(0)); - expect(sections.body.contentParts.length, equals(2)); - expect(sections.footer.contentParts.length, equals(0)); + expect(sections.root?.subSections.length, equals(2)); + expect(sections.header?.subSections.length, isNull); + expect(sections.body?.subSections.length, isNull); + expect(sections.footer?.subSections.length, isNull); expect( - sections.body.contentParts[0].content.trim(), 'Content column 1.'); + sections.root?.subSections[0].content.trim(), 'Content column 1.'); expect( - sections.body.contentParts[1].content.trim(), 'Content column 2.'); + sections.root?.subSections[1].content.trim(), 'Content column 2.'); }); test('Header, body, and footer with columns', () { @@ -122,18 +119,20 @@ Footer content column. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(2)); - expect(sections.body.contentParts.length, equals(2)); - expect(sections.footer.contentParts.length, equals(1)); + + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, equals(2)); + expect(sections.body?.subSections.length, equals(2)); + expect(sections.footer?.subSections.length, equals(1)); expect( - sections.header.contentParts[0].content.trim(), '# Header Title'); - expect(sections.header.contentParts[1].content.trim(), + sections.header?.subSections[0].content.trim(), '# Header Title'); + expect(sections.header?.subSections[1].content.trim(), 'Header content column.'); - expect(sections.body.contentParts[0].content.trim(), + expect(sections.body?.subSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body.contentParts[1].content.trim(), + expect(sections.body?.subSections[1].content.trim(), 'Body content column 2.'); - expect(sections.footer.contentParts[0].content.trim(), + expect(sections.footer?.subSections[0].content.trim(), 'Footer content column.'); }); }); @@ -201,52 +200,56 @@ Content in the body. test('Header with columns and flex attribute', () { const markdown = ''' {.header} -{.content flex="1"} +{.content flex:1 } Header content column 1. -{.content flex="2"} +{.content flex:2} Header content column 2. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(2)); - expect(sections.body.contentParts.length, equals(0)); - expect(sections.footer.contentParts.length, equals(0)); - expect(sections.header.contentParts[0].content.trim(), + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, equals(2)); + expect(sections.body?.subSections.length, isNull); + expect(sections.footer?.subSections.length, isNull); + + expect(sections.header?.subSections[0].content.trim(), 'Header content column 1.'); - expect(sections.header.contentParts[1].content.trim(), + expect(sections.header?.subSections[1].content.trim(), 'Header content column 2.'); - expect(sections.header.contentParts[0].options.flex, equals(1)); - expect(sections.header.contentParts[1].options.flex, equals(2)); + expect(sections.header?.subSections[0].contentOptions.flex, equals(1)); + expect(sections.header?.subSections[1].contentOptions.flex, equals(2)); }); test('Body with columns and alignment attribute in snake case', () { const markdown = ''' {.body} -{.content alignment="center"} +{.content align:center} Body content column 1. -{.content alignment="bottom_right"} +{.content align:bottom_right} Body content column 2. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(0)); - expect(sections.body.contentParts.length, equals(2)); - expect(sections.footer.contentParts.length, equals(0)); - expect(sections.body.contentParts[0].content.trim(), + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, isNull); + expect(sections.body?.subSections.length, equals(2)); + expect(sections.footer?.subSections.length, isNull); + + expect(sections.body?.subSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body.contentParts[1].content.trim(), + expect(sections.body?.subSections[1].content.trim(), 'Body content column 2.'); - expect(sections.body.contentParts[0].options.align, + expect(sections.body?.subSections[0].contentOptions.align, equals(ContentAlignment.center)); - expect(sections.body.contentParts[1].options.align, + expect(sections.body?.subSections[1].contentOptions.align, equals(ContentAlignment.bottomRight)); }); @@ -254,77 +257,81 @@ Body content column 2. () { const markdown = ''' {.footer} -{.content flex="3" alignment="top_left"} +{.content flex:3 align:top_left} Footer content column 1. -{.content flex="1" alignment="center_right"} +{.content flex:1 align:center_right} Footer content column 2. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(0)); - expect(sections.body.contentParts.length, equals(0)); - expect(sections.footer.contentParts.length, equals(2)); - expect(sections.footer.contentParts[0].content.trim(), + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, isNull); + expect(sections.body?.subSections.length, isNull); + expect(sections.footer?.subSections.length, equals(2)); + + expect(sections.footer?.subSections[0].content.trim(), 'Footer content column 1.'); - expect(sections.footer.contentParts[1].content.trim(), + expect(sections.footer?.subSections[1].content.trim(), 'Footer content column 2.'); - expect(sections.footer.contentParts[0].options.flex, equals(3)); - expect(sections.footer.contentParts[0].options.align, + expect(sections.footer?.subSections[0].contentOptions.flex, equals(3)); + expect(sections.footer?.subSections[0].contentOptions.align, equals(ContentAlignment.topLeft)); - expect(sections.footer.contentParts[1].options.flex, equals(1)); - expect(sections.footer.contentParts[1].options.align, + expect(sections.footer?.subSections[1].contentOptions.flex, equals(1)); + expect(sections.footer?.subSections[1].contentOptions.align, equals(ContentAlignment.centerRight)); }); test('Mixed header, body, and footer with columns and attributes', () { const markdown = ''' {.header} -{.content flex="1" alignment="center"} +{.content flex:1 align:center} Header content. {.body} -{.content flex="2" alignment="center_left"} +{.content flex:2 align:center_left} Body content column 1. -{.content flex="1" alignment="center_right"} +{.content flex:1 align:center_right} Body content column 2. {.footer} -{.content flex="1" alignment="bottom_center"} +{.content flex:1 align:bottom_center} Footer content. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(1)); - expect(sections.body.contentParts.length, equals(2)); - expect(sections.footer.contentParts.length, equals(1)); - expect(sections.header.contentParts[0].content.trim(), 'Header content.'); - expect(sections.header.contentParts[0].options.flex, equals(1)); - expect(sections.header.contentParts[0].options.align, + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, equals(1)); + expect(sections.body?.subSections.length, equals(2)); + expect(sections.footer?.subSections.length, equals(1)); + + expect(sections.header?.subSections[0].content.trim(), 'Header content.'); + expect(sections.header?.subSections[0].contentOptions.flex, equals(1)); + expect(sections.header?.subSections[0].contentOptions.align, equals(ContentAlignment.center)); - expect(sections.body.contentParts[0].content.trim(), + expect(sections.body?.subSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body.contentParts[0].options.flex, equals(2)); - expect(sections.body.contentParts[0].options.align, + expect(sections.body?.subSections[0].contentOptions.flex, equals(2)); + expect(sections.body?.subSections[0].contentOptions.align, equals(ContentAlignment.centerLeft)); - expect(sections.body.contentParts[1].content.trim(), + expect(sections.body?.subSections[1].content.trim(), 'Body content column 2.'); - expect(sections.body.contentParts[1].options.flex, equals(1)); - expect(sections.body.contentParts[1].options.align, + expect(sections.body?.subSections[1].contentOptions.flex, equals(1)); + expect(sections.body?.subSections[1].contentOptions.align, equals(ContentAlignment.centerRight)); - expect(sections.footer.contentParts[0].content.trim(), 'Footer content.'); - expect(sections.footer.contentParts[0].options.flex, equals(1)); - expect(sections.footer.contentParts[0].options.align, + expect(sections.footer?.subSections[0].content.trim(), 'Footer content.'); + expect(sections.footer?.subSections[0].contentOptions.flex, equals(1)); + expect(sections.footer?.subSections[0].contentOptions.align, equals(ContentAlignment.bottomCenter)); }); }); @@ -334,7 +341,7 @@ Footer content. const markdown = ''' # Regular Markdown -{.content flex="1"} +{.content flex:1} This is some regular markdown content. {.header} @@ -351,7 +358,7 @@ Content inside the header. test('Fail case - Invalid flex attribute format', () { const markdown = ''' {.header} -{.content flex="invalid"} +{.content flex:invalid} Header content. '''; @@ -362,7 +369,7 @@ Header content. test('Fail case - Invalid alignment attribute value', () { const markdown = ''' {.header} -{.content alignment="invalid_alignment"} +{.content align:invalid_alignment} Header content. '''; @@ -375,64 +382,103 @@ Header content. group('ContentPart - Inheritance', () { test('Columns inherit options from the parent', () { const markdown = ''' -{.header alignment="center"} +{.header align:center} {.content} Header content. -{.body alignment="top_left" flex="2"} -{.content flex="3"} +{.body align:top_left flex:2} +{.content flex:3} Body content. -{.footer alignment="bottom_right" flex="1"} -{.content alignment="bottom_right"} +{.footer align:bottom_right flex:1} +{.content align:bottom_right} Footer content. '''; final sections = parseSections(markdown); - expect(sections.header.contentParts.length, equals(1)); - expect(sections.body.contentParts.length, equals(1)); - expect(sections.footer.contentParts.length, equals(1)); - expect(sections.header.contentParts[0].content.trim(), 'Header content.'); - expect(sections.header.contentParts[0].options.align, - equals(ContentAlignment.center)); + expect(sections.root?.subSections.length, isNull); + expect(sections.header?.subSections.length, equals(1)); + expect(sections.body?.subSections.length, equals(1)); + expect(sections.footer?.subSections.length, equals(1)); - expect(sections.body.contentParts[0].content.trim(), 'Body content.'); - expect(sections.body.contentParts[0].options.align, - equals(ContentAlignment.topLeft)); - expect(sections.body.contentParts[0].options.flex, equals(3)); + expect(sections.header?.subSections[0].content.trim(), 'Header content.'); + expect(sections.header?.options.align, equals(ContentAlignment.center)); - expect(sections.footer.contentParts[0].content.trim(), 'Footer content.'); - expect(sections.footer.contentParts[0].options.align, - equals(ContentAlignment.bottomRight)); - expect(sections.footer.contentParts[0].options.flex, equals(1)); + expect(sections.body?.subSections[0].content.trim(), 'Body content.'); + expect(sections.body?.options.align, equals(ContentAlignment.topLeft)); + expect(sections.body?.subSections[0].contentOptions.flex, equals(3)); + + expect(sections.footer?.subSections[0].content.trim(), 'Footer content.'); + expect( + sections.footer?.options.align, equals(ContentAlignment.bottomRight)); + expect(sections.footer?.options.flex, equals(1)); }); }); - group('extractAttributes', () { - test('Extracts attributes from a valid tag', () { - const tag = '{.content width:50% align:center}'; - final attributes = extractAttributesFromLine(tag); - expect(attributes, equals({'width': '50%', 'align': 'center'})); - }); + // getOptionsMapFromLine + group( + 'getOptionsMapFromLine', + () { + test('Empty string', () { + final result = getOptionsMapFromLine('tag', 'tag'); + expect(result, equals({})); + }); - test('Returns an empty map when no attributes are present', () { - const tag = '{.content}'; - final attributes = extractAttributesFromLine(tag); - expect(attributes, equals({})); - }); + test('Single key-value pair', () { + final result = getOptionsMapFromLine('tag', 'tag key1: value1'); + expect(result, equals({'key1': 'value1'})); + }); - test('Handles attributes with special characters', () { - const tag = '{.content data_custom:some_value}'; - final attributes = extractAttributesFromLine(tag); - expect(attributes, equals({'data_custom': 'some_value'})); - }); + test('Multiple key-value pairs', () { + final result = + getOptionsMapFromLine('tag', 'tag key1: value1 key2: value2'); + expect(result, equals({'key1': 'value1', 'key2': 'value2'})); + }); - test('Ignores invalid attribute syntax', () { - const tag = '{.content width:65% align:bottom_right invalid}'; - final attributes = extractAttributesFromLine(tag); - expect(attributes, equals({'width': '65%', 'align': 'bottom_right'})); - }); - }); + test('Extra spaces', () { + final result = + getOptionsMapFromLine('tag', 'tag key1: value1 key2: value2 '); + expect(result, equals({'key1': 'value1', 'key2': 'value2'})); + }); + + test('Empty value', () { + final result = getOptionsMapFromLine('tag', 'tag key1: '); + expect(result, equals({'key1': null})); + }); + + test('Missing value', () { + final result = getOptionsMapFromLine('tag', 'tag key1:'); + expect(result, equals({'key1': null})); + }); + + test('Invalid pair', () { + expect(() => getOptionsMapFromLine('tag', 'tag key1'), throwsException); + }); + + test('Mixed valid and invalid pairs', () { + expect( + () => getOptionsMapFromLine( + 'tag', 'tag key1: value1 invalid key2: value2'), + throwsException, + ); + }); + }, + ); +} + +extension on List { + SectionPart? get root => firstWhereOrNull((part) => part.type.name == 'root'); + SectionPart? get header => + firstWhereOrNull((part) => part.type.name == 'header'); + SectionPart? get body => firstWhereOrNull((part) => part.type.name == 'body'); + SectionPart? get footer => + firstWhereOrNull((part) => part.type.name == 'footer'); +} + +extension on SubSectionPart { + String get content => (this as ContentPart).content; + ContentOptions get contentOptions => (this as ContentPart).options; + ImageOptions get imageOptions => (this as ImagePart).options; } From 2486f47ebb49b2859644a4906cfcb3bc6f78e55f Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Mon, 19 Aug 2024 19:07:33 -0400 Subject: [PATCH 03/27] wip --- .../generated/thumbnail_PeqJdaN7.png | Bin 18219 -> 0 bytes ...il_lNPO0gW7.png => thumbnail_buKIeKag.png} | Bin .../generated/thumbnail_i0RprPGe.png | Bin 0 -> 147565 bytes .../generated/thumbnail_twbS3z13.png | Bin 0 -> 9960 bytes .../superdeck/example/.superdeck/slides.json | 16 +- packages/superdeck/example/lib/src/style.dart | 2 +- packages/superdeck/example/slides.md | 27 ++- .../lib/components/atoms/markdown_viewer.dart | 33 ++- .../lib/components/atoms/slide_view.dart | 6 +- .../components/molecules/slide_content.dart | 51 ++++- .../lib/components/superdeck_app.dart | 15 +- .../superdeck/lib/helpers/extensions.dart | 7 + .../lib/helpers/section_parsing.dart | 140 ++++++++----- .../superdeck/lib/models/options_model.dart | 35 +--- .../lib/models/options_model.mapper.dart | 134 ++++-------- .../superdeck/lib/models/slide_model.dart | 3 +- .../lib/models/slide_model.mapper.dart | 25 +-- .../lib/templates/image_template.dart | 52 ----- .../lib/templates/simple_template.dart | 4 +- .../lib/templates/template_builder.dart | 57 ++---- .../superdeck/lib/templates/templates.dart | 6 - .../templates/widget_example_template.dart | 26 --- packages/superdeck/pubspec.yaml | 1 + .../test/helpers/section_parsing_test.dart | 193 +++++++++++------- .../superdeck/test/options_model_test.dart | 15 +- .../test/templates/image_template_test.dart | 32 --- .../test/templates/simple_template_test.dart | 4 +- superdeck.code-workspace | 20 +- 28 files changed, 405 insertions(+), 499 deletions(-) delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_PeqJdaN7.png rename packages/superdeck/example/.superdeck/generated/{thumbnail_lNPO0gW7.png => thumbnail_buKIeKag.png} (100%) create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_i0RprPGe.png create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_twbS3z13.png delete mode 100644 packages/superdeck/lib/templates/image_template.dart delete mode 100644 packages/superdeck/lib/templates/widget_example_template.dart delete mode 100644 packages/superdeck/test/templates/image_template_test.dart diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_PeqJdaN7.png b/packages/superdeck/example/.superdeck/generated/thumbnail_PeqJdaN7.png deleted file mode 100644 index b3b67a6d5e495507fd71cdf1d430974a87fe4cfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18219 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 E9|Zqu!2kdN diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_lNPO0gW7.png b/packages/superdeck/example/.superdeck/generated/thumbnail_buKIeKag.png similarity index 100% rename from packages/superdeck/example/.superdeck/generated/thumbnail_lNPO0gW7.png rename to packages/superdeck/example/.superdeck/generated/thumbnail_buKIeKag.png diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_i0RprPGe.png b/packages/superdeck/example/.superdeck/generated/thumbnail_i0RprPGe.png new file mode 100644 index 0000000000000000000000000000000000000000..098ac8b7ea402ca401c2b23d63b421842704a9dc GIT binary patch literal 147565 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

    auaNL8rjEzV#P7RRCA4_tG}KA4_*~J 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 HGY$S<{43h{ literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_twbS3z13.png b/packages/superdeck/example/.superdeck/generated/thumbnail_twbS3z13.png new file mode 100644 index 0000000000000000000000000000000000000000..1567aa428751852acd7354946f0199a8b5409e0f GIT binary patch literal 9960 zcmeHtXH-+`*6zZBZ7X|QKtVv=C@Lyy1e5@=Yg9l$x)2M5UX&&!#IEQ@Gzu6H5Rn=} zloF5@Y#!&OP6`cii8197cu&Sg!TH^PTgV&-2WLoHsbN za=H9+1VL8fPaii%kOlBoYSU6_`1VPs(g^*@%lOn$B%^v`Km4%B>nQ%hQuqp5YWEO9 zHX-=qM=soWC1?xu44;T88#Od|cY^mipsE{qvVA@9&agSN(kT z*}r)1)N_aOP?beXX9HQpVhmp=vO^fS$5ZbR->-VjpXG}X}$<69+U2@)Z$hmVff{to<2=9tcvR{}KBy8Iodd=pIz_`bgBitM_;A+&Mlw z$e?9rW~vr=os~ay{q1mG_Y-3M9ztYEX=WNzo4Jxv{AK}UOoTgN#b)2-ekSg7FEn)g1rU_ns4rC-`)w4c>w zvy+ic%N8y09s0fxgL!;1q1QjwKh{Aq9VYosFTO~h6!09f95}_71sy4HLuP~y2ZLvl z=6tbaaZoaMgU*e2F$b@Gy8qjTF2iUImk0qbmr*wLUNw!@e5|s^Z=~JLffHMlN?NsO zfo$kW`kObOf`8pn_NLMKv4PdGfx{n^a54hZgBzKqG_#2txa|XvFY1o{QSw9)d%*Sk z-rW}O4qv-=ZJ<6mY;vT7ar^cHdwct~r*2O+U``Swv&|l-d0N~bpC7DSv!>g8Q_Vzu zL{wB7BY1*#Mqhs-IaFTb%+=DrK2#Tpg8Bv~YOc?;wq9Jh@!&7%i3~SOOUvbp7R(O& zv1oDgKULeD2NgP|?{7Qz(z9(=x>J~Hy{yZsUFzY<1m?BwQeu5qcekJ+)nxMf)iA1x zn!0+fUk9mqU~q8v+T~Og1>Jz`@bGXd-`~vInm43=cYNF%>p%8Z;{K_>KABFIh_{u? z%gfKRUa8yU+fjCH-u!Wul8$4oW5cH(?}|i|JlUm-tR`~cI@whZ+-l#P5N9WzjkMan zHuLV?MQ6{Q%RcsCm8Ht+_l^gg%fghWa-(Bn+@78Oa$iPym=QSMXT-~PdY(F}K3$(| zXno?uJt`G;p4K?|`0-=G9T`1G;X&J(RV9tg@W@C9cqX~bo)fD(Ih4hT;`BE`QO{%81>Ep1wgAb%=)j zAQo()4)24P>Iibap(=G)qoxtrd*#bg3?^ESG~39d(=|B4AwEv>K|fZfC17gU&Bw>b z%*x6cLZ6%C(i}x?VN)^s6wzcZDrA^42(9Ga2mA1d2=4o_&g&Feo;liM;g_w$MZbMcvIO0wBZ*On_YGcyrSpVm0@zJC3RR<^?4OE(F4 zJU&TQs?(Ww1~Tg23OQKor+X`QtEpAi)z_n|gGKJv(rT`&tJBsg-Oa&Q7Oz^rw}gDl z3YLdH8d5kNzFOvCW7gS@&q6m~N{2u2m4rH+_8Z+Rqcz>46t%s-y{Sz}Ois2Y5|gM@ z(SSKCvo_%r@7BU4>G}Cw6`yAu_5fPjU_7mvGu&1n5=9-n_J&GD3qsRp z-~un-heoCL@cCL;&R`QgYkodx?&ovE`AyeyNQIdc3dObh)gdBL6M#rTFDMV5IVZ}O zi01@FQ|%axkdeUUT44jmQ$jZ$stcZ}BtW)DgooR=w6vI+nGpd(KZ25zn4o-mqbVnW?FLAS4Xa*4UT= zPq(zUPlV!{uK)AdL%MAdw_&>Z5w%43Lw1biTOK`nd+XM% z05D9)+AS*P&0#14%FD}RmLqcNwuJ-N99@1Zi9hz>oXt{%vP)I93>T~~ zT(M%s?$sgQv+HwpRCm+*akI&>0Tpq~OCJ|tFlW!48RK)JwK#FC%b%s8B*c>d&_i4_s5szVghu(3yTusJ<3|pM@ABd*w_nHCj2hSh31+5?I zaU3W_abc3&7#z2)kFvFy$qo0J1sj(xa_ua+H5oG!RK{j+GkE3bJioChFYkM4s6ulZ zy}K-o7qUiG+eeA3?IAD?3M#ZG5@$E}RSaH%Mkl@w$T~S(FcPJLp8gO^GRG46-;rLq z1u9fOC0b9qbBZM?QgMPvEAE*qSB;wvD+^Un#X}c0-n;$+ydd7vE9F)2QP7_T1_mye znkHT?dy-0E1)ni6aL;NR8gj+gC4}h>CqQK~h+&>!|8x{9>js3)vdejJ`gYAJMf(tyG#@c;mkG<+* z-@Mr(xmG`#Hx?u(CpQ;1QatAl1v$gR`V72K>31Q_MXgfQe#?&|+d`$AUAy)^jYiA4 zG1_G?l>;SC-uRnzBh7q{5YS&SQD67#$7fR`qgq!hC#O`j-Qrl@{S?VGtec{;RaKSX zql~4ze3^1*iOj%QPvuTEwffnK!L8*ToDW|7G}tS*z>fj##@4?l+?SWn^#_#ncX9gi z@DFXj;a5=FYk!lTpnH&Ljr&y%Uj0%wH#18!jMJmM4HnJLlpPN(s}>d-C@w^rhm)4v z?CQE=QygUJ#jkeLEP^Jl?K|`mpuC|s;DL;Cgi7Mux7&YTioUjOE0xHQCk7gK?%r(* zh_K++%_qvZ_92`N{!vKCGZjT#@I~j}5OZeZ0ahYMZ|>X(OHvHHCUFCXn39rm8d{Nu z1FTV;slV{6_}2s6_SGS$Df{<}CCL=tiVf!VH8rm>4%O2>;`te~N^f6lbA`j-YxfPO z<0L}dlyca{L&g+u$UV(S-5bAN>xsrq$btI2pr6l9so=>|e&l4Hdx3t(bg9+_TiXos zTrSz<%9Spk{=sm5fm*ZSS%>OZMiQ|oS|0__GiT0dH-=44zW-A)ZYX(clyK6i^sfz% zLPJdr44$aWsK-jgBa)1_Z&gSDHcd(T(c@ZVp;lG#{(v5_x3`jZrmw(iLclZkYx9Y` za^=be3ybgla-)DI7YH*I=JR~f>_kD*tqdeT>6ADe5Wx!YJhzEKU_e1TH>4QNcHWUe zNs(JyeomDS)4eUNGE&_ITDd%+-`Lm~JP-Xdt0Q3sqT z`!SexA;&LRS*3-mneWunG6(*HcH7$@FBOo)GaPcp<0Ko#r%2g9f<=VnN?g?_KL^nNec-SS^oO z$UG>(9XpH|wnZ=E;uug3fRXV802kn2(v zr6GU7@oB^^%Qv0})0Zd*otMGQzdIWLl*oyti{_>VYvPaX$N0xK3yN+1byFV00jU>H zznPsB&?0RE@R0dtmoLXd`x+msRQLNHMiX2;U!GN7yCJy;?pAXYMj zKn;uKk(-y6gf`PTzi0GVBb1>=bHc=_-=e7+2M$c%NotthFuX#&u*NlJhe?u!n;V@~ z4NP$N)~#PvT4aKMEhJwEJa+6(jBa4l?T@cn?njQ?@{i?**(yVt;l6*9Kjj{#j1#Ak z+~qrcd$O~$4`2f)(>to+$!@*uy&Esy^d4eZ(=e_7aA3e0gHhYQz3Rw8i^ ztlnR_ckk$C7e~juBsqEWfeNIio)o|R(VGn0zq0%9>IP2sJ;2S!7elW4I5!m20Od9O zhA#r)3Dj*{ha6sVMgDn-22Io(6Yyh5GEloFMq%_f1PM?Y0lC?^3H4T1ZTZLB*-wjZ z0vrtFG}{(j765^;aB0pcx-3|Tcw$JG7nIoewe?73XD8lybQBYD4gn)YQ_dAHb~MvT zaL+oqZOG5wUS~kpW_r=StEJOglTt|MNX{0m{6%pbmg7>TpafEvcYp_TU3R8Tf#rVa0&L=bh zq@~qgf9|!L8iw_zI_Gpuqn);0IuYIlS?#WR3#^F)RT=y7Y);<2QP>s_gF$7V?yr)CvcE}J33Vh| zO`JHK2YJ3**$ocK%)-KvNQC1575Bu*jSiarUwC&_ch>cuGZ@TVzaiOKMsNDHO}=+I zz@me5;Y=vCCB-P=9HlLAq=-n2c>cUzKuUr%dQS)WE|vLQA^v;DBHivo+$EMi^QTi-orosWV7e7pBkH*Gz-)^z#T|uGMQC^ zh{#ADs+Nk?t+Kzd*~TU&`V=(&YK+3JTrXgcgG|oa6GktvKJ~Z->$TipsiXp__;~3& zyrAgCyjIYd#x^!FX=!QRppzyBn+<_ZQ{LKFMmRy^4*)F+drJg~6{?IYZqyw9Zwe=f z)Al(-8P8#mst8GWd3lv2Mr!J)vQ|-Od$OT2z78@Q+O4;E-kA)y8hzrZfj;=@!arp6;TgCoCv(y^Vrk|%1Xr!4!H)pfYEnXl6G^$myu^4(A5L=W%6WK50fBv*{<7THe zYJ%600yLw+gXN?UrZaXra#nuLn)=ipV3BW5Dfu5CY-X5Wzn%%)3=ol>ewO$A?W0G_ zizb?^t7a9~tVy6-=boX&-soBeN9qLb#6Vj?F8mlWn9o5Ft=4hmozI{d$_JrQ)&fn1 z8cR+~+es&|#DRcuBx-d8nXFMY zXy}lLI$QvhX2T@YG61F$o2T&Wl)}P`ix)4}Ce3C;ug`FbBabI2I{|rWZa9UM$Q{eo zJJvU_9?=L6wzal)(Km?GbAx~M zsU1833>=ZYmPflQWfycHHXC?Z2Dc21D-g-RWbm18Jfl>T6z#lpp*1!^7b&gcRqQ}CHfCmJ|kY=<*T{5OlBr-uOn30Bu z^jIK!(I+4I3(a<~#v<9jR`1P`4K^wrWhM z@7Ytmdi84UqM$2R-k{!C{;QYYzgtv(%VTzPTS&!C-A9eqo*;?Ul14xNb7R@sEZDsa zK|HULE(b6B9YMU6q@b@X`2+s({QY0wwv8iCV`Avw_9ZutL&o;>^t25Pcglj}72Nal z=eV~P(z#*~bVaI3@&Fhzqa&v3`1kMMYX?ogBNGDWS(aHur;cKhZd<5A8lA*0FRy)f z`Ey2U5ovDHX>zEgIo0pKE5$H)Y>kK`nGb79w@iS2;OhWglZ#1n0}RP5!^79l-9O=E zXx+GPb%b;=f4T6{G<069;r{qtV+-@E-Df#o%lLKJ%G_%AxE0uJ<>u|C{ z6|`oB1pl6OGzLQp{?z)xOVg=Ng=}kT8orxQ+)5T#62zG;x`^8796y8x| zOQo{9nhEIm`GL$-Bn}J>w5mUgNRurN(QRv9JF!jywE{x{nh4+{H_epB9Wr-zPJ;LcKy8WkD0YfJ{|z>AX|E%or($fu{rl43!02#bw+-F69K6w5 zpB3g)@_9{xQiWp`YOqq&r_|B2X$G1d8L=Y*vHm7}QyO zF$C8Rdy?z_)e=hwnF|YcNK8!BB+YtT7x>bt)T&p9vP?Uqe_P+VB+jWmsfFnVOc%98 zlMG^<0h_ciS&&~ZRnVpmP!x@Ec(U6v6T<44_4>L!x;ltxRUEFPmrcD2DFaR-*R?=H zLjzq~+yh_=Oy^`e>B3bcg~7;upcL>e7}|R@9N++r5%rc9TL7HE8ukv|!@|J8z);ft zX8WW3a9ZHXi!R8+$B%_0OQ%uWCC(Oh2J|gfq65U2&6eF|acSTRvRzFrYvGbr(;O2M z6E`q{L2cs5R{zU^;Wp8&tJvqv7u`(iiJE=q+LCF;`^MqGmVkrL)lUw$@%oXPS~02z zR927j4Wl&y?@FI2x`5e*dR~ybOf+aDmw?T&Sig+a(QRkUnTm394n(4m&&fT!=@OC1 zn*ORj@9QVv+Jl^-b629)RxFsopW-xu*n&Z2U@(~**weOLO-)VE=GWmS)X8Z*r6GM& zH7=-*YzxjSxD}4fbJlzV3S_!>q%8-+!LF*1@W(F1gORzFJ zhXG7sa!U#GUkTrYI&cM<3o<>wp)6x)1mvv>{=|tB%cbwY3v7crFwmj0!MIWB2M-9L2qyG&drFF`jUQ{)!ivMRjCPrr``T9V^ z4#_ot{|{YVT`H-cy_O(-7GdI5H>p76@tPO`e&X=^r zi7X2Qgu)v}z|q7)U~Gfpxe;@CPR{@ECbn~g`GqoI=a_B!{k)Y`6i!f4JE*Uo35P4r zRwG=%ayytz)&Gr^d~ink{sNJ9HdLy!!uRTxD_k32)Vs+}I^sv3{;Zte7*^fK{@_CE zKyFI>Dn-B70Cc262D^YmUQtnDY-IF|eNI8k{e`@QQV4F@f#CTYaOR|nsw%f!I*gVE zGYW=LW-!kLm-~%vQ9vrNf6CjaDEXe=URz;vDbu544@Wp&jU7QlE9|YR{}QrBG^0!! zhdYC%k#~QUVj7UU9b301*3VfR8>2Vbfx{7&EnCI~zZpGQP+5-CzkXCyR+<2|LrIYJ zMINjFjd^01<)@i(ak4uM*R;k^Cmy)Hb8FtUox655K;h2&$>qQ4(er(q;AKuAF!0Z} z?Z9BNDoIjEr1v1^u8ZQrP32Hw4p8;+}aGUW~J2Yyd?Y6k@)s_lR|4J6L|A5(6P zs7zp@I1#JMQ~7&-5xO1+LjgeI=XR*fVG9e1g5z7B5##U#OLUAOVxqu}^<^tBd|k@P zi=I6Xz=f70NFM`%2bjsG=H}7VnXAf4=crv_aeFaX;6>otWe=FcQG@B;(?gZVVYD!n z9L`jvlRVsJ-@>?{v5*dTnAMhARt<}fB$~&d;mA60qO@OF~O5raT+TS=Z&6`&uYcj1{}%HDHJQx*4~u9 zj|d`tAN?$VI?yhd4P?x{Hw16{RJR|oC5gee2@^1OuREKJriz_5k^u@Q`q z9)*RmQbmiAPBVwLRIW$6(>==#HdYQ`(ZR$p^dvTCer|;2;pRWvpKQGwHRhQgTuG!N z7{d6u5OzHJJGQy=SOluM0o;JCc(nP%`uA>FCntB70^Vebzp!_vvN{e&=#Yq~w<0 zXH#v1XYALlTUX9*0ErFV@pwo`h;Ftjg0x!Yhi`KKiA8`)!2lYQWlkXFv=rjRqhT-! zG&b%sL=7@36-JE~z+-VFbcTwRg8CmEZ8!l0)=1YTcN~iV^E!X-++QmFpJi|jFticv zR9BBw0oq$b5I?~VKUFE3?s}X?r%xo~MC0|&j*d@NM2!Sdqkj7eI4@n@F^!UHzy+bQ zWV#IJ?nOnxLlu7^q>zw{JDyp8e@@DNG8PhS}7@!@&6^(>;-d z2p@C(25*qwauH4IB!&dPYevY_apD1anY@EKxWPhIfF3d z5Sd0wU~2o~>C@K$C;bG;1VPjfAsXmlu~1>#Cp{&P+_WZyJ&}4C5@H1S5xq`9fp%$c z%K7aoe_Jb!(BJXK(BEO2t`6>uiAi^^ANVr(x}W9G!{g%A@u;?g);>tq`Nef%Oq9ef zKs*Qgo3?)%4qDOa9CdQAgDeq=wWQc=kj%T}LuWbW85jF=v6o5^8pMr%@AD7hU@=5d zS8spd zk-a|Vkk`pr{*FC+3}EB}ZcQ!v;f1P~`?~KB%OOad+`dqJXH;Xb(4fe3l04BDLK$qP z`F??R2ha~QpN5t!2kgb*@xEHH$XqmEf Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo", - "key": "22ByU02F" + "content": "{@content flex: 2}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo \n\n{@content }", + "key": "twbS3z13" }, { "style": "show_sections", - "content": "{.content flex:2}\n\n# Two Column\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n{.content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", - "key": "PeqJdaN7" + "content": "{@header}\n{@image src: https://picsum.photos/900/700?waves | flex: 2 | align: bottom_left | fit: cover}\n\n{@body}\n\n \n\n\n\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n{@content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", + "key": "i0RprPGe" }, { "style": "show_sections", - "content": "{.header}\n{.content align:bottom_right}\n\n## First\n\n{.content} \n\n\n## Header\n\n{.body flex:2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{.content}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", - "key": "lNPO0gW7" + "content": "{@header}\n{@content align: bottom_right}\n\n## First\n\n{@content} \n\n\n## Header\n\n{@body flex: 2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{@content}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", + "key": "buKIeKag" } ], "assets": [ { - "path": ".superdeck/generated/thumbnail_PeqJdaN7.png", + "path": ".superdeck/generated/thumbnail_twbS3z13.png", "width": 512, "height": 288 }, { - "path": ".superdeck/generated/thumbnail_lNPO0gW7.png", + "path": ".superdeck/generated/thumbnail_buKIeKag.png", "width": 512, "height": 288 } diff --git a/packages/superdeck/example/lib/src/style.dart b/packages/superdeck/example/lib/src/style.dart index fb8d9d13..75b3b92a 100644 --- a/packages/superdeck/example/lib/src/style.dart +++ b/packages/superdeck/example/lib/src/style.dart @@ -166,7 +166,7 @@ Style get quoteStyle { Style get showSectionsStyle { return Style( - _contentContainer.border.all( + _innerContainer.border.all( color: Colors.blue, width: 2, ), diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index 7e092d21..12f3a104 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -2,25 +2,32 @@ style: quote --- -{.content flex: 2} +{@content flex: 2} > Create your Flutter presentations faster and easier than ever. > You can quote me on that > ### Leo +{@content } + --- style: show_sections --- -{.content flex:2} +{@header} +{@image src: https://picsum.photos/900/700?waves | flex: 2 | align: bottom_left | fit: cover} + +{@body} + + + -{.image } -# Two Column +# Two Column HGoes here This is a two-column layout. You can use it to compare two different concepts or ideas. -{.content} +{@content} ### Section Options @@ -34,24 +41,24 @@ Use front matter to define the layout of each section style: show_sections --- -{.header} -{.content align:bottom_right} +{@header} +{@content align: bottom_right} ## First -{.content} +{@content} ## Header -{.body flex:2} +{@body flex: 2} ### Left Section Easily customize the content of each section to suit your needs. Use front matter to define the layout of each section -{.content} +{@content} #### Section Options diff --git a/packages/superdeck/lib/components/atoms/markdown_viewer.dart b/packages/superdeck/lib/components/atoms/markdown_viewer.dart index 8729144c..2353aaac 100644 --- a/packages/superdeck/lib/components/atoms/markdown_viewer.dart +++ b/packages/superdeck/lib/components/atoms/markdown_viewer.dart @@ -1,7 +1,7 @@ +import 'package:auto_size_text/auto_size_text.dart'; import 'package:flutter/material.dart'; import 'package:flutter_markdown/flutter_markdown.dart'; import 'package:markdown/markdown.dart' as md; -import 'package:mix/mix.dart'; import '../../helpers/constants.dart'; import '../../helpers/measure_size.dart'; @@ -153,11 +153,38 @@ Widget _imageBuilder( } class TextBuilder extends MarkdownElementBuilder { - final TextSpec? spec; + final MdTextSpec? spec; TextBuilder(this.spec); @override Widget visitText(md.Text text, TextStyle? preferredStyle) { - return TextSpecWidget(text.text, spec: spec); + return Padding( + padding: spec?.padding ?? EdgeInsets.zero, + child: Text( + text.text, + style: spec?.textStyle, + ), + ); + } +} + +class HeadingTextBuilder extends MarkdownElementBuilder { + final MdHeadingSpec? spec; + HeadingTextBuilder(this.spec); + @override + Widget? visitElementAfter(md.Element element, TextStyle? preferredStyle) { + final level = int.parse(element.tag.substring(1)); + final style = spec?.textStyle; + + return Padding( + padding: spec?.padding ?? EdgeInsets.zero, + child: AutoSizeText( + element.textContent, + style: style?.copyWith( + fontSize: style.fontSize! + (6 - level) * 4, + fontWeight: FontWeight.bold, + ), + ), + ); } } diff --git a/packages/superdeck/lib/components/atoms/slide_view.dart b/packages/superdeck/lib/components/atoms/slide_view.dart index c3af8e0c..c24bfdda 100644 --- a/packages/superdeck/lib/components/atoms/slide_view.dart +++ b/packages/superdeck/lib/components/atoms/slide_view.dart @@ -49,11 +49,7 @@ class SlideView extends StatelessWidget { child: Stack( children: [ Positioned.fill(child: backgroundWidget), - AnimatedBoxSpecWidget( - spec: spec.innerContainer, - duration: duration, - child: SlideBuilder(slide), - ), + SlideBuilder(slide), ], ), ); diff --git a/packages/superdeck/lib/components/molecules/slide_content.dart b/packages/superdeck/lib/components/molecules/slide_content.dart index 9012c86f..6301de4e 100644 --- a/packages/superdeck/lib/components/molecules/slide_content.dart +++ b/packages/superdeck/lib/components/molecules/slide_content.dart @@ -4,6 +4,7 @@ import 'package:mix/mix.dart'; import '../../models/options_model.dart'; import '../../providers/snapshot_provider.dart'; import '../../styles/style_spec.dart'; +import '../atoms/cache_image_widget.dart'; import '../atoms/markdown_viewer.dart'; class SlideContent extends StatelessWidget { @@ -19,14 +20,18 @@ class SlideContent extends StatelessWidget { @override Widget build(context) { - final alignment = options?.align ?? ContentAlignment.center; final spec = SlideSpec.of(context); final isCapturing = SnapshotProvider.isCapturingOf(context); + final alignment = options?.align ?? ContentAlignment.center; - Widget child = AnimatedMarkdownViewer( - content: content, - spec: spec, - duration: Durations.medium1, + Widget child = AnimatedBoxSpecWidget( + duration: const Duration(milliseconds: 300), + spec: spec.contentContainer, + child: AnimatedMarkdownViewer( + content: content, + spec: spec, + duration: Durations.medium1, + ), ); if (!isCapturing) { @@ -42,11 +47,43 @@ class SlideContent extends StatelessWidget { ); } return AnimatedBoxSpecWidget( + spec: spec.innerContainer, duration: const Duration(milliseconds: 300), - spec: spec.contentContainer.copyWith( + child: Align( alignment: alignment.toAlignment(), + child: child, + ), + ); + } +} + +class ImageContent extends StatelessWidget { + const ImageContent({ + required this.options, + super.key, + }); + + final ImageOptions options; + + @override + Widget build(context) { + final spec = SlideSpec.of(context); + final alignment = options.align ?? ContentAlignment.center; + + return Container( + decoration: BoxDecoration( + color: Colors.green, + image: DecorationImage( + alignment: alignment.toAlignment(), + image: getImageProvider(options.src), + fit: options.fit?.toBoxFit() ?? BoxFit.cover, + ), + ), + child: AnimatedBoxSpecWidget( + duration: const Duration(milliseconds: 300), + spec: spec.contentContainer, + child: Container(), ), - child: child, ); } } diff --git a/packages/superdeck/lib/components/superdeck_app.dart b/packages/superdeck/lib/components/superdeck_app.dart index bd0cdf2e..fd83c01a 100644 --- a/packages/superdeck/lib/components/superdeck_app.dart +++ b/packages/superdeck/lib/components/superdeck_app.dart @@ -13,7 +13,6 @@ import '../helpers/constants.dart'; import '../helpers/routes.dart'; import '../helpers/theme.dart'; import '../providers/examples_provider.dart'; -import '../providers/snapshot_provider.dart'; import '../providers/style_provider.dart'; import 'atoms/loading_indicator.dart'; @@ -68,15 +67,11 @@ class SuperDeckApp extends HookWidget { routerConfig: goRouterConfig, theme: theme, builder: (context, child) { - return SnapshotProvider( - isCapturing: true, - child: LoadingOverlay( - isLoading: $superdeck.loading, - key: _uniqueKey, - child: $superdeck.completed - ? child! - : const SizedBox(), - ), + return LoadingOverlay( + isLoading: $superdeck.loading, + key: _uniqueKey, + child: + $superdeck.completed ? child! : const SizedBox(), ); }, ), diff --git a/packages/superdeck/lib/helpers/extensions.dart b/packages/superdeck/lib/helpers/extensions.dart index 61617665..3b2e6234 100644 --- a/packages/superdeck/lib/helpers/extensions.dart +++ b/packages/superdeck/lib/helpers/extensions.dart @@ -47,4 +47,11 @@ extension StringX on String { extension ListX on List { T? get tryFirst => isNotEmpty ? first : null; T? get tryLast => isNotEmpty ? last : null; + T? tryElementAt(int index) { + if (index < 0 || index >= length) { + return null; + } + + return elementAt(index); + } } diff --git a/packages/superdeck/lib/helpers/section_parsing.dart b/packages/superdeck/lib/helpers/section_parsing.dart index b701af01..e1cc7bae 100644 --- a/packages/superdeck/lib/helpers/section_parsing.dart +++ b/packages/superdeck/lib/helpers/section_parsing.dart @@ -5,43 +5,56 @@ import 'package:flutter/foundation.dart'; import 'package:yaml/yaml.dart'; import '../models/options_model.dart'; +import 'extensions.dart'; + +const _tagMarker = '@'; + +const _startAsTag = '{' + _tagMarker; + +final _regexMatchTagContents = RegExp('{$_tagMarker(.*?)}'); abstract class Part { const Part(); } +T? _findEnumValue( + List values, + String value, +) { + return values.firstWhereOrNull( + (element) => element.name == value, + ); +} + enum SectionPartType { root, header, body, footer; - - String get tag => '.$name'; } enum SubSectionPartType { content, image; - - String get tag => '.$name'; } -sealed class SubSectionPart extends Part { +sealed class SubSectionPart extends Part { + final SubSectionPartType type; final T options; SubSectionPart({ + required this.type, required this.options, }); } class ContentPart extends SubSectionPart { - static const tag = '.content'; final String content; ContentPart({ required this.content, required super.options, - }); + }) : super(type: SubSectionPartType.content); ContentPart copyWith({ String? content, @@ -53,12 +66,10 @@ class ContentPart extends SubSectionPart { } } -class ImagePart extends Part { - static const tag = '.image'; - final ImageOptions options; - const ImagePart({ - required this.options, - }); +class ImagePart extends SubSectionPart { + ImagePart({ + required super.options, + }) : super(type: SubSectionPartType.image); } Part? parsePart(String line) { @@ -66,28 +77,28 @@ Part? parsePart(String line) { return null; } - final tagContents = _getTagContents(line); + final (:tag, :options) = getTagContents(line); - final sectionName = SectionPartType.values.firstWhereOrNull( - (part) => tagContents.startsWith(part.tag), + final sectionName = _findEnumValue( + SectionPartType.values, + tag, ); if (sectionName != null) { return SectionPart.build( sectionName, ContentOptionsMapper.fromMap( - getOptionsMapFromLine(sectionName.tag, tagContents), + options, ), ); } - final subSectionName = SubSectionPartType.values.firstWhereOrNull( - (part) => tagContents.startsWith(part.tag), + final subSectionName = _findEnumValue( + SubSectionPartType.values, + tag, ); if (subSectionName != null) { - final options = getOptionsMapFromLine(subSectionName.tag, tagContents); - switch (subSectionName) { case SubSectionPartType.content: return ContentPart( @@ -185,7 +196,8 @@ List parseSections(String markdown, [ContentOptions? options]) { continue; } - if (trimmedLine.startsWith('{') && !trimmedLine.endsWith('}')) { + if (trimmedLine.startsWith(_startAsTag) && + _regexMatchTagContents.firstMatch(trimmedLine) == null) { throw Exception( 'Invalid syntax on line ${lineIndex}. Missing closing tag', ); @@ -205,7 +217,7 @@ List parseSections(String markdown, [ContentOptions? options]) { if (part is SectionPart) { if (part.type.index <= currentSection.type.index) { throw Exception( - 'Invalid location tag on line ${lineIndex}. ${part.type.tag} cannot be before ${currentSection.type.tag}', + 'Invalid location tag on line ${lineIndex}. ${part.type.name} cannot be before ${currentSection.type.name}', ); } @@ -213,7 +225,7 @@ List parseSections(String markdown, [ContentOptions? options]) { if (currentSection.subSections.isNotEmpty) { // throw error that says if to use any section wrapping all the content of the markdown throw Exception( - 'Invalid location tag on line ${lineIndex}. ${part.type.tag} cannot be before ${currentSection.type.tag}', + 'Invalid location tag on line ${lineIndex}. ${part.type.name} cannot be before ${currentSection.type.name}', ); } } @@ -256,52 +268,74 @@ Map _converYamlToMap(String yamlString) { } bool _isSyntax(String line) { - final trimmedLine = line.trim(); - return trimmedLine.startsWith('{') && trimmedLine.endsWith('}'); + return _regexMatchTagContents.hasMatch(line.trim()); } @visibleForTesting Map getOptionsMapFromLine( - String tag, String contents, ) { - var rawString = contents.substring(tag.length).trim(); - - if (rawString.isEmpty) { + if (contents.isEmpty) { return {}; } + try { + final params = contents.split('|').map((e) { + if (e.isEmpty) { + return ''; + } + final isKeyValue = e.contains(':'); + final parts = e.split(': ').map((e) => e.trim()).toList(); + + Object? tryBooleanValue(String value) { + final lowercase = value.toLowerCase(); + if (lowercase == 'true') { + return true; + } else if (lowercase == 'false') { + return false; + } + return value; + } - // I would like to replace any value with ":" and any number of spaces after with just ":" - final regex = RegExp(r':\s+'); - - // this will turn "key: value" into "key:value" - final values = rawString.replaceAll(regex, ':'); - - print('Values: $values'); - // Add space to is easier to separate just in case - // final values = rawString.replaceAll(': ', ':'); - - // Now I want to split every value into value also with space, and combine - // the key and value back together - final pairs = values.split(' '); + final key = parts.first; + // Treat as a boolean if no value is provided + final value = isKeyValue ? tryBooleanValue(parts.last) : true; - // Join the formatted pairs back into a string - final formattedString = pairs.join('\n').replaceAll(':', ': '); + return '$key: $value'; + }); - try { + // Join the formatted pairs back into a string + final formattedString = params.join('\n'); return _converYamlToMap(formattedString); - } catch (e) { - throw FormatException('Error parsing tags: $formattedString'); + } on Exception catch (e) { + throw FormatException('Error parsing tags: ${e}'); } } -String _getTagContents(String line) { - final regex = RegExp(r'{(.*?)}'); - final match = regex.firstMatch(line); +@visibleForTesting +({String tag, Map options}) getTagContents(String line) { + if (!_isSyntax(line)) { + throw FormatException('Error parsing tags: $line'); + } + final match = _regexMatchTagContents.firstMatch(line); + + final separator = '|||superdeck|||'; + + String tag = ''; + Map options = {}; if (match != null) { - return match.group(1)?.trim() ?? ''; + final result = match.group(1)?.trim() ?? ''; + + final parts = result.replaceFirst(' ', separator).split(separator); + + tag = parts.tryElementAt(0) ?? ''; + final optionsPart = parts.tryElementAt(1) ?? ''; + + options = getOptionsMapFromLine(optionsPart); } - return ''; + return ( + tag: tag, + options: options, + ); } diff --git a/packages/superdeck/lib/models/options_model.dart b/packages/superdeck/lib/models/options_model.dart index 26f53dae..97fb5987 100644 --- a/packages/superdeck/lib/models/options_model.dart +++ b/packages/superdeck/lib/models/options_model.dart @@ -33,30 +33,7 @@ class ContentOptions with ContentOptionsMappable { } @MappableClass() -abstract class SplitOptions with SplitOptionsMappable { - final int? _flex; - final LayoutPosition? _position; - - const SplitOptions({ - int? flex, - LayoutPosition? position, - }) : _flex = flex, - _position = position; - - int get flex => _flex ?? 1; - - LayoutPosition get position => _position ?? LayoutPosition.left; - - static final schema = SchemaShape( - { - "flex": Schema.integer, - "position": LayoutPosition.schema, - }, - ); -} - -@MappableClass() -class ImageOptions extends SplitOptions with ImageOptionsMappable { +class ImageOptions extends ContentOptions with ImageOptionsMappable { final String src; final ImageFit? fit; @@ -64,10 +41,10 @@ class ImageOptions extends SplitOptions with ImageOptionsMappable { required this.src, this.fit, super.flex, - super.position, + super.align, }); - static final schema = SplitOptions.schema.merge( + static final schema = ContentOptions.schema.merge( { "fit": ImageFit.schema, "src": Schema.string.required(), @@ -76,7 +53,7 @@ class ImageOptions extends SplitOptions with ImageOptionsMappable { } @MappableClass() -class WidgetOptions extends SplitOptions with WidgetOptionsMappable { +class WidgetOptions extends ContentOptions with WidgetOptionsMappable { final String name; final Map args; @@ -84,10 +61,10 @@ class WidgetOptions extends SplitOptions with WidgetOptionsMappable { required this.name, this.args = const {}, super.flex, - super.position, + super.align, }); - static final schema = SplitOptions.schema.merge( + static final schema = ContentOptions.schema.merge( { "name": Schema.string.required(), "args": Schema.any.optional(), diff --git a/packages/superdeck/lib/models/options_model.mapper.dart b/packages/superdeck/lib/models/options_model.mapper.dart index 90a5d40b..4b2148d5 100644 --- a/packages/superdeck/lib/models/options_model.mapper.dart +++ b/packages/superdeck/lib/models/options_model.mapper.dart @@ -527,6 +527,8 @@ class ContentOptionsMapper extends ClassMapperBase { static ContentOptionsMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = ContentOptionsMapper._()); + ImageOptionsMapper.ensureInitialized(); + WidgetOptionsMapper.ensureInitialized(); ContentAlignmentMapper.ensureInitialized(); } return _instance!; @@ -635,66 +637,6 @@ class _ContentOptionsCopyWithImpl<$R, $Out> _ContentOptionsCopyWithImpl($value, $cast, t); } -class SplitOptionsMapper extends ClassMapperBase { - SplitOptionsMapper._(); - - static SplitOptionsMapper? _instance; - static SplitOptionsMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SplitOptionsMapper._()); - ImageOptionsMapper.ensureInitialized(); - WidgetOptionsMapper.ensureInitialized(); - LayoutPositionMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SplitOptions'; - - static int? _$_flex(SplitOptions v) => v._flex; - static const Field _f$_flex = - Field('_flex', _$_flex, key: 'flex', opt: true); - static LayoutPosition? _$_position(SplitOptions v) => v._position; - static const Field _f$_position = - Field('_position', _$_position, key: 'position', opt: true); - - @override - final MappableFields fields = const { - #_flex: _f$_flex, - #_position: _f$_position, - }; - @override - final bool ignoreNull = true; - - static SplitOptions _instantiate(DecodingData data) { - throw MapperException.missingConstructor('SplitOptions'); - } - - @override - final Function instantiate = _instantiate; - - static SplitOptions fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SplitOptions fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SplitOptionsMappable { - String toJson(); - Map toMap(); - SplitOptionsCopyWith get copyWith; -} - -abstract class SplitOptionsCopyWith<$R, $In extends SplitOptions, $Out> - implements ClassCopyWith<$R, $In, $Out> { - $R call({int? flex, LayoutPosition? position}); - SplitOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - class ImageOptionsMapper extends ClassMapperBase { ImageOptionsMapper._(); @@ -702,9 +644,9 @@ class ImageOptionsMapper extends ClassMapperBase { static ImageOptionsMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = ImageOptionsMapper._()); - SplitOptionsMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized(); ImageFitMapper.ensureInitialized(); - LayoutPositionMapper.ensureInitialized(); + ContentAlignmentMapper.ensureInitialized(); } return _instance!; } @@ -717,19 +659,19 @@ class ImageOptionsMapper extends ClassMapperBase { static ImageFit? _$fit(ImageOptions v) => v.fit; static const Field _f$fit = Field('fit', _$fit, opt: true); - static int? _$_flex(ImageOptions v) => v._flex; - static const Field _f$_flex = - Field('_flex', _$_flex, key: 'flex', opt: true); - static LayoutPosition? _$_position(ImageOptions v) => v._position; - static const Field _f$_position = - Field('_position', _$_position, key: 'position', opt: true); + static int? _$flex(ImageOptions v) => v.flex; + static const Field _f$flex = + Field('flex', _$flex, opt: true); + static ContentAlignment? _$align(ImageOptions v) => v.align; + static const Field _f$align = + Field('align', _$align, opt: true); @override final MappableFields fields = const { #src: _f$src, #fit: _f$fit, - #_flex: _f$_flex, - #_position: _f$_position, + #flex: _f$flex, + #align: _f$align, }; @override final bool ignoreNull = true; @@ -738,8 +680,8 @@ class ImageOptionsMapper extends ClassMapperBase { return ImageOptions( src: data.dec(_f$src), fit: data.dec(_f$fit), - flex: data.dec(_f$_flex), - position: data.dec(_f$_position)); + flex: data.dec(_f$flex), + align: data.dec(_f$align)); } @override @@ -793,9 +735,9 @@ extension ImageOptionsValueCopy<$R, $Out> } abstract class ImageOptionsCopyWith<$R, $In extends ImageOptions, $Out> - implements SplitOptionsCopyWith<$R, $In, $Out> { + implements ContentOptionsCopyWith<$R, $In, $Out> { @override - $R call({String? src, ImageFit? fit, int? flex, LayoutPosition? position}); + $R call({String? src, ImageFit? fit, int? flex, ContentAlignment? align}); ImageOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } @@ -812,19 +754,19 @@ class _ImageOptionsCopyWithImpl<$R, $Out> {String? src, Object? fit = $none, Object? flex = $none, - Object? position = $none}) => + Object? align = $none}) => $apply(FieldCopyWithData({ if (src != null) #src: src, if (fit != $none) #fit: fit, if (flex != $none) #flex: flex, - if (position != $none) #position: position + if (align != $none) #align: align })); @override ImageOptions $make(CopyWithData data) => ImageOptions( src: data.get(#src, or: $value.src), fit: data.get(#fit, or: $value.fit), - flex: data.get(#flex, or: $value._flex), - position: data.get(#position, or: $value._position)); + flex: data.get(#flex, or: $value.flex), + align: data.get(#align, or: $value.align)); @override ImageOptionsCopyWith<$R2, ImageOptions, $Out2> $chain<$R2, $Out2>( @@ -839,8 +781,8 @@ class WidgetOptionsMapper extends ClassMapperBase { static WidgetOptionsMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = WidgetOptionsMapper._()); - SplitOptionsMapper.ensureInitialized(); - LayoutPositionMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized(); + ContentAlignmentMapper.ensureInitialized(); } return _instance!; } @@ -853,19 +795,19 @@ class WidgetOptionsMapper extends ClassMapperBase { static Map _$args(WidgetOptions v) => v.args; static const Field> _f$args = Field('args', _$args, opt: true, def: const {}); - static int? _$_flex(WidgetOptions v) => v._flex; - static const Field _f$_flex = - Field('_flex', _$_flex, key: 'flex', opt: true); - static LayoutPosition? _$_position(WidgetOptions v) => v._position; - static const Field _f$_position = - Field('_position', _$_position, key: 'position', opt: true); + static int? _$flex(WidgetOptions v) => v.flex; + static const Field _f$flex = + Field('flex', _$flex, opt: true); + static ContentAlignment? _$align(WidgetOptions v) => v.align; + static const Field _f$align = + Field('align', _$align, opt: true); @override final MappableFields fields = const { #name: _f$name, #args: _f$args, - #_flex: _f$_flex, - #_position: _f$_position, + #flex: _f$flex, + #align: _f$align, }; @override final bool ignoreNull = true; @@ -874,8 +816,8 @@ class WidgetOptionsMapper extends ClassMapperBase { return WidgetOptions( name: data.dec(_f$name), args: data.dec(_f$args), - flex: data.dec(_f$_flex), - position: data.dec(_f$_position)); + flex: data.dec(_f$flex), + align: data.dec(_f$align)); } @override @@ -930,7 +872,7 @@ extension WidgetOptionsValueCopy<$R, $Out> } abstract class WidgetOptionsCopyWith<$R, $In extends WidgetOptions, $Out> - implements SplitOptionsCopyWith<$R, $In, $Out> { + implements ContentOptionsCopyWith<$R, $In, $Out> { MapCopyWith<$R, String, dynamic, ObjectCopyWith<$R, dynamic, dynamic>> get args; @override @@ -938,7 +880,7 @@ abstract class WidgetOptionsCopyWith<$R, $In extends WidgetOptions, $Out> {String? name, Map? args, int? flex, - LayoutPosition? position}); + ContentAlignment? align}); WidgetOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } @@ -959,19 +901,19 @@ class _WidgetOptionsCopyWithImpl<$R, $Out> {String? name, Map? args, Object? flex = $none, - Object? position = $none}) => + Object? align = $none}) => $apply(FieldCopyWithData({ if (name != null) #name: name, if (args != null) #args: args, if (flex != $none) #flex: flex, - if (position != $none) #position: position + if (align != $none) #align: align })); @override WidgetOptions $make(CopyWithData data) => WidgetOptions( name: data.get(#name, or: $value.name), args: data.get(#args, or: $value.args), - flex: data.get(#flex, or: $value._flex), - position: data.get(#position, or: $value._position)); + flex: data.get(#flex, or: $value.flex), + align: data.get(#align, or: $value.align)); @override WidgetOptionsCopyWith<$R2, WidgetOptions, $Out2> $chain<$R2, $Out2>( diff --git a/packages/superdeck/lib/models/slide_model.dart b/packages/superdeck/lib/models/slide_model.dart index f498ef92..ac0f5d54 100644 --- a/packages/superdeck/lib/models/slide_model.dart +++ b/packages/superdeck/lib/models/slide_model.dart @@ -91,8 +91,7 @@ class SimpleSlide extends Slide with SimpleSlideMappable { } @MappableClass() -abstract class SplitSlide extends Slide - with SplitSlideMappable { +abstract class SplitSlide extends Slide with SplitSlideMappable { final T options; SplitSlide({ diff --git a/packages/superdeck/lib/models/slide_model.mapper.dart b/packages/superdeck/lib/models/slide_model.mapper.dart index b45dd7b7..cbdbf293 100644 --- a/packages/superdeck/lib/models/slide_model.mapper.dart +++ b/packages/superdeck/lib/models/slide_model.mapper.dart @@ -314,7 +314,6 @@ class SplitSlideMapper extends SubClassMapperBase { WidgetSlideMapper.ensureInitialized(); ContentOptionsMapper.ensureInitialized(); TransitionOptionsMapper.ensureInitialized(); - SplitOptionsMapper.ensureInitialized(); } return _instance!; } @@ -322,11 +321,11 @@ class SplitSlideMapper extends SubClassMapperBase { @override final String id = 'SplitSlide'; @override - Function get typeFactory => (f) => f>(); + Function get typeFactory => (f) => f>(); - static SplitOptions _$options(SplitSlide v) => v.options; - static dynamic _arg$options(f) => f(); - static const Field _f$options = + static dynamic _$options(SplitSlide v) => v.options; + static dynamic _arg$options(f) => f(); + static const Field _f$options = Field('options', _$options, arg: _arg$options); static String? _$title(SplitSlide v) => v.title; static const Field _f$title = @@ -375,10 +374,10 @@ class SplitSlideMapper extends SubClassMapperBase { @override DecodingContext inherit(DecodingContext context) { - return context.inherit(args: () => [SplitOptions]); + return context.inherit(args: () => [dynamic]); } - static SplitSlide _instantiate(DecodingData data) { + static SplitSlide _instantiate(DecodingData data) { throw MapperException.missingSubclass( 'SplitSlide', 'layout', '${data.value['layout']}'); } @@ -386,26 +385,24 @@ class SplitSlideMapper extends SubClassMapperBase { @override final Function instantiate = _instantiate; - static SplitSlide fromMap( - Map map) { + static SplitSlide fromMap(Map map) { return ensureInitialized().decodeMap>(map); } - static SplitSlide fromJson(String json) { + static SplitSlide fromJson(String json) { return ensureInitialized().decodeJson>(json); } } -mixin SplitSlideMappable { +mixin SplitSlideMappable { String toJson(); Map toMap(); SplitSlideCopyWith, SplitSlide, SplitSlide, T> get copyWith; } -abstract class SplitSlideCopyWith<$R, $In extends SplitSlide, $Out, - T extends SplitOptions> implements SlideCopyWith<$R, $In, $Out> { - SplitOptionsCopyWith<$R, SplitOptions, T> get options; +abstract class SplitSlideCopyWith<$R, $In extends SplitSlide, $Out, T> + implements SlideCopyWith<$R, $In, $Out> { @override ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? get contentOptions; diff --git a/packages/superdeck/lib/templates/image_template.dart b/packages/superdeck/lib/templates/image_template.dart deleted file mode 100644 index a398ed3d..00000000 --- a/packages/superdeck/lib/templates/image_template.dart +++ /dev/null @@ -1,52 +0,0 @@ -part of 'templates.dart'; - -class ImageTemplate extends SplitTemplateBuilder { - const ImageTemplate( - super.model, { - super.key, - }); - - @override - Widget build(BuildContext context) { - final spec = SlideSpec.of(context); - final src = config.options.src; - final boxFit = config.options.fit?.toBoxFit() ?? spec.image.fit; - - // THis slide breaks in half and I want to calculate the size based on if its in top or bottom - // or left or right. Also there is a property called flex which is how much of the slide it takes - // so I can use that to calculate the size of the canvas - final firstHalf = config.contentOptions?.flex ?? 1; - final imageHalf = config.options.flex; - -// available size const width = 1280.0; -//const height = 720.0; - - double width; - double height; - const availableSize = kResolution; - if (config.options.position.isHorizontal()) { - width = availableSize.width * firstHalf / (firstHalf + imageHalf); - height = availableSize.height; - } else { - width = availableSize.width; - height = availableSize.height * firstHalf / (firstHalf + imageHalf); - } - - final side = Container( - height: spec.image.height ?? height, - width: spec.image.width ?? width, - alignment: spec.image.alignment, - decoration: BoxDecoration( - image: DecorationImage( - image: getImageProvider(src, targetSize: Size(width, height)), - centerSlice: spec.image.centerSlice, - repeat: spec.image.repeat ?? ImageRepeat.noRepeat, - filterQuality: spec.image.filterQuality ?? FilterQuality.low, - fit: boxFit, - ), - ), - ); - - return buildSplitSlide(side); - } -} diff --git a/packages/superdeck/lib/templates/simple_template.dart b/packages/superdeck/lib/templates/simple_template.dart index 7809a072..51eae3f1 100644 --- a/packages/superdeck/lib/templates/simple_template.dart +++ b/packages/superdeck/lib/templates/simple_template.dart @@ -1,7 +1,7 @@ part of 'templates.dart'; -class SimpleTemplate extends TemplateBuilder { - const SimpleTemplate( +class BaseTemplate extends TemplateBuilder { + const BaseTemplate( super.config, { super.key, }); diff --git a/packages/superdeck/lib/templates/template_builder.dart b/packages/superdeck/lib/templates/template_builder.dart index 7d8abe92..a2d92728 100644 --- a/packages/superdeck/lib/templates/template_builder.dart +++ b/packages/superdeck/lib/templates/template_builder.dart @@ -8,9 +8,7 @@ sealed class TemplateBuilder extends StatelessWidget { static TemplateBuilder buildTemplate(T config) { return switch (config) { - (SimpleSlide c) => SimpleTemplate(c), - (WidgetSlide c) => WidgetTemplate(c), - (ImageSlide c) => ImageTemplate(c), + (SimpleSlide c) => BaseTemplate(c), (InvalidSlide c) => InvalidTemplate(c), _ => throw UnimplementedError( 'Slide config not implemented ${config.runtimeType}'), @@ -28,16 +26,18 @@ sealed class TemplateBuilder extends StatelessWidget { flex: sectionFlex, child: Row( children: section.subSections.map((part) { - if (part is ContentPart) { - return Expanded( - flex: part.options.flex ?? 1, - child: SlideContent( - content: part.content, - options: part.options, - ), - ); - } - return Container(); + return Expanded( + flex: part.options.flex ?? 1, + child: switch (part) { + (ImagePart p) => ImageContent( + options: p.options, + ), + (ContentPart p) => SlideContent( + content: p.content, + options: p.options, + ), + }, + ); }).toList(), ), ); @@ -60,34 +60,3 @@ sealed class TemplateBuilder extends StatelessWidget { ); } } - -abstract class SplitTemplateBuilder - extends TemplateBuilder { - const SplitTemplateBuilder( - super.config, { - super.key, - }); - - Widget buildSplitSlide(Widget side) { - final position = config.options.position; - final flex = config.options.flex; - - List children = [ - Expanded(child: render()), - Expanded(flex: flex, child: side), - ]; - - if (position == LayoutPosition.left || position == LayoutPosition.top) { - children = children.reversed.toList(); - } - - final isVertical = - position == LayoutPosition.top || position == LayoutPosition.bottom; - - if (isVertical) { - return Column(children: children); - } else { - return Row(children: children); - } - } -} diff --git a/packages/superdeck/lib/templates/templates.dart b/packages/superdeck/lib/templates/templates.dart index 8dcd58c5..79300e19 100644 --- a/packages/superdeck/lib/templates/templates.dart +++ b/packages/superdeck/lib/templates/templates.dart @@ -1,18 +1,12 @@ import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; -import '../components/atoms/cache_image_widget.dart'; -import '../components/molecules/code_preview.dart'; import '../components/molecules/slide_content.dart'; -import '../helpers/constants.dart'; import '../helpers/section_parsing.dart'; import '../models/options_model.dart'; import '../models/slide_model.dart'; -import '../providers/examples_provider.dart'; import '../styles/style_spec.dart'; -part 'image_template.dart'; part 'invalid_template.dart'; part 'simple_template.dart'; part 'template_builder.dart'; -part 'widget_example_template.dart'; diff --git a/packages/superdeck/lib/templates/widget_example_template.dart b/packages/superdeck/lib/templates/widget_example_template.dart deleted file mode 100644 index 7f2e3169..00000000 --- a/packages/superdeck/lib/templates/widget_example_template.dart +++ /dev/null @@ -1,26 +0,0 @@ -part of 'templates.dart'; - -class WidgetTemplate extends SplitTemplateBuilder { - const WidgetTemplate( - super.model, { - super.key, - }); - - @override - Widget build(BuildContext context) { - final options = config.options; - - final exampleBuilder = ExamplesProvider.of(context)[options.name]; - - return buildSplitSlide( - Builder( - builder: (context) { - return ExamplePreview( - args: options.args, - builder: exampleBuilder!, - ); - }, - ), - ); - } -} diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index 1c393ea5..ee70e289 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: open_filex: ^4.5.0 google_generative_ai: ^0.4.4 meta: ^1.15.0 + auto_size_text: ^3.0.0 dev_dependencies: flutter_test: diff --git a/packages/superdeck/test/helpers/section_parsing_test.dart b/packages/superdeck/test/helpers/section_parsing_test.dart index a233bd6d..ef00e186 100644 --- a/packages/superdeck/test/helpers/section_parsing_test.dart +++ b/packages/superdeck/test/helpers/section_parsing_test.dart @@ -8,13 +8,13 @@ void main() { group('Successful cases', () { test('Header with columns', () { const markdown = ''' -{.header} +{@header} # Header Title -{.content} +{@content} Header content column 1. -{.content} +{@content} Header content column 2. '''; @@ -34,11 +34,11 @@ Header content column 2. test('Body with columns', () { const markdown = ''' -{.body} -{.content} +{@body} +{@content} Body content column 1. -{.content} +{@content} Body content column 2. '''; @@ -56,11 +56,11 @@ Body content column 2. test('Footer with columns', () { const markdown = ''' -{.footer} -{.content} +{@footer} +{@content} Footer content column 1. -{.content} +{@content} Footer content column 2. '''; @@ -78,10 +78,10 @@ Footer content column 2. test('Only columns without header, body, or footer', () { const markdown = ''' -{.content} +{@content} Content column 1. -{.content} +{@content} Content column 2. '''; @@ -99,21 +99,21 @@ Content column 2. test('Header, body, and footer with columns', () { const markdown = ''' -{.header} +{@header} # Header Title -{.content} +{@content} Header content column. -{.body} -{.content} +{@body} +{@content} Body content column 1. -{.content} +{@content} Body content column 2. -{.footer} -{.content} +{@footer} +{@content} Footer content column. '''; @@ -142,13 +142,13 @@ Footer content column. const markdown = ''' # Regular Markdown -{.content} +{@content} This is some regular markdown content. -{.header} +{@header} ## Header Title -{.content} +{@content} Content inside the header. '''; @@ -158,16 +158,16 @@ Content inside the header. test('Fail case - Header appears after body', () { const markdown = ''' -{.body} +{@body} # Body Title -{.content} +{@content} Content in the body. -{.header} +{@header} ## Header Title -{.content} +{@content} Content in the header. '''; @@ -177,16 +177,16 @@ Content in the header. test('Fail case - Body appears after footer', () { const markdown = ''' -{.footer} +{@footer} # Footer Title -{.content} +{@content} Content in the footer. -{.body} +{@body} ## Body Title -{.content} +{@content} Content in the body. '''; @@ -199,11 +199,11 @@ Content in the body. group('ContentPart - Attribute Testing', () { test('Header with columns and flex attribute', () { const markdown = ''' -{.header} -{.content flex:1 } +{@header} +{@content flex:1 } Header content column 1. -{.content flex:2} +{@content flex:2} Header content column 2. '''; @@ -226,11 +226,11 @@ Header content column 2. test('Body with columns and alignment attribute in snake case', () { const markdown = ''' -{.body} -{.content align:center} +{@body} +{@content align:center} Body content column 1. -{.content align:bottom_right} +{@content align:bottom_right} Body content column 2. '''; @@ -256,11 +256,11 @@ Body content column 2. test('Footer with columns, flex, and alignment attributes in snake case', () { const markdown = ''' -{.footer} -{.content flex:3 align:top_left} +{@footer} +{@content flex:3 | align:top_left} Footer content column 1. -{.content flex:1 align:center_right} +{@content flex:1 | align:center_right} Footer content column 2. '''; @@ -288,19 +288,19 @@ Footer content column 2. test('Mixed header, body, and footer with columns and attributes', () { const markdown = ''' -{.header} -{.content flex:1 align:center} +{@header} +{@content flex:1 | align:center} Header content. -{.body} -{.content flex:2 align:center_left} +{@body} +{@content flex:2 | align:center_left} Body content column 1. -{.content flex:1 align:center_right} +{@content flex:1 | align:center_right} Body content column 2. -{.footer} -{.content flex:1 align:bottom_center} +{@footer} +{@content flex:1 | align:bottom_center} Footer content. '''; @@ -341,13 +341,13 @@ Footer content. const markdown = ''' # Regular Markdown -{.content flex:1} +{@content flex:1} This is some regular markdown content. -{.header} +{@header} ## Header Title -{.content} +{@content} Content inside the header. '''; @@ -357,8 +357,8 @@ Content inside the header. test('Fail case - Invalid flex attribute format', () { const markdown = ''' -{.header} -{.content flex:invalid} +{@header} +{@content flex:invalid} Header content. '''; @@ -368,8 +368,8 @@ Header content. test('Fail case - Invalid alignment attribute value', () { const markdown = ''' -{.header} -{.content align:invalid_alignment} +{@header} +{@content align:invalid_alignment} Header content. '''; @@ -382,16 +382,16 @@ Header content. group('ContentPart - Inheritance', () { test('Columns inherit options from the parent', () { const markdown = ''' -{.header align:center} -{.content} +{@header align:center} +{@content} Header content. -{.body align:top_left flex:2} -{.content flex:3} +{@body align:top_left | flex:2} +{@content flex:3} Body content. -{.footer align:bottom_right flex:1} -{.content align:bottom_right} +{@footer align:bottom_right | flex:1} +{@content align:bottom_right} Footer content. '''; @@ -417,52 +417,87 @@ Footer content. }); }); - // getOptionsMapFromLine group( - 'getOptionsMapFromLine', + 'getTagContents', () { test('Empty string', () { - final result = getOptionsMapFromLine('tag', 'tag'); - expect(result, equals({})); + final result = getTagContents('{@tag}'); + expect(result.tag, equals('tag')); + expect(result.options, isEmpty); }); test('Single key-value pair', () { - final result = getOptionsMapFromLine('tag', 'tag key1: value1'); - expect(result, equals({'key1': 'value1'})); + final result = getTagContents('{@tag key1: value1}'); + expect(result.tag, equals('tag')); + expect(result.options, equals({'key1': 'value1'})); }); test('Multiple key-value pairs', () { - final result = - getOptionsMapFromLine('tag', 'tag key1: value1 key2: value2'); - expect(result, equals({'key1': 'value1', 'key2': 'value2'})); + final result = getTagContents('{@tag key1: value1 | key2: value2}'); + expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); }); test('Extra spaces', () { - final result = - getOptionsMapFromLine('tag', 'tag key1: value1 key2: value2 '); - expect(result, equals({'key1': 'value1', 'key2': 'value2'})); + final result = getTagContents('{@tag key1: value1 | key2: value2}'); + expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); }); test('Empty value', () { - final result = getOptionsMapFromLine('tag', 'tag key1: '); - expect(result, equals({'key1': null})); + final result = getTagContents('{@tag key1:}'); + expect(result.options, equals({'key1': null})); }); test('Missing value', () { - final result = getOptionsMapFromLine('tag', 'tag key1:'); - expect(result, equals({'key1': null})); + final result = getTagContents('{@tag key1}'); + expect(result.options, equals({'key1': true})); + }); + + test('Invalid tag format', () { + expect(() => getTagContents('{@tag key1:'), throwsException); }); - test('Invalid pair', () { - expect(() => getOptionsMapFromLine('tag', 'tag key1'), throwsException); + test('Returns contents of the first tag when multiple tags are present', + () { + final result = getTagContents('{@first firstTag} {@second tag}'); + expect(result.tag, equals('first')); + expect(result.options, equals({'firstTag': true})); }); test('Mixed valid and invalid pairs', () { + final result = + getTagContents('{@tag key1: value1 | single | key2: value2}'); expect( - () => getOptionsMapFromLine( - 'tag', 'tag key1: value1 invalid key2: value2'), - throwsException, + result.tag, + equals('tag'), ); + + expect(result.options, + equals({'key1': 'value1', 'single': true, 'key2': 'value2'})); + }); + + // Test falsy value + test('Falsy value', () { + final result = getTagContents('{@tag key1: false}'); + final result2 = getTagContents('{@tag key1: "false" | key2: true}'); + expect(result.options, equals({'key1': false})); + expect(result2.options, equals({'key1': 'false', 'key2': true})); + }); + + test('Returns contents of the first tag when multiple tags are present', + () { + final result = getTagContents('{@first firstTag} {@second tag}'); + expect(result.tag, equals('first')); + expect(result.options, equals({'firstTag': true})); + }); + + test('Trims leading and trailing whitespace from tag contents', () { + final result = getTagContents('{@tag key1: value1 | key2: value2 }'); + expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); + }); + + test('Handles nested curly braces correctly', () { + expect(() => getTagContents('{@tag key1: {nested: value} }'), + throwsException); }); }, ); diff --git a/packages/superdeck/test/options_model_test.dart b/packages/superdeck/test/options_model_test.dart index 576b19df..9b690bb7 100644 --- a/packages/superdeck/test/options_model_test.dart +++ b/packages/superdeck/test/options_model_test.dart @@ -20,15 +20,14 @@ void main() { group('ImageOptions', () { test('constructor sets properties correctly', () { const options = ImageOptions( - src: 'image.png', - fit: ImageFit.cover, - flex: 3, - position: LayoutPosition.left, - ); + src: 'image.png', + fit: ImageFit.cover, + flex: 3, + align: ContentAlignment.center); expect(options.src, 'image.png'); expect(options.fit, ImageFit.cover); expect(options.flex, 3); - expect(options.position, LayoutPosition.left); + expect(options.align, ContentAlignment.center); }); }); @@ -38,12 +37,12 @@ void main() { name: 'MyWidget', args: {'key': 'value'}, flex: 2, - position: LayoutPosition.top, + align: ContentAlignment.topCenter, ); expect(options.name, 'MyWidget'); expect(options.args, {'key': 'value'}); expect(options.flex, 2); - expect(options.position, LayoutPosition.top); + expect(options.align, ContentAlignment.topCenter); }); }); diff --git a/packages/superdeck/test/templates/image_template_test.dart b/packages/superdeck/test/templates/image_template_test.dart deleted file mode 100644 index b95220a5..00000000 --- a/packages/superdeck/test/templates/image_template_test.dart +++ /dev/null @@ -1,32 +0,0 @@ -import 'package:flutter_test/flutter_test.dart'; -import 'package:superdeck/components/molecules/slide_content.dart'; -import 'package:superdeck/superdeck.dart'; -import 'package:superdeck/templates/templates.dart'; - -import '../test_helpers.dart'; - -void main() { - group('ImageTemplate', () { - final slideConfig = ImageSlide( - key: 'image-slide', - content: '', - contentOptions: const ContentOptions(), - options: const ImageOptions( - src: 'https://example.com/image.jpg', - ), - ); - - testWidgets('builds image template with correct layout', - (WidgetTester tester) async { - await tester.pumpSlide(slideConfig); - - expect(find.byType(SlideContent), findsOneWidget); - expect(find.byType(ImageTemplate), findsOneWidget); - - final finder = find.byType(ImageTemplate); - final template = tester.widget(finder); - - expect(template.config, slideConfig); - }); - }); -} diff --git a/packages/superdeck/test/templates/simple_template_test.dart b/packages/superdeck/test/templates/simple_template_test.dart index feede34b..d9d39bd8 100644 --- a/packages/superdeck/test/templates/simple_template_test.dart +++ b/packages/superdeck/test/templates/simple_template_test.dart @@ -12,10 +12,10 @@ void main() { final slideConfig = SimpleSlide(content: rawMarkdown, key: 'simple-slide'); testWidgets('builds content', (WidgetTester tester) async { await tester.pumpSlide(slideConfig); - final finder = find.byType(SimpleTemplate); + final finder = find.byType(BaseTemplate); expect(finder, findsOneWidget); // Check if template model equals to slide model - final template = tester.widget(finder); + final template = tester.widget(finder); expect(template.config, slideConfig); }); }); diff --git a/superdeck.code-workspace b/superdeck.code-workspace index cdf01b27..948d2ca1 100644 --- a/superdeck.code-workspace +++ b/superdeck.code-workspace @@ -15,24 +15,24 @@ ], "settings": { "workbench.colorCustomizations": { - "activityBar.activeBackground": "#3c0b66", - "activityBar.background": "#3c0b66", + "activityBar.activeBackground": "#003a3f", + "activityBar.background": "#003a3f", "activityBar.foreground": "#e7e7e7", "activityBar.inactiveForeground": "#e7e7e799", - "activityBarBadge.background": "#905510", + "activityBarBadge.background": "#bf00b0", "activityBarBadge.foreground": "#e7e7e7", "commandCenter.border": "#e7e7e799", - "sash.hoverBorder": "#3c0b66", - "statusBar.background": "#210638", + "sash.hoverBorder": "#003a3f", + "statusBar.background": "#000b0c", "statusBar.foreground": "#e7e7e7", - "statusBarItem.hoverBackground": "#3c0b66", - "statusBarItem.remoteBackground": "#210638", + "statusBarItem.hoverBackground": "#003a3f", + "statusBarItem.remoteBackground": "#000b0c", "statusBarItem.remoteForeground": "#e7e7e7", - "titleBar.activeBackground": "#210638", + "titleBar.activeBackground": "#000b0c", "titleBar.activeForeground": "#e7e7e7", - "titleBar.inactiveBackground": "#21063899", + "titleBar.inactiveBackground": "#000b0c99", "titleBar.inactiveForeground": "#e7e7e799" }, - "peacock.color": "#210638" + "peacock.color": "#000b0c" } } \ No newline at end of file From 66db32b14c48114deffa59e129e3b3675f27c879 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Wed, 21 Aug 2024 08:57:29 -0400 Subject: [PATCH 04/27] wip --- .gitignore | 1 + melos.yaml | 1 - packages/superdeck/build.yaml | 10 +- .../.superdeck/generated/mermaid_BTVEzSEg.png | Bin 0 -> 17207 bytes .../.superdeck/generated/mermaid_spzwggdT.png | Bin 0 -> 24887 bytes .../generated/thumbnail_buKIeKag.png | Bin 19616 -> 0 bytes .../generated/thumbnail_i0RprPGe.png | Bin 147565 -> 0 bytes .../generated/thumbnail_twbS3z13.png | Bin 9960 -> 0 bytes .../superdeck/example/.superdeck/slides.json | 64 +- .../superdeck/example/TESTTEST_GFcAteuq.json | 1 + .../superdeck/example/TESTTEST_GhPSyqne.json | 1 + .../superdeck/example/TESTTEST_QpZaQP4T.json | 1 + .../superdeck/example/TESTTEST_Sz6GvdYE.json | 1 + .../superdeck/example/TESTTEST_k00ce27I.json | 1 + packages/superdeck/example/lib/main.dart | 1 - packages/superdeck/example/lib/src/style.dart | 63 +- .../example/lib/src/widget/mix_demo.dart | 44 +- .../superdeck/example/pubspec_overrides.yaml | 4 +- packages/superdeck/example/slides.md | 46 +- packages/superdeck/example/testest.json | 1 + .../components/atoms/cache_image_widget.dart | 1 + .../lib/components/atoms/slide_thumbnail.dart | 2 +- .../lib/components/atoms/slide_view.dart | 18 +- .../components/atoms/transition_widget.dart | 3 +- .../components/molecules/slide_content.dart | 74 +- .../components/molecules/slide_preview.dart | 2 +- .../lib/components/organisms/app_shell.dart | 1 + .../lib/components/remix/button.dart | 8 +- .../superdeck/lib/helpers/extensions.dart | 29 - .../superdeck/lib/models/slide_model.dart | 224 --- .../lib/models/slide_model.mapper.dart | 1140 ---------------- .../lib/providers/assets_provider.dart | 3 +- .../superdeck/lib/providers/controller.dart | 7 +- .../lib/providers/examples_provider.dart | 2 +- .../lib/providers/slide_provider.dart | 6 +- .../superdeck/lib/screens/export_screen.dart | 3 +- .../lib/services/export_service.dart | 2 +- .../lib/services/reference_service.dart | 2 +- .../lib/services/snapshot_service.dart | 1 + packages/superdeck/lib/superdeck.dart | 3 - .../lib/templates/invalid_template.dart | 40 - .../lib/templates/simple_template.dart | 13 - .../lib/templates/slide_template.dart | 44 + .../lib/templates/template_builder.dart | 62 - .../superdeck/lib/templates/templates.dart | 11 - packages/superdeck/pubspec.yaml | 9 +- packages/superdeck/pubspec_overrides.yaml | 3 + .../test/models/asset_model_test.dart | 2 +- .../test/models/config_model_test.dart | 3 +- .../models/deck_reference_model_test.dart | 2 +- .../superdeck/test/options_model_test.dart | 2 +- ...ate_test.dart => slide_template_test.dart} | 10 +- packages/superdeck/test/test_helpers.dart | 2 +- .../lib/src/helpers/raw_models.dart | 134 -- .../lib/src}/helpers/section_parsing.dart | 171 +-- .../lib/src/helpers/slide_parser.dart | 17 +- .../lib/src/helpers/yaml_to_map.dart | 18 +- .../lib/src/slides_pipeline.dart | 135 +- .../lib/src/tasks/image_cache_task.dart | 5 +- .../superdeck_cli/lib/src/tasks/mermaid.html | 35 + .../lib/src/tasks/mermaid_task.dart | 189 ++- .../lib/src/tasks/slide_thumbnail_task.dart | 2 +- packages/superdeck_cli/pubspec.yaml | 2 + packages/superdeck_cli/pubspec_overrides.yaml | 4 + .../src}/helpers/section_parsing_test.dart | 13 +- packages/superdeck_core/.gitignore | 7 + packages/superdeck_core/CHANGELOG.md | 3 + packages/superdeck_core/LICENSE | 29 + packages/superdeck_core/README.md | 3 + packages/superdeck_core/analysis_options.yaml | 30 + packages/superdeck_core/build.yaml | 15 + .../example/superdeck_core_example.dart | 3 + .../lib/src/helpers/extensions.dart | 37 + .../lib/src/helpers/mappers.dart | 31 + .../lib/src/helpers/yaml_to_map.dart | 11 + .../lib/src}/models/asset_model.dart | 9 +- .../lib/src}/models/asset_model.mapper.dart | 1 - .../lib/src}/models/config_model.dart | 32 +- .../lib/src}/models/config_model.mapper.dart | 148 +- .../lib/src}/models/options_model.dart | 36 +- .../lib/src}/models/options_model.mapper.dart | 24 +- .../lib/src}/models/reference_model.dart | 10 + .../src}/models/reference_model.mapper.dart | 0 .../lib/src/models/slide_model.dart | 102 ++ .../lib/src/models/slide_model.mapper.dart | 349 +++++ .../lib/src/models/slide_parts.dart | 125 ++ .../lib/src/models/slide_parts.mapper.dart | 1196 +++++++++++++++++ .../lib/src/schema/schema_model.dart | 162 +++ .../lib/src/schema/schema_validation.dart | 124 ++ .../src/schema/schema_validation.mapper.dart | 248 ++++ .../lib/src/schema/schema_values.dart | 211 +++ .../lib/src/schema/validators.dart | 218 +++ .../superdeck_core/lib/superdeck_core.dart | 13 + packages/superdeck_core/pubspec.yaml | 23 + .../test/superdeck_core_test.dart | 13 + superdeck.code-workspace | 5 + 96 files changed, 3698 insertions(+), 2219 deletions(-) create mode 100644 packages/superdeck/example/.superdeck/generated/mermaid_BTVEzSEg.png create mode 100644 packages/superdeck/example/.superdeck/generated/mermaid_spzwggdT.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_buKIeKag.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_i0RprPGe.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_twbS3z13.png create mode 100644 packages/superdeck/example/TESTTEST_GFcAteuq.json create mode 100644 packages/superdeck/example/TESTTEST_GhPSyqne.json create mode 100644 packages/superdeck/example/TESTTEST_QpZaQP4T.json create mode 100644 packages/superdeck/example/TESTTEST_Sz6GvdYE.json create mode 100644 packages/superdeck/example/TESTTEST_k00ce27I.json create mode 100644 packages/superdeck/example/testest.json delete mode 100644 packages/superdeck/lib/models/slide_model.dart delete mode 100644 packages/superdeck/lib/models/slide_model.mapper.dart delete mode 100644 packages/superdeck/lib/templates/invalid_template.dart delete mode 100644 packages/superdeck/lib/templates/simple_template.dart create mode 100644 packages/superdeck/lib/templates/slide_template.dart delete mode 100644 packages/superdeck/lib/templates/template_builder.dart rename packages/superdeck/test/templates/{simple_template_test.dart => slide_template_test.dart} (59%) delete mode 100644 packages/superdeck_cli/lib/src/helpers/raw_models.dart rename packages/{superdeck/lib => superdeck_cli/lib/src}/helpers/section_parsing.dart (55%) create mode 100644 packages/superdeck_cli/lib/src/tasks/mermaid.html create mode 100644 packages/superdeck_cli/pubspec_overrides.yaml rename packages/{superdeck/test => superdeck_cli/test/src}/helpers/section_parsing_test.dart (98%) create mode 100644 packages/superdeck_core/.gitignore create mode 100644 packages/superdeck_core/CHANGELOG.md create mode 100644 packages/superdeck_core/LICENSE create mode 100644 packages/superdeck_core/README.md create mode 100644 packages/superdeck_core/analysis_options.yaml create mode 100644 packages/superdeck_core/build.yaml create mode 100644 packages/superdeck_core/example/superdeck_core_example.dart create mode 100644 packages/superdeck_core/lib/src/helpers/extensions.dart create mode 100644 packages/superdeck_core/lib/src/helpers/mappers.dart create mode 100644 packages/superdeck_core/lib/src/helpers/yaml_to_map.dart rename packages/{superdeck/lib => superdeck_core/lib/src}/models/asset_model.dart (90%) rename packages/{superdeck/lib => superdeck_core/lib/src}/models/asset_model.mapper.dart (98%) rename packages/{superdeck/lib => superdeck_core/lib/src}/models/config_model.dart (66%) rename packages/{superdeck/lib => superdeck_core/lib/src}/models/config_model.mapper.dart (53%) rename packages/{superdeck/lib => superdeck_core/lib/src}/models/options_model.dart (80%) rename packages/{superdeck/lib => superdeck_core/lib/src}/models/options_model.mapper.dart (98%) rename packages/{superdeck/lib => superdeck_core/lib/src}/models/reference_model.dart (74%) rename packages/{superdeck/lib => superdeck_core/lib/src}/models/reference_model.mapper.dart (100%) create mode 100644 packages/superdeck_core/lib/src/models/slide_model.dart create mode 100644 packages/superdeck_core/lib/src/models/slide_model.mapper.dart create mode 100644 packages/superdeck_core/lib/src/models/slide_parts.dart create mode 100644 packages/superdeck_core/lib/src/models/slide_parts.mapper.dart create mode 100644 packages/superdeck_core/lib/src/schema/schema_model.dart create mode 100644 packages/superdeck_core/lib/src/schema/schema_validation.dart create mode 100644 packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart create mode 100644 packages/superdeck_core/lib/src/schema/schema_values.dart create mode 100644 packages/superdeck_core/lib/src/schema/validators.dart create mode 100644 packages/superdeck_core/lib/superdeck_core.dart create mode 100644 packages/superdeck_core/pubspec.yaml create mode 100644 packages/superdeck_core/test/superdeck_core_test.dart diff --git a/.gitignore b/.gitignore index 2d7bde6b..773bfae4 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,4 @@ build/ # Node file for website node_modules +.local-chrome diff --git a/melos.yaml b/melos.yaml index 91051863..b08c8802 100644 --- a/melos.yaml +++ b/melos.yaml @@ -3,7 +3,6 @@ name: superdeck_workspace sdkPath: .fvm/flutter_sdk packages: - packages/* - - packages/*/example command: bootstrap: diff --git a/packages/superdeck/build.yaml b/packages/superdeck/build.yaml index a77b33df..4fb68077 100644 --- a/packages/superdeck/build.yaml +++ b/packages/superdeck/build.yaml @@ -15,12 +15,4 @@ targets: - lib/**/*.dart mix_generator|class_utility: generate_for: - - lib/**/*.dart - -global_options: - dart_mappable_builder: - options: - caseStyle: snakeCase - enumCaseStyle: snakeCase - ignoreNull: true - generateMethods: [decode, encode, copy, stringify, equals] \ No newline at end of file + - lib/**/*.dart \ No newline at end of file diff --git a/packages/superdeck/example/.superdeck/generated/mermaid_BTVEzSEg.png b/packages/superdeck/example/.superdeck/generated/mermaid_BTVEzSEg.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e6363948cd183a49801ca6b9a6fe9ce5c0dc1b GIT binary patch literal 17207 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 LUbIM9&+GpHO`i%j literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/generated/mermaid_spzwggdT.png b/packages/superdeck/example/.superdeck/generated/mermaid_spzwggdT.png new file mode 100644 index 0000000000000000000000000000000000000000..802df6d64b359499bb6a26ecc40ed155f8246347 GIT binary patch literal 24887 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 z zY3K!m-dQp;$8kj-8M}T&n%kBH;FwA4d9ovGcZ9}m_yEJMhHqIv(bJ9}v<8X+qYn@P z=;`SV+Ym%CZ^q0A56U-tU9W=CI4+ZgTzU>*3o$A$@}n$o_Y6S-wdm=%Mn3uZ(V-k1 z>$Zmhcu##CV<2k=qX6C=e|2g&XTyEK(mLMZ6;15#?q+6ZwRSyodVAt!-xSQ0KSIIT z`}YAviV>KRGIVt3eYfcoY#1(dPKk>VH+1xSB=1{SX>DoR%bMbWtXA8!-LaW)Dd&Da zG{4qR0)EP;Qb8>(@HF5KqsYnAoWQV^GJn}2AKcG-uOcxd>A#2cCcYZ--Z&XlP8mr@YS9te>6MoI;{+($a-|ok+ zYskn1C?Z3m<5WHwxDq)2D#yjtUH;Bvlv102cYlhTkjlAX!7rQ*aE6FCbW5YlMH^|> z+MkVy;8%5lp0nzAr{H&^$CqOKVSz{oD*F%J>&_l#q|e*#Tp8Yr!Tv<$eB{vdoP%zt z%5EEU{&P|JdXoeDfvrm|pHkR%v#_PF`n*3(U-C04Wy@cnh+6`-Z&I{h#j6pf5ngFs zGzvtE%2044h1@hqhZxQGb#EUx#q%hMmgQL|N~eejd-V%J9(yjUG8IyB-ZKJD8Tc=G z%^w*7Xi@J#(~KrgMKdWiT68+lwj~pfbg+aPkIKFPA5YiBaavF9MUsItoo--1iM=5I zkx05TJDasfIQ zqrti3YU;U+r05zW+w^N9YA_>;RcE2B`3>agW4)JOl@BSxGH9Gh$ZWq?EiSIHfP1sR z5zHrg_=3UAKCtoEcs1BK{HnN{q*v|(IK{Izd_^iXG-SyF%O7*xyI^+$`-h)zQz-7D z3E&&nb(?y~uGeV3{u`9MOHO6vLwXMuN_e-X#>5`L=Z*BTSx_<&{3j@y%WfMB14l40##zRes+Ahj1tDDLR)E=G2U7(ItbLgZ z&l}rpyhV&Ij2ZIT$$HCsRJ#N4h}v67T}N)0Fo0v3FzDH8uMr&>P88PW4aXuSdiz6@ zEpW0zj_j-POr_f0F`|-yC(DFV&&Fbx=0Q2*2!%sZy``6DAXc7N$j7s3V#AE5-B?LE z7>v>1cEPX$ki3}ZpaMCAW(nc+liSDa>iI`4P3qkN$vL$>w-4dc^{hEvIPEiFQY;in z9cB<_hO+e<>`av9m>A}nHuv)|GW9;GT)szq2*X4V=%-aFx8a*&hpsUnmRD39JAre! zJNH{FelVu{yP$xr7Qhiig9@-V39W>iq@<+${RIsz_b{h9$CnB) z7>T1rVEVy{sV6`wGL&9ir27hBLN zD-?zpO?ve$KmL0l`Y7n830Ligj66?*%WDQrr;2*k5Uk~Gi~oHRxTMQ2l#SLeSu|F} zm^lH*;`LMfY37s=d&G6~C=-822VW39_<5HgRg^Q-wN}t)johSQLs>O?N|A=T7eGjt zfM_VzE(DZ{w#!c2N~UI)`?9Z-<(ZVhcZif~E_Pi5(fO08=^}(icsJGwcJ~vW_EQ`i7$d1l^*1(jXqW>IHZn6C@-g zGHBx*LBG`0)olfx*Iq{uH1-6jn4fGr1aBfNz;XfqY-#U;eOEp^QSFF#*=(P=Q4 zUePUHQsEi6w3N-$RVYZl3q|6#gHo<7danrvYwP;{{d=U;y}!E}LAOIL?8!KdrjFQu z`0&9&HEU2;UP=avsL*7yKKq)KA&E6e3cWEkr2^H`3$nj38L3>X)`Vo4TO6|Xxdy6X za=WosAy|d!X$?z~ow#hFcqCJ7uvZs0?7V7sN2ThcUw2p6xQtXQ0^seYaos=Q>tDtN z^{~cP57LK%rD|gE1y4weg@`|>6q+__XDd&-$u0jH7G=N3Omq zRZ$4?A=v8Ye$uEVhsfJe0f9Xf?K>fS+WN`oR1I*UK+f>Ql($=BOSV*941Tqc-Uw>& zOG_R=rWU4`rI3|UgCjlzC@^e@x1#x?oXo^0tm*-uM zQPF%6O68|-U%p1?I1SE@9SJ-F<2As~l8YcRD$u_lrj`&PiU$C7ifT>j3-CNLQsk{8 znK+Zf%;;bAi*94JMpHc_<_#M5p6O zvy)y+BZ22fMU$mMMuZo%*~<@*a80bxp8*^He13Zp3TdZx_ep z!JCE|RF0r=V_en1`=}y+GA3tpV`8(XbFf_WMD`xif0L)?`ML)fhKeZrVN2%{MHUDr zs9dqP9W)+!#^EWE+{W$Y)l~vgcpK_?%I%f`ms^DD@}JBUr}mFfNN4SP%Elrc1|mKI zoD#lxZ*M^&VP$ZqmX=lbt`p8m%qAfDe6?qJCJU^C#)S*OTK=TIKf9nolbG(TM`Vbr z+iB~Q=?weHU@EDAwP4xp(8b$q$h9mN`}AIuEadw=H}?$2$ypRSqnD*}?EAIuEX*L=<2XT6241^defNX~i1V8YU& zBd)|4Jm4{8s^Cb?b?tx@0Jgo53Y^BwaRogM%(!mncyNyl?j4<-Jd6+EQo0QYvMT?= zIlYONHK<8JO)VOPxW-AR_Twy6-;~PUyi0zIHAB)ZN1vy^JBx0)!5%nD(FYNRLCpUk z-=m=Spy8_>*vy5|)CT+@$-PClz zK@ww-9nz#LMLW%(u(|%kX*?sOp6|lu*Ds~|b$FeRMUNn#lU@>E!t>;9Zi`FM(-Z}u z0Ha!uAY82Z^5x6T=U3m3#V#M`2O@S{=DZca7JLL3U9MtqO9jn^%2;|m{Q3KSY_K-h zla<3y1Z-q4eIX4(rFgk)5BYVE@d+@SAVTU}zr2bml)_<_OR&A3s_Fb0iVgmLI;7Z){8yFfM z#);<$;pI@3RM>1NXVsM%A6$3l17JK^lP;YjYSo+#-_0C|e?pJ-bhst}k;(u%sTLx8 zst9)XFr0V!seNRiz()>x-3PcK3{VKkAU3RR1@v-E0q(3)gEU;Q7XYcxcf=YmXc++X zviMuDbC<(Qj^bNm!LiW%(jaFSp_Ci*C!cqY7BpJFv>R8?)XS8!ad7PHg6IE29t&fV zB@Wf41YOI{BabUXI&H?FU!Z#m+DyBEfF#YTmqc8kZY@G2ild>pxNz(GS@lS)^?xa@ zfYjrOpA}u{I~pf~_cBCEynd5H(VY~y7-Cl95}?tXW~!yn6ohz0moJx1Q8>I#xAF5Q z=ngT!+Hj$2&xbr%@h8J3_WAK z2j4L|nV|O4N+9UKF)V1(^vTs%-STTE(3!rU zGhE$#G}QJtA_6xYS`$+{DoMLx(b20Zcrf}kNqi(VUU=9Gr>Ifg zYS7-P)Khy^G{#8|$Ax9KLdf!|ZDD!FIC-oEQTK80PwhB6n;$~x%O*r{n);+vkt0?` zn-gW`k+(AoZo^c(&EAT0bL(@ZOqnv7T!i#ABT<4;>-8J;vIY+^0X{sdzkRMUqa3w|rQ(dVcxDN&pHGwpPN}T^NVMuEnQxXZeC7_~T^| zG!-D)8pR1b(0We=f`rA-1b2lrnntuZz#*D1Ry`GZp3kp5r_EXYFM31wE?&bWm872Xe^Q(=ee(GlWu61#ifaXhAIs1IWy=}X=5?|j*8%nuEqMME@x}o?y{i4Oj~kOcC#IpIYn}T2&y}sCI4Q<_ zKMuJhM>91tSEXnE_{)5p5 z;tu~uyns!$?%|c8EOX_yAP~6di41(VlQ&n3hadk~p{Cf;gKkT8&BZZv4cg}O1{+cdH zVejQ%*W79R@Fs_9V;566iBG6MG+VPPvYWd@^Ce(@{eMXUO4MJ<$+h6|Px}Ff;z>&a zmx$HADH*bOiinO5Ro_fANyPIIm5!uXDJ&^J0$eRWwq8`l4`D+XfhdAFWQGH?^`C@K zP9CuICUVNGE}Pnn7o+SJ7!*la5?KSqE#FzE?+suE?=7^Niz0{D?WdNzPyZy@?G2C{ z+<^+bu3XwWIu?%`FVT5598a& zG6VUuO#^Nq9$8*qZnD|mM%4($#P>6O07M+mqG?3;T1wxzpMN&r8&+&EINb#5H8}7* zN`SSj@4kSZEaqJ^c<$vP|KB=WwCTcT7wfUiuV3!~8gS)oDMOAzGr+&|@_JT}%9`%J zSD6K>%_U$V3?ie2%;$26Bqe~oVAl7=MSs)X@Xt>VakuT!zbxsB;#W`KhwB|Iv0#YI3wzoq!H>6hLCI!Z)T zR0q%jL|vj50&W|85es1g}8Fg z2M2b??B^%{W({4GLUo*^8GIFengp>EDqtb?y7R|?Gy*|DT!!)<>=!g1^HeojsP1qv zT)=S|E4efRh>wD_3#9?2nQVFac1L~^a(VoJ?;%9++BM=qYtz*{qlG${Ij#OWOo|;m z10sQdDh@$rVtY_jZQyy7@J>?~(IY}?YCJH5vhJXqR38e3oZ*WH-Zy~+T&7)w&by;{ zQb7hdcZ&_1QLiJ;{TGF4ZbAG06yYU6tab0bTJZO*Tlznd&(WZ30W;ihU|oSul1kVW zx0LNx5X#A>gAv!sb@Sg`0AK;xSU`3k1O#@FRHlP11!(TlSwxB)TAB0t_zIu{kR=`Y z_nK$zXm%B7sP+fQ^(6pv4=`mz0x=0P<1TtTmw^8D*Y^=bcr+$NCFD*Bgrbn&QfKrM z5T*+JHpJ~Ezm?4W0(Ei|wQg$&elRfL;6m%`d{uC&{x;;uL{kINmr%SOuqqH;k6L&` z_RZ+zw+ddZ&z}XnPPu?`akA1bTITxNZFhIv$~t4j;ulA=%TP!Qd_{<|1_e&_h*S-FPF#t;MYDS^kLe%4X5ht>6s! znA>e6Qt8aXQL{z|CO#!hGgd4{K-aP*==A#a>v?KB&{buH48Z|@ovZpuVBw@!*mw7+c?$Q8<-g}0Z3F&rLkD-Trd}N?KfJwBla>^J!wfJ((@T42{BGgEgpWNRir@r2tmh4E&8(RlgK zpT+mAND0t23Du>>56zlYNSoW(3i`F_4Eecij=rM>O5L{#ZxZHhpMhS}U9e#>{t31l zgaWTY!_l7h$&h{YYPCR$!o7P{{f-J!0Jp!@)FP34@0`h9gs6iEZ-2{R=Z8Je&{aDz zVGz(n_@iOW_ph#3_h5n20ryVchp#`8X}o{cT^yQi)!5iMh5Q`dBK0=By7@r@ z1q+%}oTlcI`brE3dc$tHv7wkun1-HSq&X1!1OIxf^m$e^3=wI?Mdk!i^S-J;Ah_VdZSk%;s`3!sr1%aoK85h>hDcpnz_3>Y11 zvMG7kCrVT6ab)FnxZhc*ozwVq>zGf~@h|;64aWC;AmceoB_Oe?(*BK~jbr&@keUGe z6hHtFdVl6I-^=iv-p;_J4Pxv4FSQcJ)BA~gUbP+=S;NCa{ddd$G@t|%0v~}2*?lT? zI=G|b>gpQqQ`9kozPXB@lK_;@?i<}qFj?YbaVaJY7G32KCu?0)h9f%LA-Q0L3jt##@N_@f)e|6=jIoeTo$!s4iG+^vrOGBz=k zH56BHRp{noJ?FHQ_S#SUYF*JHF~;w-N+wUV>>n$R>3#&$qqhZ&Kfp(%uTeSl z=~IT{(@FyoIWY-w@!v@PTZsha4a(CG zgs7_nX}3Rpk^p>0I5|g?4c}6dU1MR1UddmY+hlRGs6OP%z&A3Yc2`plbzgvCfPR?h z-o2og?d`L3lfIrSq*P*F_dy5)l&+JCb1OH=Fsu_?>i6LH9tal}7MPitn_7Z#?E2!~ zN+PhpZ^DdSeW1rqvzZF1zc>c!D4@;4Z9LKc$XfWcdQ#JA+rd14HtVSAF73V83^-yLz#8cQQ%hXchn91iDl?jodTUgXOLj(*+g`G-<+dA?JzJKMQ7B7|BvMuY@uE=TCEs6>vf`-9PP%GJ*JD4}>sslbd;A>-f0(^jgL1W9 zpSXNp_O08u^AA(}_$Z}YW&kIi)5=e#VKs$Zg!`%^6o-yi>{{`0{J^aF!B=LF3BGXWlo%&Cx*UrlG7-Fr9wD{b*vb_%^haeU>q~U*&`!WJ?mX`W7VWWiA3>H zoZbo>+^WTA(ChZ+GnH>%5KB1{Q&Tx!cRrK-!A`}*2_K{a z4B-XMPSqH?!YNet@C3Utz3@q>XAC@0S(8fl}2rd zne{yjH=MYwX3AI%%L7m3STI|Kll5EqGLxc*QTDG;S!@mSj)T4AzroEMi`Bwi1OKXW zWJ_dVqROn8x;?3ofkw4sEU;63Ww*^RgZ(y`_9Ob_w!}qUdEzRxGpwi8>B` zGV+IJ=o;o8PVa%JJN?DE0&pk+sm4FO>2JI+#0r+e=T5f=w-`K&@Q&I}FA~_MZn3j4v%%KKuys)5PAP*X953kcHmtAqg zWU(P6=uqZ&9PHzCQJ5jzxS0EX87I-`EcH~M#Mg2V1yg}yQX1*fi2pYas?MF%lQPH+ z$Rw!ZHm8_sD?H#$~Cw3i(eiy2Vh%9|h~qOn|K5^5RA z`TV^qVu;p51+&ES#7MI-DCR-0by4`R^U6u9%V=IY3aCApOp~LBkv}{R-6xg-;QNQS2n{@K^QDoa0bD?yvJVdt(UoAzIhnu*q_^N zjuqO^?(L~z|Dl_t45kLF-GJp#);5rrpPyeX{!IlU7v1Fw7JG`~;ZHYd%seb8SdI1c z*4fc9ch0q+QR#%KI$Gl4K-@F4u&@XocRdmhrbhm4mnZV4{FUS4I5>BCS!hNM#J`ez z#(^grmfKa2VtE!F(p{Sl5uiOx>{1jTSXnTzhC;{+a-(O11IRWMy zxJ0x-5P2YmmS;S#?YoOY{~5OualY*u^~I<#>#v10!LVd?TzZ0!Lc+a09hZCg9+s1_ zPD);0AB03i@Gns|=Yl1wOrgVU;@Fy@X_WzbGYD37jY-0m>5NwAg1g#3SsusC@Zd}wSY!K@R6ey zn9uJyT?eOQNy;!VdN44M%TmUbwtr$JEC^yvrdK_m4v`hspjnUVIhLM!s@O1;5HdT1JtVv}<;F{93_>`?qBwTJ$Rdg=rB3VJ-V~=SCC(9JR+Zhe6b6>Pz05>^357Oyl4A8v-Ey@cB3<=i(~5`(vjQGLgjN zklko?HOC{$g*|di5F7T*E=k@bDn&~ z`o&R&!u|qQl>;zqHEW(oP^qo(3uybUepchxbm*M zVh?k@Vh$rzweNxCopGgug@RZjWy*z=-7{X{*ND#<2#TXPpjS$1yIbSqRCrJNC$u1Q zxk!x~Vf{FjYUbTBpDnO{mn9_btJ~OQnU7!k!y0LJIW8@&i2lS0_C=5Cvgf|KAu4pJ z{ypYuW+_(7e*NBBojn0PCEnFjXoS@8+EZ~vnp2>8jS`a7j&w?lovvmDQ;~~dMm3hIh&db zMb;fp{Six0y6M#9bRmpXflx~Ddc{o_`VDQ-y?R1%mnW15N&3Wl^RoHB?+wn(Iu2y_ zIM$n_56=roI@!Ba@eclF(so*ZF;60(+ST`6d$w+oC`sYc!1oD<=i<|8sqc!q??2Iu za4@nX84rBSzdGX@++jRhgMZAS{q{jz`GI?JbYGYYo9)}LKnWx6kx3oNmSkwhfBSJ0 z16u?z{;)tSV%Mr291%~*e)GnvFHa8^(@x*F<9RZ{UV_$4m!^RjfT%QpJ~V{gw;7xs zexy+5vu-oiQGKAg6~y zY4*If5e+^IDI6kTB_OSE%`ugrthp=j4e-_~Ss`+(P zN(L`T@>0)7`)Je;5LLTqfu=~07}feo)*a4qRCG9;hRxr3`jCu3$JEN>X_B6NNbuIu zfO2l{)JYcpteeB?u*E9<2Ox>JZiQ8E&S4}ZPDQf{l3|K)bU>E9vz_mbX_i&`}x$7pDp z7VkHC{Cjbr*gP7Wt#(0!d9LflBWTZtj#yZpp6B5?hKK|<9izjLxgnhy(kDT!r$C-t zREPE#-WePrr(ys^d25U5}#WCTrA)6bhBzEs>oY(_!{Aj>32} zjA|WE0|lX$`^~FY=ZS5dpI<+f`#y6`RaFIrLIuNo1Zcwa_iRl%28PeO?$fbxaUrnr zhD(M?{;5yE0NL?#n0O@s)I${IpWoZf(H%+tJF@=U&J64lbO^W`iWoULPC$LhdM}5f zC_#)eTK}#|AQC?(T)u;!Z9k0*i?jvK<_*YxzaPlql*VEyLAPrn_xQslnAQ57h9ORd z8Fv5L&etB$2iH5B!pYlJ*fHO{saZn*VuVOT^&cGHyU``feK8QZHWMtB__bduxx0%( zsDHhsJz*jl?XFci8b`k}%AFe|$3Y` zO(Eba8MLakTK}{@C);|rcIPLI05viOfLNe$kjboXG@hZDnL}ayJk{MTPm7Ryx5>gt z+)24$Mh)+qhxN!psW^c{w;Lg>iMm|E?WA|s!5i7Fxb7K~6sM_2@&u(kFJb75c zP|4!nt}*jyHa5D8A&z3~WR2Ii{S+twkm$697Jn?z1mXD2&CvlzS#v-Qrhq2~ZV{1P z@&ueJ`s~>#X~W{rW%oMpeUJjAROFNit@fOo{4nbJ$YRwZNF3%FzT{do%$oblBd0<7 z0WC!N#tk}1MF0XRyzb$cW-A&Efs7@xqZnq9yXn=N^3T8d1`{Q4lcQmzU&{G@-ydp@ zW<|5GJOa$&)W&QF1lX(GKGSt3D{!IF=m|sp02NB1GpwqGJwVa(Q~mQL?gE>v9Rq|L zXpn_-T;Kx@zmBX7jQO4t^_cj!va99E(mEg#4>rcMGp>WKQlqX8#1I5D7Z8{ypx?Xj z4o96@MDB-{n#XX?0IU3wWa-B}TI$KKZ(z_<=vWDuhI^#$p{&>PNO*JfnM^WL=~rp%yUE2|YcY26V4~2F zy4g`RtQ{?L+HsYOPYCaMt?sXCJ)NVaR3Y*Ueu42}g#df}EwWayEMD6gmW#t(KgYX1*E- zb|I3zWIotEpYnC!?a0~4m)+H7LLbX*s1=6FsG-LP39j~>4<$Hu-We^pUm`~a??STW z=bf`>Cnz8U8KAT$$PE%8Wx6wQoYS3`%$nHLOgOC3$F$J##){yk?!!Vf*|}p-P6@o2ssZv z(zUeW>jYn)Ks{f|G1DC`Z=a)ai$#laX^X`VgR?h{&mvaPVKCIZIcIV#!)J}6)?!sY zmEb5Sl+;0ukZV6&IE@(||IXjTp~C-djhPS_#pmIb2jytA(rxF^G~_#TTZ%|#i@Q@$ zLqKD1+6c*87|y+Riz@g{pXIGv$4KK$0RMzdHin;{_F3*<%D%obca0;y+Nt94B4Eml z&iqdG7;EvVndG{5e=WV=tbn=zNxN{(#JGZw`IUhi$6wt~ zg4-ry+rnUWI9R{dKy?y9u7yPm*b6uhRiQzfRZsX7(p|sXL^^_ZscnC%n+*gp7Dh|B zuh@x0Dg=c_hd|C~dOjm)d)RY7qg$~x7NbhGMZue61cQI#vaG)UR@2~*fJgl4K9o@T z-f_x5e#gZ1P4F7Kv9a+GOnh?C!*%=`8K>DTWI=?PaO%`4pNx5ME8TXhVoHadzsUPC z3$(Qvz4wy@juP1hb8(TJN%Nj)JlNapDRHy>xVb(0MfSl7vQMvXg9W3pP8N@V5Yn<5 zbmUKF-R}N+-;MHyrG~b41WXoKl%0f35j2z^qo%g*NEF-!TQ9TMvDVfXdFQ|5deG_? zL?%%?8`Yot|H`>toeeQaem7Y2Kd4eDtBv*|N`?JcS=rH1cK`V_Z(Xn;{3Do}ftFTV z#07Uw)V9TE$3Ry%_@`zPev-86*g1PiNT|iq!tc0LDx+Rp9GjFg8!Qe(p|irD_TAFY z;Ye@GoAi0V>q~Wyv zW3gEL>N{(nsc=>V*{?fbPOWqf>6j%i$;iGKEE&u$2^Cj1e}6tbaGMl6%l=f*vW|04 z@sLg1| zp|Fx3a{jn8Wm41X^Z-n%~%-rXDrsQyE% zfeM$c7aI=*z>|EUH+~a#Qj!XjOp%}V1EBWvh>3}7q{NYOr0XiJCtGKUCHu{ks5chz> zzX`2fajB_GX|^rNCcD2b*>;wY0sRMLK>vUFQ3q2^5yFL~ z=l$MqoEm40GsgMnJA3RcxZ&nr>ss@g^H&$4it>_#cvN@@f)Gkei7O!pI(&*okAnpt zS_C>@p#Jt+Nm3Lk?!NgC{(|{hR9XcG{_(^y2|*BgL|Xi*itDGf2^SsZ;Zy7_g=?am zHXqR$(HU9n#;+G;OsAF0loJ(>T3HtrX=$xgmdgwtSQpKilNDu_tLaEhXi1tf%af4( z@CzZh+A20Q`623zMo5QPhavS`IpOSuhy=r%JeRyF=5I|DYdVLu|624_r zCyC-%Vm(G;PR^$n?XVfLLPxN4(3dZT8MJ=22@{+x+F>#TkccMIUP0hP2zdtLOCpNX zCrXOI2L`PWbOb(#D_JF#9HYrqGbZO$AQ?qynC~Ab64r;qOaeTA8;2G78bUve-=*8 zYeh{R`|;xq0Re&OnHj%(%Aa{$UQ5yZXQB2@Y-|W9C@89`stl%^{L1x86jFuuwW3L$ z|35A7rGb6@J~<;JW6b;an4#itu!(8unV2xUySvM^d^X0bad2^;dU^^lUBfjpGTQ3o zXq+ypoXj6QQT{B~9LK62lb9H`x92GS?AhR|-Q~$%YiB2ZjzVhNzdt!#&TAS8iHR*! zQ*`m{x^Ki8n_Gj4SI3Ez0waAWF+>9K$k+0&XN-EuU z&Ft#oy9;!JdX~O=9Bz~)-q)>BS$}wwhDH;vBXTwMu~UAVb6Z{rq zyLTDe-ZrD(LbdNOGlyh<{>)N%H%=z${K=L*8&qgSH{bviTW zVPveFFK5NGovxsx&CbsDetu4EM`cWKe0&`9%VeBKK|vuPIJjWk+rfeJvCBpwXHj8c zgomw}Sy1dAhQ#t8azrK$u&lsPCNNT>8)>e#MfnGM<8qzy= z?(_~0KFg6$c39{jvm2S7HgNpc|IF~*zTp^)@huKQANyS|}bu+N2n``$9zTd9B#Y}&Ko91Xs5cl^`S4KoiiS<)48 z+9)qhr!F(Zf{CVgk9+_8@mOeJ;!Tr9RB|oM(`6At4pj~`&NdB8OUt4#xjS=1dEU59 zO-&+(7a7mO-&b@l?P`jOqF2f}IFz=W!7Y5Ls^TZ7plJ8>@=~p+U$Jzvx3>>;gIAB& zogQu$=veI!jN z9~-&2xEQbd{$0F$Y-6I9uX5ZUn|NjXV9Mt*S=(oQv>b0YOX;3VFE1~zs&@Nef%+iU ze||DD4HeaO;npbsqfI#C1v?_D^7o4={+;KE0lB%%5jVIcW@_#+tVl7v(_%BXu)xvP z)s5T5BBc6W&(6USoRgE&vEV8|dpJ5d+0eEgD$e-L@(-4pnp$aDnO|UFplCg;isRbf ztDYB~1+CT9)jzwt)wDO^q9XO`-Fc;jVSfyC-`a=G>b4Fw&B(%%FTZ+I(491#f&&ZL z+nAuH^V~v14EC1$5`=w(9@_lvWwyOt5`A{&nUIt;Y&FuA#Agh}&N5 z4SjgxKt#!jn0J55Q`c1`9_Kwj!SH!0uc=_Bs1f_lXik(S0iJemCwjzdWJqc}YF{%++t5%OE=J$yJkDdHNV}4%Wa{+z*l@DW4XMRGFsYiX%36llvoS3eP7 zs2nQnzR<|XXN}(H2(mg{B57j6l#!W9_8~MZEPwm4kJ#x`DmoaHxtvZbD&;=(Q*KK% z%gf7Y85!tH-N~&7>tke#>VoAg}Yu@|!r&^Nm zu0l$Lkk<+G{gQ%$@VB=lUu{CWB=kR_q84!FEY_>XqoJYE(AK_n_bxV{{p9yRd_7*dSzZqDK0kS?uiyCM^l2hOh$+6{#Jc~ySE-zog5tH4N~*e^ zUUye4ae~rdTO@V0X~A8NUtL|Md3kwwx3aj}{$8A)Ryz^V3H_Fll_jfa&5wAXuB6m* zv@!8uQ^qe}eye9~W!J6GYmXeZc%94)l&3J~tChbiveyT`JWla)2SUOCnF>Cx-= zi?)+>H!>xoCFJF!`s-lx5zqp73V`5axFQlt7MGd9EJLn0y~*PVG>#bZh1&JS$7?5Qy^X?r2MFJE%G z;HIrendY8lW@YZ~tZ3@!+(gaA9p5@wyA7^_-K8Gmqpca4PL=1r5A4SIVOoVGEiEhr z!ewK`p*0mqcoeXX`N|@`@8iySwK)0&@bU2-Hz#Qp7Z;^uWLnCthu;@x7u+Hb=W<+D zgf(Dz@Zj3NfB&2&8)s>hnS5V1^3-XSW5KsR*%;5v#5fIGFe7N5kb5@F`tatdgu#5FeevSO__wG2Sb0UA-@j+Q z7?Z*26LKU*7$WDVoBhWv&tX08-Il+KgX!?<)$HV5CMM?JC6AHt^mK-`wY8P=GhT)O z6-jdh$C4@Oq3x_*^bKyTO1p`cmBE6UxjFxZ&iGrmZuwJVCvyeuuMV>o>I;UCK{33% zICI0ia)tK=F%ClsFBMKm$EsQ)3x$ZAn_Hw4l>Y&|xjK=!3heIB^2zyMqVng;)o+vF zP}QYc(9^T1e5>pg5t%Pnnc5yHcqcr?(I{QQqWVYW9vfR=csRaVkyaq|`t0L{g@r1Y zP1;YNK5dm4xFQmA@MW7gGYP@9WVwC&Hvj8Ix%y!aW@eG6PyHmu#Buuc9C81b zBr&r<&5XJxa73m4%;D}MNMT*pf6+HbtpB>7$8uVJ1Dn`B=X{C+rn4WTzRy9=a@V#KYm;RnATSPdWnRTG=M=Yi079xpUq$2mKM>!BO|=O z4r(0#y>VI{nt{QqQEGrD_xw4pnv3#bpv5EVOHM3bJTew7H5&|eF6g0DdDZ|AP<-7myPq3-EIrm4oHUUAwRh86|5)OD3fF!_Dk@d04 zk)!Q7vZ1olQUd@DrhtF$3k#>});NZ0YG`n((E2Vk*4(~^i;s(Ih-iq2AhHSy>bd4K zErDw@t-+|97xX-eVbiPAF!Z*vV$p^f9v&67IQqb}gS6a>G*lc`4d`~A-JGaE$H3EK@c$fXE;ynXlX zR~Qx_Qc}9n(a{snPbIV6@UNh_*UP^78%U^li^+o|`@W|mkpb?fqslGHf1AYiRTPph)?|@QVU@+#dO`Yto!Ub7N?lU$D&Pdi^e?am2{T$UU2{E4O{ymOJ~iW#OCa_lLA~XkXC?rJd?CeZ}gK07H|)rT--(GgcS zH(pD9B6!J1xgg-sjO^@0P$z_^;apWeG`Y`v&LvwzR_D zHxW+HBZs(MT^$|zw^F2^w3DnuCVwAeqQT5KRxWrQ@(riu_KO|nVH5ni>v*A z{>-ee>lQf23{wCFiNU(TV?lz4kI!X4DG>PYiSrtQpr}Y%8uIMfv#QriL|6orO>yaB z!L!1b$Hd5VOCbLAwksvC6{&hK@PvcSDPl=U$-tUG(e#cAQc}{i(ozx(ECR&@A%|%Z zQZh1zCr@hiydt8aBmirZ-`7ZUBsXY&a|P&|%41nWD=T*U7h*S34M9 z#``~7TF?PuC-A>yEG#UX-q;{Qj#dgvtjdMlBKrjYqnq^23nEbJ@a2dit@1E8SJzUv z-Nmx;ah*0wsR<(dPBp|(9@&k=H*@Z5I2PZc)tzR zWzaD&KEj5%78;=4*4*sp@kQiL&d;5SHR3LyChPwY!Kx`Q%cYH z@hlci1dyBtaQ=dPSjK-ZzXACUr{)adY6A?O@33^<#tnx_s-n~%h-mg!yJ~xE?nAM_*pdO`2SNy4?t6O~+FW17QY@68lahDhF z8Yh> zVZc_{Peq}CIupJnGX{pgmidyE3;SH1q>e4R#nkaK%TD9x=1COF%mWu+KBJ5u^c%*xLF! zO5O#@tgJdo42NN!H?z#oceK);SXo*5oBfoYvMPF z#BJWq{CjEJ74Nd41K2n8KI}G1Q0IJkt%pQd;%4Wfh1)3fJ<-w?LqMTx9UN3`6?~!g zhprREBr+&<>&!|&lINU!e8D3078_|k! z(VHpnQ$o}>GaJlTUH+3peCU0!HsZRJ?1I92(3%bZmKu)N0a{~a*7RhFUOg2&MtE-wfHs`a zE$a>^J%0ZB)oh;X^;xm8tc>f9LJ9$NF6hV8fEA8lUEVj4S`QZohKAxgul+@9qcrPD ziIh)%JOdYh1VZ&aE}T9bZf@?!N7wtsG11X}|Nc!H6}SK6E9{fJDPlW^XSley7Go7` zDFSZjl9KII@x0vJtx$Rf78bdjKn1ys+or#VUPpWZFfFgFuoPW(@l6>FV_niD;|_`G|>$KRt1g|94*ua4C?w7{FT3K@<}K*&62c`;`%p zg#k`rBPdO+p`oGw0sN@%01wK{x~T4JeZzrf5Ayo>8L;JI&Dq&Euz&sA=h9);)w*m-SXeN#u&|_+ltlmi ztFbX0EyW}Xtrl*)iLw>!7?PVeBMJ-eBTeJguV+?Q@ez%$W`rPKSFPWC^a>MNZW9!C zb_JWAot=(0swM5rOQU4$?Cfk9wfqj#z8z_~_EQa@f1}>2zrWwNLwJ0w!nWY0{?#28 z$F9_v#q`iikLR?=PlZ8@ruX-hIn91k{!Zk@2S6$Yyu#7ZaSQGn18F$hkv-dLB_6Ly z^|^Rt)|D6tm~t9MTzjGB*D5zqiW7LP$%$_AE6yF%*Vn&LQbI>8CTe&aPB)%peg2#Q zH=LfHzC2l9+p+`WX^9=Xs=C?`^dDDHia}SvKwz+c54m~^L4<^aV2dsdt&UZ4pbFXA z+8UY{f}EY7qamPPwO*c2UA`RC{9=L&*P%K`=yQ48h&DDh z;2DB#f~xPhA(S)?iqoX$?sHJ==mGm72DY}ka}A6EFaxZ1{-gGfuadKAHGx#>?d?q| z=+4v8(SeA})HHq;bl<}P6YX!gHO0>EZuLK-GD^@q+M&x-|JloZ)guCH1)@(!`EX0i z8|^j_C6KBdGI%6qHX{%0yxrU$L67Y#)_oFqF&qcz2LUw%yUO$U0pB@*I1ux&kTmEJ zGONi?T!^6e0Tlj=?kSX7JaJ7l(V>GS7t{VWFp%m;CYZr`3fBH15 zI~{K5?yU^UF6{q>LT0TisS!%;307gTRjdVz_Ux3$4N=^uuQKnU4RjkC8j=DYR+U#= zcKgm9Movx===*=aniGGP`-l$e7vGfUb+Gmp?8FOmbDN-LlMa=al|2Q5=EA1$P0^5_ zbjp*Sm4#VTQ^O+3ZUcy0(XGM{2BTZt9b$xCuPy|jqUfDiR87Ehqsps1X%fnZjrE~c z(qL=4xypS%zvT=@ph3s`dm;qnMsIC7Y#nnX8Q9xL|Nbra)8s+m>R1V*4}lRl1SFy2yzCw;1NU$OMFIK4 zt`s*6(FMVO0~a0Wa``T7Tm&&UH}^c>A0FRHNl9S_|4QyoE38&#FCT)c0FX0%J0uSu z+Kq=u$KFW?2sQpdb@S=ba%QyNh`O6LwBl0hVRpMI;QB<`o!uk7f%RW# zQU3ZIns0r*;Fm97RLEh7fMH=XUUe1eZS?U`QBk4i{kI0B)IC zRh2-kr5?Al^Xd#X34(y1F<$RM@#Du2@Jqf!d#|dUC8l}&J^AC&PA5n8likMi1MT;5 zaSVVY01v;3iXsXN3)}jmAdH3>85@^*pSvR>&|lsrC56Kvup{sb3&Y#M#a6+>-9gM? zc*e+N<0(8;p&%jg9jmm*K+Jw8_`$nNWh;5^{JJZ$P;v=HTsm|b1(52XUjtE0qW(3H zJ$MD5+yHj|&(2Pa=yrc_+QIz;_0|tKJd42TWxgyXjD~TqD}YA8n&o8|20hR7xVo@YG+RPLXP=t)9nX20eFy83A?YkUiBC_XUo3ZT)e)YReQznFDY+7Ra8v%NR7ltQ z+f+~DkB5w8D^5;U{$L{G+5EERU}Y_M%I7t96wK@MAT1(-0Q7dAD%y{7YD?{F@7}#D z1?2L$NSW7os=&m|Z0ND2|Ji*JT`&-GyH`p2Z#wSn84A1N(caX<#*0HQzIKJI@K=$(V zL*}`*Y)q1)WV#-4^iwH$d2meRU%Pya@u|B*hZ91Q;l(0@w|(D;?xv&{Qf5lMto@`p ze@yDVloCUQMP$pjc4p5M-<%~Mv1gVH@SVOLvg+=4hGNERF@M#|_EuW>_tz23-<^`Q zl*dZ=CYnA8K6-z1YK#^thtaX9P6h-LooTG^Rj?3 z@2B?Pk}poK|0PVoY1mp&7QFW&efi)*g5S+6jqd{M@4m>7YAChZaFy`&iNt1pWdF= zQJW4bII%V_pzcGW7n6u+i1W1@nj$uRSRZtQGWl=elHCrB`4E?uk%fE-dnF|s?yxie zYtilwLkSz|s=6}xcW>;(Zi<=Mg!X&>VEFp++sz{P$Yy3f{5scdbQov$70%aoYX0+( z<~QiH2$2w?#1c;W-sA}mWxsZtQ%nINx+f(sl;}jM@Fy@ta4gjZu`y>qD@zEAQjz_i z!bnuO2>6;LBqU97V4DuOPo$;M9~~Vv{rrgoPVOJ^*Hn?IsdT8Q#>1+V7nu?a^zSGqD2O4J}r zo$W2CY`y%kLMc&bZgsHK*+HpRZ@9UYfi%=$bsk;&Zah|Ht53UkwxwWjbldXB-KxXH zQF4ZSi}^cEpktzgy4nu^p&=k+wgH5+Dz^i!2jPQs0GVLmT4y}60<8#Va&i)wlSciJ z&))J?z@S!TCS7A2eVN!2Q8z>3bwdTkL3WMo5EO!z1j@rfhbcIx(I9Kz6!NS>V^igM zH7^Be1$2NJR0Yb#R#PBmy-iKkFL9?jsaMKgaVcU?ZElQHC03vut)l-oOV?{@i0Jx% zh#7ArKuW1OuL?9E*={$OrMz&I&0RtwesA9wpp-bUv*_!`iulzux7|F4zXh9C?q+Rk zp_mVoB(1MVZcb^`*TeSStJE_yli8(T%Ot>5Mw(iNXjA?yiR7}j*!!W8EH4{$P)so{ zJ$o#FSwZ&N=WjqkPE=EOHpX{}wxdN`g@}|#6y(mfrH7~Xy{9}6DAli|sHGBMCnnic_L^_)l#67u=;-a3 znx^ziZqEnvPM^zU5zx@T|1C2{k?D=) z3~GPt;2$8$5V%5%%afoJ^28C+FZ&owOedkHMh?!up{Z#g1jP)Gcj7PmfCmKw(`B~p z1iA^_lnsmMW(YiN3k)^goF?P zouHhutk12S!*)SJ!oyp^`iOb^)(?_T5(@_fl}?b02?+@i0a+N>DJnMbJn3OG5a6=1 zGMUDx0(%$0Z(DnN;vk=JK~gKwwDDwxH7h6Q7C>@P-$YD%6FzBld$hk(^a~3^v+#@vroY4=(J`ng68QH;UPxRUB{=j~t-PAc%=*SO z-VpUcGx(yn(piPlAot{PwSxUERw2Aav(G5@E2WSuGVd#bu-)BW)0p7? zlEVYR(=@SEv?})%<{SDg+Y?%LpQdDAN?Bf`g<7VYVyDkDcB` zMiQzkKqd$x0R(_*QN$4R`xw<~YS$lOWFT&{0%vys7I9y%juHySVyZz9Nds%j!O2N= z^h0dyb+uxhP+*D%Lxq|eWky#XJFnq@>MP)NLh5sIeD}K%*JG!ZfUCD8romp`+T9gf z9V#+3Fz^L+q`A2njpnfgBEBMU=j6 zi{T5n5cSib_ZtI!66H~!rN4jwep(n5YoU|nTkzF%@Rv};$3k|0{bIYFE+i~W6dZmqPCD4ez}&*b z#7t8!(F3xL@RiCA7wh&_+Uo-+#sXdcO;Qqd1623k>M%+rgOJhuN|oz2juh3Ql}%Y3 z%IHf14Y<;0WFZlHL{~qZZ&8JPReGC5;-B%`oFr-F9s#F{S292umG`96mPQ%b=W<-rz1p;e(O)X zZME|v|Cf{;`o&qzIw|=#DGh!~KAU=YV)AXBJ^jBw^U{u2g=tgth^mb=o(^-&_4kSO z{^6Uhc%~p8)0S5D5@~5^0ZHBrX#%LF_~HechldBiMjS}^RlQokvzx37g+4UDurLEU z(9y-|rs|N>$(|)7F)#rTx5EDj0^b5jset8W3rZ@gjNDwv$l}U0&Lh*{QljE-&`{n&>w9QBIt>bs#b7>} zqodViITsffs?R{eZXi$D(98@A0|TR&1LV*DA(LfPOc@#)vYa9a^+Ov-b&7$F0ht7{ ziuI+XoPiHO_-rZN;DKe)3TwBV+LI;{gfv_D=_#&$Q`Q#lq<3fV6Av8ZPkeEJh$Oa;-7zlP z9%1Ru&nc3X6{ES95z5CeSr!X*f@7al8XUL?8%_jsZ}ll?&+zVw1q5%1Euo36jvwAi z@@aXe|EAA;kDndMW!bj7Z{~A&U4DJ^&AW`2$HNLz&w0oZ0q-+PNIlL>azFwXmG&$z zecbl8B(N73qoUrak47JuJ>J#q%j6>k^Z=MadFVIW{_qKFn~ zdXCU)a|OzYL>4L_;)nHC3R6YT7 z-PQFUsT>kcz%=nXJ53(gjqMz&UdBl=F|)FY^`r>CO-YGDDGwn1@g8XF(oq`g)JJe- zuNPPqUN=8Nhe zKn3}qJOT6X7(xVoEkgP7gXV?#_Mla(j=Jn1neJ2IrEa%T+fM_=TORp(w^+CKbE!i9 zX41;(f$C{nZ!ZZgEiH(REieV3-iV;fImG+To1^C!Om+`TOCP+}(dNTIl#jAc@7r*E zCqFQd!?M)m+IhD*^P}kN_*tz-!=m1l@YarZB6hI8-bH~>lj6QpaZwTxNH)jG8g`S3 z#GifJm&DRC{lmUIK$=E`ou6uLe~G&5V&}&}B625gHa2~NAy#I4gu0%-_o}GYizwqU zy_Ee^!-FS?uM=HYQx&mL^SA8F+F|plXjX?!8773@U|f;kaRt52gqe+9bZD1HM_>=T za_x&WL>k7(84^F2At+1mXxg9Hw?p3spm-~E$Zhc2L4szyf1f}pj}&(Me@Vwe&Ku*Q zpi8j~l2KFR%gV~?)Hq82i@pTgEDCIEdhk#{n?m`MP)A$8?xu<`zJ*|4{)8IjhCXoU zM@`ha%z@IeuyPeIkn+(hrnE)kIu@Y(DDeQKRT7}`E>m6@`c2^4%305JTqU0 z0nVQ!vA?SPg^`VEj=RDn>Vov@`k(V}JzagtWKlnQ9O`0RX4rgxnL3Gn+pe&~ba`5V z3cm-E-`U>6RWDeUc8|f$7Pqr2ZgB(;0)TA!D&!CdXJ%$x=OXzAgq|DN*c7UifGY!d z+IpNkwFetypl>_EaWL|Cc6L?hj{}G>3Y~PH_zodXLH@ct5 z`fW6)bsL=j4mhsr1}id)qY{*VSwy95O-xPioe37Pf_KnHh^(+e*bq?ef1=c7JPcVv zU_C$KfKTn75k}H@!24&9yJDHU@+JfyEmjn99iCqLf6G8$ z6;27w@a#(Nx;5`4DTa1kG%+sS)jB6(@|1IA)Y={2GbKlP2v)C1e39> zMMTKd?c?(7A%<4Xo?l^|isAR(dSTD-;J)Err!DF#w+%<`gEuigbpPSoGHQBwnr`>9 zvN`O1NpEN}6U@h+^HZG+$^Q%yBt|sKt>Riv^fw*{G#=Qr|M93y%03S`)3$tul!8wK z*5I)FF$9@jwf@Q2iQ2fqZ8qR>ib6#A_yvb2C9&#W+N(j72Q9?kDG zA3dc$uU@@+0FjOAw<}gMv)AE; z5HM%cu0Y~K-J!q1G|*f9&b@N2<#+NE3OLXs3dX!0WMILPWqk648k^`Q!t#gb?%lg$ zjBgDVI^twPt>se$aIas#jyjOA-cU5ER}D!VBM6*nRM^}A9XI_8ooe36{WL~P1@MPK zwch$cp`QkE2Awx4@Ka~cj&}j30QAls-CwXu@|0HfQO!#ku=@4xHpa}?-+C~4e#8ChA$ z2f}$TsL|!86;>V#V4V3v-rpFE<|DXwRXF{lni`m&C5SqRf`^AUy|@?zr)=1tDu8d= zMCo5pzzPR1B2all{^NHw7iu{yd4uq7GfPX@2&%>*zoWW=0gnqz{j0eIGN3gNdVc_; z5GCZJD9U~PhMRB)%1H*HB%(Y|Z_ObdK+bY?FFWE` zSzafrEBtrSfgy&l5UU_td;gTvqCz$DKhu-rV2+nW!5+Q^<`CHW?Jx}wJD7w9x!OwI z_pL-QLd_LFlH@=@2#^sZZV3RgpnO6xF)?WQa6W|`qH zHiSbMF58PYDATjmJ(_4p9UIyyd{fgn+!I3pVP zUqwZ1;DDpJaY90Z)@{MOe0TH@`JtvDgiQlel=GRaNQCyZCqGMBw2(kc@rFk>V+6qoU|V#YFwsO%I&RNDE%86yd%$JdX)Dy zb*dcD;3@jU_#U5_D6{Be!Oj)PMxCxeVIfF&s@9(859ogN1QQSy4S>;{4#LxTZ#(bp zg*@8Af%jQ=;N$^#&{aN{Lc^$xT?=#qlnD=w1$G!%j2PvoYRT{gqwU!rphYN;5kFE* z{Q+k=d*Q$mlqlr%nQs=V=FyVYTb<{h2ZZ&cJv=v!m;uEPxX2HiR1^Ve}*f6PYEJCkhRYqqQcwBec(A)#o_nbF$Brt-X-KGEqXGGuvyJp!Zm!JtmZe=) zTB#pKTqyFi+;=PRA5d2$t+zz|_I94M?e(64y9^Nmx~~Q=R26iT%k@-G)o9>AB7|B8 zb(MuxyvTFKL>Zl^5%k z5SpoDtZHeOt+PeTs`}cS3qOvfqJ<(qbl1}tFb6Bz1iV>_PPbnVS(D`J?U=wPjxKB` zIgEnxd{LzzLSnlY{p$*+dG}4&AgDu!cz?2$^7`rYpPTR~lL>%-m@QnVO5FSE!AH4! zw?5SfSAdBwgYDzApFiqtJLp`0vR1p|6&QA*R#eIEr@7Ce|NLCBya(Y~p1#cAw|-4h z^xUVw#~g?^qzty{9n7H`#41R_6uEc5_*|W!zUEYtNUMW% z-z2NwPH^1#?6C3Dc5j_TbR~!Rmh?J&HN&lo7U5Y;SXFKJM|l7c1Ri7_gY(%@|5r1D zWyvUEd*2E~%RJqZ)#(|MF!55SSAIpYvh@`cua7K1Qdh7%`Dyue`}n|%Fh41#re6v% zfZQ3l&|v);ff_gd4Rkb!bW)=jyu{EG&m&H-s!3D))p+G=b!^)w<0}Dq;X{r@X0Ex? zeu@_I4(KWo)lnT>n?1=-f}wYLLQ*90FIzy2)|ZtT+$AnLvEg0<*br&fz1QBIa?tI6 z1y`X6yB?#nxRs%zG}yMW66I`yL6=Z{5UhJyX*jmY_IKZhx(K`B%){V++F5zuP^N-I zG9}_AW(;Y!6l?#$B0+(ip60ct)U<+ObT$G4E>;J&JNLJO{X*|8UX)}VF9^NzasU$j)Xro-_#=R~~*c5Q(BH_pqnbbThR}v0T&h-3z0E+TPU~f)O z`+{tmd-F9-obeqEm9_33 z{FqCAx&D4Q_9O_)u_wV1EK=*)5u?UDdwY8(gkno8 zD%#-eR4L?Ifb1Ht4CHA*mPpa|)4@unC+gH48X6iu9Lz?Yylk7CsS8jeX(Tdg3GX0(Sc1r_e`~mlOIJDF5L^Mb|vR{7n_!2pZ29kUe_Z{Y!eMJMhPpL z(zvg5_lE^lHOVNOhqqI+mU7#VZaB$@0(C5)g z0z_3OeJ;I3e(hbKf}rb;$6bB0x?pou`rc9Cr;%PF%8*U8Yq{ zLBHmjJ~mxDJnolL6nZT z>vF^6{p0BxRWMTDq+80)n_q6WNxDtA8=XHMl$7$aFkzmC^RJ9dOaavEMR3d>1=3KS zMO~c$B_*W+oT@>Y1>k96fIbL^UBNEGLq&=psfPNM4RD^r7y?Vnfcw-BVP~Qa{ez@H z3XZ@J0I6kwdw-`2)BTs=vkZYYu#p`g5&k|t9`$WtnLsg0K;{q9IKcq$!HUDaB^mWS zTQ(kr`yjxHB44P3e~K{63AeQs6%oK&ahc0kcWNxU(|rr(wyz)w{T%vbfr6jf*+tw8 zi8{h}ww9NJMu+c_ypdKVj_a7)RlVp~+&%_t6!t9v@*nwayYcZ6I+}^ny~C1x(|oGK z=DW*Wo;-)%|3iDLq&0p}oU$@TpLHjZ5>Mk6ny=12R}bWRo0fLtg7|nJJ}myzT+VL1 zsa~Qz;kxzw(c)u9SF77q;@}|!O zF~4`{*&=2TV@PYhs!3O2S@P}J7q)YwAGIngj6de-Ruqp6IdKI!zwWcsj2-%MTX$$6 z@u7_EV=?R1PZK5<1J#cv%;NeUi<4fFKYrEz-0xo5PF zP|2z1=A^##yB|ieye;X!^xfr>i?MY1Pb5vdeWZqPg5RXB#q}&HgZNmbKuk%YfrgNf zqory`g<8ramrHTedOc;kELOS@>*=7HS^h(5aiX58+WztS7fIdY=jVIDsj)eE^7mZE zGry0EdfCn3@zR`1eKqUqhhKlt;-%G8)r^PumO2dHRIIFgez1%i=CsJ-)opaFvqYNA zBi)^Gy70(HhAVGm<=|WX!gud07~Z$#*i@AC-m;$xyc5O4I@{6Vzde;L;dNv9^&TS>7rc$}d7=PXsT-kHcTd z|Dthhe6o2@Euc01_qeC&;$rmj-`y}-RjmV+#&!zf1KabX^01_QLIR2@SZ3#X>dU`y z3pe7KhJRta%PPFmX<9ZqFgSVtuv+W(BH6F2sTtgZW2C8q%6-x|@B-g_(J1_)Vf*-N zi72k}5=-^89q-x{ySBJWs@Kj3Plba7*FihofAa64EN-50jEpp+JG;DJ zM%J~CV^j0X|Gl{=U8vML?|go;S}bF_K*4;+J0s;%D^#Xajg{B>OU1>kTUULFccXq9Q(oeR%E-B}u-sA8*Z(RXnPa6|KWEE!+D+^q# z_`W%e+*(<)7^WcSP&JpVHRI6XSdtQuoJQy&Ih~6HlDB z&opU@Ml(MLxj*~SM(EmI?LwYEU3^7}IjdN{`OV`KSBYa4GV=#;^&iXK^QThDWoL2dT=^)KzP8gk+=-{T^pD#JyX@qgA`I9fW z3SYx-7a@fGFc|Qi$w{ZiyI{_`Jk!W1Se2L(mkJFnh)Oon7t4C>dTe4*9d?RZWsd5^ zq_fw~WLx_1+Mq`6<#r*4cSnUr5tJ?7(fK>3Btg-5jA3gH+lmzHv*rTUYkWdEmDs6g z4S3YjojPvX77zbgr#6WWi#uF-brEAt z^x#%>vqV5m}K_u>zEKgZrHx=Px#1am@3R0s$N2z&@+hyVZ}07*naRCt_Zy;+ZBS$3uOo$(H4=2K)08C6+Rv#Lmn zAVdj*2#9J)jcz>%5THjr=#4+8e}Vo7A6kH3BmqPZ5=pRGBE)7FS(TZU85!Z>gPGmw zOnTVoUiTm);fM@(a~sY*XYaMwUTa_V2mkW_EtEnj1puWLN@-wGb@lVeM)aOz4`v7Hoto*J*>-916JM!2}&IKqarO;Y$&!Ln&Zhh_bc~i>u zc@0pu_oB5yDTpxwV6=hyUUhx4oDwOer}vUGDJ62wD5dK2Wm1YLt+3Y0Yv)1;fzxT& zK10rhoHGw+UuV}fl{8X)p{M20_5|jl=05vyx-Q%T7%Yd?ZOgBsjiSUL)sq ztu>{{V?dFjytjFtL6!PgS?BE<7UXl4T;EecDJ`#^v#jO1H&IacRgdq8RCc_D;| zQfAwS+8B)16bfNk@ZQmOExN9k0#cT1t&QdK>IS6^xyaK$-_uGdtaapE7{{@GW`)+K z{;iqj8E5Ub&vP#1lIoJnV{*>qlz?2{e}+zcHRKVJXzQ06k3rdl5+G05ucF> z#-fxa#U%T>?(g*+%iAbxgxzA(G)`!(G1jmqtaUxsYa;PlqqZFO6kjNOns3Xq|9PGO z*BqB?Y**Ct`Lv%3Pq8cKOv#y23dYFVS*75g{^DP5$xe*3z~u)F6;+zz-oXO%o|4 zy!Ui{PpTKv7$ZTeChi!cY;53kI$?~#TFbI5Xsvni;sqfD?(gq8olYF~2T5WSc5Q<- zh7=dVJYlrLC^#J-c=-5{oD=P?rx3|;=Da-Oz2U08WSJKpPLF)^&A0sNzy5!4rXwfC zI0lZ#k(dkKdv?1Xtu(`s2qEy(pZ|;>{^$!XuMSx6u-jy#DMpX_@%; z>o1vyBSt46qDy8v9l8JbjyOGHRAHDG`pXymXaD7Y!~W_ON$q(5@yv@Cd%pbpzve&u z-M^*J8C5i{Kkx_t)qlAD@e-JY)PnC6jO zA~DWbtGKv1pfwn+IG@ja`0hJW4jk_v`0TSAPUjOp|LG6#R`cs$y~F5^m#^Ota^mvE zE6#Hvq=x_PU;XbCCVui;UvT~6f`a9jzkJ6q6jIUn)}ff#naqpp0~fvLc>jUx%LDs; zkFFqi7)IKD$FfBJ!{7Wz{@@S(bF9^T`Q@)E1Rjs~9Ci&kj5JNdPk#JQ(AqGLGYX9{ zmQoZsK}v}jB}Rl0>hlkb)5I_goX3gd5{OygVMvKoGTvxf?`W)|wVJC&(^}0qjkw06 zjlwvKGH^VdI1eXu$yjSK#tL{fmdE4BFhpLwe8KsArfoZ##_{&;OXg+f%fJ5($NRwB zw{N(;{f4WX7PogC=gg}&zr*kS-aq5&`g<%favqKx4m(O#oX3%e;gQqvf!p`*IP7}* z{Q+e>H!oiC`sMd=-37~R_&5LhPx<)aTW&57jORN#Z#e85y2hd{*v4YKLu-q*4aRw_ zYf#FNOF=7#)(*1lksKr6efN&F$w~lG&RJr{vm#+l-lY_r)|iqBVX1|Us`)k6 zf=Jb(OZL(<4a5`xN%$!T!AB{hLgs&M|7UE)9TkzOx*=hn=Pf~_RIRG1m6;&s7*j=F zf?9Galq}Un(=<{!hCqsOtE83H8^RaVqPER$jM+ZCsR4gQaat)bW&BB2bv-iCiKo zhl-%}#t4)mpvj?eNFuUmtTIp%7L8LC?W#;vinhMj$A?E=zj?*3@40>dfxEjq+NLGO zgjP~T=L)7u0q+~B*0W-_>jj;rTv55lmU`%2L#dZV0gZ1t?03xbL<)h3BE~=n3n@z- zvEN;BKA(7eJkswx&Us3Kp%Mx);KKIvOf5ZL9 zJ4(oS@6lG#_?BkZVO@i7dXA@w^LWoRO^oA0DKJhGN<*(3v{Iy$1kINWXsIYGm|T`1 zEQhtEAn3VmTeLQmy3XhGnbYZnwU(34il!(_Dw>!(6pY*gJ&*@q7BBkXzNHQ zP!^?)6g`#IQ><*J1}cN09Y$MWl8iwajdBKxCRdh3D~YeABudd3uTj>ZtN@HeA>>4- zdW?6tn3zK(6>7vF;B>*Mdc}+pU{x2&8iO@Yaa<{3bL12}v9(WCwN#=j zi^En-HJqO3_-0-L}FPMmSw>i zN6t3ZyYfRKbHLO8NPVT5IXLj=t}=L|>j!V{0NWMGi+wPXR0?LAX>ZSt&)T zKU4aNDznyZ0dA#6mSrKOROw|lfT6V}EDL}8w|~np4E*e8Kf^l5e!pkG-xFixd_JR; z;?Mr<&-m4^e#O7|@Bal|*Rbn)7Oj}45lW&|nz8SDj6xD+PADu&35&5(+95<);FR$w z9Eun-DrRhkQWPo!2~dTS3iB{vm1db{9*+0yc0Gr~j{Ez29`5hC{_HbS%o4n`7Dk24 z93mlQijbxhbfu6C$`rgal;T*TY(A$1m>8{b))G^uX{d-aj%=3)%9*Sa~0yG*$!P$lw1IOcukGJ<2W4U>8!EV39Iz!Vp z__iga!Z6O{0!vsh4*I?)#;3ivCd-^N(>&pF#;8I}5^UyWK{t`}dBD*SlO`;Iu50k# zv&;ejA0N+5(XO-Z!YylhaI2nH9B_ zqGbJ}{BDeq7&9Rxiq4hJOSOVCl(>))reS4!m9A81E>LOXoP_4Y%$&|gQUGlYSwTt> zL%}<#rgV{nXsiXTi7^p#BIkr}1sIf4*I8>yQNsQ$fz$cK_01*DS#m01b!AIyl~fY* zvJiqH1Yy2%D#WZX))7+XGz^SWW?llP;Yi!Qq;n3G#aK_#mY52mf)J%NMHxxll`W-$ zuC*N~c}rD*pwS4pu~uS=wQi&Ll`2n#Q6-hvYpk`#I)`2s8fOV9vqVGomab{&TaPIT zN+3=%+G@JKLuo}!;o1IILcvS+ma4ft5zdKB%2|2}EA71{n-y}c`v!(d+m#u(+6wB6L z(Ms1?y0&BGY=OkfrfC?5acg&8U0%`e_uPGa;O^rC`<@gM&&KW$q929+gf+m_?;NJ@!UuU>I=d4~UwXiG; zic(QhLRo{?inPqk%Zx6mUL?D%Q`0mOgyw*C9#X+7gSQ??Qqk1vDWwVLJHU z&IxA?#yeORV#-^8a~MusUEL5<5ajJOr{e@g({>kJzj#S0;F^W2s~g5?INou&7X~JVyq%%7!c< z$L`_+=NpV`$VJ!0nU>o2rM1WECmCV5z;}^+j#%&!?0amst>50jr)s!TN?w71)FjDpHq=C*m8mCHRzb zeQt-=>XSal+Ur<*`zv+&9CfZt!R6)U_MEFepzFF##IfJ+`R$+ooFDw)2etZ(TkISH&JXHallImoIXU@uVrt)7!uPI=y#&Eh}rPP z7eD0g?mF&sz6Wy1PK zS_rwIw87M1BniPj6S9eDY^B0M+A(eG@QdT&JWz}rUSQqnWsO$7=@YjRA|YN(Z|)dp`Z23?s75w$MMOpF0Y6^KSsDkv+} zO^DJuNLecHR0=8PDjGImH6f13F;UFJ47zal@DXDT^HOM?qvTTcDTR* zF<9TwG#xPwpcFA@VHdQ)7)J~dt)7dfgfbn5bFDHJDJfE1TOI<8Vv1<(At_=ksG{+% zVOeGY%FZ!Oktt-ZP2uk2M_yfD(Dgk{*H)^3jZaSrQejZaNSm}6VNsNp{ zp>`F}=}KSgy541D0oH2`Pn5aV8e1$;TDo}eNIB!2<*?gfR3=Q)4zSLUQjoUNvf!-4 zXhjJHT|gHo#;gigRApb~OF$r6lX9v|V15?+SJAe#fJJBZR1nG85CE|jN4_Tgwe^*9 zVxA_t-6bHuH;yAQ*ezz~s+UnsyDS#+^zCG8+pi_aL7 z0A*!F-&QnT*KM&~K#!(vdfKLEo&qUBicx5F>(OeGGokX$W)2|Q!WpXbJPJxVFq%4&oVC?#zGUc}LbTtR_0YinAgl*B^k zMBBGA<_gK9wrnbTwSASMHYINs~`Md!W@BOC0 zk2zuM=C{_0qFIZgS|JrhgA^h;C~^r{Cp4~9)uM*B-qN)@aJfn@MnbDeQS-3x*AZHrw*za~|ZScOq7)8mV zVpdANr;R4%OqvVYI1wAxwu;u8CM9wXq`XiC=(L^Z^72AxNfd3nqw9J~f!+R^<0)`= zH=q>w*0MWX5#qqS3}~x44}rVeN5*JS%F^#Hh&eG#BVYaIHz;kn{dmVXPUKQ}^Z8p; z$&?&<^ZDmh%kY6xGKa$@)>>Y^ba*dqru+LloOLKGRsFmKvVz^=lJhw6a5_oFnuH3S z=b65DwN)Z}JA@zs-^ig5S~=E)X;99QOJ*EKTq8~dirRpmG1O{Dm=f7f4IxC1#}jSW zRVDPQmvLxiHl?*v7NaexEEwbQKGHTF6B2CuzN5rRs#;xD$f?Lz%*@LoLDiRMPM7Vd zNDwJcRlZtE#SdGN`)mwLW%-( zi>gdRAxBa7dsl-FqNJxNCh7TnWlo=fJzC2^o%bLJy%zrB}5MUhQ=FI$xP!w?tOJ^ zXjI9llF{43%jaE|$TExif1VetmG@?iCFDphnp8Ao`CJ9*>1GtU$mcb+XPs(0M%5x@ zZSI(=mN&*=ox?g?S&;=}G>!9UgHXd-NrkF->XkoNl&dw)OT1fCKvtiK>9^1LJRVE2 zR?k&=-it1qPRlvRILx$Ks@~PnlT(&zHP?MuV|h-JoMnGGoc9~3Sltnnf>H7qv>_`4 zN>fQ4>2+&^u8tCFZ{8Y9+jJZIK!MZgD6B(01I~KDu-{)`U4zk1KyFRcHSIiKikknd z0M4ATRs`$90;vkfpH%%%>m>VG+zmC)K1=-TIcl?(zYEbWu|!%N-0Yq?)#q0t4oxIm;^l<>o8V&|JE9z0j;NLTS6#8`8&h) z^%XB(+%V69k|(q>l&n!k)9)@g9w%J0!#l@$cwm?&LL5*kVyx!P+t1lwXMXkNJ6^qh zD*&WGNRhj5e#6D(4Z}Dw%?r*q+}zx7clVL72xa){p)%E4p8d}>p1ugF_ z1VWVdfbSccz9+2j0`xq_rM@HlHpDG+Pl zK7=T$?VP18q%}>`FpML&A3x%}mnuJmCxK`^1FP-I`-Zg4s8mo!g18O_YaRRjfgER) zGK4T~G`BH^WeLRj$dVL&-(id)hKNZCUDQTF#vn9bvbI{p)OH??5@ocimZA^?IadH= zH3~yY24ky$OpAqaS|%tCV;WL{oB}Z|*rG*9s-bBcNijwK7=KV6ET8c_pXKawsUV zK#Ukwa2i5bC}HNat38LyOZuHB#u;xl!|BM}JG=&w?-eu|UF1tFur&c0i>>xC0YN;y zXQ;)M#L`?P8l|j%mrq&%ThgekrxXK*6apwCl^zOh9gTM+t*}NDbEsC~Dy-hDmMaJ- z+xt*jq0OpcsHW6^l>GU0eYF&EssaIvsV%NT2$2{Q)``AkQp=V#S2}(x=CTOuVoWqU zgGmN!&DJLH-eat;XVC~|DXJn1m3^@fU^xo8@%tx1VR)x?75cc32>{e1zxgy{!Vw z^%_;*sjN#aazh9_K0XqoXw8&2Xk$nz@$us=zx=yj^36A26T(8*bu~Us#58Z$N!TdE z>(`(2*=H}ArkTby9Cil*UaK;3tt3`2^VXx!`4g|=x(KV%e(l?=f%b_8DwUSan-^c} z@(DuBo7dQHO2_AZ$ma|FJn66RWnHWoC4gOCU2Wj3Yg=hYjH}4Q;%YKkMTSi)LN7r! za=@%}!djF>DdMGGtEv!!__>wztWwSl!@%R|MA4G$?;npS)03@cT4EKp09uRM*&4>M zFf0@3LLf7zfJQOb&+$b2O7)<$fs(5bE0Hn`!^r7$rftOv=)Cl|UcP*RF_vi_P)aDy zuI({e;hm%LmboUtt~HzoDg~;!yu9Gz^1#R22T+Et^(dpOt!E~Lj8=}WKY%XG3rzD7 zr88HDOS=7zNTTg_yn6M9S1(`j;ln$Yu&_HE*zNaRUS4r~`+<@I$J3c%7%4gO&9~oH z`=O}U`v3qS07*naRH^6~r0R{#^RiKpr3i(VVwAn5>cI{Htu0;O6Vvz!wYJWG&|2ea zD`2(J7+d|@^IWyi5)hXVIP6UYlktfHRi)Zv9Vse?VPY{0r_-tSJ|oMrKu!Fs2i;n? zMvKiQlYGN;T0|HWqzzTFR3VL*zUe$I@rvon^lRorOmyopjW%RCb+ z*b^q;Nw~Hqd=QcAdJawXt3xKISod2XQ%EJE5xOyDp;JpKOpDN>-ubP~QIb%##u}V< z=we7=Cd9CLpYSP)5vr_vhO;+c>5abHFqE1G)m#nsveu7Ir+VNycX7AU2OMOt0D+RUx92D}>O-D=mrrIitO7w10#-jj$(3Dwa?q^yS81y~ zB|TwH7N%*W+hhItZZxa)cjm)Csu;uX0_>%E;MBd1F>eDLCg? z;w$k zN#M(}Y<+wI2I*;_j{@I#O3n=9C`#>WEi}f|VKx64Za!mMHuiyMn_^W>$^ac*t64`% zNxbpZ8u%PEtnPuBBG!snN?A)u7F|VRD~%c}^%O#sVKyXEW68i00*OM~_x$ef{~r7O z4S)U@zhDfC%iR@4d3?X);`#=y72|N^JRGrYLo9{9?QqTzmYMVU%y1sKyu7088irvc zECJiQI@m}0nJHyTT8C?79*-yS$ve9#(|7wF<1iCL#@YtobW*u!p`cOH@1imj5?l=Z zZeQ(ZVozx=q%HB`<1NSY!0T6U$w_)ksGiI$mMEiWcQUBv)vFi0zkTHP!v`Agd2w^Y z)%6YcA3tu_?cx3bt%`I(OJ>)1eE9B;i;F#}6mD)_aDRVa!KCA`-xK1(S6_a`<>9a; z3~HclgVclTUhU-RO{3ob7%IUY|KXScItj24zCOYm)~2=ts2aaowB znPpyRjOF_38dD;wOoSiP1&cRjrE>@KXo(fAhY(?2 zwy0Wm$9X0$6LFc@^)1fz?7NntA~^<9QOyeN)6{=4?hPc+= zTRyK$eXXKZRUOw#hx6|v~; zdg)C^unG-Vc2-wVSn^u@$rmb0l1&<$EgFTK(~r)Lvy6HC2g?PVwhrNR5Qao z;hF|z4QR!#?|Jd+HE&*j&X-^PhHu|}%lCiqLzxA#h)8*DdCOYVU0$+i541R2mJm5q zmSkCE773=H)mji+N`_Pf#K`{8b^nx2i`Vx(yWLLKJ13|<{tzR_2teDmoK9!D zu9N+OI2OcV5>YC1IP5rF?D+WcBQY&_Czfct+AXGOs)CQiZnxvG-`D;O7Ypux?j^`6Ro2)0(-(*qj1|-CqvTl%d zz>jlMS*_EzR>9xOE3kgnloGTC@i3#(6Femx6+mxCPMSmk!I!^nT{yc;x!# znzn7RTJ#swxX`W^lbB>)Ls6W^foYj23fiv6I?w;{fBh*Jhih(bUh(nn$jdh!F&EC` z8D$mLD&~1&$)WncTS6STdpz;x%@rZes1o_`-8Z~``GOc6u>y);{rd0u@Zp0@TpT0nQ@Y#DIqNE`W-PWy#MZ7v?`n)@43FXWE##Cl`+6@I+6+y1Jn5t zYc!>JViqNF+j?S{nZ|;%mSqeac6+SSl$0^rkU~VGX!@SUd%CWpYgy5 zu3`=gDJOROJ^RC+{eH*cu;)CS$tBU)hOX-$SMuQCG0DEdQ#_ePZVamHH+C81Pd3JdcxOTTxi zl}U)=m5)(++g0=!rbvnkgT^S(B#e>v-4tgLm~|rXN~Mrvs1`z)W5Bksl#yW^=-LjW z6pgj$oH3=KN+O49?JY@?QcjQ~R*L{REDI|4G|q$06q{MX3@X*0uqLDg){??HwN0+4 z)!?1u@$QZn`wL95OjAOYjCT%=rbJL#de+xBHv+1x)cEr_^V#JEt!pG16-DDb)_G!* zX^!`Icl6z^zR$ukjWTaznNbyZN%gHN*PrFOu5LearK_trb)8OG`_l^8bzNmi6>Z~X z(qNj=8ggF9S%WFWvXDZd^DQMw#a!|tt&|+eDxs}R5M7f$b-$@1z-D7|t)ZAg$bm*T zl{ObTTUkd+8|We$L_Rk1*t0;kgvXB#Od+KyouvDS-*CAail&;8>WV`M_#I7SLp z#F+~*6n1@Er!>wrlZy?NWYD=mRde9jK%si-lWZ`S9Tz z9&YdG8qbRt*W{FG8qsmg%Ysvuyrd_sK+#nzQ8srDtUy7mlv=G?rlqz>M)kqV2U0^_(eK=LW3pf$|S%d=XDc zf08=fX07Dc1pa*ZgjRYBkgFY~)LzaC5}sG{N~sMbY(2D^{8zi3_(Nm0ZB)HM&J;w* zvnr;SkeQ}HSZ1L~SM{y2Bx|v`s_Tw(MMwwuX5MOv4FPz&TSzFB)S!S64SO9<@N%_4IvDPVn&f zNPoEC^74vA;ql>-VK`x(q3b-C*EbBK=JD}J+dgn}{feBD3>iv^^ZC4qJ->VZp7ZI% zi<=vqu{6$cu|IHrJTlD-$J2n_d2)iw%WGm-7=|+n_}<&^(|0?5^>=?qSY%{v*LC6u z2@|%8J;!;j+K2E&kz1kjSAf}gN8j~zL~y}mvw62urQW7#!unY#OKZduSF+I2=xtx+ zocZAoe!$C@FPY|yqgw|TJk>05&lSRy>jR444lAOI&^HM95mCnnxN?#cYIY&>Rh4N`TuH;Ot zj9VdZ7Bf}Pc-biC+Lu>S@lvg0#;^&L)(USN#WI|8KKga8?2}$aW{o@_L2jxJOa84vX>_Uo|7<{vsg%E| z`lVIixyEi)Qhna1SrMPi(cV~_=kc{_1-yyMe7r9; zY1j5f$yG0u+3$BW-qAKK(=;&8a}^&8qiZXzzYbMenU-~C0b47?U^K)K>(vvcWE~qX z?Snurp*krfwu>Xg<6MWPAti9FfEBxam}j%^<2JcZfIw6219=ThRUEa>E?0oBlZ-Tq zybhyru8yFU{$;8lV^zLLuh3K!D#1E$Hl$TMpf@XwOm`bMfU+K{6@aXp`T4&~DYdt3 zHa6gNItj&WMeNwt4O2du`>r?TG|xOtC#=@&yB*gT*L*zPvg;4^8h~>R%N#20b7on@18tqh zIq`633Ka1Rm$)!Y3n3?#7{!8O49-|o&Q%O2fGEt76bjyWzW4cC4*Ls!_S2u^OhcF# z-n@CsX&kut>;~@|K79DdI8Ho19`TJMgbAffZ3{T&c@ZGc^}Nsx(=_q;IBz}ouJ5=h zH+W;Yzq{u*zxfUG^^F`%ZK|hP`kjaVfL4ZiTDZJ8@YCP=DWzm~ZO_BqEg$a&)UuFE z!gU_sG>mgVYsEB+O;IcHL5pX9&oU3>oVmWd+@>n7e{!uNatNGH=V##aiFw+Bc-^~k z37ai-?PZGdpx+!StCc6`v?TxmsH)ym!qK!1#uQ2nTR>gaOEE@t&LlE1XN>jOwneKa z(90Uk*LzsRRQrCeGNE;vrV+cHc8;I zxFnf1#Tcyh6m1AO;j}_o5lyK&lcLO1tx%spd`i`Zs8nq?thP=8yK+N>P(^Ne10K|S zBB(k&Gi3?FDs%b7nZa1QB!pX%q1~}Ai`ZOo&Qw9U_k(- zb8=4snY{Si68C9ABt_Lzl3jjcYr1F`$ACo4D{4m^Ck z-7MeJIC4B4H-ReUY5c9x8s{z6RW_!s#ij!&t5~o;rV1~q!-6O>H8RIkL5LMP9XOpH zMWd4ojdkLW4}rUnA9?fUE#Le6`@DYrhJW+#f3c07AIDKx=zlmR@tIC-9nNK~t%KqM zZQBxANHMU4rGl!2Qm%?cx6>;Y&}TY>XFribPm3Ktr6&=sc>g7yi2i`Bh1N7JMtdll z{qBmx{sn#ik*4t&E3aVL5cWU*vx+s=%6}Ept=7Hs`CJG8GYt&lUd9y`SrAujpz`@bf%xLX+oK!S(lIl)nA-_4Ot+Toy@2@;lIaCu1l> zK^39X*SjF)dh?8uqo}u?CoHQ+Rr;A`>$fKM7kjR*uJNth@WWY|{?@fSN{Z~;9Xdf? zq?Z)uNLmuzu0dPJzCUnxyca=G(~A*Uj5Aq0yW`zw3EO- zPLott!@$02*mpfC6{cb0e4Z#-VVy^7&p0gn;ENwJ4l~X*oK9zkd7@95VSK;AAO<%Jk$QYq|q7icAP)aAt`r_;p!{XNziE-$Ybh7kIt$x@Y5rWm24LkyV8zJMcBn8S=ks%5nbs;o>gv(8DC36xqv!KzT-nw?uv$|Y|z z6rN^+q^e3c(p#slGgRNTR6jX`cP-wvRRg5y+P==gj}@r(^xa-;p7R8C)UVlYp!B4q z-V&dFvM4{@6h?ZiDMnJx#3C&UnJG}@9t~O(iYB1Q+7gT6ILu7TOi_`N7cO@_wrPl3 zah?~ng|7B!RZ7HESVF|)B-Xw)j@4mCNl5J{@c5ho_%zyXigK~8i9JkiYL#Tds53Za zL9Zgtrz9bEwo=&^nHZOH7EOUJq{;xK3TPG2m455Q!tzNGv`sQB>Jujes}-||2vUaI zJPnRZG0AjLBQel5?Y0K1C~#R8GOP1tzX>H*F{&|7<84I{Y&X%QGIem3R{wx`sot$R zQBvzns`+5OiCfz>EGeRkMWw=Y9{BMWKj!f?u;1_L+7|CU?{9B;`SRr_U_Pf*nZReR ziq&RN0g=Oxp#N_A=%@8!R#d1N}6(OZJLc;e}Ws%cm?I zs!lpY=D1j6$XV|FaB*?TGG~VKLX41;B1KIMnZ-;p3VhuFqFVlRobNWgAs19BSf#Pr zV1(}=&I{8x;_u3n&RVZT41jpyNb!ug(QTDZCH7^j(c@4o|QdGX>iE-tQk_wGGi*Ks%;xVYSN ze}BvU{Vn4#(|3-(J1~wjcXxM`Qh4*`HP<(ne0cvJYyBqJy1u@~S;sgG6_uZO9L|(V z*`3>tSFb-KhQKsV+)pE)fBuHY;}Km&JLl7x%NJLoV>qcg;Y~!Udc7;6Vq;2{C7_k& zbQ&1WBRk)J5}0$&6qU9>B~)J7)XVEZUxh@EkB|KPXFp?!fqu8cH(pvTb>2iuX`_On z)WGv3#8OJ5ssdY8km3|9^NA3I(J@v)SICKFo@s2v)%ygjd);k!&tsq@IKi8@g&8Vm-fb>h-2<&P+Sc=wz+#wZ%*;L*rWx}b@N#^G@jxko8XMM&AQl3xSx8hR z!rF{^9Ixch*O((z=G5Z15}76~X!qL1=Ta3xrMMCbti)%f6$#xiP%f_$HHi{Y5v&R& zNM$sEAdRI7#!6nc2s=b;#u5-qC6^3c)=sOG(4=^g_h*bFgDerbV(${A$X}&t9FE5m zeB0xAA*a*bZikZT-0p7<2#F^fSmM2A=gyP@a#qmVbMXf#>o`A(lVqVz8j8=fA=)i8 z5F?zU!g3r39@&%hv?7y9x}(-0IlM>Os|v?hnmwrvp;b?e@;s;e$MVZl{HOkbKjQ&OnKwPO`ir3ylvQA%Q9 zJ>BcOyL%Yj!01o#u7NcTjJABIXtHOe8kGkx;J7N7zyVK82y%=F(<}uEa>@wP49m_$ zMkxaQNkE!Okfr2|u5Sr|$CnOJ6?kIUvR8A^TTc<>HJnZ-O4Mbcq!=Ezh-=_lM4@e4 zG)+?rgZ1B)QKea-E>p>5qQJ#SP8r@=5;lnuaSn(xX)HTSbTp+DVhH$e|NXz?|N3wL zH@w^8cnXNoU>pUfH+Q(CfWQ9jZ|FBWXnnztKmLgAc0=;EEZ2OwjBwV% z`xes_aC|*gpM<9IPzu=YHt72;?(grZpbG)>IN{T;nN|aD?(y{WjEB#k5o5ysu){o0 z7%v0*O^4t8?mN7H{|?`O|2>S#csV`ecsZi$Iy8NQ%Q#^eXO>Wvom^yz%ynQ^7={Vs zI6Cv`=M zCAlk$M>dPv)FQ(=hiMj{3Dj;w?g{OFue(+;LrNjSHp02j3|1o4zE+Op!+k45Q^ZQ$ zG_24@igp4(qZqX4f25@9osBUe&g7g(flzZnML{@ab_Z2N`^zAncS@NHvIcG6!g)_; zrI6+F93#eQ!tpfYGG5Rqix5W)(}s!{@44#}J$l~Zvyxt6Q883?IO@I=i~1O~sHj%F z(@I3AJ~NT7#zG6z%G8lPF(GJ`N6mmp$S#F|^rUs=B!5@0=xeK@k>Z`u_?8Jk&ZNv# zu_Y_q22FMtd$jUvkpiFA54sj|a>tscLCL%V;@5XNpK!Q)NBRvcO`UVBa=Vo}XdO)~ zy(JSSwv8{y02c*C==6m|mW1)O+wE|BdqB<+k5A9oc6&f8?Du<|&SwnMg!3>Use;pR z!SDX~2P8v4Te37y_48YQkr15dBP{Eb^;A72njp8G=XLr7?;Y~Ybmp9{yd;)e%I|}H zCFGp1@4NFJ(+t}C8*uC+rNqA9;O20Tm**pz)$X^h8Yz z5Tg^KX`qm|Iv6`}xm*Zz$9BTti>y{AKJvXJkqP+D=p|6f2x`3oSmP7cKLq5bc|0f& zMh=|(8L8sdG)3@!7wkK4j6s}Pm!N4dPlBj6D1lJg;C*N=nS2XEBwg*8FbxxO4tR|h z%t4`KqVU9Vz#}4wVoWE*G(sCPu~4SKG#Y)g#pCNEhH%Cl@`?jXPI1eKN5NR3ghZ%B zykw&_tRuQvj5ER*FsBUVJsm8*K;)D*;XIAlU2buw-k|TdNKiOm&e-n{fOT+Pi!lbY z&f?wIUqP`m-|O*+N%Xu1}@@i<;CC@64^uac%jm*gJ>HIT)a(RCXRN&sN%*^N;qOLRVAsJoTO z8s>neZxCi;C`{vs+ua)ggz6QU>J6Jv6-_!9YQ^`P%6 z#F*&SOw)|X0N#4K@2LQ>5S0`%DdA4BGL1~N3^pq#JW3>_1E3{2Uo|@<+>#0b zX+^VSjrE`+K(ioKL5hXE1o-oz&z}r^RAI?sNw``HCfQ@FFTj>d0bn$B)6S8XMM{~9 ztO|Y;Ia?_i=`%IPu*@#_?=I7f%jE)VNW@2QHs{lsOuO>pI-632^Og%i$|b{P#HQ;A z8^ZF{Hq2;v&7l~qSlHZ*44>#ew>;WUDdOX=A93^NJ4|6lF$$ag4uAJw{tv>&ShJcQ z_|@A~74&}9M3&6YR|=$pwrwgX*ILqNnT%qZXGF>g^E@J^f}&gnT++$|)umJlPENx} znWUTvuap^xOY8yf9jsNP^UoR>$Kxxl9tugdKR-Vp#0#uzn6|25r3#a-CG);tE_mjH zkg=$3VKoL7qlysbitLvIJ53V-@Hp^=5EqO9|C`P^=&A&mufTUpl|`?mY1^s{mse^@ zh0)OR<7#s81umib4WN*q4@z|)l&V+pctgNXM7vVx+ZIs+bI1s66M9ujVj3Vgj5uivnZ;NyO&n5jYpg_UWYS2J<7}0KL7wA07*na zR6oOYEua)!+oRoVaT*4^oQ`;TdBJwO#k+U!@cTdf9^){xH7@}|pI=^(b3`r~yWJjl zhg)p7dkmKmeXnqLcZU!(U1M-$UAK;%Oq`Bw+qN^YZQC|Fwr$(y8&8ah?PM~UIJy1( zxK-zGS67{V_TFnfTC(dwc}(74Pvn6@ARC(Cz}KxF@F;qrP}r<<`{3afcQEiR+63?C zVR-Jgpl2^K3O9c^%hACywg1-#n$zCE_(9X?=%^JK$Xm*|H4x#6;H~Mb2uX}SlZyTp zl%u)|UR0uKLSTvT`?80hb!~*MM`4~HqHtWqwKJKoxuNwwev${+r2D`B`uZX&BqF|l zxd*G$lp%#W_9^+9Px|>`L-5P@#~eb;qkwoVbiPBK2`e2evN8<+ES2>(wpte2WVDU% z_=9&@j2Ik^LAS5)QhO>m`gU6A#L*U=wUSCXoN)um7*suN*I1wF^YN^AntoVq9q}cL zCIY^sEbS~>#go1_wR=EZ)&-LMPeTOj5>v(rTFu2~G%wz?o*sJ1G)#|j@pJ}D?c$!X zm@3pu9>eu#);Wv`S~82oJn}kL>paQ-Bueuu;1zqVa(5y2xE8Z>NtFKKsoz_rSH+#$ zh?oe*r^%>^OZ~B91RMWbU%}c}!BM9(=)Oqyt=E1x4o5>(5%F*dmqXQ*T|p!@<4t7F zKU)hJc8W$#UaE=BtxnIk4>^_HWIJrg`$$hMO8PK(Sa9O{?3cI`IEX$%3#be^&PGEMi)6=}*Jh&nuUSJ+?LnD06_CLSvzXBPJ9<`) z!>3}+2IOjZTqXy4sjTfk`A2$Uzi;DHfUzsP7{jxZ7mcApbW<3Dk8heJ*%U;KA4*)u z{)M#sSonSwcHVGu@pB8deD|qGPV;b{gOC~+iMThHy_c(!3<=R}OUXM64u!M3a7(Vp zbfy@(x}ql{Hq<6{4u0gncJgg`JG~iXELYF$Yq*+9NxzUajZSf+8lVh2FDNL;nzVOu z>k?h&;K^6^u;)!6?+t98XmNAaEj3YZQGlcy3jJXYOomv#1Z$Y2ojhs|6gFez2x75= z`hzDyV=xE?wqA+>Mk7VuSQqmjcd$RA0+&W=p@JM6E1?Ma3k8;Gg-5W)vGfkNd9Gc0 zC|RoJF^BkY>D}|#-YV2uEbYE`g15K-7>lAiFDLCIZihcXFyUC>VY|XRdDTI2J#A(-f?gI)eA@6 z4+z_F3?k-vQCktyr9UuO361XzmY9KpK%Ll=v zzE^3_v?w(SQk83q@w-Dh4~b<-*_=t_)A4ROP;A*9^iE%1uB6jc?r*sF4u!w|;Q0Ic zjvXD5qjYjNtsT1a4f~l=1H}Jz%0d1D9L_@mv~M-+kS!Q36(u2>O%SM0q6geo<3w0_ zWcX_HXhra{;hLOy6$xbU((Pl&$*jeS(!*F22;X@?bb|av`er;?j&VrQ7~*%{;V6eP zRJg?fqnSRT{7fq)jC`nTq{<46HOJ-^o|#K`(rK6%a?Zpk@8~ICtaN3K5@g~Sv=o)5ERCbLCWCOpxJ;=pA8AJ=$;q_foHBF3Z35Q-x5 zby{$Cjo$5euc;bLm%btQgb~@`Vi@W0u?iI=5z)Hn`aoQ_XgJni^V%4fyVmlq=L(;* zKrv|@k?m2Dn1M8)a-pzE>t2eV0i5^qzXJSTh`qKAN3UpB(nr2AojAokQ#|D|CshPp z>5ShF%OjlF%9A)08bvU$e!QbNi0j&mL+mC5Fl9CpDD28YupfVym7{6*-38F(hXHvD zRrLcwbW67*wCxLlpK7(-g>}bFjRT# zw=1yyA7T=*D%c{=iaND81a8WdR0{x9;v)`mMifzbs?%2i3E3pOdmDWu)$Ibu_6B|4tQO*{<`g)OG6JMo(C zO9gd2xcnPb4`9rkB>@KvuXm167aMpKJXyH_ zTC|NDKLG(MYw?a*P@DtnyvhVg8E&pY)bc}kp>QA>u0coRb!Tr6zDKOkC5*=jVcct*b!2@{ZBRum$j~Pk)7?d=*s4wH zY6D+Tvbo2Q1pqGlxA)dIF02{WDe4u?vbCg~Em&Xk@lq9szFBgd*ev{yL}fVEl6GVc zOwf6MwoZ>+SV$dC@e%j1qXNS=5jJ?v8+Rs1 zIN}2NItU!drTF1Vxa<-OY!Na&FZxL@hsJ~+jz7U#XQK+waO)jdP%wZO##oONIswRi zp34Yu;D7?@wtTT|zA^&%{Cb;}0=1G0yegUIMV43=o(XI`l`jcsLi# z_tW54A3OX$MWhNO@*C}%(Zw=E%{Gv zGc>DGv`yra$hJF=QG&O>e~C@ITc7SsQ^sp@sF0#;8O@Uh+bWxw)lgn*#-tJl3|fy- z!%}TrKofzX0}`3q7ez>1J+oZ#kj=X-UbB>yJayy7%OqQ_2o=OtkaRuMyzg@d69U~X zNoCJ6Iumm>BNmZf{FtESmMKz5uvP@R^Kn#xYYCyf5>~km9W|)*MoVO722`N^&tL^4 zZF@O!71i8N&aN)Fh}~&BjtW-Edpytn=grAy-qt}Qle|Hl%!da7Lsp2Z;JRp&x+#lMKL!^azrDu} zoQDKJ8@3aaJHjw!0s?8hL)Aby`9VOK@YjR#{ciH)NHSR2|H{;x8)OwWQjblBaO)y} z((Z(YKV9_3g@@At1TedI(j~<@o8z{-q|4EM1=QiFzbNGDC@nA*`MX>IE&>B3H++4Y zdnTRRBOPrkurFW0A%(9xUwK{WiMRSS+oxR@2#ey=9AP>QHY8(^&a& zlF_zw(lq5daU!S})t=NXWNu2Nx_UYcEw>nI1@z8%*h;R3RR^}x ztMcplSq>Dv_anA(1} zlXu!Tvato==rnZhRj^@!0Aft{+HV7&ZFofK;gk(4`a2 zq11vNlt~tMvl)Xrm-3{zq0M1_*=~ zB*Y~anT0m9XH=#AT1H6F6rj(DhG^VJkIS%7@;SIc+Ss%ipjahOG@1BO(8W^W7H63n|HPK9_B0o=) zQyu*nKAQ^f>W@KA!8)NGiVcn;sH;?`?x53k&4L6;R9H|onqlyRnx!N@`z@Q{eMxmV zTk4`#giJ)<1IruD)>b`*i^!OQ!V0Ebj(0vx~-}><=_QnOY-@H7m0JAO;c`+_8|l2}N)^$w8&v@ocEIVNiqDe!m~YbrW* zpbq%3rkD-~%)+$;xaM{n3zdey9BmmkZGsak+99EW*Kd0+PMc83Bx^mIcAzNM)MDKH z;G{F}kvqt^*_(78do2fD|CixeEKKm+sUoFhCZpQgl(g>aF9+zi35t%xZtOR7$j_skQ|61yt^k>V`GJ0FzT!y*Ve=tad{EIIyFI@h~eM7)aN73(Ra{t zk*pG}1ypROTX&vWJg~sbm~>Y5Nh7*o-E~sxx8GAJ8zb1rkiHFTtSX&0`}|SM&Se#} zne^D9`zZd)BwXyMa4Yqg_os9C?q;xdHh=fp2?JjqAiw^t51ROON%n3gPo=HNNFMOy z{c4K-opb7=u~AEzXrAqCrzpgU@b`}dy{yB3^LfutYr2?{!P+YtBXabih`@4{ zRGXi569Ip>f^87||5@u+Af4=*WEm^QISssGzmFn+eeQkbH}RK~R)vwUmqUWq>b$2x z_3Rh|*RE!_)qRy!#Y!oLedV^V$?Yd?M2!GSA9`N3}*1(-+yEOb^BnhlD?-XS7kDp)agp_MLj(e1LU z2?mxBjp|BYUtdy2t6Te{nvUB+xUIYSY-omo8o~O1MnZ|T&zUwqsYWqx`2=q z531k0GmmJ6LW27sGC~*Mz1{?^2n5a#)$f$vrPN`kFQI>T#*M~&pDEs?7_F*CzHVIy(0b*ZLA zhKIJ6;vCNk!-wBQ#xyj5!QI*UcRD1bCdUbH%%)+fk96!(&bm$dV21_V9{H`IwDnSu%l^gy0bGjoUx_cFKF!IRjY0Z) z`GK#c9=Ud^&;;N^15UyDl>o-$4-Y5<+!e%`jfUwXU!kkpCShNAaC}nW4#jn@%W>;aki>$ zLT;QQ2d!XD&hdCR%J^az&oW;`6IP!pur^2>0oFk~Ee6UWJXHxHio*mxgi8L1@;px7r=By%`iWizzM1Qe-HC;PUEb67w+JxSpfHHn+_xD3s2r~d>VGYRQ7^~ab6&fnOtGdFR zk47o<*3Y82*q7Ht@4;2jyPiOM*20Fjta3d?l>m zep#T+m@JxS+Rc#j7_henMla@a<#9=t>fet&WV^uNV!G1>7Tlg4lF07YZ%4E~Ls3Fv zaX}y{h?cG^yF4=0W{S4gEJ2=s{`#iit`tG(Lsx+cVIheOhi8JYa50ARc+B2MZu<3b-{E-E2=cIv%Uh?+5=BNfTa!m_Hs z7E02CBW-wkV0}CsNnbne7GaiDI(FzmMDt5CB&&jTbQuOwxlUXPvXm@QCxq3Qo-xQ{ z&`UzdszIIFG!$OB&cU76rd1==a(0**IHS^!j&8y@w2B_-&OVHAO~+}9DB+sStFTya zBP&&EfzlI$Kp=L1te|^A9jJ1@sW~$Gh+4<`L27?7CzDy>T7$LVt4t=`XvUz}lB;dN z=MxtH9BrT_ZEXDQdEqO0>XpB^4n6G4M$+gJU;{;3SDW$D!k>9qV>mSHs9$R!$CN!3 zt4nS(?k6$uQ5$1mHv z=5GN&LMGVd;){TYNa(<8@SBKMdiRksE#?02NBH9_*4^IT{}`-r4evsRVZAkqQ5F$= zgGy=R9T3c<;*hxMMmaW6iascU?F0XCEoQh!%rH|iL{DOtd=UI38+SL6H zdcSve*OU~f5Y~Fq%W5qJB5Pxl(Az3)N+_Ck?uBw7VP?W2QB_o>vMSy-i*M00O|?<1 z51`HnsJ-foV|7s{O<22IIER-0niNni4L=iMgY%;MQR4eLUdgJSx*2FzeXF)(Af+L! zVs_Ns7Pxn`JXes37u)6HU8mEyy6*o42C%Fx;{DRU`+%$^nBK|g)uz){qVkQa>k<%O z8>?=VzD-hq%BY6j=K$xZ=d$*PG^45r<2x=%4ionzBBaKv<>>Q(`-zl`bXP$x2DA^D zZ)85XOeWd+Vk@3`;;g^>`_}KD{c@5gb40R5R|YL&_C9;aU4vQ>aUO~-X$4RmFFJTE z*8UE+x0iiIll=KGM2~D><6Ocf6Em+p8o#5u;?GOS#Zbz4G1{`9*0+#`f!EP@^Nx%a zum2IN2~-e4WMB2)-hVv-{~Q>-wUp-xks9XtVFo{xUz~;2ZrXV7ce@2+Mv|_YBeSg= zJdV)A=#fKeg~siqT2@~B4dqa3HpzU-^T!r`IOL@lzGnCS}TAFAP*a$4hmBZ}cC_Bpp>C4NmQ zV-gh;O7lo2sfB=-_~W(qU-mhDj_}Y(zS9s#JVSj|%|NR=AYwHaft}_!1-pVLqYo^; zVIU2vTKzd)_oAkW1bG&(w22AKmPN0g2`q^>er=Kdq$6z;3W^|H1We=%OMPjIR&^B) zkNWG+OyW6T;@x1S7)eF&%n6(s=bK`p3jw_fJiVU98xmvW4E!=rvNV`ifA1$zwo*?;{ymPrz%u^fR8GL zPl27{^F=7d+az;1z$10$CSy7f@4p8sCb3yz!dXVQD4RV3qCO8)gsF27S11W1>P2s-)C-)gDUNKFEs7GYW_oI# zVI!tPa81$t^ZKVs_LneL#4$mv(;_EhJ%rA!XO4}%({(62Exn39EtDlg?IC0>{K*r$ zUf`5AK)^Gjt3!ymg)1FGLuir?70OgeJs(l=GW0)*^Aa0ha#Qwe9%+%&Svx2O7*&R# zd^ahkT3KwUl`j9?tM2|A_DTX2bM_t>2Ye(amg&F&vbMZvZ4c*pl2c#=*&lY zgek9JO)O|y2xL3wV+HiL#Kgj6w+WD_EpV{5c_gsgjk(+zR55& z`3H8<3iF^kMzqxQEjl%FG z*31)W=^G!pm>?5VbF3h+gLSxp7gon`2tYdx27MQ}$_ooTg`n=15NxR+v6`fe8MTyw zpN;`O8!T;A^4oQgd2rzRssR`M%DlK1%1S~>;t8#pX&3=l9(q&XdO2G))B`){{Xp0l z$=R=0dYu!_WXy5>=xdG;)DlQD*)ETT;zaZ&1y>YX`OCqN^6WdiRqY&EidTJ~omqkM z06!hIIIo${*wqHBf$NP&T*pELm%oM`c1h|JZu2A@q;L9AQN*Fl< zXNVaw31daSW==wvUnNBIdo>V53?w)8YSEUoEi}~Rth;5>i}d5Pl%yQCOIV@g=4iFd zY6k9P?Pbe?>nVxhF)3K$=jhft3T=m_{@WvQ0Vf$wLo%7S~hY+X2HAJPnearyD9s(rRDm)gC3 z>DY*KfnCaM@mYWin^(;&TaFG!DiVX%23VD{55$yf8z5ELI_!d_z0r&?R*3BM>(-6( zo3rF9G6qsuyT)ZW*g)qqHH5V+aCaQ6?%~LMr`PIz#n;$$LvW+7x`H#whc5JG=uaMA zO-NgNvsHr|N2gSCUY+2x!O>H)$q{PpOZ2dZgBR&rXwnm4$Cx6?$z_8t%(#oCU6f_T zBEdu)La1I{!jmKK__pAS1;@avWE=@764Gp{TJ`PSxwv`7RcsIOKnMy82@i1~|BLd| zw%R;Nm`ze=1oL)Hk-7SI_8WSCHZp15+<)~xp2!S2O3o!KXNiJJSE;o7vxz$%O6sqi zA&Zea>Efc$@DTR(g zU87Wi(zGkjB`7GW!Oo<9SU}m7P+UyJrJx!QZA&2wN2@8XSdPjKRT2|@^NPrA1QUWS zj0h|u>S>VW|Fr;^5G`cXT;swLd&I1&!ZrWZ%dj^RDGg6%OW#8EJY3%~VZig!>?iYU z?%em3WEkN*vxu72Vto$=#w0#X-!L>+2DiiBrjX0&*J;&LYSo~Lr*|+YNdAo%pJIm? zG#uwUiECs3WoHguI_qoIE%uBsW76(KmiR<=ki2)+qO~TlMBh@V9y7?Jj>mT@nCH(QC^?P@RK6q0d#{}k^5@wkU4V6@^vFp7pNJ4jXP%rIi(&VHf zM+hJ)e56pI8yls64}22ZFpj~4fU$0*#mJO?CIK#K(#}BwRz*mqGjgU;c&_%Y?$Y)g zU~syozNso}1+H_JmNq(saB~w+?dE^HD6C{<;bk#lhOwcm*lWJWsM_IFY-jvO?mfoK z-0f4e!1K5@4WP6hpYq|J;u_Z6YbUYM$kia?779PN>SLQ}%O3tB4>ZrXWVPBNjqQl|apXWQL) z1s^=cg6IY&W6$(gZ|8GtIXoo>M0be)BlE~Dj;EYMl*P-zN65&ebmR?r1OBA3E^-ZK zI_9)OgjboHWDhIC*)|>hFF^nwU6o0LyZkUmA~Gvevpb0;g%f+;_t+HmQ3k!8l{7Ov z%kpxFaYxbBMgdDd-&OQX;Goo1%#I(Twv%Y!(K~=LqBnOA#$h|jjS_Yp^!>?+O#3rW z-B;2?%z46|>1p4w0L=);^@K4HC6~`Cx~;Xj3$a+}hcmTiBRSbQ)OIK{Y38PrDOpMK zzzcP#5+Z){=fco}K+nDrK-}n;$~r=Ouw)1q0rXv)-YZni$@%v^0srvr9ST%1t8*0 zwxONN^-h%!c`(NQoPu$#hfNE0!0T!#C!A7nr`YDw*tg7|Do;rvAr;Pq7sXQ4@tD4n z(?ba3tZINDZ3>Q?;sj361gwkD#<@_CC{~dPm>Wu9f?THp#Wsv$u}$+uB*iWW%K&gJ z*(iQJ5^A=ZXaqS<8ClW@s7l5@_UI#Ehs{1xz<0_q-&jY1UJqm>z+91mHz9#S9rKL0Wu&?+gjtO7m^gH zA-+~QUAk?5e}4~FFL-FqW+?#@dV zPagPrj~1|g0P0;>v5pV0K5rO_gg&At00bR`haCGmx%_=XLi-nw>~d@8`IFw=MOVJp z?|RnDhvl;}N7+4HGQo4|9Ae-ptTMW#n{B~#Dv=TmEf8r>DjmZD)O~r(!K_(sB*(sT zO>&UgrnSHDKsBU`5?qhS3B1$Z&iG(BYNSV5MEI&!O5>@uGIzBTJD3KU*z$ zQCq|lqa4&90ktztjwOO$-eJ4XGSd*cX4AOi5M~P29$`HA$08vPYw%JQ?%RT3Gnky0 zJ@sV6jFYKc-lGOWH;HEE%wU$B;dRCKaq1kVRQ2HNw#Q|~?cyOaHjtSv5;5=r+u|0g zRGqscx+3I74m8CJHX|LS&1D+Ul+xj}jBljnBogtw5L;M)d=mwUVW>O3F&nA%HkoOY zd6?jJLDL21AA+P) z_$^<|BNix<3+x)3MR%etUwx*rn}n&wUDJ8^j;ArjP81znn(ZPQ+XQ#c@{(h`)3IOy z*Jkn)$uM=ywkH*xV$2bl=pS)QjBPH?)-2NT0BUPM*+{6lF60`xtlF@F_eULDnjFCl z(!PEC4?3LlyaQc2k+u?uSr#d>GljW4PB=OfBz9xWt9>ii8V2ZT?IAh}&QT8(DP9G$ z2@4q&OT;SjSeOa-5G@!OqIfly_$W3MH-ss?VAe5r)`C8=G|KE<7D%6oBp5)gGY`Qc zH{%};(s5jP@;66$PE>l0B^gOGCER8j%p;fgTOwA-9m^jM3_?MHP{!Sks`qP07q9G* zE@KC$D!KDV587^Oy5QAMa`HpEGmc%c!3i08?h!TBZ4ewRlkhi=akR6Tkif|=XK^XP z>1N>LG-VR+cMs`7gDL}kWJ+A60)8y^9!4T9cG`85a9_wTgk>4}<(+@nE(NrA2u7}{a?<|`D!nFrm#h7-Tke$(TAU6DN5b_OVeUw?R0TvO!0 zaba9?K))vP14x0D-3cX-TeFzZbgSRP+-Ypy#9edY{!Q1(-2qf=HR(jFve@OI3QMa! zAleFQR^8zy#d2z)xX=5zpsUsJ=@o-%Zqvc$cK3Y0%)ox!L=oRVt?z+0!fyhU=m>=7 zNMr-0Gj^_A>Z-D4J1%S81$9m_f+*DeI_d4FE`25$)?q%-$vVR`q+3E;b6kX$oJ_Z4{R;k4 zA+FK^lVdt{(I}C!tr%n96HjT?)UYk`PMC1iH?r=$Z_?;V3tZp81^0v3$67T^f1MsD zah}vi2>Fzg#Twt^V5~)x(iYdO(zPp)qew$)Q&h9@ZL!6)hf#bXTgG9;$9~8Whvc=y zZY@6C;8RAhCQ%w#!rSFM=aaU}S{ik{N*5-Q=G zIC$OhqR=;2LNB%T0>Dka>_f8RFv8>;SulC9GX#CzFoY?)!VgZ31RZmTF#$R&DO}nX zB2C@WDo{AjSd3;3FRf=`#eA0yLB5uiwi(%I2b5z3_8W&<>EL}twzvrVad^*;r+U*o znw$>LHkzKuy_vlurTZ)@8L<3m=PHH+A*Vu;iJ^WjQZ?R*1qHIgCsdVN%e%$Hv06?0 zHN~%Onw$4$UgB?a^x&;w-yA@;f?V4gt$hz;g^Ohn653TVtV+Z;C$wRG*&c zSuDUvWu0q+ETDmx36)47IYvP@=C+RWalD)+u8~Wv0EkNutDUxBtzXzUWboIIL73Kh zC!J=oXS7l-a##9o1Y89w+#H=`AL&&{+XQCdckZ_(uyj2or^RhuhL!~^neMjb5H-|OoHh@)%M!q8pf(V208`NWg6b)D) zox0-o0h>OH{=9df?}RgNX<4}9o+znVuS3#fbmPDqjMMFIQCcV{0yt=5`G|aXFaWYV z_{U%%NS^@WO+gvcAhH!8t-71qz6`?gngtI*d3~%B*Sk0O7Y}GhGw=?*5zohzK|;vZ zy~vbx`dOJwp}ftvYKT+nW|nu}=x7h_QppV!KS9)lLlgiJ5h0mt7z7vweKs0B{CSJL z8~6?|5G4G^jRkJxZ2*!#B(c}6%9!*(G^`P$lHzYAj`l*A*+nl^u9)U%c*FLp$V1Z> zYLl|DCxF$dcUKu1?mc341h4;8ZNi6?82+X}!~b(XKdOfa!f%54y6S?HE)-NlS+t%t zQ@%J9pA0cdqXU&gVjp7zm1n(;MH$OE#3+vWUjH*v{$_&}EyZDJ`4yRhiGDpv0&B6 z;Y@JeUyqEmTCJokL(T-!5GXJZ=kZ6;|6}h!3$*9|NI3BMPtO%VaCRyB%fq0&y-_rC zeZe&STB{4LTbWk!JYCF^wrt}0sc9V?Zu5Cp44m0Z}C8Fo8;)vvM!rAS#Pvs7jST*tO=WMk#*t*e1ldc3O$x9_P zCoEm4q`?1(AGQukH4A5gW@c`D`FI7-e2md(CX+e!OaA^KyK78;M$98}+=?BC5 ziOkpV{C#EBS~NBY1;ExUnP$KqwvS#d)CnChNoQFh8H|ntfLPT1lM}2pUIJxm_fKp_ zkj6z;80lF0uD_Bs+ti#ZjD#9Y4Nivj@ZV|h+yn^S3r`E-cG@%P)4zZFBlefx4$XCp zBZ0F^P*~Wkbu%f_Z~G7=_+D68069Dg@Bdzr=R*4Q^$DcPrY(UnOt|S@= z#q_tT2+436gC)c7U$~{&rji)M77SFL$g_Z=cC$s2{ssU!$Hr|AqT|MtYh#ZoD%_Ad zoeIlD1W~V$xSew*fCfHe8~|OK2s@TRSwybz^-^uj7kd$Nf)Cm zLSdNe+jh9xq+`IMceMU<X zx>v;cG~v5+LolpUwRqV_0aE~zx4&<=Co)%5E~OFWG%}UdY%AtqHm830LrcLD1Mfa} z@I(5t*~n5-N^nxO9SuDd_Z1mQbD9Hm|AhsT(PeZ2{XY#W%1e)&UWsBo5JZ+mCcvL1 zi%!nFGyYe)v5eV{vQ_TyGDovnoN%c4=$QT3`{TAhA6N_?aT@^TSbuM<|) zm|36C#LOf6e5INqP4w&)GudxaD$zKIjVD?i)Qv4WJi`p={Cb@MRvYA2Ut;-CDrOry zLRYd)Y&?3ORE9YG#c6k&$t1~x7xUAAIEpG6@zPd+l)8A ziHLBkhM@a2s$4VK8C&o90dldKL8FMmTDZ0@5#gU*)9L;foHvaF1v5=ux-s@yuN? zU|Fh_2E}7quCs|@4nb4rahH6u*wC}M4?d&9Tx^y<^Qu)PcD(ir!#F38;DTtpP;6*{ z4EDNClJ0l?2^7}2T5yWSshAd(8!Hy@_f1&(I(BhmM1IoJNFx{hRu*eWoRt9Zye9so81 z*EA0rvqA+gYd(}-6Wo}>zM{KvE^LA-1D-_JGEmp!iua#h0xYGP8mgOAmgTV+JxX2A z1aoEi47)D;BET(vVX4HX#TrK@frKhC)au=Vu1FyCxl7+#kqZgZSJ5^wA^C+ZCYhbi zSi&a|*EGCC^LSasvYERo zTKhH%nr{qohU|J1{K=T+=V-CpFxPHc7!3h#u0wm|aBz)C*$CI~Ea>U5PH z4QW>m)Nl#@pAh3;9)_2|nk9<-o>lDbvRDL4tNL{9u}hY)YSnT~j(FI8>%qzfW}077 z*qe)c?(TyJglD>C>WR?x4{vX}^#2}Tk=BF>W9!r zuxX|6M)BirJe7NQ@>q~?@|bZzr@?Om&vP!p33iWr5NyND%&d|A2Xt2&tS8GT4~m+m zy&N<}5lVxY1pL8a0tBT>w8>0%pFIAbVaXCo0&r-&zv@VxT0>&VvVR|R8c8gZb23KE z_(;jAL;W}qrI7mG$?ofr8T7v4$P&WRDDTf<0R(=NpX zzuQemM)llr=eG-4>UwSlR1eQh=QGqnQfs2qS3wukzBN{qn)S-O$l*flF@)kq3cIrI z>6o%vo;N^iDfBrC{mD`TM&gF25de=p2Wy4X7kTvf{H&d@qaDK)O5FZygw4%nkb2%&Hr0Hec3PbAEIB zNS!UyqX%`6N*p6yzd`D6V`#HbS$k&cBOqB`imalPAGcV~rd@qExDmyBuovd5i^hVT zctq%@|K#-Mw$ToB&S#jx0T)A0(a&i|$kIuaL7;t+HMY)))JX8Zaa@rLH~Snp32DU0 zyyhc>P2!V8y;5js8c=XOK@<#aJG3k{MdCrF!i$@K>{|*n6o9I0-ylX=)e~W*O!4&S zAqwaFcl4=K4X5%ZM?aKg{dZk_-cNs6$(+cm9@0?%ziPQ9rj(7k{+_;ea&4Odqk4&~ z)PAN9xpqS#6Uz@NxWD>Jl^CE$RZgAIjkAB#e(_mwcc2^Ab;7$l2~FldfuE#E;z-$5 zzL7}DPyky{j4@{lVC-f=H;mh9H%VvZAb9Wd>)HGJi%>`WEPT6H?F5& zgr~Byax^Q*3=W!+nlRo{m&IE@fBYt&;-xs%ZH)4`N~2HZ8R^ivzRV9EYQSG?_fr z{PPK|U<0%;d{M2-Om~!F>|1?$tU2RqO-8>W+UJhAOS$LRuxBb=TcOgQm(WXFv&#G=zfjpYabyVcT@h00S{)0(r_&^>eFXheHYay3DLly z@I}=Xpvmw)dGWAS#Dlo%>bzc>ArlIh%rqgGti4d(Ztu%*e?rM$uqycbvsgHu{O6Zx zjcdQb_NrTzR>X7W+zNz{w82pwerFn-TaivCNU5}bL?8I^0Al(ElE}^BG&H!*C{ODu zi8&n`4M%$buVhIK4-}27PT8l-KFZo)MpU1a!!F|mW`gE9{8k8f;g0s(9k;d?oei7j z;sesdDdDqnGlq36@GqlIa+amqp_twrZA!MD?YVF0`L8E%4h3fj6k`a+(YEHH%wM-H zV)whFb|gwT06Pi^rXSrPB9YV?oj!v1bw)^W;uF1yqg188GkO`SzCpSrqFx^>Y%e2B zOs%f7X9fjQey~lpvFxt5nh-e)#!-1wN1W`Ho6%2sb9r(n~beRAF zweH&m9H@EXZan+Krb8F*p`8f1ig6w7_XFbFTv_NI_sG^x=fHyt`D0VG#Vt@%vVZyy zC3s|R4ms^jP^pqVH;lsjtb5AjR1Qu>YQ4lQ-a?0(W743_t4z`8RK+5n5*HrFXsBc{ zQe|4Yw)kE%}d2ptYb6lgnlYOUqb)m?i$+0rm<% zMIPqiU0fl$d}snLeR;KCpId;Vd=V)x@5+bdUs4s5<<}#EL0rkMs5 zQDEP>T~l(F(?I2zW3Fxa0eosms%sA6%xFWj1?r}-9gs)?k6fiGzU{g6%-eZ9Y)yi2 zCy}2*$7xWdvR zKxJ2DQK4DCwAGCa0e2H}`@69I**?R(cm8j|%~Bfgz#Qk$IJAtjj2s3l25CfK2j&}E zY|;P{uXqw9d)L5?i^Y;d+CkCw@Wzh20NB>qJS8VIvWDtjN{MixBvl;0)j z@BL1L6^bsZ)h9orbGLwJ^X2*L|67FM2eGa1BASUKJ)dT*$qT< z_#tr(>WbH5cPXg`37k(?Hl8fQS~Xil?dOh+h-GYaW7AjV*7{5c;4X$vTMU!dF;Dt= z=Kq#72os;3h7LAd2-9%&5 zwiYNPKUv`Z{@(^IXbg8|61#&1FEBZ`ma&2D`dJw`n%v`XQAwn3+PcH?5;OTpUfXqg`wu(J zl*bd4@SGC#^1k=@{T1~6gS9>r*6v)o0&_~2k>Qp$+@c~^wWJ~Ugw%dJV_E}>n1=|Z z@B4&M`Nu-rT;$Do1XNmAP8G(qHXXgB<@BLl;sM1N+Qe5ip#V;~672)8;(ZbfBfFvRc+KAS!9=du+nM(ndt)l4_QH`zSjYnjgt2B zG>s@Sb!G9BAqS|OMx{U;6Us?@TP1l;wJ~(#z&J{%Q`WN4`ZzL9BjeDcO~U9z-85(m z&AOplRYG7ZYTPshvd?Jk@Ka_?1x>7tNSDrcd=p;1W@V#4Rd7z5Y}rw!UT(1yBM5d!F7Fi8ZfT05!+VjPJoN&%qt zi5p*ZT1qQ)B~U5r96APu;{gsGO;az{M`s)=fl-E>eZlPNG7=Emx6%Tck?Wo%Iyh%g zk(8C_Fv28AT{IzNauiH$MoVyz7L>R5fhj~*#?q`?n)L+)gRLEj$j~3Ds=RpgrE#SQ z#U7p)WVt4)j0Y-}1+tWdHK9s@VXR@AJY6@Cvq530DkI>n7@2%zl@qlSAXeQp#4Mv_ zZ44Kemt0=n@bgb^sf=UYtO_j@oUw$Y7Evg=gsE|I#lG{L%d z#K|%ZM}nV-K9<5AbY)Q55K_igEh#9Hkmk+~bTa}#08NxplpqsM#gLC){x`CZB_*#5 zttA}lj1ORRCTB^swYi*B=U$uoOc8qC(l~Dw&8>#{q#4e_3vy04XP47=F1mnu!~f)T zdp5_M83B2A0F=#-vpM=a^-|>|5sRo!Vp7v0@R{3pc@{2~_H77(Dpw2jP)=klZ5F|S znj&yICGBmt8#Dnw_ITgZ9Xm!piO@;u1!J0*V2HUpkR&i-b|C=6&{3}{F4h;s;7^}N zN=xt%XV*dOBU32?5~i(}w*OoN$*Dh_DY@tC$0t=RXKMG1UQ)N@*GLGb&Or!)`;Yhh zYV5hbx-3GgjJ28&65oCISFAA%UB{1q{f-~M|0|c9761A#|IFp(ma4Km?f0UV){gCV zTONuATUGdJL@6Wu?G$7jlsu1*&;0b$4_sY{F!1vFitTpGUZSsPni^MG_T5oVnL&bt zl!BKp?$~T^n1ZCbZPpib$BvXTZL>n5c>CrJ$HReidxiHCMk}nH?X?&xw0vd7s%Yk=Mo;w6pjSIrJTe{(y59Q#o{$7WL@G z7V2y*)=8x?u427u+3h>J!SlLZW9wCkMRsW0khI(%V+$C6Q6jM8Sc7W!f0MsF7ZnGwTynOB!_+$;jj zlKiHTP^@VhNGa3zJ?m91>iJ9&WS%;iEGI&FcC>a&a;9jPq#Yb$#Cw@1595e7nyRVF zwJiytq>>I97PyaqjYPy3lP6C}g43`I7)RTRs%>z_5WLt|=aG^)8nR$xG{P_`qev0_ zY9f)@1*i+rXXzUHC_JJhr~f&@FBcn{F(QU6j*gv4o-F{yJ}I#lVD zaS&r-90sgX#L!_viS$mUIH+W;n5OZQ&WF)jJVoZ@0?|qlVju@EiKAJN%Cq`((JCm2 zb5Wsm(Y2Hgz$}hCzewkseaf*Uj8zNsI>t!w6TZyv=Tpk;R~LuinP?=%PukL-2xdO> zpvHeE-H)@`_Tq|2C*jrkYuBH%3_cUm&Fu2I9hqid{n=s!D?Iun zzT~9l6SpSoQiPzz_@y8#xgc2qCX+(s{^^0IZpVx11vl4MpjD~v>0Y47xb~~D; z<#M~`>FJ5b#|PfNeZ%%*%eyx}(|1Q8@%{Hd^2JwQVXOxuq_)eeYiVT;JxXhure*35 z9FIM_=N-q<^XBba!sPk4KmLh-`1`-(?)DC&4Yzl93xgr$%#T0*$n(>V-F{C$2F5Yc z_dT~S8!nnFj@`&+eStMHFQ0~Q&e6loi9l_N+B{4$gCQ$|P(KIWp zt@!Za9%~F$)gVR>gK?SNF_EejW_>}Q6lw_aSrXWH2U1QFznlcj^6}}2?>+q_woqp* z+DQUnREjZ1`r|}KUS9~YSj9S?pP!hffvR#6$y|b7sOrD%IF(jrCr07%{G{oppTDptk0}sRub!CfyuRa}I%3-IfYV=k#6au>O zgvn#(cv_tyn$pqK1>?+eU(NTa=%ExLP@plgCL3pE_O3x&jdO}zxD&|_)V`LEgSC?1 zQHsW{A86|>Ia&^fp6%roL;oP`e`ZEOX?&v5ND6H7L8zJbG-}dWEsTRC?CQlf8A4#U z+mSX2g(=H!63Ebxtsg6u0|;; zb1I+hr$KlrC&8v?3h`A64Qn*oO7=)UdAi9{uh!gL7@TQDBNk+=H+fGgBL^Az*o9;{ z>m|h6F3-z+_|7VpfVsSkrRT9*o>8=%kpSn#XWk?~7t_h66ESA?qNXx8H!v%=qb$BM z-)TQNo$AttJl6%xzir7NI4?j{&Yx^v=dW=t0JNIXrt*C$s@eRR^8YlW7i)ykG8UMl z5-DOlIqA>d%Q>~mG7cTjyB&wa0jp<=k|-%B@5xG)3Q(6UW&|oSpX3xIMCg-9^wU5e zMwHjMW5tw4l+D~;Tw%4eiqD0O^PE(j*-&DX5Fhw-)7KEq?N>*K0_b$NP^$T|=>IHz=hUhLNh$G;Kvy zR}fA%oHWl&3k^=Fa*n=jQ;0GX ztsL!oP2IFiWhP!%H5b>n>>i(a|6$Mb^BW$YCPGqZYl#_LUC|9afBEG-b?wMm?$2qG zj!9J+LXhXxSxX#7oY7Ry(zX?KZAf9FX(bgfhk#WNRJJZ6F^@JH??7doMbZSG0OGj}Yl>l^oFLu;I)68XaipdKsC`m+Z3=x$}H|Ffnwc8y^ zHiWd?W0qt*(G1KDluQT{-j8ULNugv5WX(8C*gDhq0}(ie4x?A%xi5t$dDbdOr!oLyupXPG8lI-@e0uA8dtXC6O} zi(PQ;zKJtLpcg5`<#nFxszifTiuh%nmg_F3_C!_J#buC)en7{WFd7MA5`4UmjG^dd z^Z`{B+`Tbm?@>OGd?8F)Lo}w`v!-+e;|#r6M$;j9v6shC96?GFeCH1F> zM_A5GX;|pUXH|~OlTK}dT;@3^MSh4yeR)PplEt}nEM|qIu|#W`#<9c;M~=tCf)cgX zFqSks5@nWKGW(Pk4zq@+G9{{kkUUjearNSscD>@qAHJt*EEk(KO)ZtaDvx%IQVBZi zWMNMycg1}2pKX)pc-McgdorKu&##TvEDP(b&|X{{XO--K`>+4Ri@RI?=6Ap2@$nI> z;4gpt@4S8Yj;pIH?ryGeFJDUA&>5bedcpXPo~NfB%2>7+S4{67sGAMz^%`RwyThK_ z>n(L5n)OCw7qNqL`B6VXiwUF!t0##bgMMXQe@B9>)d|0|JLO0V4 z-b)CUF=q#cTyoS!$)(V;u*MUZYVN}1l4Gy!$wQuyQ>+x34(lvqN@yn{#5fbgimF~x z|1#~Skq{swMY6Rr$Jd43u1)csJBxM>j3FvjVq`N}8E)@hv)NuV4uPlL_dM+nOtJWz zjV3%DWZj>6UFA*0`Oy=sh5+XPTOMm;G{5=POJ05XH7b`Z_vne z-AQXRMXF+}lKWZa_LY->tq??|)lD)(uY=OY0a zs%8yJGX*&;=%O5mg)cx>7-eOeq9kKt94A&t!sgY@Ef4nxA=sJ1gfNB_r0@wo6m3Dl z)@CK6IAaP-%M!yR@5hPiUK>p}bXY508)FPz*Q1oCuA4=SDf>j=*d6G)BhxsbjKMln zLenxji+iDRLe?CH5mPLh%=UCB+5lB@H_Bm5ORAza5)2po>7d|)2#(uY*5+~QgvAg% zraTxS1fmb91Z`D|06s-X9+ee3C3KFc9GHd!$F390q_ecE73+;?m->DvB454i50jr5 zrxEXEgk4vTwy8_*jhEL-Tsjw)eDWQC-a1~A_>3YBsn}*33GK-VKlsu@t7w`=>_SDb zHv31b%9b%gS`@$M%KY>8y(n#iR4fI>S|&1OzMhr~DEcN{IQk`FtIWLQXUo^cvm(JL z@P+eiOAd2UM@Y+C$%Ef@2fE{))v9H^YWVu=uW6j-=O4Z+CmOwk?R?@f&WNa`XaQ#E z$6QHgmB7Mr>S^ML)itZDH4nQdt}nN2R<+C%^V~TB!u+1&BFdZzXXowxa~ApeiT)EM z^cl@>hD@CQJ98!~RK@RYt!3;6zWd9c`Tg&HOY{@}^56cMr>AGGt}eN|zGA)E;6tEo zYM$=jv)yj^&2N57%Fs`New=Wwmc_gqsjC)c1Q9!o9zS$UG2`kQYaC6}@_2vGFpYfp z_#k77Vc>AsadUSkCstQ+b9=|}u%mJn@7{ml@#!tbO6TSN{+7Z$p6j$X~+6Dbr| z&az&wY1@{rAIYg91+fuooiPZ8RT+yiA|kV{!Wc&gnXVh)wHkUo4 zj|3U3O6zg9x@AGa=0ZF?6`?Fj2c4zw(KyX&v%yxCgv9uWtt1-QWof;Nayx?3B@Cx7 zwzf>ASZr5h*bqhvP47ENLC@BVsZ?=|c3Z*<2PJbtBQ!rKp^X zc^hNLoC-M&Ye+}mx4(tMJSzJRcLyd%owEG zk&Q!F4TB$<2>67IfwSles;a?i5x@qYQBKhvJGM@)%g~RcB>ab5KyGN!U3YmF8m zT!jcHnb`nQ@a!6ePl*p7AK0uKuCFd|W$j95G4E~LVy!sH_WM2C?Uu)<2d=I!IqZ&n z`0%0ZC7x*<#4ehkG7VZOy8QujmirLAtW`=YRGtOq=42CBbEiC&pe!dzgh@p1!!U4v z{}H1SFJ4@Wvm$F^IY@+}<(h_(n4oSA7I{8X@(lg7a2ST6=lS`W{r*r6=aQOxc`5gi zpL}upsD<$$jqX73lQ<(%P4Ys3?7N%6#%91e}@7v*-8opRs(fbJu=`Bg|F!EbJ>cN-lZULYbQx`uenqDOK8_ z#a>7jTHu*RAQwAejDZxS^*9Uz$FAdeJaT9p>$c(M`i39=`WMD=q^{SJN_Hl|gITV5 zQrb%=N|UlClJU`FoZ)bI#&vtPFR%FB-~TN?{P8cP}`KBdz5OnE51aZ59vAZWsz%A}6_qbyJtN zX2uzfwPqv^8-L%qLb<(nqIkDB6S6_X_-~HqN%H$&e|}5_da6N~&OXjdTH2h0+eCEn0~+(v;kLu~GVR*a?sYOIx{y)oM*j zM=9QlT~Mi+imI15d=85F@Do=f)7F5U*<4mzM9#vR?Onzho$+Lid}&Q|J5k zIULW2fFEUaMoy&&nMM17m;xzH9B+>T0?KDedGi=Ra*ZuYD|PA zIjPT>4#t>;ba&o0Sp1|(+RO{y`An!8eLy=c^Z8-m`tpKl=y`g4z&Xe3*ROGHLpKcc z!@$dzcc_e{av^il&3ePb!!yoUs;c4R;{(I!`Qpo07z>8L_TrK+zWSQu@sE6XxaZ5) zU-0VX9evkfjK=$kb=$DnUeIS4`<|2(PY+M*o*pqyL`a+U8e3OJG zdcEQH<_eH(2{b4bF;)?ELYtI*4AUndF2OSsec|BC zGp2x5+tAdt*r!zSaC?ccRoaUCg3NK~dEOrdxoutXL(80BX~PsJtk%@Ej0~jJsY?5N zASEfx!z4KsvyD|^&o$Z!fiR|o2dqg9-GQ;o@;t@NaS&>pK`c}X8C%qqj1z??AcEr% z10iLax}~lRIm*x6sw)nMC%S&*a6HN^RTbe~@SrQu4x<8A8H`pKt8vaQ>zenT+BMih z6ciEKDP>g8Xx6MxzscCD;_~Vml;PM3N8xbncz)ioUT?U%y5eGWc>=DbP~b&ju{T$h zm9b$?%M5o8Y*NZ%^b7@3%fdek#1;paHPS_KLfTY7Rfw!1M078)<o-leS5V5X|iYeAQY3VAovCH0| zN;I>cQ!PuEXgPqCyoOh=Ua{S-3J3>O6an87PP80sWYeFfk%3l!hq_Uc}uBi&*xQp_C;kv0fYwN1Q9bj~Td<6L&9O;HRE(IF>f9h-a)ZC{EgivV)V8 zBB#;;$O#{$Wn-M-Y5&ZZS6^YB;l;~aLFblSfqCRn>dw>qIV;X)&BQ#vUkWX)Fv@&Z z0N8R8O=q9IUV>g`Eyg(@X-17&XGqC&JRW)d`ZaA^7weU#?>pYS{Y8@OO7O_KX)sFE z{r~wt{bxom!k8EWDMXBMY&I8C)Rcl_=sGls82KhyUEZM#LAir_OZ?p|BM9(j6t;^FC$rmB|DQ|Y`c`Xq&0?pYZNq!>u? zQ_|*gAJ4_5KAo=7$UHQf#X@MUEwQo%t!phqH_AyM1VT*c90UP+hOF+oj>G=Ia5?be z#Y+*v<+)Ioxoc3fHl)UnB3fGlh2ltM4JytQ(UaJ8QIVUHTVGCcm9un*qv(ao=j5lc zJZp*JSW*;IWW8Cl%B!+TmJXj*#0+h_!fK13rjm9S*zX=Wb~}b)U>L=so3a!%;-fZ2 zWiLg^{Jc?udbAlpiFh%l6Ae^83tK3lxr`#EK+;)G#N+5?1hC#nCl7@Wk*2Lgqm!iI zFu2yAkud|9N_yO-iUBG>w;*85VL^YlEAT6>s2XCCqj(E z6wx&)`K7p;6J;gI(wuFo^IET$ya=TgVG8&_NsaUvn^~{cC6gpC80nm)fOEDIt&7nN z!$4ivWxO-7TCHiD6+is&BNy8%alTY7|Mg$~K)cy;_xdZg+YOJ8kGyWSTx>7s55vOd z$fszRrN=Aw%c;1u3~f_mjNdIl1V)WwjNExw!s=Oe@ zgO~BTpC-|hHq*B07*naR4~vQLpa-9td(~3c{aV(7NgH*|8wN$+yOZI-p_0D37Ug>u)${!QwK6zuN<}LFU$#XloD%*HEDXnm_+nFR<9sMv~px333)I>ig*;+8h-Pu-;iDA_V$v) z?wK#XxT8@OL+~^>oN?$RLsm=4vrh`AECzF$8I}t_x4pF1&=m`#rg&F%iE-7`b$bR; zl0|;DZ|1WM23>-cM(@k(chsvj@9!V@;;UcL4+9@R+>1@H>*@Ppv7=pFT=44ED{Pf% zH!C(J0{X`v2E13~6uI24CCI~QVvbzi+;Z4I^X~qUUDxry{U853Aw>TBzx^ve{O~>h zakFN-TJ!UpcU)Y3Cnw^ZSvQXB>nk4aKZ;-8IieSJFJ?tZp53k^CdJd!j;DubuCFh# zM&exm=G(7OIuN50p;gG3N|)fL$ZB0-v|_cY7wezahMSu;N-4UoD-}4b+lH~P*zfn$ z+wBSDgqF;BKhd@=<20~dZ^&LwS~`n1B^d=?Ho2;*2vNMn%F8p5Lm-WwYOM(=Qn{8K z4Pen~A|;QpA{I1m&0#oT>wzi55F$>AG97KGnwAg}Dk`2HcC_s??P^Uo2u#EoL*>dT zxx^|D!=YHkQW3-!<#Cogdu`?!s%IKbY>ROS7;Oovrfyc~b%n7FC`;Ycg<2SBS1W3# zS=AN8*b-u7wcZdyETX^i9K{J@z}S|iS!3KJ-3Ap|ZPtAF@C)}JJ~9l3amrk5FVMzf zY(q>=gkI{2s1;djj9rsxXxA0mj)KV1hGEKt?9jF)qKR3fY()s3zQE3u(}XF45|OJ| zQ-2^U&3d!tx4-)vZtiZ0AyOB_^W3F7;g{!)8Dc6OKBE`0*t`z+{XjpAb3?S)xlV@; zU3ekZTE@}iCtpG@sqAv07(3~qaA4oFF5 zw6ho|2Q^(;jB^q&lmg>%q%J7*6y-FlZ4ofXL_}h+QxakN_TrM`u_K1e&Gj8GUw(nD z8ut5+q3fw!gL9Uy@A&ZXJr}n(eDmvH<74Lj{sVQjMk_)GSZth>npJ#VM zmb5Tu>ZNs~vcf4%WptTEYDiGq3QT4=9vHfwkB>XPxP3+1B%(@qWL`FRF>=n*-YeH= zUOd9wt}B+XxhN1oOfGEdlV^AaT1XpF5)Shmm0FbK=huA(T?~CkjDfn5x#(2FKjv1P za{|Pfnc34cVy>>1cH-f1z!*(8O#IV7{}WAH^VP4u;_F|3g)Y>zDP{tS?d27&X*oVV z@ZsSBQ&l81Q%ZbzyoW#jkuP7qq^&E~^)>7Dil(Uv<#cgzalw=_*b1LAFJHdo^{X#= zetgE4Huc;0Z@Ap77I24i6-{GFT2dtshXcWTnzp6ydvX@WLfy0+_6Od-|4?Sr8S5NB zz5RuH)#99V2Kv5VDs##dYYLvV-C&SnRu{BuICswKlF_KNQ#le{(v!#pMQSCyN{1pSC`YMrm{xtsM^TF zBzQn#3eui0KK#0NXFPLNPGcqK{;XgJ#grOcRa4gu!B0S-DN61X1LHWLbHEzmEcC-j z)ilELFK`xP4aTWbfEZNPrCXs%aiH(_OnyM;%uhePr|)`w8ODgSj+DhZn8Pg8l~`eC1%l(lgjQC@oRNZ#JptEJ7Q1mwBIF|lp#zq~R0=^j z2tf)xA4_MzxP`*#gXkSbKS^Pa#%f1xYgAVBT~FWlY}OmJ(HzGe_)V<++5$GfXn)V{Xtk7wG(@wF^a=} zkEW#a7GCTsO*a|MSO~~ zZ|KZsyAn*d)hK1lwUy5LX0t&l#qn6W&2wa)2?91m%}vj5876oM(Q1k~r5>%n`ox=eksi<%Y@mvvJGJQur+G z@jMmJnE6B^;-$yO$3=lV2RW(5A|-9h$HynycD39`&(F_v!^Fq?N1k^(>ZYPz)oib} z*vg@_Eb^wRn0ArDdv=E-qxZD!ijWhd_e?PnQl?$4%iJ5TuWwkbHoX7vVHpWkRm1l7 zmV{=zx#pW+f6M*H2lmfsYN{QF6U(-*cup$co{Q3ELDaP8iU1E*r0y}z{t*b(#JRk9>GBc$pf0rsE zogiJRWEa$RMK>m_D}g#^fhAgSFj%E&oF&?d=p)D7k=16+Z+`PFSci`ZW1R^5w5GCJ zIP+Q&3vflqn^FL1U94wjF38Kc?94hm3aSE(fD-rA#dKnPkY-cKbbV-oEAX?j>XJJRc5Z{hs~d z$eZ`~{P^=*jJ2%V7Nadj%>>SZ@isHKMuNOjoR<4zhCg|KN+-<=YF1!8WU+q5Fp*Qn zmBW-)nz79J6$0?d>EsQMg#$vN3x*(UfS3}8{m9`k%0}uZlsVE=iZ}(VQV=rJl-RU2 zCU^#aB<4U&6Rt7DIFicP)H+*q6mmESO~Vk5OPEv2nG`(j8R)Ih8ibF*ysn?=1xi5~ z!zns_er{&U-n<`87(smlq|~)fLOA2;h}g zw5t_HYYvCwGNuWW;J8x>yb4}|*>bUS7-O++)-Rc|zK9dYPr`ke#*tlqmdp#KO92pq z#Ecq)DW~Nkd?YK18q+Qd`ZSG<3U@Xab z31ra5%Bd#=nb({P(^q%t2?uv)t3WL&pR$R z7v#Iw-HSSBd@=D z&6p-s$e1Jxw)cVXS+;>GqZq41nSMU@IPZeY8*?(;WG#7op8;FPTsL zv#4dswJtZ`tUBH8c04^jv0kqi_s6{8&k>yay+D9wTj>4$J^N#asn@JFEB1#yNh^8K zYR5PYpfpw8pp2y-JW**@n+v+`$PYjK1S(@)#m(&tjIj&7u%A4u^&0hXk5XE?36sZF z4y7C^CmtRi*gZdEj9WA+vki2fJudfe&Rkqv(6%j4yS~Kk3T))&`UdX<>(!Q&^uop1 zTwgAq+1v$~ljgdvTjG-=iRg>_W$r+o#-Q?iEP`A~|M~=jUHso#%hq01B36?w&{;Ha z%s5+Ni|e90cH~KMJRC7fGYu1MyP{pKxVX8Y8z)p5&sl3}YsadosjXdfwgM}PrS%-e zf)u^P)7naKs_*|Wse4kpp*!qQwro1aK=)* znm84(Qi(BV2`rjLZY)7HbKdn+SjgM9WxLtZ-re$# z|M2$=-GLYej1l_jIF77VYno=w_3bULYUO@ZYKgU$LTz@Kolf|vfPvH!MpSqcXQOY* zx}r*F*IL7Izvt=U0R^WBlbTb)irB@T1SD#V@7j$N2XR-HXxVpUN%P+p<#obGW!4rIBzwd}4aeIBo(K!zL9U(}{nR6Cb*Gzqs zHlbG-m8ja5rmZ;+0~w7~aLkJFIHHrG(lu>WV@-wAR>Wc@{cEm@LlpazHgYmkXKLB` z_iRa9KHHNxcu|^*4MZFr)`}o0pMCb{&WzJFnma=>V-h>)$!a*O#!{M+L z0CW1+V$C4cvKf5&RIA|a>GtLv6;zWElFBEP(OOU{YS#U*_|@b1G$l!8~U zUh&Ouz9o+Xm9=axuK4Sp|HO+|uc+FVpMH7EaSXhFcxD(!tW{|3xWB*W;r@~B=7Mn? z8OO2A=UF-{#_F;m3#`X`&p1x3S1Ue#e9zO<6K~(X!y3mo-+ar^2cDmIY_}JS)o31t z%o~2wH0*Xex~}6@`$`s`6qtg?nnD^pyU$T_FXtfHT5QeHC5ZdO?!p}c}Qp#u|Mrk{zOx;|NDg5>Fo+wtnRohb6nG`F=agc(xAg`kjLXtFA z!jve0s+c(TJ(UrwX62gF8LKc_7V#I2gimD>tKESqmR5ez2F0A0`pQ^GUAJ_doUURB zY`2#*jiVnX+Es(C8&-{zCsRw5?8W6JA9s5~Onm#>-(oAVPa5lJ+m(3ut;NKXcIWim z2%xNK8aY_`VR^1}Ntv5Re6t>4iisQ|-j4(?%#^yRNWm{_!94z%-5Me|JarSsaX^)B zPUaLp?x%^`9nb|29dkfw#W+m(F3?nMfuw1k_eZSJtZPHNsj1tBVH~JeYbhv_aO#Z` zyW_+C1IObB?ygq_asFvONsNhDoGtTV(H6^OF70p7MM$WZu(+9faBk5vS`*75ZZ5UY zL*pvvsIMwgdMcK6&!w|8ZA0Z8$9|-042qIayKER4KM5zs)rReMOHjLffoq*Ow$U?`Nm(kIel=I$u(Z5m>ZY%Z<@?SFpqn>XUcN3KpAwOG)EvNZz-1WS3^ zhrU{f4&vh2t)XzWuLduEtYQxp#75y-Z;LyxB!70^m-k_beIAcHI zD9r8u6eH`+W&tmK0u;zH?)%galus$v`^GFWT9 z%&aJ4q&Xqd7(>_hbbZI=%?n<=eofbPRK|+pdm6dCx?ZN?Qe)7 z($p>EAS%|TUeVMohjG9tN#%Op?^vx@TwmWX`pmKSy#4q{-*q&tCiuiSNUN+n9?x_v z^&&!D-fv8^7pYw9wS*lNOW)UDe~m)(#TQ@j%g^tNTcl!pb46nX!qXQV>-lFfc{yd0 z64p85C}BHBshLBy6ny2$7X3;}<8b1Q85)vD-yP#9Yg zV`dyWLdslSU*jjwix;nm<$c7`!N?-KmcxiTJ;zG1bkI;zh|EBn)20}OJULCGVVaTW z>7*lwDbe>{lJd$(K@K^wbo_E5018)tQpCmN7r0pPVy~3@N!E^WlGtmj9ky*q7HTI2 zK;taNWOmO_1eGwW3x+Xb2sB#*f%1K$a5?rz`k`lkIBJLfU2_)2%{9*qmQUE zYBgC=)fLke3zMUQf~Yqrbj*u(E$75IPEy1bC|1g#wL@Fc5bgGzpseeb93zKr;BY*U zvL~$)R%wN+B~N}Pm4Q!*W4dEV(@(N>dV4Y%8bLn)Q#i-byah$X1U>Y zVb8vQ|AC8(z%T}^uDIM@qLdc3b6wAKqT*T4%ZX%mwv6KdRP=q%;c(!^iAME69~^@{bz<9))Inx<|9@Z&UECx&6-dG~~V^;!bLo_EBU z_}g!O%Vx8Yd3sE2FRn1gG8BY(iisS9wA{5IZBu#H>T>#@$7i{un=T-wx+28F{?~e8 z1H@t<%{i8$AT9;%Fbp_Tqjih5df}<~;EUTQ5T=1tHvM^YI6wRHdM1?0g&~mH?|O+A zj-vHxgLGM@)H95l5G{4pa@ZdU$)nk!W5sbdkW*s2*%HHkzB@{SYF;eJ+DboS1|@;0 z{7D&YwPbjd^>EGx(E7A_&n@$+vLp&A6&V-D7&sgb91lmDrj>~Je7Z-iHInU8yz_M} zR@yj)MZBJhj!Kc1`#Q!%m^^L?8xv-X)*9<9gD>H1#u3Ls1g%jzXlWUJC3$|zf3(*4 z$uA?$Sx6j$K)iI4v5zWxxq2<}>~Wd|eV%d&#qubGygQ4?ZRId^g?1K2DqTf&Qh(1? z+2>S1z4*rUC(QZ2@439X66l0d)Wsce&iJ2i>O5yC7w`PsMz+>UY~|cBI7_5Ee+``F z+@FJQW&zjobCwpiLYeXnKHL1ywTN09+2l&_#~Jf+u`-Iq3Y;}eekhiTH9L-kkZI}_ zY3K!2sS{!B@ZEC=Kon#YU-+O0$xPB0roMuV zgoy@`1__`rYj3q>{OBXuF z8KW$-8!=YXwl%XC>sKFrZoJ|WdU3J#)O1}((=_5vID4Mm+$_+4xz1&hpXWKFEf<79 z2#kfSsg?kz0=bQ2;O6EgN3qJzuCf(MMW(S|te%g@BY*a1f3^^l%6)J;okVVuZ@7hv zuy{8Fy1HT>MmC!b-~aKC9IkGttTZ%em{WiNt!???`|o-8?g#$x``@D!{Pkb_nxB31 zQ&JK`jpM@|N@?DF^%b`tKX80FN>MWv&c(%-+xviC+$UL#H0F8EjfuvG5oK5quF76y zmB0P%Z@Is}r)@h9hXX(P>Z>Jr?RY#dhgE@T%QX=tMqFGQ6BnZm7# zZ7Z&>H$*PsQv^qf(f}ys7SdmdMpNmMgKn#esDwN7qya6~$0(GA-CoGEN=Hm3aIG69 zhF2pR`9e}V4+F>ZN$y1yn6&JxZCz2RN`kzURLPp&{TDet%b4Qwvx*b{j^N&<$RHXYZsEU&ChVmlHBr9l{;(n6S)`!O2_5wk)lWkaHnNnw|>wuA@?fh;ieE;}UFSYsFlk(ZfD zF-1%8mfCLkaQncsmsd1x%Wk*Bjl$)6_UsuU%H%0WB9ek-qQoyEe7)~Q~)rmD`NLizNF(7K{hPtr?rAStzlwoiavlFwM&PU$gexhn?PW>rI zf_jX;uu=<#7ba}^I-AXADPl5h z$PIcvpV@3SLYg@q7sAVSyIo|VX_X%_3NQh8 zP**iwBbJ!8sk!^~iLUPW`A@&0>stQ&SHBV|(KIvrDeILTZBsKlakc8liT5Ag1BvZ+ z%QQKGoD)1eK4$xB7NX+ubRtm$qOXo7G5I_JWRHXGcFW#CqMZK zP1E4AJV)N2p0;T?91hfVy)>%AP07TaoZYS0hj&JuoD(b5-~uW;!cD`--Q68sw9LAp z>ULC0Gf#6i!bx=74y6>gpFZ(8X}lH0NSg{5h1a94;mwzCXf|Cge3o{zrEa&xOuSPm zq6lb}uqvStHn}M~$_%E(kdrEbs;ia;M`XP#X=9LPObC#YG-!-mUzIghI!k0@^kT~! z1io%I9V&?oQDqlVV=M6kaI<(1#Dou##%`!=3n_;*Wl#Na>}gty{yz+x&6dq($LVww z6PKK^psisXC#EUTwmYi2Mrk9f1ucjEJUMX=G-A4>a#R2A?Je8(z`oltOrsR*DC>br z^8f%K07*naR7BK-;_lO3<|)lm{7d*)K9Q7S3G*t_wz%@+5TA~mf0FI0%PPh@S^G)u ziQHQ;<)l_E4Xs4?&e=0w!oOlBGo~C46+&8449mb}thi1q4MuCau3DOe!X+5T2u@?W zgmV%XJepCGKa+B`EzcruW7QRy=@z&b5>O8)rvZa zOue}38Lh=6$@?7GBuJGp65ngAIFY6((0a;YL(v6EY4kHTOF?5SapPfWSjx{(1}dYC z$Uie;FEZAQ(iRS%3YjOTb3=frxDa$ntnjmE&$>XA3tIkc+1DFk+s;8;#qJ*;7sj)s zXaP{y$5v`}||=Rj?)vmTUpN;xSN2Aqx>uFDXyr zloj%gZj10_X+IQdxu{7el8KDIXP!oan~A}rq8PZmdVWLyaL=)ynZ`429`b`-VS;4} z6S`J-6&a)9;oNigaL=2cevO)E_OW4q(=oUn9TS#n+4mK1gcuX2$0K7eNJ|Ql^ZC5! z|HTo@WXWDJ_6dtqVT`iS8T)f)!MCEOXlj}y2lO;e_!tN&V(W@9^h9!GX?Be}91dJ( z#HaW%6wW{igqpK-ZqA_>>-%U5^AZ}P!^AKgffvLuGvI=kPgsOajJkTmn)*lb$%hZ{)^Lvy$~ph-O3f8y@$ z4r2~9tvJDXJX%NIy?ckLC%*XV=e&IRk{^HkUVg4w?1f*wdc%tsF9hZ%(REuPqbW-t z5;4ehLzWeJA22x`PXbvaS*_A48IaVrNsG||hQ>D|Qp_up|vBH10Su9!T8(Suh6 z2SYzI_Tw}o2@E$*(x-QC^Y9f~^? zCupI?-6dGD;>Eo{ad!(^G`PFo^WHJOANie;jO6UK=bH1G^SY)NS9w7n68>D)^T#)h zVoOEY=G5q@6NGyIIk%(>#Q2DVEVHObIpM%EuISjv)BmXZ*=`LHY@o}|+YB+mgBRJW z$s;UuTF@I@Ehm!e|1)Xb8Bg;$bjfDMV#T8Xb%bYwLKv%V>Ec=p8S~xERbIgNJ1kNE zrw?GKK{M}hA)GTzfQx4L!wwl!J7?ktpZYwvK{V{lQ}@!{s*!QB%^N;J^;PeNG72jKK3H#$0eQZw=f|;OiQ9PMT}j@3LpGLN=7P`RD#nt zB&6JjUz5rzD$zK{!>}Fe9zHiA5(v*?_7mwDWmQ>dGuDS*p;|LVQB}t_62mq5zjHD= z%H(^M=?&!=AfssctZ95|;cXeT+E^`>kCx?x&G-QVFSx8hw3{OT(Ck3f#`aXqKjgcF0SJ9Vc~fe;Ej-G(fhfgqJv{+^{+71 zAp2@g!2)&bM@oShGWic7xPgwv8Kin&c`AiSSHfu(marLn@%IZ;FK^)ZUsR1alp?8- zohetNC`DWSd=gb6;VC4^bxhPU=>#__ZMHaagl)>Q#`*j-ua!z)o z1f^RF+nV{XQWW`5Z8~033g6igEH)vp-Q&^!-Bs~bF$Fk4tzHX8mi9X&n|!g3E8}&) z7-7foDS^h_sv8Xti-`MuJnya)Gft@RtiP{DhQ)0LPv*IGm2nH48M%B3by$noKPyuc zrHGNf6#!c2Hvzo@cnYp+4`50B0Ql-2Dd?Vl@%6Xa_4 zlO!+X7NL6F96LA$`S>SzG}d`(WOe4Lv9qI6ZeNRgjf0uNCuw|wb~Gxqz|>-4uK_^4 z?F?)EZ~t?u`M<4sR<)Wa9c$rb^wG6}74xC$PtvI@ zh;96b!fu1E$H+d%F4LfZZvi>;?(lJyWFty)R+Fkm)y?+$6t-U9THXq}q8?Ni{{w}L zH&T5>6@J(Cdh`3?v4S@t`2;hnWaVcHPRbw;L5LE5a*Yn5EJg5ynm@Z1 zV})=gW__Q)upjvm6)js3D#Fq2CzGHD9ERO_g~aHOs>Vo%n>51(y7c);*e+1(&rwGO zc+SyEgZ;Whpq4hT~q%g>_pa%|PNiob!qcqk}3u%U@Jq6Qi}#GDU;`yevf> ze*mL!^H5;{eck2*nH9&d#!t3BF7~I)5(h|%IAee1X1bPAG0{U?g=ggqJ-8Csbun#4 zlA}K}nS5+*>Z6#S%gSfn$B$m?Gt3+uV`W^QOuV{W2I@`~;On;J=E!Py zwxn8dd%6;zrcFA(`I<-MUw&ZHtV=}YGe$(M>28NJp`UFY%~2fNn8KIT9%4I$!FheV zsI^W>GgXaRQIItj83|>1T7eUhH7cJmXCsH%FJOtFw&vwkN~&i$HPCjNYNPfS0v<^;Kk}Jdl5rgq5()L z{Wk8j<};~Oe(D@-?FPguAEC>~8zS?V)xeJJ3-zHyG&D^9 zw!!ess|TiJpH|3KP78LHDRtn>esS4~~Oo8aki@6jB zGNtGfWD=;}YNk4MjhLYk^A`a(-BhI4h`H| zo}pC?9ksTMSeDwlfaX~XamKe$?*5|PZ?x#>Ex7j(>|DPIAm%f|BX7^6oEg*RW~gYE zX@0>@B>ymU@?I(rp*r4fE2plFNkGeZW=ujU!lVarD({+4uIC>UZR3-E)X3d53 zG&XZ^RcEwjRygPSoZa*-^wxv5~cFXW6+&b3!Qh` z1ii-rFIH>jcvF8y*UrW>_$_s1<&#NQr+F^yM^w_~$FLE?!*cQgkiP5>CFIlaU^|8E zc-m8uwTt?^*X*v>iXib>4`8b2h{I}f=38wz_IgsJpu;RA+AdCjC;D?7P~WQj1wkbX zN}rq~To1N2Am>z3iHVERfrVxazDME0fu)=TYum~5Ij(roqpk}cwvC5MFduxSqqi+S zkh3f>zEF=WaGQa5ou^%LZ0;bH74h%b_9wkms56+;OC1Mce$>dq`%&O*A7i#jnsQZ% zOl+-Bz2^t;x%|&zbdNNiw+bjeQ~ue7ET&S)M!|YviUype<0#H@jRka}JKnXEEb{V3 z%ZeGN`_{IM5BpLN^#3XttEQKo#vAq5U)iT-m9%nr{=)pTjsV5r!b<1IKu-=M)R%u0 z>Cm{vWcQi1YXpkBV;G==cRk|xyYjIZLu@QZ;jboWu(SJ!F;g$IB$VE{z8=#5^4o*j z%2%aq7;C#&&$#Ff?;|wSM`A=URlz z3cA|t{S?esr8L9K`)S}+>6%C`4x%5UZe(iA85c(u=rcHtI;w1<=s?nu@`Vmh^WP}@c;Opq-VHCf^Y(@E&=xg}f5ExkA&X2O04-Zg~wZa#$uuPju^XqJ-?ugN6WJ`a7VRb8ky7h>J&TABN~rU6-uSEtK?A}m8v8&9Tg}t!lk|X zIP^)GLUwE*C9){0=*N@VZ38A1O+@%-*{FR7IsLG5MSnZJWA#*uacdKH`&E8E{I={ElOMbAX?W6_y*1&&vwn{uEaRxPjUMWnF&ac(BeBlH*i5Otgm5ERujY`Vv44;oj<_x*WJ?-ML%RuV(g;@`|su+m=jiwqtcpG zp)-N7Ghg52`&#-CQL~?a& zTqu3}tahQ(tQW@$(JZ2$56gSF%PWh^58*C22i#f&Y9R9-#^K=b-447t#}N^B%zMsB z&c7u5q~ZMmoMB=;EWMKO2Iipw-CERmVODEpjWmx9Er|=M`VlGX?W_Mxlkkv!+h@}} z27akusoglk+X#g-Guhc;TCJ%W`rS%piu-HfnB4q|d)fdxpGmC~a)`sbI0K(TE;W_b zV05I>v1nA|sWX}N<&Vw^PQmlzG5d0*o2#3fRMK1Xxz?zQF5!zOIrnltL#PIMS7Jd$ zRk=O8KmEq)4zU|~w%r9Mjrq7{jzf&P9M2ov)<)hVo#^Ugm#tHED!oQ! zO^AkEO9v6drznZd@1tJ7K9*-0FkVo>qZ%F%GnSVzNFxRZy78e+(EHbEm09P)^iE+( znm2ElH4`oOs%VTh4CqAZTkV95PJY8wu9$~+FploGo(7M6$id}T1<^@d!04^3wtCHQ zEz$OkYOF>v?egxvI=GK&>e>c!2r67(YNgot6FkSr4KCFxb zM);<~44QQ661HnfUf#(|5~}K`zXa3MjBGk%=8u~(8c7_y$N|=MqeXh$q@u`N#v=~F z!BWijXuQm&24*=y9RZU-7kSY^JumsMUcaT-pKMfK$R8Frk{Hzf>+z@NXMiH@*Y zwOiRQ$jtH>0%nZ4y!ZMj*r1x0l!=a504$I)-BEc#6T@^5fiaozZX0o>g>s z*~xu9uzx@8*_j}2_Z|ehCM@4v?jj99fG*0(*T*p6A`p^s8o?@;GOsP84jVZF!CT%D zr)Qy4Pt;Vv`pI6dw7(bG=Sn_;NJYc&jo3HcO;e39-xGzAPMUl#$OJFP9T`$?EJUL> zba(0c&>8aX>qU}j5P6Fw$uIxQ67365=aMtOTR$^7yo#k6MQ{&x

    auaNL8rjEzV#P7RRCA4_tG}KA4_*~J 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 HGY$S<{43h{ diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_twbS3z13.png b/packages/superdeck/example/.superdeck/generated/thumbnail_twbS3z13.png deleted file mode 100644 index 1567aa428751852acd7354946f0199a8b5409e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9960 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", + "key": "xUhI9Z6w", + "options": {}, + "sections": [ + { "options": {}, "type": "root" }, + { "options": {}, "type": "root" } + ] + }, + { "content": "{@content flex: 2}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo \n\n{@content }", - "key": "twbS3z13" + "key": "dk6NgW8O", + "options": { "style": "quote" }, + "sections": [ + { "options": {}, "type": "root" }, + { "options": {}, "type": "root" } + ] }, { - "style": "show_sections", - "content": "{@header}\n{@image src: https://picsum.photos/900/700?waves | flex: 2 | align: bottom_left | fit: cover}\n\n{@body}\n\n \n\n\n\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n{@content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", - "key": "i0RprPGe" + "content": "{@header}\n{@image src: https://picsum.photos/1200/1200?waves | align: bottom_left | fit: cover}\n\n{@body flex: 2}\n{@content flex: 2}\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n\n{@content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", + "key": "MGrRVh3m", + "options": { "style": "show_sections" }, + "sections": [ + { "options": {}, "type": "header" }, + { "options": { "flex": 2 }, "type": "body" } + ] }, { - "style": "show_sections", "content": "{@header}\n{@content align: bottom_right}\n\n## First\n\n{@content} \n\n\n## Header\n\n{@body flex: 2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{@content}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", - "key": "buKIeKag" + "key": "3thjboPz", + "options": { "style": "show_sections" }, + "sections": [ + { "options": {}, "type": "header" }, + { "options": { "flex": 2 }, "type": "body" } + ] } ], "assets": [ { - "path": ".superdeck/generated/thumbnail_twbS3z13.png", - "width": 512, - "height": 288 + "path": ".superdeck/generated/mermaid_spzwggdT.png", + "width": 313, + "height": 449 }, { - "path": ".superdeck/generated/thumbnail_buKIeKag.png", - "width": 512, - "height": 288 + "path": ".superdeck/generated/mermaid_BTVEzSEg.png", + "width": 650, + "height": 171 } ] -} \ No newline at end of file +} diff --git a/packages/superdeck/example/TESTTEST_GFcAteuq.json b/packages/superdeck/example/TESTTEST_GFcAteuq.json new file mode 100644 index 00000000..8bc98bcf --- /dev/null +++ b/packages/superdeck/example/TESTTEST_GFcAteuq.json @@ -0,0 +1 @@ +[{"options":{},"type":"root"},{"options":{},"type":"root"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_GhPSyqne.json b/packages/superdeck/example/TESTTEST_GhPSyqne.json new file mode 100644 index 00000000..fd46b47d --- /dev/null +++ b/packages/superdeck/example/TESTTEST_GhPSyqne.json @@ -0,0 +1 @@ +[{"options":{},"type":"header"},{"options":{"flex":2},"type":"body"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_QpZaQP4T.json b/packages/superdeck/example/TESTTEST_QpZaQP4T.json new file mode 100644 index 00000000..8bc98bcf --- /dev/null +++ b/packages/superdeck/example/TESTTEST_QpZaQP4T.json @@ -0,0 +1 @@ +[{"options":{},"type":"root"},{"options":{},"type":"root"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_Sz6GvdYE.json b/packages/superdeck/example/TESTTEST_Sz6GvdYE.json new file mode 100644 index 00000000..fd46b47d --- /dev/null +++ b/packages/superdeck/example/TESTTEST_Sz6GvdYE.json @@ -0,0 +1 @@ +[{"options":{},"type":"header"},{"options":{"flex":2},"type":"body"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_k00ce27I.json b/packages/superdeck/example/TESTTEST_k00ce27I.json new file mode 100644 index 00000000..8bc98bcf --- /dev/null +++ b/packages/superdeck/example/TESTTEST_k00ce27I.json @@ -0,0 +1 @@ +[{"options":{},"type":"root"},{"options":{},"type":"root"}] \ No newline at end of file diff --git a/packages/superdeck/example/lib/main.dart b/packages/superdeck/example/lib/main.dart index d1c5004c..b2ecadba 100644 --- a/packages/superdeck/example/lib/main.dart +++ b/packages/superdeck/example/lib/main.dart @@ -13,7 +13,6 @@ void main() async { debugShowCheckedModeBanner: false, home: SuperDeckApp( styles: { - 'rad': radStyle, 'custom': customStyle, 'cover': coverStyle, 'announcement': announcementStyle, diff --git a/packages/superdeck/example/lib/src/style.dart b/packages/superdeck/example/lib/src/style.dart index 75b3b92a..b85d8f9c 100644 --- a/packages/superdeck/example/lib/src/style.dart +++ b/packages/superdeck/example/lib/src/style.dart @@ -21,59 +21,6 @@ final _contentContainer = _util.contentContainer; final _textStyle = _util.textStyle; final _innerContainer = _util.innerContainer; -Style get radStyle { - return Style( - _h1.textStyle.as(GoogleFonts.poppins()), - _h1.textStyle.fontSize(140), - _code.decoration.border.all( - color: Colors.white, - width: 1, - ), - _code.decoration.color.black(), - _code.padding.all(40), - _outerContainer.margin.all(60), - _innerContainer.borderRadius(25), - _innerContainer.shadow( - blurRadius: 0, - spreadRadius: 10, - color: Colors.red.withOpacity(1), - ), - _innerContainer.gradient.radial( - stops: [0.0, 1.0], - radius: 0.7, - colors: [Colors.purple, Colors.deepPurple], - ), - $on.focus( - _innerContainer.color.yellow(), - ), - $on.hover.event((e) { - if (e == null) return const Style.empty(); - final position = e.position; - final dx = position.x * 10; - final dy = position.y * 10; - - return Style( - _innerContainer.transform(_transformMatrix(position)), - _innerContainer.shadow.offset(dx, dy), - _innerContainer.gradient.radial( - center: position, - ), - ); - }), - ($on.press | $on.longPress)( - _innerContainer.shadow( - blurRadius: 5, - spreadRadius: 1, - offset: Offset.zero, - color: Colors.purpleAccent, - ), - _innerContainer.border.all(color: Colors.white, width: 1), - _innerContainer.gradient.radial - .colors([Colors.purpleAccent, Colors.purpleAccent]), - ), - ); -} - Style get customStyle { return Style( _textStyle.as(GoogleFonts.poppins()), @@ -170,14 +117,6 @@ Style get showSectionsStyle { color: Colors.blue, width: 2, ), + _innerContainer.borderRadius(10), ); } - -Matrix4 _transformMatrix(Alignment alignment) { - final double rotateX = alignment.y * 0.2; - final double rotateY = -alignment.x * 0.2; - return Matrix4.identity() - ..rotateX(rotateX) - ..rotateY(rotateY) - ..translate(0.0, 0.0, 100.0); -} diff --git a/packages/superdeck/example/lib/src/widget/mix_demo.dart b/packages/superdeck/example/lib/src/widget/mix_demo.dart index af6d04d6..fd3ef271 100644 --- a/packages/superdeck/example/lib/src/widget/mix_demo.dart +++ b/packages/superdeck/example/lib/src/widget/mix_demo.dart @@ -3,16 +3,13 @@ import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; import 'package:superdeck/components/molecules/code_preview.dart'; -import 'package:superdeck/schema/schema_model.dart'; -import 'package:superdeck/superdeck.dart'; const purpleAccent = Color.fromARGB(255, 95, 44, 188); const purple = Color.fromARGB(255, 66, 19, 152); Style get _style => Style( // Box - $box.height(250), - $box.width(250), + $box.borderRadius.circular(10), $box.alignment.center(), $box.shadow( @@ -53,10 +50,6 @@ Style get _style => Style( ); }), - $on.hover( - $box.color.black(), - ), - ($on.press | $on.longPress)( $box.shadow( blurRadius: 5, @@ -72,8 +65,8 @@ Style get _style => Style( ); class ExampleOptions { - final double height; - final double width; + final double? height; + final double? width; final String? text; const ExampleOptions({ required this.height, @@ -83,22 +76,11 @@ class ExampleOptions { static ExampleOptions fromMap(Map map) { return ExampleOptions( - height: map['height'] as double, - width: map['width'] as double, + height: map['height'] as double?, + width: map['width'] as double?, text: map['text'] as String?, ); } - - static final schema = ArgsSchema( - validator: SchemaShape( - { - 'height': Schema.double.required(), - 'width': Schema.double.required(), - 'text': Schema.string.required(), - }, - ), - decoder: fromMap, - ); } Widget mixExampleBuilder(BuildContext context) { @@ -106,14 +88,14 @@ Widget mixExampleBuilder(BuildContext context) { return Builder( builder: (context) { return Center( - child: Box( - style: Style( - _style(), - $box.height(options.height), - $box.width(options.width), - ).animate(), - child: StyledText( - options.text ?? 'Mix', + child: SizedBox( + height: options.height, + width: options.width, + child: Box( + style: _style.animate(), + child: StyledText( + options.text ?? 'Mix', + ), ), ), ); diff --git a/packages/superdeck/example/pubspec_overrides.yaml b/packages/superdeck/example/pubspec_overrides.yaml index 32c9384f..794663fb 100644 --- a/packages/superdeck/example/pubspec_overrides.yaml +++ b/packages/superdeck/example/pubspec_overrides.yaml @@ -1,4 +1,4 @@ -# melos_managed_dependency_overrides: superdeck,superdeck_cli +# melos_managed_dependency_overrides: superdeck,superdeck_cli,superdeck_core dependency_overrides: # mix_generator: # path: ../../mix/packages/mix_generator @@ -8,3 +8,5 @@ dependency_overrides: path: .. superdeck_cli: path: ../../superdeck_cli + superdeck_core: + path: ../../superdeck_core diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index 12f3a104..a21170f9 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -1,3 +1,36 @@ +--- +--- +{@content} +## This is an example of a widget + +{@widget name: demo } + +--- +--- + +```mermaid +graph TD + A[Enter Chart Definition] --> B(Preview) + B --> C{decide} + C --> D[Keep] + C --> E[Edit Definition] + E --> B + D --> F[Save Image and Code] + F --> B +``` + +{@content} + +```mermaid +sequenceDiagram + participant Customer as 🧑 Customer + participant Barista as ☕ Barista + participant CoffeeMachine as 🏭 Coffee Machine +``` + + + + --- style: quote --- @@ -15,18 +48,15 @@ style: show_sections --- {@header} -{@image src: https://picsum.photos/900/700?waves | flex: 2 | align: bottom_left | fit: cover} - -{@body} - - - - +{@image src: https://picsum.photos/1200/1200?waves | align: bottom_left | fit: cover} +{@body flex: 2} +{@content flex: 2} # Two Column HGoes here This is a two-column layout. You can use it to compare two different concepts or ideas. + {@content} ### Section Options @@ -35,8 +65,6 @@ Easily customize the content of each section to suit your needs. Use front matter to define the layout of each section - - --- style: show_sections --- diff --git a/packages/superdeck/example/testest.json b/packages/superdeck/example/testest.json new file mode 100644 index 00000000..fd46b47d --- /dev/null +++ b/packages/superdeck/example/testest.json @@ -0,0 +1 @@ +[{"options":{},"type":"header"},{"options":{"flex":2},"type":"body"}] \ No newline at end of file diff --git a/packages/superdeck/lib/components/atoms/cache_image_widget.dart b/packages/superdeck/lib/components/atoms/cache_image_widget.dart index 0b7b8411..7f1a2a43 100644 --- a/packages/superdeck/lib/components/atoms/cache_image_widget.dart +++ b/packages/superdeck/lib/components/atoms/cache_image_widget.dart @@ -5,6 +5,7 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import '../../helpers/constants.dart'; import '../../superdeck.dart'; diff --git a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart index daa090d0..77139aec 100644 --- a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart +++ b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart @@ -5,12 +5,12 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:mix/mix.dart'; import 'package:remix/remix.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import '../../helpers/constants.dart'; import '../../helpers/extensions.dart'; import '../../services/reference_service.dart'; import '../../services/snapshot_service.dart'; -import '../../superdeck.dart'; import 'cache_image_widget.dart'; import 'loading_indicator.dart'; diff --git a/packages/superdeck/lib/components/atoms/slide_view.dart b/packages/superdeck/lib/components/atoms/slide_view.dart index c24bfdda..9af4e973 100644 --- a/packages/superdeck/lib/components/atoms/slide_view.dart +++ b/packages/superdeck/lib/components/atoms/slide_view.dart @@ -1,7 +1,7 @@ import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; +import 'package:superdeck_core/superdeck_core.dart'; -import '../../models/slide_model.dart'; import '../../providers/slide_provider.dart'; import '../../providers/snapshot_provider.dart'; import '../../providers/style_provider.dart'; @@ -9,35 +9,37 @@ import '../../styles/style_spec.dart'; import 'cache_image_widget.dart'; import 'transition_widget.dart'; -class SlideView extends StatelessWidget { +class SlideView extends StatelessWidget { const SlideView( this.slide, { super.key, }); - final T slide; + final Slide slide; @override Widget build(BuildContext context) { final slide = this.slide; + final background = slide.options?.background; + final transition = slide.options?.transition; - final variantStyle = StyleProvider.of(context, slide.style); + final variantStyle = StyleProvider.of(context, slide.options?.style); final isCapturing = SnapshotProvider.isCapturingOf(context); final duration = isCapturing ? Duration.zero : const Duration(milliseconds: 300); - final backgroundWidget = slide.background != null + final backgroundWidget = background != null ? CacheImage( - url: slide.background!, + url: background, fit: BoxFit.cover, alignment: Alignment.center, ) : const SizedBox(); return TransitionWidget( - key: ValueKey(slide.transition), - transition: slide.transition, + key: ValueKey(transition), + transition: transition, child: SpecBuilder( style: variantStyle, builder: (context) { diff --git a/packages/superdeck/lib/components/atoms/transition_widget.dart b/packages/superdeck/lib/components/atoms/transition_widget.dart index a6ec5d73..22ce5ccb 100644 --- a/packages/superdeck/lib/components/atoms/transition_widget.dart +++ b/packages/superdeck/lib/components/atoms/transition_widget.dart @@ -1,7 +1,6 @@ import 'package:animate_do/animate_do.dart'; import 'package:flutter/material.dart'; - -import '../../models/options_model.dart'; +import 'package:superdeck_core/superdeck_core.dart'; class TransitionWidget extends StatelessWidget { final TransitionOptions? transition; diff --git a/packages/superdeck/lib/components/molecules/slide_content.dart b/packages/superdeck/lib/components/molecules/slide_content.dart index 6301de4e..05df11e5 100644 --- a/packages/superdeck/lib/components/molecules/slide_content.dart +++ b/packages/superdeck/lib/components/molecules/slide_content.dart @@ -1,7 +1,8 @@ import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; +import 'package:superdeck_core/superdeck_core.dart'; -import '../../models/options_model.dart'; +import '../../providers/examples_provider.dart'; import '../../providers/snapshot_provider.dart'; import '../../styles/style_spec.dart'; import '../atoms/cache_image_widget.dart'; @@ -50,7 +51,7 @@ class SlideContent extends StatelessWidget { spec: spec.innerContainer, duration: const Duration(milliseconds: 300), child: Align( - alignment: alignment.toAlignment(), + alignment: toAlignment(alignment), child: child, ), ); @@ -69,15 +70,15 @@ class ImageContent extends StatelessWidget { Widget build(context) { final spec = SlideSpec.of(context); final alignment = options.align ?? ContentAlignment.center; + final imageFit = options.fit ?? ImageFit.cover; return Container( decoration: BoxDecoration( color: Colors.green, image: DecorationImage( - alignment: alignment.toAlignment(), - image: getImageProvider(options.src), - fit: options.fit?.toBoxFit() ?? BoxFit.cover, - ), + alignment: toAlignment(alignment), + image: getImageProvider(options.src), + fit: toBoxFit(imageFit)), ), child: AnimatedBoxSpecWidget( duration: const Duration(milliseconds: 300), @@ -87,3 +88,64 @@ class ImageContent extends StatelessWidget { ); } } + +class WidgetContent extends StatelessWidget { + const WidgetContent({ + required this.options, + super.key, + }); + + final WidgetOptions options; + + @override + Widget build(context) { + final spec = SlideSpec.of(context); + final alignment = options.align ?? ContentAlignment.center; + + final examples = ExamplesProvider.of(context); + final widgetBuilder = examples[options.name]; + + if (widgetBuilder == null) { + return Container( + color: Colors.red, + ); + } + + return AnimatedBoxSpecWidget( + duration: const Duration(milliseconds: 300), + spec: spec.contentContainer, + child: Container( + alignment: toAlignment(alignment), + child: Builder( + builder: widgetBuilder, + ), + ), + ); + } +} + +BoxFit toBoxFit(ImageFit fit) { + return switch (fit) { + ImageFit.fill => BoxFit.fill, + ImageFit.contain => BoxFit.contain, + ImageFit.cover => BoxFit.cover, + ImageFit.fitWidth => BoxFit.fitWidth, + ImageFit.fitHeight => BoxFit.fitHeight, + ImageFit.none => BoxFit.none, + ImageFit.scaleDown => BoxFit.scaleDown, + }; +} + +Alignment toAlignment(ContentAlignment alignment) { + return switch (alignment) { + ContentAlignment.topLeft => Alignment.topLeft, + ContentAlignment.topCenter => Alignment.topCenter, + ContentAlignment.topRight => Alignment.topRight, + ContentAlignment.centerLeft => Alignment.centerLeft, + ContentAlignment.center => Alignment.center, + ContentAlignment.centerRight => Alignment.centerRight, + ContentAlignment.bottomLeft => Alignment.bottomLeft, + ContentAlignment.bottomCenter => Alignment.bottomCenter, + ContentAlignment.bottomRight => Alignment.bottomRight, + }; +} diff --git a/packages/superdeck/lib/components/molecules/slide_preview.dart b/packages/superdeck/lib/components/molecules/slide_preview.dart index c3fef6ec..7cef96ee 100644 --- a/packages/superdeck/lib/components/molecules/slide_preview.dart +++ b/packages/superdeck/lib/components/molecules/slide_preview.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; +import 'package:superdeck_core/superdeck_core.dart'; -import '../../superdeck.dart'; import '../atoms/slide_view.dart'; import 'scaled_app.dart'; diff --git a/packages/superdeck/lib/components/organisms/app_shell.dart b/packages/superdeck/lib/components/organisms/app_shell.dart index ff797bbb..b9e83001 100644 --- a/packages/superdeck/lib/components/organisms/app_shell.dart +++ b/packages/superdeck/lib/components/organisms/app_shell.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:go_router/go_router.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import '../../helpers/routes.dart'; import '../../helpers/utils.dart'; diff --git a/packages/superdeck/lib/components/remix/button.dart b/packages/superdeck/lib/components/remix/button.dart index 231edfeb..0be6f173 100644 --- a/packages/superdeck/lib/components/remix/button.dart +++ b/packages/superdeck/lib/components/remix/button.dart @@ -17,7 +17,7 @@ class SDButton extends StatelessWidget { @override Widget build(BuildContext context) { - return RxButton( + return XButton( onPressed: onPressed, iconLeft: icon, label: label, @@ -40,7 +40,7 @@ class SDButtonSolid extends StatelessWidget { @override Widget build(BuildContext context) { - return RxButton( + return XButton( onPressed: onPressed, iconLeft: icon, label: label, @@ -63,7 +63,7 @@ class SDOutlinedButton extends StatelessWidget { @override Widget build(BuildContext context) { - return RxButton( + return XButton( onPressed: onPressed, iconLeft: icon, label: label, @@ -86,7 +86,7 @@ class SDIconButton extends StatelessWidget { @override Widget build(BuildContext context) { - return RxButton( + return XButton( onPressed: onPressed, iconLeft: icon, label: '', diff --git a/packages/superdeck/lib/helpers/extensions.dart b/packages/superdeck/lib/helpers/extensions.dart index 3b2e6234..51505bec 100644 --- a/packages/superdeck/lib/helpers/extensions.dart +++ b/packages/superdeck/lib/helpers/extensions.dart @@ -26,32 +26,3 @@ extension BuildContextX on BuildContext { TextTheme get textTheme => theme.textTheme; ColorScheme get colorScheme => theme.colorScheme; } - -extension StringX on String { - String capitalize() { - return "${this[0].toUpperCase()}${this.substring(1)}"; - } - - String snakeCase() { - return this - .replaceAll(RegExp(r'\s+'), '_') - .replaceAllMapped( - RegExp( - r'[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+'), - (match) => "${match.group(0)!.toLowerCase()}_") - .replaceAll(RegExp(r'(_)\1+'), '_') - .replaceAll(RegExp(r'^_|_$'), ''); - } -} - -extension ListX on List { - T? get tryFirst => isNotEmpty ? first : null; - T? get tryLast => isNotEmpty ? last : null; - T? tryElementAt(int index) { - if (index < 0 || index >= length) { - return null; - } - - return elementAt(index); - } -} diff --git a/packages/superdeck/lib/models/slide_model.dart b/packages/superdeck/lib/models/slide_model.dart deleted file mode 100644 index ac0f5d54..00000000 --- a/packages/superdeck/lib/models/slide_model.dart +++ /dev/null @@ -1,224 +0,0 @@ -import 'package:dart_mappable/dart_mappable.dart'; - -import '../schema/schema_model.dart'; -import '../schema/schema_validation.dart'; -import '../superdeck.dart'; -import 'config_model.dart'; - -part 'slide_model.mapper.dart'; - -@MappableClass(discriminatorKey: 'layout') -abstract class Slide extends BaseConfig with SlideMappable { - final String? title; - final String layout; - final String content; - - final String key; - - final ContentOptions? contentOptions; - - Slide({ - required this.layout, - required this.content, - required this.key, - required this.title, - required this.contentOptions, - required super.background, - required super.style, - required super.transition, - }); - - static Slide parse(Map map) { - final layout = map['layout'] ??= LayoutType.simple; - - try { - switch (layout) { - case LayoutType.simple: - case null: - SimpleSlide.schema.validateOrThrow(map); - return SimpleSlide.fromMap(map); - case LayoutType.image: - ImageSlide.schema.validateOrThrow(map); - return ImageSlide.fromMap(map); - case LayoutType.widget: - WidgetSlide.schema.validateOrThrow(map); - return WidgetSlide.fromMap(map); - - default: - return InvalidSlide.invalidTemplate(layout); - } - } on SchemaValidationException catch (e) { - return InvalidSlide.schemaError(e.result); - } on Exception catch (e) { - return InvalidSlide.exception(e); - } catch (e) { - return InvalidSlide.message('# Unknown Error \n $e'); - } - } - - static const fromMap = SlideMapper.fromMap; - - static const fromJson = SlideMapper.fromJson; - - static final schema = BaseConfig.schema.merge( - { - "layout": Schema.string.required(), - "data": Schema.string.required(), - "content": ContentOptions.schema, - "title": Schema.string, - "raw": Schema.string, - }, - ); -} - -@MappableClass(discriminatorValue: MappableClass.useAsDefault) -class SimpleSlide extends Slide with SimpleSlideMappable { - SimpleSlide({ - super.title, - super.background, - super.contentOptions, - super.style, - super.transition, - required super.key, - required super.content, - }) : super(layout: LayoutType.simple); - - static const fromMap = SimpleSlideMapper.fromMap; - - static const fromJson = SimpleSlideMapper.fromJson; - - static final schema = Slide.schema; -} - -@MappableClass() -abstract class SplitSlide extends Slide with SplitSlideMappable { - final T options; - - SplitSlide({ - required this.options, - super.title, - super.background, - required super.contentOptions, - super.style, - super.transition, - required super.content, - required super.layout, - required super.key, - }); -} - -@MappableClass(discriminatorValue: LayoutType.image) -class ImageSlide extends SplitSlide with ImageSlideMappable { - ImageSlide({ - super.title, - super.style, - super.background, - required super.contentOptions, - super.transition, - required super.content, - required super.options, - required super.key, - }) : super(layout: LayoutType.image); - - static const fromMap = ImageSlideMapper.fromMap; - - static const fromJson = ImageSlideMapper.fromJson; - - static final schema = Slide.schema.merge( - { - 'options': ImageOptions.schema.required(), - }, - ); -} - -@MappableClass(discriminatorValue: LayoutType.widget) -class WidgetSlide extends SplitSlide with WidgetSlideMappable { - WidgetSlide({ - super.title, - required super.options, - super.style, - super.background, - required super.contentOptions, - super.transition, - required super.content, - required super.key, - }) : super(layout: LayoutType.widget); - - static const fromMap = WidgetSlideMapper.fromMap; - - static const fromJson = WidgetSlideMapper.fromJson; - - static final schema = Slide.schema.merge( - { - 'options': WidgetOptions.schema.required(), - }, - ); -} - -@MappableRecord() -typedef SectionData = ({String content, ContentOptions? options}); - -@MappableClass(discriminatorValue: LayoutType.invalid) -class InvalidSlide extends Slide with InvalidSlideMappable { - InvalidSlide({ - required super.contentOptions, - super.title, - super.background, - super.style, - super.transition, - required super.content, - required super.key, - }) : super(layout: LayoutType.invalid); - - InvalidSlide.message(String message) - : super( - layout: LayoutType.invalid, - title: null, - content: message, - background: null, - contentOptions: null, - style: null, - key: 'invalid_key', - transition: null, - ); - - InvalidSlide.invalidTemplate(String template) - : this.message('# Invalid template \n ## $template'); - - factory InvalidSlide.exception(Exception exception) { - return InvalidSlide.message('# Exception \n ## ${exception.toString()}'); - } - - factory InvalidSlide.schemaError( - SchemaValidationResult result, [ - String? content, - ]) { - final path = result.key; - final errors = result.errors; - final errorMessage = errors.map((error) => error.message).join('\n\n'); - - // dont forget the tab or spacing since they are nested - String keysNested = ''; - - if (path.isNotEmpty) { - keysNested = path.join('.'); - } - - content ??= '# Schema Error'; - - final message = ''' -$content -## $keysNested -$errorMessage -'''; - - return InvalidSlide.message(message); - } - - factory InvalidSlide.projectSchemaError(SchemaValidationResult error) { - return InvalidSlide.schemaError(error, '# Project configuration error'); - } - - static const fromMap = InvalidSlideMapper.fromMap; - static const fromJson = InvalidSlideMapper.fromJson; -} diff --git a/packages/superdeck/lib/models/slide_model.mapper.dart b/packages/superdeck/lib/models/slide_model.mapper.dart deleted file mode 100644 index cbdbf293..00000000 --- a/packages/superdeck/lib/models/slide_model.mapper.dart +++ /dev/null @@ -1,1140 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'slide_model.dart'; - -class SlideMapper extends SubClassMapperBase { - SlideMapper._(); - - static SlideMapper? _instance; - static SlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SlideMapper._()); - BaseConfigMapper.ensureInitialized().addSubMapper(_instance!); - SimpleSlideMapper.ensureInitialized(); - SplitSlideMapper.ensureInitialized(); - InvalidSlideMapper.ensureInitialized(); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'Slide'; - - static String _$layout(Slide v) => v.layout; - static const Field _f$layout = Field('layout', _$layout); - static String _$content(Slide v) => v.content; - static const Field _f$content = Field('content', _$content); - static String _$key(Slide v) => v.key; - static const Field _f$key = Field('key', _$key); - static String? _$title(Slide v) => v.title; - static const Field _f$title = Field('title', _$title); - static ContentOptions? _$contentOptions(Slide v) => v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static String? _$background(Slide v) => v.background; - static const Field _f$background = - Field('background', _$background); - static String? _$style(Slide v) => v.style; - static const Field _f$style = Field('style', _$style); - static TransitionOptions? _$transition(Slide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition); - - @override - final MappableFields fields = const { - #layout: _f$layout, - #content: _f$content, - #key: _f$key, - #title: _f$title, - #contentOptions: _f$contentOptions, - #background: _f$background, - #style: _f$style, - #transition: _f$transition, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'Slide'; - @override - late final ClassMapperBase superMapper = BaseConfigMapper.ensureInitialized(); - - static Slide _instantiate(DecodingData data) { - throw MapperException.missingSubclass( - 'Slide', 'layout', '${data.value['layout']}'); - } - - @override - final Function instantiate = _instantiate; - - static Slide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static Slide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SlideMappable { - String toJson(); - Map toMap(); - SlideCopyWith get copyWith; -} - -abstract class SlideCopyWith<$R, $In extends Slide, $Out> - implements BaseConfigCopyWith<$R, $In, $Out> { - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - $R call( - {String? content, - String? key, - String? title, - ContentOptions? contentOptions, - String? background, - String? style, - TransitionOptions? transition}); - SlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class SimpleSlideMapper extends SubClassMapperBase { - SimpleSlideMapper._(); - - static SimpleSlideMapper? _instance; - static SimpleSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SimpleSlideMapper._()); - SlideMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SimpleSlide'; - - static String? _$title(SimpleSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$background(SimpleSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static ContentOptions? _$contentOptions(SimpleSlide v) => v.contentOptions; - static const Field _f$contentOptions = Field( - 'contentOptions', _$contentOptions, - key: 'content_options', opt: true); - static String? _$style(SimpleSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static TransitionOptions? _$transition(SimpleSlide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$key(SimpleSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - static String _$content(SimpleSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static String _$layout(SimpleSlide v) => v.layout; - static const Field _f$layout = - Field('layout', _$layout, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #title: _f$title, - #background: _f$background, - #contentOptions: _f$contentOptions, - #style: _f$style, - #transition: _f$transition, - #key: _f$key, - #content: _f$content, - #layout: _f$layout, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = MappableClass.useAsDefault; - @override - late final ClassMapperBase superMapper = SlideMapper.ensureInitialized(); - - static SimpleSlide _instantiate(DecodingData data) { - return SimpleSlide( - title: data.dec(_f$title), - background: data.dec(_f$background), - contentOptions: data.dec(_f$contentOptions), - style: data.dec(_f$style), - transition: data.dec(_f$transition), - key: data.dec(_f$key), - content: data.dec(_f$content)); - } - - @override - final Function instantiate = _instantiate; - - static SimpleSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SimpleSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SimpleSlideMappable { - String toJson() { - return SimpleSlideMapper.ensureInitialized() - .encodeJson(this as SimpleSlide); - } - - Map toMap() { - return SimpleSlideMapper.ensureInitialized() - .encodeMap(this as SimpleSlide); - } - - SimpleSlideCopyWith get copyWith => - _SimpleSlideCopyWithImpl(this as SimpleSlide, $identity, $identity); - @override - String toString() { - return SimpleSlideMapper.ensureInitialized() - .stringifyValue(this as SimpleSlide); - } - - @override - bool operator ==(Object other) { - return SimpleSlideMapper.ensureInitialized() - .equalsValue(this as SimpleSlide, other); - } - - @override - int get hashCode { - return SimpleSlideMapper.ensureInitialized().hashValue(this as SimpleSlide); - } -} - -extension SimpleSlideValueCopy<$R, $Out> - on ObjectCopyWith<$R, SimpleSlide, $Out> { - SimpleSlideCopyWith<$R, SimpleSlide, $Out> get $asSimpleSlide => - $base.as((v, t, t2) => _SimpleSlideCopyWithImpl(v, t, t2)); -} - -abstract class SimpleSlideCopyWith<$R, $In extends SimpleSlide, $Out> - implements SlideCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - $R call( - {String? title, - String? background, - ContentOptions? contentOptions, - String? style, - TransitionOptions? transition, - String? key, - String? content}); - SimpleSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _SimpleSlideCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SimpleSlide, $Out> - implements SimpleSlideCopyWith<$R, SimpleSlide, $Out> { - _SimpleSlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SimpleSlideMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions => $value.contentOptions?.copyWith - .$chain((v) => call(contentOptions: v)); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - $R call( - {Object? title = $none, - Object? background = $none, - Object? contentOptions = $none, - Object? style = $none, - Object? transition = $none, - String? key, - String? content}) => - $apply(FieldCopyWithData({ - if (title != $none) #title: title, - if (background != $none) #background: background, - if (contentOptions != $none) #contentOptions: contentOptions, - if (style != $none) #style: style, - if (transition != $none) #transition: transition, - if (key != null) #key: key, - if (content != null) #content: content - })); - @override - SimpleSlide $make(CopyWithData data) => SimpleSlide( - title: data.get(#title, or: $value.title), - background: data.get(#background, or: $value.background), - contentOptions: data.get(#contentOptions, or: $value.contentOptions), - style: data.get(#style, or: $value.style), - transition: data.get(#transition, or: $value.transition), - key: data.get(#key, or: $value.key), - content: data.get(#content, or: $value.content)); - - @override - SimpleSlideCopyWith<$R2, SimpleSlide, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _SimpleSlideCopyWithImpl($value, $cast, t); -} - -class SplitSlideMapper extends SubClassMapperBase { - SplitSlideMapper._(); - - static SplitSlideMapper? _instance; - static SplitSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SplitSlideMapper._()); - SlideMapper.ensureInitialized().addSubMapper(_instance!); - ImageSlideMapper.ensureInitialized(); - WidgetSlideMapper.ensureInitialized(); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SplitSlide'; - @override - Function get typeFactory => (f) => f>(); - - static dynamic _$options(SplitSlide v) => v.options; - static dynamic _arg$options(f) => f(); - static const Field _f$options = - Field('options', _$options, arg: _arg$options); - static String? _$title(SplitSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$background(SplitSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static ContentOptions? _$contentOptions(SplitSlide v) => v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static String? _$style(SplitSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static TransitionOptions? _$transition(SplitSlide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$content(SplitSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static String _$layout(SplitSlide v) => v.layout; - static const Field _f$layout = Field('layout', _$layout); - static String _$key(SplitSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - - @override - final MappableFields fields = const { - #options: _f$options, - #title: _f$title, - #background: _f$background, - #contentOptions: _f$contentOptions, - #style: _f$style, - #transition: _f$transition, - #content: _f$content, - #layout: _f$layout, - #key: _f$key, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = 'SplitSlide'; - @override - late final ClassMapperBase superMapper = SlideMapper.ensureInitialized(); - - @override - DecodingContext inherit(DecodingContext context) { - return context.inherit(args: () => [dynamic]); - } - - static SplitSlide _instantiate(DecodingData data) { - throw MapperException.missingSubclass( - 'SplitSlide', 'layout', '${data.value['layout']}'); - } - - @override - final Function instantiate = _instantiate; - - static SplitSlide fromMap(Map map) { - return ensureInitialized().decodeMap>(map); - } - - static SplitSlide fromJson(String json) { - return ensureInitialized().decodeJson>(json); - } -} - -mixin SplitSlideMappable { - String toJson(); - Map toMap(); - SplitSlideCopyWith, SplitSlide, SplitSlide, T> - get copyWith; -} - -abstract class SplitSlideCopyWith<$R, $In extends SplitSlide, $Out, T> - implements SlideCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - $R call( - {T? options, - String? title, - String? background, - ContentOptions? contentOptions, - String? style, - TransitionOptions? transition, - String? content, - String? key}); - SplitSlideCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class ImageSlideMapper extends SubClassMapperBase { - ImageSlideMapper._(); - - static ImageSlideMapper? _instance; - static ImageSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ImageSlideMapper._()); - SplitSlideMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - ImageOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'ImageSlide'; - - static String? _$title(ImageSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$style(ImageSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static String? _$background(ImageSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static ContentOptions? _$contentOptions(ImageSlide v) => v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static TransitionOptions? _$transition(ImageSlide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$content(ImageSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ImageOptions _$options(ImageSlide v) => v.options; - static const Field _f$options = - Field('options', _$options); - static String _$key(ImageSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - static String _$layout(ImageSlide v) => v.layout; - static const Field _f$layout = - Field('layout', _$layout, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #title: _f$title, - #style: _f$style, - #background: _f$background, - #contentOptions: _f$contentOptions, - #transition: _f$transition, - #content: _f$content, - #options: _f$options, - #key: _f$key, - #layout: _f$layout, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = LayoutType.image; - @override - late final ClassMapperBase superMapper = SplitSlideMapper.ensureInitialized(); - - @override - DecodingContext inherit(DecodingContext context) { - return context.inherit(args: () => []); - } - - static ImageSlide _instantiate(DecodingData data) { - return ImageSlide( - title: data.dec(_f$title), - style: data.dec(_f$style), - background: data.dec(_f$background), - contentOptions: data.dec(_f$contentOptions), - transition: data.dec(_f$transition), - content: data.dec(_f$content), - options: data.dec(_f$options), - key: data.dec(_f$key)); - } - - @override - final Function instantiate = _instantiate; - - static ImageSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static ImageSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin ImageSlideMappable { - String toJson() { - return ImageSlideMapper.ensureInitialized() - .encodeJson(this as ImageSlide); - } - - Map toMap() { - return ImageSlideMapper.ensureInitialized() - .encodeMap(this as ImageSlide); - } - - ImageSlideCopyWith get copyWith => - _ImageSlideCopyWithImpl(this as ImageSlide, $identity, $identity); - @override - String toString() { - return ImageSlideMapper.ensureInitialized() - .stringifyValue(this as ImageSlide); - } - - @override - bool operator ==(Object other) { - return ImageSlideMapper.ensureInitialized() - .equalsValue(this as ImageSlide, other); - } - - @override - int get hashCode { - return ImageSlideMapper.ensureInitialized().hashValue(this as ImageSlide); - } -} - -extension ImageSlideValueCopy<$R, $Out> - on ObjectCopyWith<$R, ImageSlide, $Out> { - ImageSlideCopyWith<$R, ImageSlide, $Out> get $asImageSlide => - $base.as((v, t, t2) => _ImageSlideCopyWithImpl(v, t, t2)); -} - -abstract class ImageSlideCopyWith<$R, $In extends ImageSlide, $Out> - implements SplitSlideCopyWith<$R, $In, $Out, ImageOptions> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options; - @override - $R call( - {String? title, - String? style, - String? background, - ContentOptions? contentOptions, - TransitionOptions? transition, - String? content, - ImageOptions? options, - String? key}); - ImageSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _ImageSlideCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, ImageSlide, $Out> - implements ImageSlideCopyWith<$R, ImageSlide, $Out> { - _ImageSlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - ImageSlideMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions => $value.contentOptions?.copyWith - .$chain((v) => call(contentOptions: v)); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options => - ($value.options as ImageOptions).copyWith.$chain((v) => call(options: v)); - @override - $R call( - {Object? title = $none, - Object? style = $none, - Object? background = $none, - Object? contentOptions = $none, - Object? transition = $none, - String? content, - ImageOptions? options, - String? key}) => - $apply(FieldCopyWithData({ - if (title != $none) #title: title, - if (style != $none) #style: style, - if (background != $none) #background: background, - if (contentOptions != $none) #contentOptions: contentOptions, - if (transition != $none) #transition: transition, - if (content != null) #content: content, - if (options != null) #options: options, - if (key != null) #key: key - })); - @override - ImageSlide $make(CopyWithData data) => ImageSlide( - title: data.get(#title, or: $value.title), - style: data.get(#style, or: $value.style), - background: data.get(#background, or: $value.background), - contentOptions: data.get(#contentOptions, or: $value.contentOptions), - transition: data.get(#transition, or: $value.transition), - content: data.get(#content, or: $value.content), - options: data.get(#options, or: $value.options), - key: data.get(#key, or: $value.key)); - - @override - ImageSlideCopyWith<$R2, ImageSlide, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _ImageSlideCopyWithImpl($value, $cast, t); -} - -class WidgetSlideMapper extends SubClassMapperBase { - WidgetSlideMapper._(); - - static WidgetSlideMapper? _instance; - static WidgetSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = WidgetSlideMapper._()); - SplitSlideMapper.ensureInitialized().addSubMapper(_instance!); - WidgetOptionsMapper.ensureInitialized(); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'WidgetSlide'; - - static String? _$title(WidgetSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static WidgetOptions _$options(WidgetSlide v) => v.options; - static const Field _f$options = - Field('options', _$options); - static String? _$style(WidgetSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static String? _$background(WidgetSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static ContentOptions? _$contentOptions(WidgetSlide v) => v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static TransitionOptions? _$transition(WidgetSlide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$content(WidgetSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static String _$key(WidgetSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - static String _$layout(WidgetSlide v) => v.layout; - static const Field _f$layout = - Field('layout', _$layout, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #title: _f$title, - #options: _f$options, - #style: _f$style, - #background: _f$background, - #contentOptions: _f$contentOptions, - #transition: _f$transition, - #content: _f$content, - #key: _f$key, - #layout: _f$layout, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = LayoutType.widget; - @override - late final ClassMapperBase superMapper = SplitSlideMapper.ensureInitialized(); - - @override - DecodingContext inherit(DecodingContext context) { - return context.inherit(args: () => []); - } - - static WidgetSlide _instantiate(DecodingData data) { - return WidgetSlide( - title: data.dec(_f$title), - options: data.dec(_f$options), - style: data.dec(_f$style), - background: data.dec(_f$background), - contentOptions: data.dec(_f$contentOptions), - transition: data.dec(_f$transition), - content: data.dec(_f$content), - key: data.dec(_f$key)); - } - - @override - final Function instantiate = _instantiate; - - static WidgetSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static WidgetSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin WidgetSlideMappable { - String toJson() { - return WidgetSlideMapper.ensureInitialized() - .encodeJson(this as WidgetSlide); - } - - Map toMap() { - return WidgetSlideMapper.ensureInitialized() - .encodeMap(this as WidgetSlide); - } - - WidgetSlideCopyWith get copyWith => - _WidgetSlideCopyWithImpl(this as WidgetSlide, $identity, $identity); - @override - String toString() { - return WidgetSlideMapper.ensureInitialized() - .stringifyValue(this as WidgetSlide); - } - - @override - bool operator ==(Object other) { - return WidgetSlideMapper.ensureInitialized() - .equalsValue(this as WidgetSlide, other); - } - - @override - int get hashCode { - return WidgetSlideMapper.ensureInitialized().hashValue(this as WidgetSlide); - } -} - -extension WidgetSlideValueCopy<$R, $Out> - on ObjectCopyWith<$R, WidgetSlide, $Out> { - WidgetSlideCopyWith<$R, WidgetSlide, $Out> get $asWidgetSlide => - $base.as((v, t, t2) => _WidgetSlideCopyWithImpl(v, t, t2)); -} - -abstract class WidgetSlideCopyWith<$R, $In extends WidgetSlide, $Out> - implements SplitSlideCopyWith<$R, $In, $Out, WidgetOptions> { - @override - WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options; - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - $R call( - {String? title, - WidgetOptions? options, - String? style, - String? background, - ContentOptions? contentOptions, - TransitionOptions? transition, - String? content, - String? key}); - WidgetSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _WidgetSlideCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, WidgetSlide, $Out> - implements WidgetSlideCopyWith<$R, WidgetSlide, $Out> { - _WidgetSlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - WidgetSlideMapper.ensureInitialized(); - @override - WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options => - ($value.options as WidgetOptions) - .copyWith - .$chain((v) => call(options: v)); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions => $value.contentOptions?.copyWith - .$chain((v) => call(contentOptions: v)); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - $R call( - {Object? title = $none, - WidgetOptions? options, - Object? style = $none, - Object? background = $none, - Object? contentOptions = $none, - Object? transition = $none, - String? content, - String? key}) => - $apply(FieldCopyWithData({ - if (title != $none) #title: title, - if (options != null) #options: options, - if (style != $none) #style: style, - if (background != $none) #background: background, - if (contentOptions != $none) #contentOptions: contentOptions, - if (transition != $none) #transition: transition, - if (content != null) #content: content, - if (key != null) #key: key - })); - @override - WidgetSlide $make(CopyWithData data) => WidgetSlide( - title: data.get(#title, or: $value.title), - options: data.get(#options, or: $value.options), - style: data.get(#style, or: $value.style), - background: data.get(#background, or: $value.background), - contentOptions: data.get(#contentOptions, or: $value.contentOptions), - transition: data.get(#transition, or: $value.transition), - content: data.get(#content, or: $value.content), - key: data.get(#key, or: $value.key)); - - @override - WidgetSlideCopyWith<$R2, WidgetSlide, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _WidgetSlideCopyWithImpl($value, $cast, t); -} - -class InvalidSlideMapper extends SubClassMapperBase { - InvalidSlideMapper._(); - - static InvalidSlideMapper? _instance; - static InvalidSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = InvalidSlideMapper._()); - SlideMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'InvalidSlide'; - - static ContentOptions? _$contentOptions(InvalidSlide v) => v.contentOptions; - static const Field _f$contentOptions = - Field('contentOptions', _$contentOptions, key: 'content_options'); - static String? _$title(InvalidSlide v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$background(InvalidSlide v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static String? _$style(InvalidSlide v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static TransitionOptions? _$transition(InvalidSlide v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - static String _$content(InvalidSlide v) => v.content; - static const Field _f$content = - Field('content', _$content); - static String _$key(InvalidSlide v) => v.key; - static const Field _f$key = Field('key', _$key); - static String _$layout(InvalidSlide v) => v.layout; - static const Field _f$layout = - Field('layout', _$layout, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #contentOptions: _f$contentOptions, - #title: _f$title, - #background: _f$background, - #style: _f$style, - #transition: _f$transition, - #content: _f$content, - #key: _f$key, - #layout: _f$layout, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'layout'; - @override - final dynamic discriminatorValue = LayoutType.invalid; - @override - late final ClassMapperBase superMapper = SlideMapper.ensureInitialized(); - - static InvalidSlide _instantiate(DecodingData data) { - return InvalidSlide( - contentOptions: data.dec(_f$contentOptions), - title: data.dec(_f$title), - background: data.dec(_f$background), - style: data.dec(_f$style), - transition: data.dec(_f$transition), - content: data.dec(_f$content), - key: data.dec(_f$key)); - } - - @override - final Function instantiate = _instantiate; - - static InvalidSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static InvalidSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin InvalidSlideMappable { - String toJson() { - return InvalidSlideMapper.ensureInitialized() - .encodeJson(this as InvalidSlide); - } - - Map toMap() { - return InvalidSlideMapper.ensureInitialized() - .encodeMap(this as InvalidSlide); - } - - InvalidSlideCopyWith get copyWith => - _InvalidSlideCopyWithImpl(this as InvalidSlide, $identity, $identity); - @override - String toString() { - return InvalidSlideMapper.ensureInitialized() - .stringifyValue(this as InvalidSlide); - } - - @override - bool operator ==(Object other) { - return InvalidSlideMapper.ensureInitialized() - .equalsValue(this as InvalidSlide, other); - } - - @override - int get hashCode { - return InvalidSlideMapper.ensureInitialized() - .hashValue(this as InvalidSlide); - } -} - -extension InvalidSlideValueCopy<$R, $Out> - on ObjectCopyWith<$R, InvalidSlide, $Out> { - InvalidSlideCopyWith<$R, InvalidSlide, $Out> get $asInvalidSlide => - $base.as((v, t, t2) => _InvalidSlideCopyWithImpl(v, t, t2)); -} - -abstract class InvalidSlideCopyWith<$R, $In extends InvalidSlide, $Out> - implements SlideCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions; - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - $R call( - {ContentOptions? contentOptions, - String? title, - String? background, - String? style, - TransitionOptions? transition, - String? content, - String? key}); - InvalidSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _InvalidSlideCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, InvalidSlide, $Out> - implements InvalidSlideCopyWith<$R, InvalidSlide, $Out> { - _InvalidSlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - InvalidSlideMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? - get contentOptions => $value.contentOptions?.copyWith - .$chain((v) => call(contentOptions: v)); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - $R call( - {Object? contentOptions = $none, - Object? title = $none, - Object? background = $none, - Object? style = $none, - Object? transition = $none, - String? content, - String? key}) => - $apply(FieldCopyWithData({ - if (contentOptions != $none) #contentOptions: contentOptions, - if (title != $none) #title: title, - if (background != $none) #background: background, - if (style != $none) #style: style, - if (transition != $none) #transition: transition, - if (content != null) #content: content, - if (key != null) #key: key - })); - @override - InvalidSlide $make(CopyWithData data) => InvalidSlide( - contentOptions: data.get(#contentOptions, or: $value.contentOptions), - title: data.get(#title, or: $value.title), - background: data.get(#background, or: $value.background), - style: data.get(#style, or: $value.style), - transition: data.get(#transition, or: $value.transition), - content: data.get(#content, or: $value.content), - key: data.get(#key, or: $value.key)); - - @override - InvalidSlideCopyWith<$R2, InvalidSlide, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _InvalidSlideCopyWithImpl($value, $cast, t); -} - -class SectionDataMapper extends RecordMapperBase { - static SectionDataMapper? _instance; - SectionDataMapper._(); - - static SectionDataMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SectionDataMapper._()); - MapperBase.addType((f) => f<({A content, B options})>()); - } - return _instance!; - } - - static String _$content(SectionData v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ContentOptions? _$options(SectionData v) => v.options; - static const Field _f$options = - Field('options', _$options); - - @override - final MappableFields fields = const { - #content: _f$content, - #options: _f$options, - }; - - @override - Function get typeFactory => (f) => f(); - - @override - List apply(MappingContext context) { - return []; - } - - static SectionData _instantiate(DecodingData data) { - return (content: data.dec(_f$content), options: data.dec(_f$options)); - } - - @override - final Function instantiate = _instantiate; - - static SectionData fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SectionData fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -extension SectionDataMappable on SectionData { - Map toMap() { - return SectionDataMapper.ensureInitialized().encodeMap(this); - } - - String toJson() { - return SectionDataMapper.ensureInitialized().encodeJson(this); - } - - SectionDataCopyWith get copyWith => - _SectionDataCopyWithImpl(this, $identity, $identity); -} - -extension SectionDataValueCopy<$R> - on ObjectCopyWith<$R, SectionData, SectionData> { - SectionDataCopyWith<$R> get $asSectionData => - $base.as((v, t, t2) => _SectionDataCopyWithImpl(v, t, t2)); -} - -abstract class SectionDataCopyWith<$R> - implements RecordCopyWith<$R, SectionData> { - $R call({String? content, ContentOptions? options}); - SectionDataCopyWith<$R2> $chain<$R2>(Then t); -} - -class _SectionDataCopyWithImpl<$R> extends RecordCopyWithBase<$R, SectionData> - implements SectionDataCopyWith<$R> { - _SectionDataCopyWithImpl(super.value, super.then, super.then2); - - @override - late final RecordMapperBase $mapper = - SectionDataMapper.ensureInitialized(); - @override - $R call({String? content, Object? options = $none}) => - $apply(FieldCopyWithData({ - if (content != null) #content: content, - if (options != $none) #options: options - })); - @override - SectionData $make(CopyWithData data) => ( - content: data.get(#content, or: $value.content), - options: data.get(#options, or: $value.options) - ); - - @override - SectionDataCopyWith<$R2> $chain<$R2>(Then t) => - _SectionDataCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck/lib/providers/assets_provider.dart b/packages/superdeck/lib/providers/assets_provider.dart index e2d0f31c..f76bce05 100644 --- a/packages/superdeck/lib/providers/assets_provider.dart +++ b/packages/superdeck/lib/providers/assets_provider.dart @@ -1,6 +1,5 @@ import 'package:flutter/widgets.dart'; - -import '../superdeck.dart'; +import 'package:superdeck_core/superdeck_core.dart'; class AssetsProvider extends InheritedWidget { const AssetsProvider({ diff --git a/packages/superdeck/lib/providers/controller.dart b/packages/superdeck/lib/providers/controller.dart index 57ccadc2..6a08d087 100644 --- a/packages/superdeck/lib/providers/controller.dart +++ b/packages/superdeck/lib/providers/controller.dart @@ -1,8 +1,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:superdeck_core/superdeck_core.dart'; -import '../models/asset_model.dart'; -import '../models/slide_model.dart'; import '../services/reference_service.dart'; final $superdeck = SuperDeckController.instance; @@ -18,7 +17,7 @@ class SuperDeckController extends ChangeNotifier { if (instance._initialized) return; instance._initialized = true; await instance._loadData(); - ReferenceService.instance.listen(instance._loadData); + ReferenceService.instance.listen(instance.refresh); } bool _loading = false; @@ -36,7 +35,7 @@ class SuperDeckController extends ChangeNotifier { bool get isRefreshing => _isRefreshing; Future _loadData() async { - _loading = true; + _loading = _isRefreshing ? false : true; _error = null; _completed = false; notifyListeners(); diff --git a/packages/superdeck/lib/providers/examples_provider.dart b/packages/superdeck/lib/providers/examples_provider.dart index a067cbea..0b853ea1 100644 --- a/packages/superdeck/lib/providers/examples_provider.dart +++ b/packages/superdeck/lib/providers/examples_provider.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../superdeck.dart'; +typedef ExampleBuilder = Widget Function(BuildContext context); class ExamplesProvider extends InheritedWidget { const ExamplesProvider({ diff --git a/packages/superdeck/lib/providers/slide_provider.dart b/packages/superdeck/lib/providers/slide_provider.dart index b7e7baaf..30066c57 100644 --- a/packages/superdeck/lib/providers/slide_provider.dart +++ b/packages/superdeck/lib/providers/slide_provider.dart @@ -1,9 +1,9 @@ // Create a SlideProvider that extends an Inherited widget import 'package:flutter/material.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import '../helpers/constants.dart'; -import '../models/slide_model.dart'; -import '../templates/templates.dart'; +import '../templates/slide_template.dart'; enum SlideProviderAspect { slide, @@ -48,7 +48,7 @@ class SlideBuilder extends StatelessWidget { slide: config, child: ConstrainedBox( constraints: BoxConstraints.tight(kResolution), - child: TemplateBuilder.buildTemplate(config), + child: SlideTemplate(config), ), ); } diff --git a/packages/superdeck/lib/screens/export_screen.dart b/packages/superdeck/lib/screens/export_screen.dart index 21089c68..37ed3932 100644 --- a/packages/superdeck/lib/screens/export_screen.dart +++ b/packages/superdeck/lib/screens/export_screen.dart @@ -1,12 +1,13 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import '../components/remix/button.dart'; import '../helpers/extensions.dart'; import '../helpers/routes.dart'; +import '../providers/controller.dart'; import '../services/export_service.dart'; import '../services/snapshot_service.dart'; -import '../superdeck.dart'; class ExportScreen extends HookWidget { const ExportScreen({super.key}); diff --git a/packages/superdeck/lib/services/export_service.dart b/packages/superdeck/lib/services/export_service.dart index 30e0b03e..2c019224 100644 --- a/packages/superdeck/lib/services/export_service.dart +++ b/packages/superdeck/lib/services/export_service.dart @@ -6,10 +6,10 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:pdf/pdf.dart'; import 'package:pdf/widgets.dart' as pw; +import 'package:superdeck_core/superdeck_core.dart'; import '../components/molecules/slide_preview.dart'; import '../helpers/constants.dart'; -import '../superdeck.dart'; import 'snapshot_service.dart'; enum PdfExportStatus { diff --git a/packages/superdeck/lib/services/reference_service.dart b/packages/superdeck/lib/services/reference_service.dart index 80d9e1c5..eabfeaf6 100644 --- a/packages/superdeck/lib/services/reference_service.dart +++ b/packages/superdeck/lib/services/reference_service.dart @@ -5,10 +5,10 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; import 'package:path/path.dart' as p; +import 'package:superdeck_core/superdeck_core.dart'; import '../helpers/constants.dart'; import '../helpers/watcher.dart'; -import '../models/reference_model.dart'; final _assetDir = Directory(p.join('.superdeck')); final _slideRef = File(p.join(_assetDir.path, 'slides.json')); diff --git a/packages/superdeck/lib/services/snapshot_service.dart b/packages/superdeck/lib/services/snapshot_service.dart index 6e8570c8..0dd2b183 100644 --- a/packages/superdeck/lib/services/snapshot_service.dart +++ b/packages/superdeck/lib/services/snapshot_service.dart @@ -6,6 +6,7 @@ import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter/rendering.dart'; import 'package:flutter/services.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import '../components/atoms/slide_view.dart'; import '../helpers/constants.dart'; diff --git a/packages/superdeck/lib/superdeck.dart b/packages/superdeck/lib/superdeck.dart index fd6734da..9044ea20 100644 --- a/packages/superdeck/lib/superdeck.dart +++ b/packages/superdeck/lib/superdeck.dart @@ -1,9 +1,6 @@ library superdeck; export 'package:superdeck/components/superdeck_app.dart'; -export 'package:superdeck/models/asset_model.dart'; -export 'package:superdeck/models/options_model.dart'; -export 'package:superdeck/models/slide_model.dart'; export 'package:superdeck/providers/controller.dart'; export 'package:superdeck/styles/style_spec.dart'; diff --git a/packages/superdeck/lib/templates/invalid_template.dart b/packages/superdeck/lib/templates/invalid_template.dart deleted file mode 100644 index 4b5b1267..00000000 --- a/packages/superdeck/lib/templates/invalid_template.dart +++ /dev/null @@ -1,40 +0,0 @@ -part of 'templates.dart'; - -class InvalidTemplate extends TemplateBuilder { - const InvalidTemplate( - super.config, { - super.key, - }); - - @override - Widget build(BuildContext context) { - const red = Color.fromARGB(255, 166, 6, 6); - - return SpecBuilder( - style: _invalidStyle, - builder: (context) { - // Maybe there are no validation errors just return the content - return Container( - decoration: BoxDecoration( - color: red, - border: Border.all(color: red, width: 20), - ), - child: buildContent(), - ); - }); - } -} - -final _ = SlideSpecUtility.self; - -final _invalidStyle = Style( - _.paragraph.textStyle.color(Colors.white), - _.h1.textStyle.color(const Color.fromARGB(255, 71, 1, 1)), - _.h1.textStyle.fontSize(36.0), - _.h1.textStyle.bold(), - _.h2.padding.top(0), - _.h2.textStyle.bold(), - _.h2.textStyle.color.yellow(), - _.code.textStyle.color.yellow(), - _.code.textStyle.backgroundColor(const Color.fromARGB(255, 84, 6, 6)), -); diff --git a/packages/superdeck/lib/templates/simple_template.dart b/packages/superdeck/lib/templates/simple_template.dart deleted file mode 100644 index 51eae3f1..00000000 --- a/packages/superdeck/lib/templates/simple_template.dart +++ /dev/null @@ -1,13 +0,0 @@ -part of 'templates.dart'; - -class BaseTemplate extends TemplateBuilder { - const BaseTemplate( - super.config, { - super.key, - }); - - @override - Widget build(BuildContext context) { - return render(); - } -} diff --git a/packages/superdeck/lib/templates/slide_template.dart b/packages/superdeck/lib/templates/slide_template.dart new file mode 100644 index 00000000..342204d3 --- /dev/null +++ b/packages/superdeck/lib/templates/slide_template.dart @@ -0,0 +1,44 @@ +import 'package:flutter/material.dart'; +import 'package:superdeck_core/superdeck_core.dart'; + +import '../components/molecules/slide_content.dart'; + +class SlideTemplate extends StatelessWidget { + final Slide config; + const SlideTemplate( + this.config, { + super.key, + }); + + @override + Widget build(BuildContext context) { + return Column( + children: config.sections.map((section) { + final sectionFlex = section.options.flex ?? 1; + + return Expanded( + flex: sectionFlex, + child: Row( + children: section.subSections.map((part) { + return Expanded( + flex: part.options.flex ?? 1, + child: switch (part) { + (ImagePart p) => ImageContent( + options: p.options, + ), + (ContentPart p) => SlideContent( + content: p.content, + options: p.options, + ), + (WidgetPart p) => WidgetContent( + options: p.options, + ), + }, + ); + }).toList(), + ), + ); + }).toList(), + ); + } +} diff --git a/packages/superdeck/lib/templates/template_builder.dart b/packages/superdeck/lib/templates/template_builder.dart deleted file mode 100644 index a2d92728..00000000 --- a/packages/superdeck/lib/templates/template_builder.dart +++ /dev/null @@ -1,62 +0,0 @@ -part of 'templates.dart'; - -sealed class TemplateBuilder extends StatelessWidget { - @visibleForTesting - final T config; - - const TemplateBuilder(this.config, {super.key}); - - static TemplateBuilder buildTemplate(T config) { - return switch (config) { - (SimpleSlide c) => BaseTemplate(c), - (InvalidSlide c) => InvalidTemplate(c), - _ => throw UnimplementedError( - 'Slide config not implemented ${config.runtimeType}'), - } as TemplateBuilder; - } - - Widget render() { - final sections = parseSections(config.content, config.contentOptions); - - return Column( - children: sections.map((section) { - final sectionFlex = section.options.flex ?? 1; - - return Expanded( - flex: sectionFlex, - child: Row( - children: section.subSections.map((part) { - return Expanded( - flex: part.options.flex ?? 1, - child: switch (part) { - (ImagePart p) => ImageContent( - options: p.options, - ), - (ContentPart p) => SlideContent( - content: p.content, - options: p.options, - ), - }, - ); - }).toList(), - ), - ); - }).toList(), - ); - } - - Widget buildContent() { - return _buildContent( - config.content, - config.contentOptions, - ); - } - - @protected - Widget _buildContent(String content, ContentOptions? options) { - return SlideContent( - content: content, - options: options, - ); - } -} diff --git a/packages/superdeck/lib/templates/templates.dart b/packages/superdeck/lib/templates/templates.dart index 79300e19..8b137891 100644 --- a/packages/superdeck/lib/templates/templates.dart +++ b/packages/superdeck/lib/templates/templates.dart @@ -1,12 +1 @@ -import 'package:flutter/material.dart'; -import 'package:mix/mix.dart'; -import '../components/molecules/slide_content.dart'; -import '../helpers/section_parsing.dart'; -import '../models/options_model.dart'; -import '../models/slide_model.dart'; -import '../styles/style_spec.dart'; - -part 'invalid_template.dart'; -part 'simple_template.dart'; -part 'template_builder.dart'; diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index ee70e289..8f536aa3 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -15,8 +15,6 @@ dependencies: window_manager: ^0.3.9 collection: ^1.18.0 path: ^1.9.0 - dart_mappable: ^4.2.2 - yaml: ^3.1.2 animate_do: ^3.3.4 syntax_highlight: ^0.4.0 scrollable_positioned_list: ^0.3.8 @@ -29,15 +27,14 @@ dependencies: mix: ^1.4.4 mix_annotations: ^0.2.1 flutter_markdown: ^0.7.3 + superdeck_core: ^0.0.1 markdown: ^7.2.2 flutter_hooks: ^0.20.5 web: ^0.5.1 file_saver: ^0.2.13 - render: ^0.0.1 remix: path: ../../../mix/packages/remix go_router_paths: ^0.2.2 - visibility_detector: ^0.4.0+2 flutter_chat_ui: ^1.6.15 image_picker: ^1.1.2 open_filex: ^4.5.0 @@ -49,10 +46,6 @@ dev_dependencies: flutter_test: sdk: flutter flutter_lints: ^4.0.0 - build_runner: ^2.4.10 - dart_mappable_builder: ^4.2.3 - - build_verify: ^3.1.0 mix_generator: ^0.2.2 custom_lint: ^0.6.4 mix_lint: ^0.1.1 diff --git a/packages/superdeck/pubspec_overrides.yaml b/packages/superdeck/pubspec_overrides.yaml index c11e4d1a..d3458eaa 100644 --- a/packages/superdeck/pubspec_overrides.yaml +++ b/packages/superdeck/pubspec_overrides.yaml @@ -1,3 +1,4 @@ +# melos_managed_dependency_overrides: superdeck_core dependency_overrides: mix: path: ../../../mix/packages/mix @@ -9,3 +10,5 @@ dependency_overrides: path: ../../../mix/packages/mix_annotations remix: path: ../../../mix/packages/remix + superdeck_core: + path: ../superdeck_core diff --git a/packages/superdeck/test/models/asset_model_test.dart b/packages/superdeck/test/models/asset_model_test.dart index ff0315bb..c1f02247 100644 --- a/packages/superdeck/test/models/asset_model_test.dart +++ b/packages/superdeck/test/models/asset_model_test.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:flutter_test/flutter_test.dart'; -import 'package:superdeck/superdeck.dart'; +import 'package:superdeck_core/superdeck_core.dart'; void main() { group('AssetFileType', () { diff --git a/packages/superdeck/test/models/config_model_test.dart b/packages/superdeck/test/models/config_model_test.dart index 2531b0ce..cfff24ee 100644 --- a/packages/superdeck/test/models/config_model_test.dart +++ b/packages/superdeck/test/models/config_model_test.dart @@ -1,6 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:superdeck/models/config_model.dart'; -import 'package:superdeck/superdeck.dart'; +import 'package:superdeck_core/superdeck_core.dart'; void main() { group('Config', () { diff --git a/packages/superdeck/test/models/deck_reference_model_test.dart b/packages/superdeck/test/models/deck_reference_model_test.dart index af8d8b9b..86de1e3b 100644 --- a/packages/superdeck/test/models/deck_reference_model_test.dart +++ b/packages/superdeck/test/models/deck_reference_model_test.dart @@ -2,7 +2,7 @@ import 'dart:io'; import 'package:flutter/foundation.dart'; import 'package:flutter_test/flutter_test.dart'; -import 'package:superdeck/models/reference_model.dart'; +import 'package:superdeck_core/superdeck_core.dart'; void main() { group('DeckReference', () { diff --git a/packages/superdeck/test/options_model_test.dart b/packages/superdeck/test/options_model_test.dart index 9b690bb7..9d044dae 100644 --- a/packages/superdeck/test/options_model_test.dart +++ b/packages/superdeck/test/options_model_test.dart @@ -1,5 +1,5 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:superdeck/superdeck.dart'; +import 'package:superdeck_core/superdeck_core.dart'; void main() { group('ContentOptions', () { diff --git a/packages/superdeck/test/templates/simple_template_test.dart b/packages/superdeck/test/templates/slide_template_test.dart similarity index 59% rename from packages/superdeck/test/templates/simple_template_test.dart rename to packages/superdeck/test/templates/slide_template_test.dart index d9d39bd8..318a90a2 100644 --- a/packages/superdeck/test/templates/simple_template_test.dart +++ b/packages/superdeck/test/templates/slide_template_test.dart @@ -1,6 +1,6 @@ import 'package:flutter_test/flutter_test.dart'; -import 'package:superdeck/models/slide_model.dart'; -import 'package:superdeck/templates/templates.dart'; +import 'package:superdeck/templates/slide_template.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import '../test_helpers.dart'; @@ -9,13 +9,13 @@ void main() { const rawMarkdown = ''' # Hello '''; - final slideConfig = SimpleSlide(content: rawMarkdown, key: 'simple-slide'); + final slideConfig = Slide(content: rawMarkdown, key: 'simple-slide'); testWidgets('builds content', (WidgetTester tester) async { await tester.pumpSlide(slideConfig); - final finder = find.byType(BaseTemplate); + final finder = find.byType(SlideTemplate); expect(finder, findsOneWidget); // Check if template model equals to slide model - final template = tester.widget(finder); + final template = tester.widget(finder); expect(template.config, slideConfig); }); }); diff --git a/packages/superdeck/test/test_helpers.dart b/packages/superdeck/test/test_helpers.dart index d2dff187..46463e8c 100644 --- a/packages/superdeck/test/test_helpers.dart +++ b/packages/superdeck/test/test_helpers.dart @@ -6,7 +6,7 @@ import 'package:superdeck/providers/assets_provider.dart'; import 'package:superdeck/providers/examples_provider.dart'; import 'package:superdeck/providers/snapshot_provider.dart'; import 'package:superdeck/providers/style_provider.dart'; -import 'package:superdeck/superdeck.dart'; +import 'package:superdeck_core/superdeck_core.dart'; extension WidgetTesterX on WidgetTester { Future pumpWithScaffold(Widget widget) async { diff --git a/packages/superdeck_cli/lib/src/helpers/raw_models.dart b/packages/superdeck_cli/lib/src/helpers/raw_models.dart deleted file mode 100644 index 47bf53ed..00000000 --- a/packages/superdeck_cli/lib/src/helpers/raw_models.dart +++ /dev/null @@ -1,134 +0,0 @@ -import 'dart:convert'; -import 'dart:io'; - -import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; -import 'package:superdeck_cli/src/helpers/yaml_to_map.dart'; - -typedef Json = Map; - -class RawReference { - final List assets; - final List slides; - final Json config; - - const RawReference({ - required this.assets, - required this.slides, - required this.config, - }); - - static RawReference loadFile(File file) { - try { - return fromJson(file.readAsStringSync()); - } catch (e) { - return const RawReference(assets: [], slides: [], config: {}); - } - } - - static RawReference fromMap(Json map) { - return RawReference( - assets: (map['assets'] as List) - .map((e) => RawAsset.fromMap(e)) - .toList(), - slides: (map['slides'] as List) - .map((e) => RawSlide(e as Json)) - .toList(), - config: map['config'] as Json, - ); - } - - static RawReference fromJson(String json) { - return fromMap(jsonDecode(json) as Json); - } -} - -class RawConfig { - final Json _map; - - const RawConfig(this._map); - - static RawConfig loadFile(File file) { - try { - final yamlString = file.readAsStringSync(); - return RawConfig(converYamlToMap(yamlString)); - } catch (e) { - return const RawConfig({}); - } - } - - Json toMap() => _map; -} - -class RawSlide { - final String key; - final Json _map; - - RawSlide(this._map) : key = shortHashId(_map.toString()); - - String get content => (_map['content'] ?? '') as String; - - static RawSlide fromYaml(String yamlString) { - final (:content, :options) = parseSlideMarkdown(yamlString); - return RawSlide({ - ...options, - - // Change from content on the frontMatter to content options in on the map - if (options['content'] != null) 'content_options': options['content'], - 'content': content, - }); - } - - RawSlide copyWith({ - String? content, - }) { - return RawSlide( - { - ..._map, - 'content': content ?? _map['content'], - }, - ); - } - - Json toMap() => { - ..._map, - 'key': key, - }; - - static RawSlide fromJson(String json) { - return RawSlide(jsonDecode(json)); - } -} - -class RawAsset { - final String path; - final String? reference; - final int width; - final int height; - - const RawAsset({ - required this.path, - required this.width, - required this.height, - required this.reference, - }); - - static RawAsset fromMap(Json json) { - return RawAsset( - path: json['path'] as String, - reference: json['reference'] as String?, - width: json['width'] as int, - height: json['height'] as int, - ); - } - - static RawAsset fromJson(String json) { - return fromMap(jsonDecode(json) as Json); - } - - Json toMap() => { - 'path': path, - 'width': width, - 'height': height, - if (reference != null) 'reference': reference, - }; -} diff --git a/packages/superdeck/lib/helpers/section_parsing.dart b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart similarity index 55% rename from packages/superdeck/lib/helpers/section_parsing.dart rename to packages/superdeck_cli/lib/src/helpers/section_parsing.dart index e1cc7bae..12075f58 100644 --- a/packages/superdeck/lib/helpers/section_parsing.dart +++ b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart @@ -1,11 +1,9 @@ import 'dart:convert'; +import 'dart:io'; import 'package:collection/collection.dart'; -import 'package:flutter/foundation.dart'; -import 'package:yaml/yaml.dart'; - -import '../models/options_model.dart'; -import 'extensions.dart'; +import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; +import 'package:superdeck_core/superdeck_core.dart'; const _tagMarker = '@'; @@ -13,10 +11,6 @@ const _startAsTag = '{' + _tagMarker; final _regexMatchTagContents = RegExp('{$_tagMarker(.*?)}'); -abstract class Part { - const Part(); -} - T? _findEnumValue( List values, String value, @@ -26,53 +20,7 @@ T? _findEnumValue( ); } -enum SectionPartType { - root, - header, - body, - footer; -} - -enum SubSectionPartType { - content, - image; -} - -sealed class SubSectionPart extends Part { - final SubSectionPartType type; - final T options; - - SubSectionPart({ - required this.type, - required this.options, - }); -} - -class ContentPart extends SubSectionPart { - final String content; - - ContentPart({ - required this.content, - required super.options, - }) : super(type: SubSectionPartType.content); - - ContentPart copyWith({ - String? content, - }) { - return ContentPart( - content: content ?? this.content, - options: this.options, - ); - } -} - -class ImagePart extends SubSectionPart { - ImagePart({ - required super.options, - }) : super(type: SubSectionPartType.image); -} - -Part? parsePart(String line) { +SlidePart? parseBlock(String line) { if (!_isSyntax(line)) { return null; } @@ -109,77 +57,19 @@ Part? parsePart(String line) { return ImagePart( options: ImageOptionsMapper.fromMap(options), ); + case SubSectionPartType.widget: + return WidgetPart( + options: WidgetOptionsMapper.fromMap(options), + ); } } return null; } -sealed class SectionPart extends Part { - final SectionPartType type; - final ContentOptions options; - List subSections = []; - - SectionPart({ - required this.type, - required this.options, - }); - - factory SectionPart.build( - SectionPartType type, - ContentOptions options, - ) { - return switch (type) { - SectionPartType.header => HeaderLayoutPart(options), - SectionPartType.body => BodyLayoutPart(options), - SectionPartType.footer => FooterLayoutPart(options), - SectionPartType.root => RootLayoutPart(options), - }; - } +List parseSections(String slideMarkdown) { + final lines = slideMarkdown.split('\n'); - String get name => type.name; - - void concatLine(String content) { - final lastPart = subSections.lastOrNull; - - if (lastPart is ContentPart) { - final contentPart = lastPart; - - subSections.last = contentPart.copyWith( - content: contentPart.content + '\n' + content, - ); - } else { - subSections.add(ContentPart( - content: content, - options: ContentOptions(), - )); - } - } -} - -class RootLayoutPart extends SectionPart { - RootLayoutPart(ContentOptions options) - : super(type: SectionPartType.root, options: options); -} - -class HeaderLayoutPart extends SectionPart { - HeaderLayoutPart(ContentOptions options) - : super(type: SectionPartType.header, options: options); -} - -class BodyLayoutPart extends SectionPart { - BodyLayoutPart(ContentOptions options) - : super(type: SectionPartType.body, options: options); -} - -class FooterLayoutPart extends SectionPart { - FooterLayoutPart(ContentOptions options) - : super(type: SectionPartType.footer, options: options); -} - -List parseSections(String markdown, [ContentOptions? options]) { - final lines = markdown.split('\n'); - - final rootSection = RootLayoutPart(options ?? ContentOptions()); + final rootSection = RootLayoutPart(ContentOptions()); final layoutParts = {rootSection}; @@ -208,7 +98,7 @@ List parseSections(String markdown, [ContentOptions? options]) { continue; } - final part = parsePart(line); + final part = parseBlock(line); if (part == null) { continue; @@ -233,16 +123,6 @@ List parseSections(String markdown, [ContentOptions? options]) { layoutParts.add(currentSection); currentSection = part; } else if (part is SubSectionPart) { - // final lastSubSection = currentSection.subSections.lastOrNull; - // if (part is ContentPart && lastSubSection is ContentPart) { - // // If last section is empty it should just replace it - // if (lastSubSection.content.isEmpty) { - // currentSection.subSections.last = part; - // } else { - // currentSection.subSections.add(part); - // } - // } - currentSection.subSections.add(part); } } @@ -251,27 +131,29 @@ List parseSections(String markdown, [ContentOptions? options]) { // Return the parsed sections // remove all sections that have empty parts - return layoutParts.where((part) { + final parts = layoutParts.where((part) { return part.subSections.isNotEmpty; }).toList(); -} -Map _converYamlToMap(String yamlString) { - if (yamlString.isEmpty) { - return {}; - } - final yamlMap = loadYaml(yamlString) as YamlMap? ?? YamlMap(); + parts.forEach((part) { + part.subSections = part.subSections.where((subPart) { + if (subPart is ContentPart) { + print('Content: ${subPart.content}'); + } + return true; + }).toList(); + }); - final yaml = jsonEncode(yamlMap); + File('TESTTEST_${shortHashId(parts.toString())}.json') + .writeAsStringSync(jsonEncode(parts.map((e) => e.toMap()).toList())); - return jsonDecode(yaml); + return parts; } bool _isSyntax(String line) { return _regexMatchTagContents.hasMatch(line.trim()); } -@visibleForTesting Map getOptionsMapFromLine( String contents, ) { @@ -284,7 +166,7 @@ Map getOptionsMapFromLine( return ''; } final isKeyValue = e.contains(':'); - final parts = e.split(': ').map((e) => e.trim()).toList(); + final parts = e.split(':').map((e) => e.trim()).toList(); Object? tryBooleanValue(String value) { final lowercase = value.toLowerCase(); @@ -305,13 +187,12 @@ Map getOptionsMapFromLine( // Join the formatted pairs back into a string final formattedString = params.join('\n'); - return _converYamlToMap(formattedString); + return convertYamlToMap(formattedString); } on Exception catch (e) { throw FormatException('Error parsing tags: ${e}'); } } -@visibleForTesting ({String tag, Map options}) getTagContents(String line) { if (!_isSyntax(line)) { throw FormatException('Error parsing tags: $line'); diff --git a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart index 359129a4..f26d5630 100644 --- a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart +++ b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart @@ -1,6 +1,8 @@ // lib/slide_parser.dart -import 'package:superdeck_cli/src/helpers/raw_models.dart'; +import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; +import 'package:superdeck_cli/src/helpers/yaml_to_map.dart'; +import 'package:superdeck_core/superdeck_core.dart'; class SlideParser { final String contents; @@ -41,9 +43,18 @@ class SlideParser { return slides; } - List run() { + List run() { final markdownContents = _splitSlides(contents.trim()); - return markdownContents.map(RawSlide.fromYaml).toList(); + + final slideRaws = markdownContents.map(parseSlideMarkdown).toList(); + + return slideRaws.map((raw) { + return Slide( + content: raw.content, + key: shortHashId(raw.toString()), + options: SlideOptions.fromMap(raw.options), + ); + }).toList(); } } diff --git a/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart b/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart index b9f76d89..eb7a8916 100644 --- a/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart +++ b/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart @@ -1,22 +1,12 @@ -import 'dart:convert'; - -import 'package:superdeck_cli/src/helpers/raw_models.dart'; -import 'package:yaml/yaml.dart'; +import 'package:superdeck_core/superdeck_core.dart'; final _frontMatterRegex = RegExp(r'---([\s\S]*?)---'); -Json converYamlToMap(String yamlString) { - final yamlMap = loadYaml(yamlString) as YamlMap? ?? YamlMap(); - - final yaml = jsonEncode(yamlMap); - - return jsonDecode(yaml); -} - -({String content, Json options}) parseSlideMarkdown(String slideContents) { +({String content, Map options}) parseSlideMarkdown( + String slideContents) { final frontMatter = _frontMatterRegex.firstMatch(slideContents)?.group(1) ?? ''; - final options = converYamlToMap(frontMatter); + final options = convertYamlToMap(frontMatter); final content = slideContents .substring(_frontMatterRegex.matchAsPrefix(slideContents)?.end ?? 0) diff --git a/packages/superdeck_cli/lib/src/slides_pipeline.dart b/packages/superdeck_cli/lib/src/slides_pipeline.dart index f6e6f3f2..78b47c30 100644 --- a/packages/superdeck_cli/lib/src/slides_pipeline.dart +++ b/packages/superdeck_cli/lib/src/slides_pipeline.dart @@ -1,15 +1,17 @@ import 'dart:async'; +import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; import 'package:image/image.dart' as img; import 'package:path/path.dart' as p; +import 'package:puppeteer/puppeteer.dart'; import 'package:superdeck_cli/src/constants.dart'; import 'package:superdeck_cli/src/helpers/extensions.dart'; -import 'package:superdeck_cli/src/helpers/pretty_json.dart'; -import 'package:superdeck_cli/src/helpers/raw_models.dart'; +import 'package:superdeck_cli/src/helpers/section_parsing.dart'; import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; import 'package:superdeck_cli/src/helpers/slide_parser.dart'; +import 'package:superdeck_core/superdeck_core.dart'; typedef MarkdownReplacement = ({ Pattern pattern, @@ -17,42 +19,61 @@ typedef MarkdownReplacement = ({ }); typedef PipelineResult = ({ - List slides, - List neededAssets, + List slides, + List neededAssets, List markdownReplacements, }); class TaskController { - final RawSlide slide; - final List _assets; + final Slide slide; + final List _assets; + final TaskPipeline pipeline; final List markdownReplacements; + Slide extractSlide() { + final sections = parseSections(slide.content); + File('testest.json') + .writeAsStringSync(jsonEncode(sections.map((e) => e.toMap()).toList())); + + final newSlide = Slide( + content: slide.content, + key: slide.key, + options: slide.options, + sections: sections, + ); + + return newSlide; + } + TaskController._({ required this.slide, - required List assets, + required List assets, + required this.pipeline, required this.markdownReplacements, }) : _assets = assets; TaskController({ required this.slide, - required List assets, + required this.pipeline, + required List assets, }) : _assets = assets, markdownReplacements = []; - List neededAssets = []; + List neededAssets = []; - RawAsset? checkAssetExists(String assetName) { + SlideAsset? checkAssetExists(String assetName) { return _assets .firstWhereOrNull((element) => element.path.contains(assetName)); } TaskController copyWith({ - RawSlide? slide, - List? assets, + Slide? slide, + List? assets, List? markdownReplacements, }) { return TaskController._( slide: slide ?? this.slide, + pipeline: pipeline, markdownReplacements: markdownReplacements ?? this.markdownReplacements, assets: assets ?? _assets, )..neededAssets = neededAssets; @@ -64,11 +85,12 @@ class TaskController { if (asset == null) { print(file.path); final image = await img.decodeImageFile(file.path); + if (image == null) { - throw Exception('Could not decode image'); + throw Exception('Image could not be decoded'); } - asset = RawAsset( + asset = SlideAsset( path: file.path, width: image.width, height: image.height, @@ -82,7 +104,7 @@ class TaskController { markNeeded(asset); } - void markNeeded(RawAsset asset) { + void markNeeded(SlideAsset asset) { neededAssets.add(asset); } } @@ -90,29 +112,41 @@ class TaskController { class TaskPipeline { final List builders; + Browser? _browser; + TaskPipeline( this.builders, ); + Future getBrowser() async { + if (_browser == null) { + _browser = await puppeteer.launch(); + } + return _browser!; + } + Future _runEachSlide( - RawSlide slide, - List assets, + Slide slide, + List assets, ) async { - var controller = TaskController(slide: slide, assets: assets); + var controller = TaskController( + slide: slide, + assets: assets, + pipeline: this, + ); for (var task in builders) { controller = await task.run(controller); } return controller; } - Future run() async { + Future run() async { await kMarkdownFile.ensureExists(); await kGeneratedAssetsDir.ensureExists(); await kReferenceFile.ensureExists(); final markdownRaw = kMarkdownFile.readAsStringSync(); - final reference = RawReference.loadFile(kReferenceFile); - final rawAssets = reference.assets; + final loadedReference = SuperDeckReference.loadFile(kReferenceFile); final parser = SlideParser(markdownRaw); final slides = parser.run(); @@ -120,40 +154,38 @@ class TaskPipeline { final futures = >[]; for (var slide in slides) { - futures.add(_runEachSlide(slide, rawAssets)); + futures.add(_runEachSlide(slide, loadedReference.assets)); } final controllers = await Future.wait(futures); final result = ( - slides: controllers.map((e) => e.slide).toList(), + slides: controllers.map((e) => e.extractSlide()).toList(), neededAssets: controllers.expand((e) => e.neededAssets).toList(), markdownReplacements: controllers.expand((e) => e.markdownReplacements).toList(), ); + await _applyMarkdownReplacements(result.markdownReplacements); - await _applyResults(result); + await _cleanupGeneratedFiles(result.neededAssets); - return result; - } -} + builders.forEach((builder) async => await builder.dispose()); -Future _applyResults(PipelineResult result) async { - final config = RawConfig.loadFile(kProjectConfigFile); - await _applyMarkdownReplacements(result.markdownReplacements); - await _cleanupGeneratedFiles(result.neededAssets); - await kReferenceFile.writeAsString( - prettyJson( - { - 'config': config.toMap(), - 'slides': result.slides.map((e) => e.toMap()).toList(), - 'assets': result.neededAssets.map((e) => e.toMap()).toList(), - }, - ), - ); + _browser?.close(); + + final reference = SuperDeckReference( + config: Config.loadFile(kProjectConfigFile), + slides: result.slides, + assets: result.neededAssets, + ); + + await kReferenceFile.writeAsString(reference.toJson()); + + return reference; + } } -Future _cleanupGeneratedFiles(List assets) async { +Future _cleanupGeneratedFiles(List assets) async { final files = await _loadGeneratedFiles(); for (var file in files) { @@ -177,6 +209,12 @@ Future _applyMarkdownReplacements( await kMarkdownFile.writeAsString(markdownRaw); } +enum AssetExtension { + png, + + svg, +} + abstract class Task { final String taskName; const Task(this.taskName); @@ -189,11 +227,15 @@ abstract class Task { return shortHashId(content); } - File buildAssetFile(String assetName) { - if (p.extension(assetName).isEmpty) { - assetName = '$assetName.png'; + File buildAssetFile(String assetName, String extension) { + if (p.extension(assetName).isNotEmpty) { + throw Exception('Asset name should not have an extension'); } - final updatedFileName = ('${taskName}_$assetName'); + + if (!extension.startsWith('.')) { + extension = '.$extension'; + } + final updatedFileName = ('${taskName}_$assetName$extension'); return File(p.join(kGeneratedAssetsDir.path, updatedFileName)); } @@ -201,6 +243,9 @@ abstract class Task { // check if file name starts with sd_ return file.path.contains(kGeneratedAssetsDir.path); } + + // Dispose or anything here + FutureOr dispose() {} } Future> _loadGeneratedFiles() async { diff --git a/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart b/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart index 4f218c0b..d1747f7e 100644 --- a/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart @@ -70,7 +70,10 @@ class ImageCachingTask extends Task { final extension = contentType?.split('/').last; // Create a file with the appropriate extension - final file = buildAssetFile(buildReferenceName(url) + '.$extension'); + final file = buildAssetFile( + buildReferenceName(url), + extension ?? 'jpg', + ); // Write the image data to the file await file.writeAsBytes(response.bodyBytes); diff --git a/packages/superdeck_cli/lib/src/tasks/mermaid.html b/packages/superdeck_cli/lib/src/tasks/mermaid.html new file mode 100644 index 00000000..8a2d34a5 --- /dev/null +++ b/packages/superdeck_cli/lib/src/tasks/mermaid.html @@ -0,0 +1,35 @@ + + +

    +      journey
    +    title My working day
    +    section Go to work
    +      Make tea: 5: Me
    +      Go upstairs: 3: Me
    +      Do work: 1: Me, Cat
    +    section Go home
    +      Go downstairs: 5: Me
    +      Sit down: 5: Me
    +    
    +
    + + + + \ No newline at end of file diff --git a/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart b/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart index 823329ce..65ffeb9a 100644 --- a/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart @@ -1,13 +1,113 @@ import 'dart:async'; -import 'dart:developer'; -import 'dart:io'; -import 'dart:typed_data'; -import 'package:path/path.dart' as p; +import 'package:puppeteer/puppeteer.dart'; import 'package:superdeck_cli/src/slides_pipeline.dart'; +// --- +// title: Hello Title +// config: +// theme: base +// themeVariables: +// primaryColor: "#00ff00" +// --- + +Future _generateMermaidGraph( + Browser browser, + String graphDefinition, +) async { + print('Generating mermaid graph...'); + final page = await browser.newPage(); + + await page.setContent(''' + + +
    +          $graphDefinition
    +        
    + + + + '''); + + await page.waitForSelector('pre.mermaid > svg'); + final element = await page.$('pre.mermaid > svg'); + final svgContent = await element.evaluate('el => el.outerHTML'); + + await page.close(); + return svgContent; +} + +Future _convertToRoughDraft(Browser browser, String svgContent) async { + print('Converting to rough draft...'); + final page = await browser.newPage(); + + await page.setContent(''' + + +
    $svgContent
    +
    + + + + + '''); + + await page.waitForSelector('.sketch-container > svg'); + final element = await page.$('.sketch-container > svg'); + + final output = await element.evaluate('el => el.outerHTML'); + + await page.close(); + + return output; +} + +Future> _convertSvgToImage(Browser browser, String svgContent) async { + final page = await browser.newPage(); + + await page.setContent(''' + + +
    $svgContent
    + + + '''); + + final element = await page.$('.svg-container > svg'); + + final screenshot = await element.screenshot( + format: ScreenshotFormat.png, + omitBackground: true, + ); + + await page.close(); + + return screenshot; +} + +Future> generateRoughMermaidGraph( + Browser browser, String graphDefinition) async { + final svgContent = await _generateMermaidGraph(browser, graphDefinition); + // final roughDraft = await _convertToRoughDraft(browser, svgContent); + + return _convertSvgToImage(browser, svgContent); +} + class MermaidConverterTask extends Task { - final _mermaidService = const MermaidService(); const MermaidConverterTask() : super('mermaid'); @override @@ -25,15 +125,18 @@ class MermaidConverterTask extends Task { if (mermaidSyntax == null) continue; - final mermaidFile = buildAssetFile(buildReferenceName(mermaidSyntax)); + final mermaidFile = buildAssetFile( + buildReferenceName(mermaidSyntax), + 'png', + ); - if (!await mermaidFile.exists()) { - // Process the mermaid syntax to generate an image file - final imageData = await _mermaidService.generateImage(mermaidSyntax); + if (true) { + final browser = await controller.pipeline.getBrowser(); - if (imageData != null) { - await mermaidFile.writeAsBytes(imageData); - } + final imageData = + await generateRoughMermaidGraph(browser, mermaidSyntax); + + await mermaidFile.writeAsBytes(imageData); } // If file existeed or was create it then replace it @@ -66,65 +169,3 @@ class MermaidConverterTask extends Task { ); } } - -class MermaidService { - const MermaidService(); - - Future generateImage(String mermaidSyntax) async { - final fileName = mermaidSyntax.hashCode; - - final tempDir = Directory('.tmp_superdeck'); - - final tempFile = File(p.join(tempDir.path, '$fileName.mmd')); - final outputFile = File(p.join(tempDir.path, '$fileName.png')); - - if (!await tempDir.exists()) { - await tempDir.create(recursive: true); - } - - try { - mermaidSyntax = mermaidSyntax.trim().replaceAll(r'\n', '\n'); - - await tempFile.writeAsString(mermaidSyntax); - - // Check if can execute mmdc before executing command - final mmdcResult = await Process.run('mmdc', ['--version']); - - if (mmdcResult.exitCode != 0) { - log( - '"mmdc" not found. You need mermaid cli installed to process mermaid syntax', - ); - - return null; - } - - final params = [ - '-t dark', - '-b transparent', - '-i ${tempFile.path}', - '-o ${outputFile.path}', - '--scale 2' - ]; - - final result = await Process.run( - 'mmdc', - params.expand((e) => e.split(' ')).toList(), - ); - - if (result.exitCode != 0) { - log('Error while processing mermaid syntax'); - log(result.stderr); - return null; - } - - return outputFile.readAsBytes(); - } catch (e) { - log('Error while processing mermaid syntax: $e'); - return null; - } finally { - if (await tempDir.exists()) { - await tempDir.delete(recursive: true); - } - } - } -} diff --git a/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart b/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart index 55892839..dfdf89a5 100644 --- a/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart @@ -9,7 +9,7 @@ class SlideThumbnailTask extends Task { @override FutureOr run(controller) async { - final file = buildAssetFile(controller.slide.key + '.png'); + final file = buildAssetFile(controller.slide.key, 'png'); if (await file.exists()) { await controller.markFileAsNeeded(file); diff --git a/packages/superdeck_cli/pubspec.yaml b/packages/superdeck_cli/pubspec.yaml index cb2b800e..67b0cb69 100644 --- a/packages/superdeck_cli/pubspec.yaml +++ b/packages/superdeck_cli/pubspec.yaml @@ -16,6 +16,8 @@ dependencies: dart_style: ^2.3.6 yaml_writer: ^2.0.0 http: ^1.2.2 + puppeteer: ^3.12.0 + superdeck_core: ^0.0.1 dev_dependencies: diff --git a/packages/superdeck_cli/pubspec_overrides.yaml b/packages/superdeck_cli/pubspec_overrides.yaml new file mode 100644 index 00000000..fd21af7e --- /dev/null +++ b/packages/superdeck_cli/pubspec_overrides.yaml @@ -0,0 +1,4 @@ +# melos_managed_dependency_overrides: superdeck_core +dependency_overrides: + superdeck_core: + path: ../superdeck_core diff --git a/packages/superdeck/test/helpers/section_parsing_test.dart b/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart similarity index 98% rename from packages/superdeck/test/helpers/section_parsing_test.dart rename to packages/superdeck_cli/test/src/helpers/section_parsing_test.dart index ef00e186..91680ce8 100644 --- a/packages/superdeck/test/helpers/section_parsing_test.dart +++ b/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart @@ -1,6 +1,6 @@ import 'package:collection/collection.dart'; -import 'package:superdeck/helpers/section_parsing.dart'; -import 'package:superdeck/superdeck.dart'; +import 'package:superdeck_cli/src/helpers/section_parsing.dart'; +import 'package:superdeck_core/superdeck_core.dart'; import 'package:test/test.dart'; void main() { @@ -200,10 +200,10 @@ Content in the body. test('Header with columns and flex attribute', () { const markdown = ''' {@header} -{@content flex:1 } +{@content flex: 1 } Header content column 1. -{@content flex:2} +{@content flex: 2} Header content column 2. '''; @@ -494,11 +494,6 @@ Footer content. final result = getTagContents('{@tag key1: value1 | key2: value2 }'); expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); }); - - test('Handles nested curly braces correctly', () { - expect(() => getTagContents('{@tag key1: {nested: value} }'), - throwsException); - }); }, ); } diff --git a/packages/superdeck_core/.gitignore b/packages/superdeck_core/.gitignore new file mode 100644 index 00000000..3cceda55 --- /dev/null +++ b/packages/superdeck_core/.gitignore @@ -0,0 +1,7 @@ +# https://dart.dev/guides/libraries/private-files +# Created by `dart pub` +.dart_tool/ + +# Avoid committing pubspec.lock for library packages; see +# https://dart.dev/guides/libraries/private-files#pubspeclock. +pubspec.lock diff --git a/packages/superdeck_core/CHANGELOG.md b/packages/superdeck_core/CHANGELOG.md new file mode 100644 index 00000000..effe43c8 --- /dev/null +++ b/packages/superdeck_core/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version. diff --git a/packages/superdeck_core/LICENSE b/packages/superdeck_core/LICENSE new file mode 100644 index 00000000..b28006a2 --- /dev/null +++ b/packages/superdeck_core/LICENSE @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2022, Leo Farias +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. Neither the name of the copyright holder nor the names of its + contributors may be used to endorse or promote products derived from + this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/packages/superdeck_core/README.md b/packages/superdeck_core/README.md new file mode 100644 index 00000000..f54c9700 --- /dev/null +++ b/packages/superdeck_core/README.md @@ -0,0 +1,3 @@ +# superdeck_core + +A core library for the Superdeck \ No newline at end of file diff --git a/packages/superdeck_core/analysis_options.yaml b/packages/superdeck_core/analysis_options.yaml new file mode 100644 index 00000000..dee8927a --- /dev/null +++ b/packages/superdeck_core/analysis_options.yaml @@ -0,0 +1,30 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# Uncomment the following section to specify additional rules. + +# linter: +# rules: +# - camel_case_types + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/packages/superdeck_core/build.yaml b/packages/superdeck_core/build.yaml new file mode 100644 index 00000000..c64b4287 --- /dev/null +++ b/packages/superdeck_core/build.yaml @@ -0,0 +1,15 @@ +targets: + $default: + builders: + dart_mappable_builder: + generate_for: + - lib/**/*.dart + +global_options: + dart_mappable_builder: + options: + caseStyle: snakeCase + enumCaseStyle: snakeCase + discriminatorKey: type + ignoreNull: true + generateMethods: [decode, encode, copy, stringify, equals] \ No newline at end of file diff --git a/packages/superdeck_core/example/superdeck_core_example.dart b/packages/superdeck_core/example/superdeck_core_example.dart new file mode 100644 index 00000000..1bc9f057 --- /dev/null +++ b/packages/superdeck_core/example/superdeck_core_example.dart @@ -0,0 +1,3 @@ +void main() { + // internal package for superdeck +} diff --git a/packages/superdeck_core/lib/src/helpers/extensions.dart b/packages/superdeck_core/lib/src/helpers/extensions.dart new file mode 100644 index 00000000..a8268099 --- /dev/null +++ b/packages/superdeck_core/lib/src/helpers/extensions.dart @@ -0,0 +1,37 @@ +import 'dart:convert'; + +extension StringX on String { + String capitalize() { + return "${this[0].toUpperCase()}${this.substring(1)}"; + } + + String snakeCase() { + return this + .replaceAll(RegExp(r'\s+'), '_') + .replaceAllMapped( + RegExp( + r'[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+'), + (match) => "${match.group(0)!.toLowerCase()}_") + .replaceAll(RegExp(r'(_)\1+'), '_') + .replaceAll(RegExp(r'^_|_$'), ''); + } +} + +extension ListX on List { + T? get tryFirst => isNotEmpty ? first : null; + T? get tryLast => isNotEmpty ? last : null; + T? tryElementAt(int index) { + if (index < 0 || index >= length) { + return null; + } + + return elementAt(index); + } +} + +/// Formats [json] +String prettyJson(dynamic json) { + var spaces = ' ' * 2; + var encoder = JsonEncoder.withIndent(spaces); + return encoder.convert(json); +} diff --git a/packages/superdeck_core/lib/src/helpers/mappers.dart b/packages/superdeck_core/lib/src/helpers/mappers.dart new file mode 100644 index 00000000..136ca95b --- /dev/null +++ b/packages/superdeck_core/lib/src/helpers/mappers.dart @@ -0,0 +1,31 @@ +import 'dart:io'; + +import 'package:dart_mappable/dart_mappable.dart'; + +class FileMapper extends SimpleMapper { + const FileMapper(); + + @override + File decode(Object value) { + return File(value as String); + } + + @override + String encode(File self) { + return self.path; + } +} + +class DurationMapper extends SimpleMapper { + const DurationMapper(); + + @override + Duration decode(Object value) { + return Duration(milliseconds: value as int); + } + + @override + int encode(Duration self) { + return self.inMilliseconds; + } +} diff --git a/packages/superdeck_core/lib/src/helpers/yaml_to_map.dart b/packages/superdeck_core/lib/src/helpers/yaml_to_map.dart new file mode 100644 index 00000000..6e33b622 --- /dev/null +++ b/packages/superdeck_core/lib/src/helpers/yaml_to_map.dart @@ -0,0 +1,11 @@ +import 'dart:convert'; + +import 'package:yaml/yaml.dart'; + +Map convertYamlToMap(String yamlString) { + final yamlMap = loadYaml(yamlString) as YamlMap? ?? YamlMap(); + + final yaml = jsonEncode(yamlMap); + + return jsonDecode(yaml); +} diff --git a/packages/superdeck/lib/models/asset_model.dart b/packages/superdeck_core/lib/src/models/asset_model.dart similarity index 90% rename from packages/superdeck/lib/models/asset_model.dart rename to packages/superdeck_core/lib/src/models/asset_model.dart index 2d990a2b..3611b11a 100644 --- a/packages/superdeck/lib/models/asset_model.dart +++ b/packages/superdeck_core/lib/src/models/asset_model.dart @@ -2,8 +2,6 @@ import 'package:collection/collection.dart'; import 'package:dart_mappable/dart_mappable.dart'; import 'package:path/path.dart' as p; -import '../helpers/mappers.dart'; - part 'asset_model.mapper.dart'; @MappableEnum() @@ -30,12 +28,7 @@ enum AssetFileType { bool isGif() => this == AssetFileType.gif; } -@MappableClass( - includeCustomMappers: [ - FileMapper(), - SizeMapper(), - ], -) +@MappableClass() final class SlideAsset with SlideAssetMappable { final String path; final int width; diff --git a/packages/superdeck/lib/models/asset_model.mapper.dart b/packages/superdeck_core/lib/src/models/asset_model.mapper.dart similarity index 98% rename from packages/superdeck/lib/models/asset_model.mapper.dart rename to packages/superdeck_core/lib/src/models/asset_model.mapper.dart index 96a62dd2..e92d784d 100644 --- a/packages/superdeck/lib/models/asset_model.mapper.dart +++ b/packages/superdeck_core/lib/src/models/asset_model.mapper.dart @@ -71,7 +71,6 @@ class SlideAssetMapper extends ClassMapperBase { static SlideAssetMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = SlideAssetMapper._()); - MapperContainer.globals.useAll([FileMapper(), SizeMapper()]); } return _instance!; } diff --git a/packages/superdeck/lib/models/config_model.dart b/packages/superdeck_core/lib/src/models/config_model.dart similarity index 66% rename from packages/superdeck/lib/models/config_model.dart rename to packages/superdeck_core/lib/src/models/config_model.dart index e184ddc4..9c46e34b 100644 --- a/packages/superdeck/lib/models/config_model.dart +++ b/packages/superdeck_core/lib/src/models/config_model.dart @@ -1,25 +1,32 @@ +import 'dart:io'; + import 'package:dart_mappable/dart_mappable.dart'; +import 'package:superdeck_core/superdeck_core.dart'; -import '../models/options_model.dart'; import '../schema/schema_model.dart'; import '../schema/schema_values.dart'; part 'config_model.mapper.dart'; @MappableClass() -abstract class BaseConfig with BaseConfigMappable { +class SlideOptions with SlideOptionsMappable { + final String? title; final String? background; final String? style; final TransitionOptions? transition; - const BaseConfig({ - required this.background, - required this.style, - required this.transition, + const SlideOptions({ + this.title, + this.background, + this.style, + this.transition, }); + static final fromMap = SlideOptionsMapper.fromMap; + static final schema = SchemaShape( { + "title": Schema.string, "background": Schema.string, "style": Schema.string, "transition": TransitionOptions.schema.optional(), @@ -29,7 +36,7 @@ abstract class BaseConfig with BaseConfigMappable { } @MappableClass() -class Config extends BaseConfig with ConfigMappable { +class Config extends SlideOptions with ConfigMappable { final bool? cacheRemoteAssets; const Config({ @@ -39,6 +46,15 @@ class Config extends BaseConfig with ConfigMappable { this.cacheRemoteAssets, }); + static Config loadFile(File file) { + try { + final yamlString = file.readAsStringSync(); + return Config.fromMap(convertYamlToMap(yamlString)); + } catch (e) { + return const Config.empty(); + } + } + const Config.empty() : this( cacheRemoteAssets: null, @@ -56,7 +72,7 @@ class Config extends BaseConfig with ConfigMappable { return config; } - static final schema = BaseConfig.schema.merge( + static final schema = SlideOptions.schema.merge( { "cache_remote_assets": Schema.boolean.optional(), "markdown_file": Schema.string.required().isPosixPath(), diff --git a/packages/superdeck/lib/models/config_model.mapper.dart b/packages/superdeck_core/lib/src/models/config_model.mapper.dart similarity index 53% rename from packages/superdeck/lib/models/config_model.mapper.dart rename to packages/superdeck_core/lib/src/models/config_model.mapper.dart index daedab98..3a2848ff 100644 --- a/packages/superdeck/lib/models/config_model.mapper.dart +++ b/packages/superdeck_core/lib/src/models/config_model.mapper.dart @@ -6,13 +6,13 @@ part of 'config_model.dart'; -class BaseConfigMapper extends ClassMapperBase { - BaseConfigMapper._(); +class SlideOptionsMapper extends ClassMapperBase { + SlideOptionsMapper._(); - static BaseConfigMapper? _instance; - static BaseConfigMapper ensureInitialized() { + static SlideOptionsMapper? _instance; + static SlideOptionsMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = BaseConfigMapper._()); + MapperContainer.globals.use(_instance = SlideOptionsMapper._()); ConfigMapper.ensureInitialized(); TransitionOptionsMapper.ensureInitialized(); } @@ -20,19 +20,24 @@ class BaseConfigMapper extends ClassMapperBase { } @override - final String id = 'BaseConfig'; + final String id = 'SlideOptions'; - static String? _$background(BaseConfig v) => v.background; - static const Field _f$background = - Field('background', _$background); - static String? _$style(BaseConfig v) => v.style; - static const Field _f$style = Field('style', _$style); - static TransitionOptions? _$transition(BaseConfig v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition); + static String? _$title(SlideOptions v) => v.title; + static const Field _f$title = + Field('title', _$title, opt: true); + static String? _$background(SlideOptions v) => v.background; + static const Field _f$background = + Field('background', _$background, opt: true); + static String? _$style(SlideOptions v) => v.style; + static const Field _f$style = + Field('style', _$style, opt: true); + static TransitionOptions? _$transition(SlideOptions v) => v.transition; + static const Field _f$transition = + Field('transition', _$transition, opt: true); @override - final MappableFields fields = const { + final MappableFields fields = const { + #title: _f$title, #background: _f$background, #style: _f$style, #transition: _f$transition, @@ -40,44 +45,115 @@ class BaseConfigMapper extends ClassMapperBase { @override final bool ignoreNull = true; - static BaseConfig _instantiate(DecodingData data) { - throw MapperException.missingConstructor('BaseConfig'); + static SlideOptions _instantiate(DecodingData data) { + return SlideOptions( + title: data.dec(_f$title), + background: data.dec(_f$background), + style: data.dec(_f$style), + transition: data.dec(_f$transition)); } @override final Function instantiate = _instantiate; - static BaseConfig fromMap(Map map) { - return ensureInitialized().decodeMap(map); + static SlideOptions fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SlideOptions fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SlideOptionsMappable { + String toJson() { + return SlideOptionsMapper.ensureInitialized() + .encodeJson(this as SlideOptions); + } + + Map toMap() { + return SlideOptionsMapper.ensureInitialized() + .encodeMap(this as SlideOptions); + } + + SlideOptionsCopyWith get copyWith => + _SlideOptionsCopyWithImpl(this as SlideOptions, $identity, $identity); + @override + String toString() { + return SlideOptionsMapper.ensureInitialized() + .stringifyValue(this as SlideOptions); + } + + @override + bool operator ==(Object other) { + return SlideOptionsMapper.ensureInitialized() + .equalsValue(this as SlideOptions, other); } - static BaseConfig fromJson(String json) { - return ensureInitialized().decodeJson(json); + @override + int get hashCode { + return SlideOptionsMapper.ensureInitialized() + .hashValue(this as SlideOptions); } } -mixin BaseConfigMappable { - String toJson(); - Map toMap(); - BaseConfigCopyWith get copyWith; +extension SlideOptionsValueCopy<$R, $Out> + on ObjectCopyWith<$R, SlideOptions, $Out> { + SlideOptionsCopyWith<$R, SlideOptions, $Out> get $asSlideOptions => + $base.as((v, t, t2) => _SlideOptionsCopyWithImpl(v, t, t2)); } -abstract class BaseConfigCopyWith<$R, $In extends BaseConfig, $Out> +abstract class SlideOptionsCopyWith<$R, $In extends SlideOptions, $Out> implements ClassCopyWith<$R, $In, $Out> { TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? get transition; $R call({String? background, String? style, TransitionOptions? transition}); - BaseConfigCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); + SlideOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _SlideOptionsCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, SlideOptions, $Out> + implements SlideOptionsCopyWith<$R, SlideOptions, $Out> { + _SlideOptionsCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + SlideOptionsMapper.ensureInitialized(); + @override + TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? + get transition => + $value.transition?.copyWith.$chain((v) => call(transition: v)); + @override + $R call( + {Object? background = $none, + Object? style = $none, + Object? transition = $none}) => + $apply(FieldCopyWithData({ + if (background != $none) #background: background, + if (style != $none) #style: style, + if (transition != $none) #transition: transition + })); + @override + SlideOptions $make(CopyWithData data) => SlideOptions( + title: data.get(#title, or: $value.title), + background: data.get(#background, or: $value.background), + style: data.get(#style, or: $value.style), + transition: data.get(#transition, or: $value.transition)); + + @override + SlideOptionsCopyWith<$R2, SlideOptions, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _SlideOptionsCopyWithImpl($value, $cast, t); } -class ConfigMapper extends ClassMapperBase { +class ConfigMapper extends SubClassMapperBase { ConfigMapper._(); static ConfigMapper? _instance; static ConfigMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = ConfigMapper._()); - BaseConfigMapper.ensureInitialized(); + SlideOptionsMapper.ensureInitialized().addSubMapper(_instance!); TransitionOptionsMapper.ensureInitialized(); } return _instance!; @@ -98,6 +174,9 @@ class ConfigMapper extends ClassMapperBase { static const Field _f$cacheRemoteAssets = Field( 'cacheRemoteAssets', _$cacheRemoteAssets, key: 'cache_remote_assets', opt: true); + static String? _$title(Config v) => v.title; + static const Field _f$title = + Field('title', _$title, mode: FieldMode.member); @override final MappableFields fields = const { @@ -105,10 +184,19 @@ class ConfigMapper extends ClassMapperBase { #style: _f$style, #transition: _f$transition, #cacheRemoteAssets: _f$cacheRemoteAssets, + #title: _f$title, }; @override final bool ignoreNull = true; + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'Config'; + @override + late final ClassMapperBase superMapper = + SlideOptionsMapper.ensureInitialized(); + static Config _instantiate(DecodingData data) { return Config( background: data.dec(_f$background), @@ -162,7 +250,7 @@ extension ConfigValueCopy<$R, $Out> on ObjectCopyWith<$R, Config, $Out> { } abstract class ConfigCopyWith<$R, $In extends Config, $Out> - implements BaseConfigCopyWith<$R, $In, $Out> { + implements SlideOptionsCopyWith<$R, $In, $Out> { @override TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? get transition; diff --git a/packages/superdeck/lib/models/options_model.dart b/packages/superdeck_core/lib/src/models/options_model.dart similarity index 80% rename from packages/superdeck/lib/models/options_model.dart rename to packages/superdeck_core/lib/src/models/options_model.dart index 97fb5987..bd88f579 100644 --- a/packages/superdeck/lib/models/options_model.dart +++ b/packages/superdeck_core/lib/src/models/options_model.dart @@ -1,7 +1,6 @@ import 'package:dart_mappable/dart_mappable.dart'; -import 'package:flutter/material.dart'; +import 'package:superdeck_core/src/helpers/extensions.dart'; -import '../helpers/extensions.dart'; import '../helpers/mappers.dart'; import '../schema/schema_model.dart'; import '../schema/schema_values.dart'; @@ -124,8 +123,6 @@ class ArgsSchema { }); } -typedef ExampleBuilder = Widget Function(BuildContext context); - @MappableEnum() enum ImageFit { fill, @@ -137,27 +134,12 @@ enum ImageFit { scaleDown; static final schema = Schema.string.isEnum(values); - - BoxFit toBoxFit() { - return switch (this) { - ImageFit.fill => BoxFit.fill, - ImageFit.contain => BoxFit.contain, - ImageFit.cover => BoxFit.cover, - ImageFit.fitWidth => BoxFit.fitWidth, - ImageFit.fitHeight => BoxFit.fitHeight, - ImageFit.none => BoxFit.none, - ImageFit.scaleDown => BoxFit.scaleDown, - }; - } } class LayoutType { const LayoutType._(); static const simple = 'simple'; - static const image = 'image'; - static const widget = 'widget'; - static const twoColumn = 'two_column'; - static const twoColumnHeader = 'two_column_header'; + static const invalid = 'invalid'; } @@ -285,20 +267,6 @@ enum ContentAlignment { bottomRight; static final schema = Schema.string.isEnum(values); - - Alignment toAlignment() { - return switch (this) { - ContentAlignment.topLeft => Alignment.topLeft, - ContentAlignment.topCenter => Alignment.topCenter, - ContentAlignment.topRight => Alignment.topRight, - ContentAlignment.centerLeft => Alignment.centerLeft, - ContentAlignment.center => Alignment.center, - ContentAlignment.centerRight => Alignment.centerRight, - ContentAlignment.bottomLeft => Alignment.bottomLeft, - ContentAlignment.bottomCenter => Alignment.bottomCenter, - ContentAlignment.bottomRight => Alignment.bottomRight, - }; - } } extension on SchemaValue { diff --git a/packages/superdeck/lib/models/options_model.mapper.dart b/packages/superdeck_core/lib/src/models/options_model.mapper.dart similarity index 98% rename from packages/superdeck/lib/models/options_model.mapper.dart rename to packages/superdeck_core/lib/src/models/options_model.mapper.dart index 4b2148d5..64a94722 100644 --- a/packages/superdeck/lib/models/options_model.mapper.dart +++ b/packages/superdeck_core/lib/src/models/options_model.mapper.dart @@ -637,14 +637,14 @@ class _ContentOptionsCopyWithImpl<$R, $Out> _ContentOptionsCopyWithImpl($value, $cast, t); } -class ImageOptionsMapper extends ClassMapperBase { +class ImageOptionsMapper extends SubClassMapperBase { ImageOptionsMapper._(); static ImageOptionsMapper? _instance; static ImageOptionsMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = ImageOptionsMapper._()); - ContentOptionsMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized().addSubMapper(_instance!); ImageFitMapper.ensureInitialized(); ContentAlignmentMapper.ensureInitialized(); } @@ -676,6 +676,14 @@ class ImageOptionsMapper extends ClassMapperBase { @override final bool ignoreNull = true; + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'ImageOptions'; + @override + late final ClassMapperBase superMapper = + ContentOptionsMapper.ensureInitialized(); + static ImageOptions _instantiate(DecodingData data) { return ImageOptions( src: data.dec(_f$src), @@ -774,14 +782,14 @@ class _ImageOptionsCopyWithImpl<$R, $Out> _ImageOptionsCopyWithImpl($value, $cast, t); } -class WidgetOptionsMapper extends ClassMapperBase { +class WidgetOptionsMapper extends SubClassMapperBase { WidgetOptionsMapper._(); static WidgetOptionsMapper? _instance; static WidgetOptionsMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = WidgetOptionsMapper._()); - ContentOptionsMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized().addSubMapper(_instance!); ContentAlignmentMapper.ensureInitialized(); } return _instance!; @@ -812,6 +820,14 @@ class WidgetOptionsMapper extends ClassMapperBase { @override final bool ignoreNull = true; + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'WidgetOptions'; + @override + late final ClassMapperBase superMapper = + ContentOptionsMapper.ensureInitialized(); + static WidgetOptions _instantiate(DecodingData data) { return WidgetOptions( name: data.dec(_f$name), diff --git a/packages/superdeck/lib/models/reference_model.dart b/packages/superdeck_core/lib/src/models/reference_model.dart similarity index 74% rename from packages/superdeck/lib/models/reference_model.dart rename to packages/superdeck_core/lib/src/models/reference_model.dart index 47ae8be7..82cce744 100644 --- a/packages/superdeck/lib/models/reference_model.dart +++ b/packages/superdeck_core/lib/src/models/reference_model.dart @@ -1,3 +1,5 @@ +import 'dart:io'; + import 'package:dart_mappable/dart_mappable.dart'; import 'asset_model.dart'; @@ -18,6 +20,14 @@ class SuperDeckReference with SuperDeckReferenceMappable { required this.assets, }); + static SuperDeckReference loadFile(File file) { + try { + return fromJson(file.readAsStringSync()); + } catch (e) { + return SuperDeckReference(assets: [], slides: [], config: Config.empty()); + } + } + const SuperDeckReference.empty() : config = const Config.empty(), slides = const [], diff --git a/packages/superdeck/lib/models/reference_model.mapper.dart b/packages/superdeck_core/lib/src/models/reference_model.mapper.dart similarity index 100% rename from packages/superdeck/lib/models/reference_model.mapper.dart rename to packages/superdeck_core/lib/src/models/reference_model.mapper.dart diff --git a/packages/superdeck_core/lib/src/models/slide_model.dart b/packages/superdeck_core/lib/src/models/slide_model.dart new file mode 100644 index 00000000..04d9f1d3 --- /dev/null +++ b/packages/superdeck_core/lib/src/models/slide_model.dart @@ -0,0 +1,102 @@ +import 'package:dart_mappable/dart_mappable.dart'; +import 'package:superdeck_core/superdeck_core.dart'; + +import '../schema/schema_model.dart'; +import '../schema/schema_validation.dart'; + +part 'slide_model.mapper.dart'; + +@MappableClass() +class Slide with SlideMappable { + final String content; + final String key; + final List sections; + final SlideOptions? options; + + Slide({ + required this.content, + required this.key, + this.options, + this.sections = const [], + }); + + static Slide parse(Map map) { + try { + Slide.schema.validateOrThrow(map); + return Slide.fromMap(map); + } on SchemaValidationException catch (e) { + return InvalidSlide.schemaError(e.result); + } on Exception catch (e) { + return InvalidSlide.exception(e); + } catch (e) { + return InvalidSlide.message('# Unknown Error \n $e'); + } + } + + static const fromMap = SlideMapper.fromMap; + + static const fromJson = SlideMapper.fromJson; + + static final schema = SchemaShape( + { + "content": Schema.string.required(), + "title": Schema.string, + 'options': SlideOptions.schema.optional(), + }, + additionalProperties: false, + ); +} + +@MappableRecord() +typedef SectionData = ({String content, ContentOptions? options}); + +@MappableClass() +class InvalidSlide extends Slide with InvalidSlideMappable { + InvalidSlide(String message) + : super( + content: message, + key: message, + ); + + InvalidSlide.message(String message) : this(message); + + InvalidSlide.invalidTemplate(String template) + : this.message('# Invalid template \n ## $template'); + + factory InvalidSlide.exception(Exception exception) { + return InvalidSlide.message('# Exception \n ## ${exception.toString()}'); + } + + factory InvalidSlide.schemaError( + SchemaValidationResult result, [ + String? content, + ]) { + final path = result.key; + final errors = result.errors; + final errorMessage = errors.map((error) => error.message).join('\n\n'); + + // dont forget the tab or spacing since they are nested + String keysNested = ''; + + if (path.isNotEmpty) { + keysNested = path.join('.'); + } + + content ??= '# Schema Error'; + + final message = ''' +$content +## $keysNested +$errorMessage +'''; + + return InvalidSlide.message(message); + } + + factory InvalidSlide.projectSchemaError(SchemaValidationResult error) { + return InvalidSlide.schemaError(error, '# Project configuration error'); + } + + static const fromMap = InvalidSlideMapper.fromMap; + static const fromJson = InvalidSlideMapper.fromJson; +} diff --git a/packages/superdeck_core/lib/src/models/slide_model.mapper.dart b/packages/superdeck_core/lib/src/models/slide_model.mapper.dart new file mode 100644 index 00000000..225f716a --- /dev/null +++ b/packages/superdeck_core/lib/src/models/slide_model.mapper.dart @@ -0,0 +1,349 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member +// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter + +part of 'slide_model.dart'; + +class SlideMapper extends ClassMapperBase { + SlideMapper._(); + + static SlideMapper? _instance; + static SlideMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SlideMapper._()); + InvalidSlideMapper.ensureInitialized(); + SlideOptionsMapper.ensureInitialized(); + SectionPartMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'Slide'; + + static String _$content(Slide v) => v.content; + static const Field _f$content = Field('content', _$content); + static String _$key(Slide v) => v.key; + static const Field _f$key = Field('key', _$key); + static SlideOptions? _$options(Slide v) => v.options; + static const Field _f$options = + Field('options', _$options, opt: true); + static List _$sections(Slide v) => v.sections; + static const Field> _f$sections = + Field('sections', _$sections, opt: true, def: const []); + + @override + final MappableFields fields = const { + #content: _f$content, + #key: _f$key, + #options: _f$options, + #sections: _f$sections, + }; + @override + final bool ignoreNull = true; + + static Slide _instantiate(DecodingData data) { + return Slide( + content: data.dec(_f$content), + key: data.dec(_f$key), + options: data.dec(_f$options), + sections: data.dec(_f$sections)); + } + + @override + final Function instantiate = _instantiate; + + static Slide fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static Slide fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SlideMappable { + String toJson() { + return SlideMapper.ensureInitialized().encodeJson(this as Slide); + } + + Map toMap() { + return SlideMapper.ensureInitialized().encodeMap(this as Slide); + } + + SlideCopyWith get copyWith => + _SlideCopyWithImpl(this as Slide, $identity, $identity); + @override + String toString() { + return SlideMapper.ensureInitialized().stringifyValue(this as Slide); + } + + @override + bool operator ==(Object other) { + return SlideMapper.ensureInitialized().equalsValue(this as Slide, other); + } + + @override + int get hashCode { + return SlideMapper.ensureInitialized().hashValue(this as Slide); + } +} + +extension SlideValueCopy<$R, $Out> on ObjectCopyWith<$R, Slide, $Out> { + SlideCopyWith<$R, Slide, $Out> get $asSlide => + $base.as((v, t, t2) => _SlideCopyWithImpl(v, t, t2)); +} + +abstract class SlideCopyWith<$R, $In extends Slide, $Out> + implements ClassCopyWith<$R, $In, $Out> { + $R call({String? content}); + SlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _SlideCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Slide, $Out> + implements SlideCopyWith<$R, Slide, $Out> { + _SlideCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = SlideMapper.ensureInitialized(); + @override + $R call({String? content}) => + $apply(FieldCopyWithData({if (content != null) #content: content})); + @override + Slide $make(CopyWithData data) => Slide( + content: data.get(#content, or: $value.content), + key: data.get(#key, or: $value.key), + options: data.get(#options, or: $value.options), + sections: data.get(#sections, or: $value.sections)); + + @override + SlideCopyWith<$R2, Slide, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t) => + _SlideCopyWithImpl($value, $cast, t); +} + +class InvalidSlideMapper extends SubClassMapperBase { + InvalidSlideMapper._(); + + static InvalidSlideMapper? _instance; + static InvalidSlideMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = InvalidSlideMapper._()); + SlideMapper.ensureInitialized().addSubMapper(_instance!); + } + return _instance!; + } + + @override + final String id = 'InvalidSlide'; + + static String _$content(InvalidSlide v) => v.content; + static const Field _f$content = + Field('content', _$content, key: 'message'); + static String _$key(InvalidSlide v) => v.key; + static const Field _f$key = + Field('key', _$key, mode: FieldMode.member); + static List _$sections(InvalidSlide v) => v.sections; + static const Field> _f$sections = + Field('sections', _$sections, mode: FieldMode.member); + static SlideOptions? _$options(InvalidSlide v) => v.options; + static const Field _f$options = + Field('options', _$options, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #content: _f$content, + #key: _f$key, + #sections: _f$sections, + #options: _f$options, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'InvalidSlide'; + @override + late final ClassMapperBase superMapper = SlideMapper.ensureInitialized(); + + static InvalidSlide _instantiate(DecodingData data) { + return InvalidSlide(data.dec(_f$content)); + } + + @override + final Function instantiate = _instantiate; + + static InvalidSlide fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static InvalidSlide fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin InvalidSlideMappable { + String toJson() { + return InvalidSlideMapper.ensureInitialized() + .encodeJson(this as InvalidSlide); + } + + Map toMap() { + return InvalidSlideMapper.ensureInitialized() + .encodeMap(this as InvalidSlide); + } + + InvalidSlideCopyWith get copyWith => + _InvalidSlideCopyWithImpl(this as InvalidSlide, $identity, $identity); + @override + String toString() { + return InvalidSlideMapper.ensureInitialized() + .stringifyValue(this as InvalidSlide); + } + + @override + bool operator ==(Object other) { + return InvalidSlideMapper.ensureInitialized() + .equalsValue(this as InvalidSlide, other); + } + + @override + int get hashCode { + return InvalidSlideMapper.ensureInitialized() + .hashValue(this as InvalidSlide); + } +} + +extension InvalidSlideValueCopy<$R, $Out> + on ObjectCopyWith<$R, InvalidSlide, $Out> { + InvalidSlideCopyWith<$R, InvalidSlide, $Out> get $asInvalidSlide => + $base.as((v, t, t2) => _InvalidSlideCopyWithImpl(v, t, t2)); +} + +abstract class InvalidSlideCopyWith<$R, $In extends InvalidSlide, $Out> + implements SlideCopyWith<$R, $In, $Out> { + @override + $R call({String? content}); + InvalidSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _InvalidSlideCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, InvalidSlide, $Out> + implements InvalidSlideCopyWith<$R, InvalidSlide, $Out> { + _InvalidSlideCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + InvalidSlideMapper.ensureInitialized(); + @override + $R call({String? content}) => + $apply(FieldCopyWithData({if (content != null) #content: content})); + @override + InvalidSlide $make(CopyWithData data) => + InvalidSlide(data.get(#content, or: $value.content)); + + @override + InvalidSlideCopyWith<$R2, InvalidSlide, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _InvalidSlideCopyWithImpl($value, $cast, t); +} + +class SectionDataMapper extends RecordMapperBase { + static SectionDataMapper? _instance; + SectionDataMapper._(); + + static SectionDataMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SectionDataMapper._()); + MapperBase.addType((f) => f<({A content, B options})>()); + } + return _instance!; + } + + static String _$content(SectionData v) => v.content; + static const Field _f$content = + Field('content', _$content); + static ContentOptions? _$options(SectionData v) => v.options; + static const Field _f$options = + Field('options', _$options); + + @override + final MappableFields fields = const { + #content: _f$content, + #options: _f$options, + }; + + @override + Function get typeFactory => (f) => f(); + + @override + List apply(MappingContext context) { + return []; + } + + static SectionData _instantiate(DecodingData data) { + return (content: data.dec(_f$content), options: data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static SectionData fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SectionData fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +extension SectionDataMappable on SectionData { + Map toMap() { + return SectionDataMapper.ensureInitialized().encodeMap(this); + } + + String toJson() { + return SectionDataMapper.ensureInitialized().encodeJson(this); + } + + SectionDataCopyWith get copyWith => + _SectionDataCopyWithImpl(this, $identity, $identity); +} + +extension SectionDataValueCopy<$R> + on ObjectCopyWith<$R, SectionData, SectionData> { + SectionDataCopyWith<$R> get $asSectionData => + $base.as((v, t, t2) => _SectionDataCopyWithImpl(v, t, t2)); +} + +abstract class SectionDataCopyWith<$R> + implements RecordCopyWith<$R, SectionData> { + $R call({String? content, ContentOptions? options}); + SectionDataCopyWith<$R2> $chain<$R2>(Then t); +} + +class _SectionDataCopyWithImpl<$R> extends RecordCopyWithBase<$R, SectionData> + implements SectionDataCopyWith<$R> { + _SectionDataCopyWithImpl(super.value, super.then, super.then2); + + @override + late final RecordMapperBase $mapper = + SectionDataMapper.ensureInitialized(); + @override + $R call({String? content, Object? options = $none}) => + $apply(FieldCopyWithData({ + if (content != null) #content: content, + if (options != $none) #options: options + })); + @override + SectionData $make(CopyWithData data) => ( + content: data.get(#content, or: $value.content), + options: data.get(#options, or: $value.options) + ); + + @override + SectionDataCopyWith<$R2> $chain<$R2>(Then t) => + _SectionDataCopyWithImpl($value, $cast, t); +} diff --git a/packages/superdeck_core/lib/src/models/slide_parts.dart b/packages/superdeck_core/lib/src/models/slide_parts.dart new file mode 100644 index 00000000..37b5f139 --- /dev/null +++ b/packages/superdeck_core/lib/src/models/slide_parts.dart @@ -0,0 +1,125 @@ +import 'package:dart_mappable/dart_mappable.dart'; +import 'package:superdeck_core/superdeck_core.dart'; + +part 'slide_parts.mapper.dart'; + +@MappableEnum() +enum SectionPartType { + root, + header, + body, + footer, +} + +@MappableEnum() +enum SubSectionPartType { + content, + image, + widget, +} + +interface class SlidePart { + const SlidePart(); +} + +@MappableClass(discriminatorKey: 'type') +sealed class SectionPart extends SlidePart with SectionPartMappable { + final SectionPartType type; + final ContentOptions options; + List subSections = []; + + SectionPart({ + required this.type, + required this.options, + }); + + factory SectionPart.build( + SectionPartType type, + ContentOptions options, + ) { + return switch (type) { + SectionPartType.header => HeaderLayoutPart(options), + SectionPartType.body => BodyLayoutPart(options), + SectionPartType.footer => FooterLayoutPart(options), + SectionPartType.root => RootLayoutPart(options), + }; + } + + String get name => type.name; + + void concatLine(String content) { + final lastPart = subSections.lastOrNull; + + if (lastPart is ContentPart) { + subSections.last = lastPart.copyWith( + content: lastPart.content + '\n' + content, + ); + } else { + subSections.add(ContentPart( + content: content, + options: ContentOptions(), + )); + } + } +} + +@MappableClass(discriminatorKey: 'type') +sealed class SubSectionPart extends SlidePart + with SubSectionPartMappable { + final SubSectionPartType type; + final T options; + + SubSectionPart({ + required this.type, + required this.options, + }); +} + +@MappableClass(discriminatorValue: SubSectionPartType.content) +class ContentPart extends SubSectionPart + with ContentPartMappable { + final String content; + + ContentPart({ + required this.content, + required super.options, + }) : super(type: SubSectionPartType.content); +} + +@MappableClass(discriminatorValue: 'widget') +class WidgetPart extends SubSectionPart with WidgetPartMappable { + WidgetPart({ + required super.options, + }) : super(type: SubSectionPartType.widget); +} + +@MappableClass(discriminatorValue: 'image') +class ImagePart extends SubSectionPart with ImagePartMappable { + ImagePart({ + required super.options, + }) : super(type: SubSectionPartType.image); +} + +@MappableClass(discriminatorValue: 'root') +class RootLayoutPart extends SectionPart with RootLayoutPartMappable { + RootLayoutPart(ContentOptions options) + : super(type: SectionPartType.root, options: options); +} + +@MappableClass(discriminatorValue: 'header') +class HeaderLayoutPart extends SectionPart with HeaderLayoutPartMappable { + HeaderLayoutPart(ContentOptions options) + : super(type: SectionPartType.header, options: options); +} + +@MappableClass(discriminatorValue: 'body') +class BodyLayoutPart extends SectionPart with BodyLayoutPartMappable { + BodyLayoutPart(ContentOptions options) + : super(type: SectionPartType.body, options: options); +} + +@MappableClass(discriminatorValue: 'footer') +class FooterLayoutPart extends SectionPart with FooterLayoutPartMappable { + FooterLayoutPart(ContentOptions options) + : super(type: SectionPartType.footer, options: options); +} diff --git a/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart b/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart new file mode 100644 index 00000000..39e793df --- /dev/null +++ b/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart @@ -0,0 +1,1196 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member +// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter + +part of 'slide_parts.dart'; + +class SectionPartTypeMapper extends EnumMapper { + SectionPartTypeMapper._(); + + static SectionPartTypeMapper? _instance; + static SectionPartTypeMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SectionPartTypeMapper._()); + } + return _instance!; + } + + static SectionPartType fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + SectionPartType decode(dynamic value) { + switch (value) { + case 'root': + return SectionPartType.root; + case 'header': + return SectionPartType.header; + case 'body': + return SectionPartType.body; + case 'footer': + return SectionPartType.footer; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(SectionPartType self) { + switch (self) { + case SectionPartType.root: + return 'root'; + case SectionPartType.header: + return 'header'; + case SectionPartType.body: + return 'body'; + case SectionPartType.footer: + return 'footer'; + } + } +} + +extension SectionPartTypeMapperExtension on SectionPartType { + String toValue() { + SectionPartTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class SubSectionPartTypeMapper extends EnumMapper { + SubSectionPartTypeMapper._(); + + static SubSectionPartTypeMapper? _instance; + static SubSectionPartTypeMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SubSectionPartTypeMapper._()); + } + return _instance!; + } + + static SubSectionPartType fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + SubSectionPartType decode(dynamic value) { + switch (value) { + case 'content': + return SubSectionPartType.content; + case 'image': + return SubSectionPartType.image; + case 'widget': + return SubSectionPartType.widget; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(SubSectionPartType self) { + switch (self) { + case SubSectionPartType.content: + return 'content'; + case SubSectionPartType.image: + return 'image'; + case SubSectionPartType.widget: + return 'widget'; + } + } +} + +extension SubSectionPartTypeMapperExtension on SubSectionPartType { + String toValue() { + SubSectionPartTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class SectionPartMapper extends ClassMapperBase { + SectionPartMapper._(); + + static SectionPartMapper? _instance; + static SectionPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SectionPartMapper._()); + RootLayoutPartMapper.ensureInitialized(); + HeaderLayoutPartMapper.ensureInitialized(); + BodyLayoutPartMapper.ensureInitialized(); + FooterLayoutPartMapper.ensureInitialized(); + SectionPartTypeMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'SectionPart'; + + static SectionPartType _$type(SectionPart v) => v.type; + static const Field _f$type = + Field('type', _$type); + static ContentOptions _$options(SectionPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static List> _$subSections(SectionPart v) => + v.subSections; + static const Field>> + _f$subSections = Field('subSections', _$subSections, + key: 'sub_sections', mode: FieldMode.member); + + @override + final MappableFields fields = const { + #type: _f$type, + #options: _f$options, + #subSections: _f$subSections, + }; + @override + final bool ignoreNull = true; + + static SectionPart _instantiate(DecodingData data) { + throw MapperException.missingSubclass( + 'SectionPart', 'type', '${data.value['type']}'); + } + + @override + final Function instantiate = _instantiate; + + static SectionPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SectionPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SectionPartMappable { + String toJson(); + Map toMap(); + SectionPartCopyWith get copyWith; +} + +abstract class SectionPartCopyWith<$R, $In extends SectionPart, $Out> + implements ClassCopyWith<$R, $In, $Out> { + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + $R call({ContentOptions? options}); + SectionPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class SubSectionPartMapper extends ClassMapperBase { + SubSectionPartMapper._(); + + static SubSectionPartMapper? _instance; + static SubSectionPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SubSectionPartMapper._()); + ContentPartMapper.ensureInitialized(); + WidgetPartMapper.ensureInitialized(); + ImagePartMapper.ensureInitialized(); + SubSectionPartTypeMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'SubSectionPart'; + @override + Function get typeFactory => + (f) => f>(); + + static SubSectionPartType _$type(SubSectionPart v) => v.type; + static const Field _f$type = + Field('type', _$type); + static ContentOptions _$options(SubSectionPart v) => v.options; + static dynamic _arg$options(f) => f(); + static const Field _f$options = + Field('options', _$options, arg: _arg$options); + + @override + final MappableFields fields = const { + #type: _f$type, + #options: _f$options, + }; + @override + final bool ignoreNull = true; + + static SubSectionPart _instantiate( + DecodingData data) { + throw MapperException.missingSubclass( + 'SubSectionPart', 'type', '${data.value['type']}'); + } + + @override + final Function instantiate = _instantiate; + + static SubSectionPart fromMap( + Map map) { + return ensureInitialized().decodeMap>(map); + } + + static SubSectionPart fromJson(String json) { + return ensureInitialized().decodeJson>(json); + } +} + +mixin SubSectionPartMappable { + String toJson(); + Map toMap(); + SubSectionPartCopyWith, SubSectionPart, + SubSectionPart, T> get copyWith; +} + +abstract class SubSectionPartCopyWith<$R, $In extends SubSectionPart, $Out, + T extends ContentOptions> implements ClassCopyWith<$R, $In, $Out> { + ContentOptionsCopyWith<$R, ContentOptions, T> get options; + $R call({T? options}); + SubSectionPartCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class ContentPartMapper extends SubClassMapperBase { + ContentPartMapper._(); + + static ContentPartMapper? _instance; + static ContentPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ContentPartMapper._()); + SubSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'ContentPart'; + + static String _$content(ContentPart v) => v.content; + static const Field _f$content = + Field('content', _$content); + static ContentOptions _$options(ContentPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SubSectionPartType _$type(ContentPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #content: _f$content, + #options: _f$options, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = SubSectionPartType.content; + @override + late final ClassMapperBase superMapper = + SubSectionPartMapper.ensureInitialized(); + + @override + DecodingContext inherit(DecodingContext context) { + return context.inherit(args: () => []); + } + + static ContentPart _instantiate(DecodingData data) { + return ContentPart( + content: data.dec(_f$content), options: data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static ContentPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static ContentPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin ContentPartMappable { + String toJson() { + return ContentPartMapper.ensureInitialized() + .encodeJson(this as ContentPart); + } + + Map toMap() { + return ContentPartMapper.ensureInitialized() + .encodeMap(this as ContentPart); + } + + ContentPartCopyWith get copyWith => + _ContentPartCopyWithImpl(this as ContentPart, $identity, $identity); + @override + String toString() { + return ContentPartMapper.ensureInitialized() + .stringifyValue(this as ContentPart); + } + + @override + bool operator ==(Object other) { + return ContentPartMapper.ensureInitialized() + .equalsValue(this as ContentPart, other); + } + + @override + int get hashCode { + return ContentPartMapper.ensureInitialized().hashValue(this as ContentPart); + } +} + +extension ContentPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, ContentPart, $Out> { + ContentPartCopyWith<$R, ContentPart, $Out> get $asContentPart => + $base.as((v, t, t2) => _ContentPartCopyWithImpl(v, t, t2)); +} + +abstract class ContentPartCopyWith<$R, $In extends ContentPart, $Out> + implements SubSectionPartCopyWith<$R, $In, $Out, ContentOptions> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + $R call({String? content, ContentOptions? options}); + ContentPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _ContentPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ContentPart, $Out> + implements ContentPartCopyWith<$R, ContentPart, $Out> { + _ContentPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + ContentPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + ($value.options as ContentOptions) + .copyWith + .$chain((v) => call(options: v)); + @override + $R call({String? content, ContentOptions? options}) => + $apply(FieldCopyWithData({ + if (content != null) #content: content, + if (options != null) #options: options + })); + @override + ContentPart $make(CopyWithData data) => ContentPart( + content: data.get(#content, or: $value.content), + options: data.get(#options, or: $value.options)); + + @override + ContentPartCopyWith<$R2, ContentPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _ContentPartCopyWithImpl($value, $cast, t); +} + +class WidgetPartMapper extends SubClassMapperBase { + WidgetPartMapper._(); + + static WidgetPartMapper? _instance; + static WidgetPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = WidgetPartMapper._()); + SubSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + WidgetOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'WidgetPart'; + + static WidgetOptions _$options(WidgetPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SubSectionPartType _$type(WidgetPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'widget'; + @override + late final ClassMapperBase superMapper = + SubSectionPartMapper.ensureInitialized(); + + @override + DecodingContext inherit(DecodingContext context) { + return context.inherit(args: () => []); + } + + static WidgetPart _instantiate(DecodingData data) { + return WidgetPart(options: data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static WidgetPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static WidgetPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin WidgetPartMappable { + String toJson() { + return WidgetPartMapper.ensureInitialized() + .encodeJson(this as WidgetPart); + } + + Map toMap() { + return WidgetPartMapper.ensureInitialized() + .encodeMap(this as WidgetPart); + } + + WidgetPartCopyWith get copyWith => + _WidgetPartCopyWithImpl(this as WidgetPart, $identity, $identity); + @override + String toString() { + return WidgetPartMapper.ensureInitialized() + .stringifyValue(this as WidgetPart); + } + + @override + bool operator ==(Object other) { + return WidgetPartMapper.ensureInitialized() + .equalsValue(this as WidgetPart, other); + } + + @override + int get hashCode { + return WidgetPartMapper.ensureInitialized().hashValue(this as WidgetPart); + } +} + +extension WidgetPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, WidgetPart, $Out> { + WidgetPartCopyWith<$R, WidgetPart, $Out> get $asWidgetPart => + $base.as((v, t, t2) => _WidgetPartCopyWithImpl(v, t, t2)); +} + +abstract class WidgetPartCopyWith<$R, $In extends WidgetPart, $Out> + implements SubSectionPartCopyWith<$R, $In, $Out, WidgetOptions> { + @override + WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options; + @override + $R call({WidgetOptions? options}); + WidgetPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _WidgetPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, WidgetPart, $Out> + implements WidgetPartCopyWith<$R, WidgetPart, $Out> { + _WidgetPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + WidgetPartMapper.ensureInitialized(); + @override + WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options => + ($value.options as WidgetOptions) + .copyWith + .$chain((v) => call(options: v)); + @override + $R call({WidgetOptions? options}) => + $apply(FieldCopyWithData({if (options != null) #options: options})); + @override + WidgetPart $make(CopyWithData data) => + WidgetPart(options: data.get(#options, or: $value.options)); + + @override + WidgetPartCopyWith<$R2, WidgetPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _WidgetPartCopyWithImpl($value, $cast, t); +} + +class ImagePartMapper extends SubClassMapperBase { + ImagePartMapper._(); + + static ImagePartMapper? _instance; + static ImagePartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ImagePartMapper._()); + SubSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ImageOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'ImagePart'; + + static ImageOptions _$options(ImagePart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SubSectionPartType _$type(ImagePart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'image'; + @override + late final ClassMapperBase superMapper = + SubSectionPartMapper.ensureInitialized(); + + @override + DecodingContext inherit(DecodingContext context) { + return context.inherit(args: () => []); + } + + static ImagePart _instantiate(DecodingData data) { + return ImagePart(options: data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static ImagePart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static ImagePart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin ImagePartMappable { + String toJson() { + return ImagePartMapper.ensureInitialized() + .encodeJson(this as ImagePart); + } + + Map toMap() { + return ImagePartMapper.ensureInitialized() + .encodeMap(this as ImagePart); + } + + ImagePartCopyWith get copyWith => + _ImagePartCopyWithImpl(this as ImagePart, $identity, $identity); + @override + String toString() { + return ImagePartMapper.ensureInitialized() + .stringifyValue(this as ImagePart); + } + + @override + bool operator ==(Object other) { + return ImagePartMapper.ensureInitialized() + .equalsValue(this as ImagePart, other); + } + + @override + int get hashCode { + return ImagePartMapper.ensureInitialized().hashValue(this as ImagePart); + } +} + +extension ImagePartValueCopy<$R, $Out> on ObjectCopyWith<$R, ImagePart, $Out> { + ImagePartCopyWith<$R, ImagePart, $Out> get $asImagePart => + $base.as((v, t, t2) => _ImagePartCopyWithImpl(v, t, t2)); +} + +abstract class ImagePartCopyWith<$R, $In extends ImagePart, $Out> + implements SubSectionPartCopyWith<$R, $In, $Out, ImageOptions> { + @override + ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options; + @override + $R call({ImageOptions? options}); + ImagePartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _ImagePartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ImagePart, $Out> + implements ImagePartCopyWith<$R, ImagePart, $Out> { + _ImagePartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + ImagePartMapper.ensureInitialized(); + @override + ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options => + ($value.options as ImageOptions).copyWith.$chain((v) => call(options: v)); + @override + $R call({ImageOptions? options}) => + $apply(FieldCopyWithData({if (options != null) #options: options})); + @override + ImagePart $make(CopyWithData data) => + ImagePart(options: data.get(#options, or: $value.options)); + + @override + ImagePartCopyWith<$R2, ImagePart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _ImagePartCopyWithImpl($value, $cast, t); +} + +class RootLayoutPartMapper extends SubClassMapperBase { + RootLayoutPartMapper._(); + + static RootLayoutPartMapper? _instance; + static RootLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = RootLayoutPartMapper._()); + SectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'RootLayoutPart'; + + static ContentOptions _$options(RootLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SectionPartType _$type(RootLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + static List> _$subSections(RootLayoutPart v) => + v.subSections; + static const Field>> + _f$subSections = Field('subSections', _$subSections, + key: 'sub_sections', mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #type: _f$type, + #subSections: _f$subSections, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'root'; + @override + late final ClassMapperBase superMapper = + SectionPartMapper.ensureInitialized(); + + static RootLayoutPart _instantiate(DecodingData data) { + return RootLayoutPart(data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static RootLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static RootLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin RootLayoutPartMappable { + String toJson() { + return RootLayoutPartMapper.ensureInitialized() + .encodeJson(this as RootLayoutPart); + } + + Map toMap() { + return RootLayoutPartMapper.ensureInitialized() + .encodeMap(this as RootLayoutPart); + } + + RootLayoutPartCopyWith + get copyWith => _RootLayoutPartCopyWithImpl( + this as RootLayoutPart, $identity, $identity); + @override + String toString() { + return RootLayoutPartMapper.ensureInitialized() + .stringifyValue(this as RootLayoutPart); + } + + @override + bool operator ==(Object other) { + return RootLayoutPartMapper.ensureInitialized() + .equalsValue(this as RootLayoutPart, other); + } + + @override + int get hashCode { + return RootLayoutPartMapper.ensureInitialized() + .hashValue(this as RootLayoutPart); + } +} + +extension RootLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, RootLayoutPart, $Out> { + RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> get $asRootLayoutPart => + $base.as((v, t, t2) => _RootLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class RootLayoutPartCopyWith<$R, $In extends RootLayoutPart, $Out> + implements SectionPartCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + $R call({ContentOptions? options}); + RootLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _RootLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, RootLayoutPart, $Out> + implements RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> { + _RootLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + RootLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + $R call({ContentOptions? options}) => + $apply(FieldCopyWithData({if (options != null) #options: options})); + @override + RootLayoutPart $make(CopyWithData data) => + RootLayoutPart(data.get(#options, or: $value.options)); + + @override + RootLayoutPartCopyWith<$R2, RootLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _RootLayoutPartCopyWithImpl($value, $cast, t); +} + +class HeaderLayoutPartMapper extends SubClassMapperBase { + HeaderLayoutPartMapper._(); + + static HeaderLayoutPartMapper? _instance; + static HeaderLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = HeaderLayoutPartMapper._()); + SectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'HeaderLayoutPart'; + + static ContentOptions _$options(HeaderLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SectionPartType _$type(HeaderLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + static List> _$subSections( + HeaderLayoutPart v) => + v.subSections; + static const Field>> + _f$subSections = Field('subSections', _$subSections, + key: 'sub_sections', mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #type: _f$type, + #subSections: _f$subSections, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'header'; + @override + late final ClassMapperBase superMapper = + SectionPartMapper.ensureInitialized(); + + static HeaderLayoutPart _instantiate(DecodingData data) { + return HeaderLayoutPart(data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static HeaderLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static HeaderLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin HeaderLayoutPartMappable { + String toJson() { + return HeaderLayoutPartMapper.ensureInitialized() + .encodeJson(this as HeaderLayoutPart); + } + + Map toMap() { + return HeaderLayoutPartMapper.ensureInitialized() + .encodeMap(this as HeaderLayoutPart); + } + + HeaderLayoutPartCopyWith + get copyWith => _HeaderLayoutPartCopyWithImpl( + this as HeaderLayoutPart, $identity, $identity); + @override + String toString() { + return HeaderLayoutPartMapper.ensureInitialized() + .stringifyValue(this as HeaderLayoutPart); + } + + @override + bool operator ==(Object other) { + return HeaderLayoutPartMapper.ensureInitialized() + .equalsValue(this as HeaderLayoutPart, other); + } + + @override + int get hashCode { + return HeaderLayoutPartMapper.ensureInitialized() + .hashValue(this as HeaderLayoutPart); + } +} + +extension HeaderLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, HeaderLayoutPart, $Out> { + HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> + get $asHeaderLayoutPart => + $base.as((v, t, t2) => _HeaderLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class HeaderLayoutPartCopyWith<$R, $In extends HeaderLayoutPart, $Out> + implements SectionPartCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + $R call({ContentOptions? options}); + HeaderLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _HeaderLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, HeaderLayoutPart, $Out> + implements HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> { + _HeaderLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + HeaderLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + $R call({ContentOptions? options}) => + $apply(FieldCopyWithData({if (options != null) #options: options})); + @override + HeaderLayoutPart $make(CopyWithData data) => + HeaderLayoutPart(data.get(#options, or: $value.options)); + + @override + HeaderLayoutPartCopyWith<$R2, HeaderLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _HeaderLayoutPartCopyWithImpl($value, $cast, t); +} + +class BodyLayoutPartMapper extends SubClassMapperBase { + BodyLayoutPartMapper._(); + + static BodyLayoutPartMapper? _instance; + static BodyLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = BodyLayoutPartMapper._()); + SectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'BodyLayoutPart'; + + static ContentOptions _$options(BodyLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SectionPartType _$type(BodyLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + static List> _$subSections(BodyLayoutPart v) => + v.subSections; + static const Field>> + _f$subSections = Field('subSections', _$subSections, + key: 'sub_sections', mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #type: _f$type, + #subSections: _f$subSections, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'body'; + @override + late final ClassMapperBase superMapper = + SectionPartMapper.ensureInitialized(); + + static BodyLayoutPart _instantiate(DecodingData data) { + return BodyLayoutPart(data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static BodyLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static BodyLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin BodyLayoutPartMappable { + String toJson() { + return BodyLayoutPartMapper.ensureInitialized() + .encodeJson(this as BodyLayoutPart); + } + + Map toMap() { + return BodyLayoutPartMapper.ensureInitialized() + .encodeMap(this as BodyLayoutPart); + } + + BodyLayoutPartCopyWith + get copyWith => _BodyLayoutPartCopyWithImpl( + this as BodyLayoutPart, $identity, $identity); + @override + String toString() { + return BodyLayoutPartMapper.ensureInitialized() + .stringifyValue(this as BodyLayoutPart); + } + + @override + bool operator ==(Object other) { + return BodyLayoutPartMapper.ensureInitialized() + .equalsValue(this as BodyLayoutPart, other); + } + + @override + int get hashCode { + return BodyLayoutPartMapper.ensureInitialized() + .hashValue(this as BodyLayoutPart); + } +} + +extension BodyLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, BodyLayoutPart, $Out> { + BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> get $asBodyLayoutPart => + $base.as((v, t, t2) => _BodyLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class BodyLayoutPartCopyWith<$R, $In extends BodyLayoutPart, $Out> + implements SectionPartCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + $R call({ContentOptions? options}); + BodyLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _BodyLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, BodyLayoutPart, $Out> + implements BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> { + _BodyLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + BodyLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + $R call({ContentOptions? options}) => + $apply(FieldCopyWithData({if (options != null) #options: options})); + @override + BodyLayoutPart $make(CopyWithData data) => + BodyLayoutPart(data.get(#options, or: $value.options)); + + @override + BodyLayoutPartCopyWith<$R2, BodyLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _BodyLayoutPartCopyWithImpl($value, $cast, t); +} + +class FooterLayoutPartMapper extends SubClassMapperBase { + FooterLayoutPartMapper._(); + + static FooterLayoutPartMapper? _instance; + static FooterLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = FooterLayoutPartMapper._()); + SectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'FooterLayoutPart'; + + static ContentOptions _$options(FooterLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SectionPartType _$type(FooterLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + static List> _$subSections( + FooterLayoutPart v) => + v.subSections; + static const Field>> + _f$subSections = Field('subSections', _$subSections, + key: 'sub_sections', mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #type: _f$type, + #subSections: _f$subSections, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'footer'; + @override + late final ClassMapperBase superMapper = + SectionPartMapper.ensureInitialized(); + + static FooterLayoutPart _instantiate(DecodingData data) { + return FooterLayoutPart(data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static FooterLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static FooterLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin FooterLayoutPartMappable { + String toJson() { + return FooterLayoutPartMapper.ensureInitialized() + .encodeJson(this as FooterLayoutPart); + } + + Map toMap() { + return FooterLayoutPartMapper.ensureInitialized() + .encodeMap(this as FooterLayoutPart); + } + + FooterLayoutPartCopyWith + get copyWith => _FooterLayoutPartCopyWithImpl( + this as FooterLayoutPart, $identity, $identity); + @override + String toString() { + return FooterLayoutPartMapper.ensureInitialized() + .stringifyValue(this as FooterLayoutPart); + } + + @override + bool operator ==(Object other) { + return FooterLayoutPartMapper.ensureInitialized() + .equalsValue(this as FooterLayoutPart, other); + } + + @override + int get hashCode { + return FooterLayoutPartMapper.ensureInitialized() + .hashValue(this as FooterLayoutPart); + } +} + +extension FooterLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, FooterLayoutPart, $Out> { + FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> + get $asFooterLayoutPart => + $base.as((v, t, t2) => _FooterLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class FooterLayoutPartCopyWith<$R, $In extends FooterLayoutPart, $Out> + implements SectionPartCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + $R call({ContentOptions? options}); + FooterLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _FooterLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, FooterLayoutPart, $Out> + implements FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> { + _FooterLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + FooterLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + $R call({ContentOptions? options}) => + $apply(FieldCopyWithData({if (options != null) #options: options})); + @override + FooterLayoutPart $make(CopyWithData data) => + FooterLayoutPart(data.get(#options, or: $value.options)); + + @override + FooterLayoutPartCopyWith<$R2, FooterLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _FooterLayoutPartCopyWithImpl($value, $cast, t); +} diff --git a/packages/superdeck_core/lib/src/schema/schema_model.dart b/packages/superdeck_core/lib/src/schema/schema_model.dart new file mode 100644 index 00000000..ff327a5c --- /dev/null +++ b/packages/superdeck_core/lib/src/schema/schema_model.dart @@ -0,0 +1,162 @@ +import 'schema_validation.dart'; +import 'schema_values.dart'; +import 'validators.dart'; + +typedef JSON = Map; + +class SchemaMap extends SchemaValue> { + final Map properties; + final bool additionalProperties; + const SchemaMap( + this.properties, { + super.optional = true, + this.additionalProperties = false, + super.validators = const [], + }); + + @override + SchemaMap copyWith({ + bool? optional, + bool? additionalProperties, + Map? properties, + List>>? validators, + }) { + return SchemaMap( + properties ?? this.properties, + additionalProperties: additionalProperties ?? this.additionalProperties, + optional: optional ?? optionalValue, + validators: validators ?? this.validators, + ); + } + + @override + Map? tryParse(Object? value) { + return value is Map ? value : null; + } + + SchemaMap mergeSchema(SchemaMap schema) { + return merge( + schema.properties, + additionalProperties: schema.additionalProperties, + ); + } + + T? getSchemaValue(String key) { + return properties[key] as T?; + } + + SchemaMap merge( + Map properties, { + bool? additionalProperties, + bool? optional, + }) { + // if property SchemaValue is of SchemaMap, we need to merge them + final mergedProperties = {...this.properties}; + + for (final entry in properties.entries) { + final key = entry.key; + final prop = entry.value; + + final existingProp = mergedProperties[key]; + + if (existingProp is SchemaMap && prop is SchemaMap) { + mergedProperties[key] = existingProp.merge(prop.properties); + } else { + mergedProperties[key] = prop; + } + } + + return copyWith( + properties: mergedProperties, + optional: optional, + additionalProperties: additionalProperties, + ); + } + + @override + SchemaValidationResult validate(List path, Object? value) { + if (value == null) { + return optionalValue + ? SchemaValidationResult.valid(path) + : SchemaValidationResult.requiredPropMissing(path); + } + + final parsedValue = tryParse(value); + + if (parsedValue == null) { + return SchemaValidationResult.invalidType( + path, + value, + {}.toString(), + ); + } + + final keys = parsedValue.keys.toSet(); + + final required = properties.entries + .where((entry) => !entry.value.optionalValue) + .map((entry) => entry.key); + + final requiredKeys = required.toSet(); + + if (!keys.containsAll(requiredKeys)) { + return SchemaValidationResult( + key: path, + errors: requiredKeys + .difference(keys) + .map(SchemaError.requiredPropMissing) + .toList()); + } + + if (additionalProperties == false) { + final extraKeys = keys.difference(properties.keys.toSet()); + if (extraKeys.isNotEmpty) { + return SchemaValidationResult( + key: path, + errors: + extraKeys.map(SchemaError.unallowedAdditionalProperty).toList(), + ); + } + } + + for (final entry in parsedValue.entries) { + final key = entry.key; + final prop = properties[key]; + + if (prop == null) { + return additionalProperties == false + ? SchemaValidationResult( + key: path, + errors: [SchemaError.unallowedAdditionalProperty(key)]) + : SchemaValidationResult.valid(path); + } + + final result = prop.validate([...path, key], entry.value); + if (!result.isValid) { + return result; + } + } + + return SchemaValidationResult.valid(path); + } +} + +class SchemaShape extends SchemaMap { + const SchemaShape( + super.properties, { + super.additionalProperties = false, + }); +} + +typedef _DoubleType = double; + +class Schema { + const Schema._(); + + static const string = SchemaValue(); + static const map = SchemaShape.new; + static const double = SchemaValue<_DoubleType>(); + static const integer = SchemaValue(); + static const boolean = SchemaValue(); + static const any = SchemaShape({}, additionalProperties: true); +} diff --git a/packages/superdeck_core/lib/src/schema/schema_validation.dart b/packages/superdeck_core/lib/src/schema/schema_validation.dart new file mode 100644 index 00000000..b37f1428 --- /dev/null +++ b/packages/superdeck_core/lib/src/schema/schema_validation.dart @@ -0,0 +1,124 @@ +import 'package:dart_mappable/dart_mappable.dart'; + +part 'schema_validation.mapper.dart'; + +typedef JSON = Map; + +class SchemaValidationException implements Exception { + final SchemaValidationResult result; + + const SchemaValidationException(this.result); +} + +enum SchemaErrorType { + unallowedAdditionalProperty, + enumViolated, + requiredPropMissing, + invalidType, + constraints, + unknown; +} + +@MappableClass() +class SchemaError with SchemaErrorMappable { + final SchemaErrorType type; + final String message; + + const SchemaError.unknown() + : type = SchemaErrorType.unknown, + message = 'Unknown error'; + + const SchemaError.constraints(this.message) + : type = SchemaErrorType.constraints; + + const SchemaError.unallowedAdditionalProperty(String property) + : type = SchemaErrorType.unallowedAdditionalProperty, + message = 'Unallowed property: [$property]'; + + const SchemaError.enumViolated(String value, List possibleValues) + : type = SchemaErrorType.enumViolated, + message = 'Wrong value: [$value] \n\n Possible values: $possibleValues'; + + const SchemaError.requiredPropMissing(String property) + : type = SchemaErrorType.requiredPropMissing, + message = 'Missing prop: [$property]'; + + const SchemaError.invalidType(Type value, String expectedType) + : type = SchemaErrorType.invalidType, + message = 'Invalid type: [$expectedType] got [$value]'; + + @override + String toString() { + return 'SchemaValidationError{type: $type, message: $message}'; + } +} + +@MappableClass() +class SchemaValidationResult with SchemaValidationResultMappable { + final List key; + final List errors; + + const SchemaValidationResult({ + required this.key, + required this.errors, + }); + + const SchemaValidationResult.valid(this.key) : errors = const []; + + factory SchemaValidationResult.invalidType( + List path, + Object value, + String expectedType, + ) { + return SchemaValidationResult( + key: path, + errors: [ + SchemaError.invalidType( + value.runtimeType, + expectedType, + ) + ], + ); + } + + factory SchemaValidationResult.unallowedAdditionalProperty( + List path, String property) { + return SchemaValidationResult( + key: path, + errors: [SchemaError.unallowedAdditionalProperty(property)], + ); + } + + factory SchemaValidationResult.enumViolated( + List path, String value, List possibleValues) { + return SchemaValidationResult( + key: path, + errors: [SchemaError.enumViolated(value, possibleValues)], + ); + } + + factory SchemaValidationResult.requiredPropMissing(List path) { + return SchemaValidationResult( + key: path, + errors: [SchemaError.requiredPropMissing(path.last)], + ); + } + + factory SchemaValidationResult.constraints( + List path, String message) { + return SchemaValidationResult( + key: path, + errors: [SchemaError.constraints(message)], + ); + } + + @override + String toString() { + return '${errors.isEmpty ? 'VALID' : 'INVALID'}${errors.isEmpty ? ', Errors: $errors' : ''}'; + } + + bool get isValid => errors.isEmpty; + + static const fromMap = SchemaValidationResultMapper.fromMap; + static const fromJson = SchemaValidationResultMapper.fromJson; +} diff --git a/packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart b/packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart new file mode 100644 index 00000000..1ea4d17a --- /dev/null +++ b/packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart @@ -0,0 +1,248 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member +// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter + +part of 'schema_validation.dart'; + +class SchemaErrorMapper extends ClassMapperBase { + SchemaErrorMapper._(); + + static SchemaErrorMapper? _instance; + static SchemaErrorMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SchemaErrorMapper._()); + } + return _instance!; + } + + @override + final String id = 'SchemaError'; + + static SchemaErrorType _$type(SchemaError v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + static String _$message(SchemaError v) => v.message; + static const Field _f$message = + Field('message', _$message, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #type: _f$type, + #message: _f$message, + }; + @override + final bool ignoreNull = true; + + static SchemaError _instantiate(DecodingData data) { + return SchemaError.unknown(); + } + + @override + final Function instantiate = _instantiate; + + static SchemaError fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SchemaError fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SchemaErrorMappable { + String toJson() { + return SchemaErrorMapper.ensureInitialized() + .encodeJson(this as SchemaError); + } + + Map toMap() { + return SchemaErrorMapper.ensureInitialized() + .encodeMap(this as SchemaError); + } + + SchemaErrorCopyWith get copyWith => + _SchemaErrorCopyWithImpl(this as SchemaError, $identity, $identity); + @override + String toString() { + return SchemaErrorMapper.ensureInitialized() + .stringifyValue(this as SchemaError); + } + + @override + bool operator ==(Object other) { + return SchemaErrorMapper.ensureInitialized() + .equalsValue(this as SchemaError, other); + } + + @override + int get hashCode { + return SchemaErrorMapper.ensureInitialized().hashValue(this as SchemaError); + } +} + +extension SchemaErrorValueCopy<$R, $Out> + on ObjectCopyWith<$R, SchemaError, $Out> { + SchemaErrorCopyWith<$R, SchemaError, $Out> get $asSchemaError => + $base.as((v, t, t2) => _SchemaErrorCopyWithImpl(v, t, t2)); +} + +abstract class SchemaErrorCopyWith<$R, $In extends SchemaError, $Out> + implements ClassCopyWith<$R, $In, $Out> { + $R call(); + SchemaErrorCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _SchemaErrorCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, SchemaError, $Out> + implements SchemaErrorCopyWith<$R, SchemaError, $Out> { + _SchemaErrorCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + SchemaErrorMapper.ensureInitialized(); + @override + $R call() => $apply(FieldCopyWithData({})); + @override + SchemaError $make(CopyWithData data) => SchemaError.unknown(); + + @override + SchemaErrorCopyWith<$R2, SchemaError, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _SchemaErrorCopyWithImpl($value, $cast, t); +} + +class SchemaValidationResultMapper + extends ClassMapperBase { + SchemaValidationResultMapper._(); + + static SchemaValidationResultMapper? _instance; + static SchemaValidationResultMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SchemaValidationResultMapper._()); + SchemaErrorMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'SchemaValidationResult'; + + static List _$key(SchemaValidationResult v) => v.key; + static const Field> _f$key = + Field('key', _$key); + static List _$errors(SchemaValidationResult v) => v.errors; + static const Field> _f$errors = + Field('errors', _$errors); + + @override + final MappableFields fields = const { + #key: _f$key, + #errors: _f$errors, + }; + @override + final bool ignoreNull = true; + + static SchemaValidationResult _instantiate(DecodingData data) { + return SchemaValidationResult( + key: data.dec(_f$key), errors: data.dec(_f$errors)); + } + + @override + final Function instantiate = _instantiate; + + static SchemaValidationResult fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SchemaValidationResult fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SchemaValidationResultMappable { + String toJson() { + return SchemaValidationResultMapper.ensureInitialized() + .encodeJson(this as SchemaValidationResult); + } + + Map toMap() { + return SchemaValidationResultMapper.ensureInitialized() + .encodeMap(this as SchemaValidationResult); + } + + SchemaValidationResultCopyWith + get copyWith => _SchemaValidationResultCopyWithImpl( + this as SchemaValidationResult, $identity, $identity); + @override + String toString() { + return SchemaValidationResultMapper.ensureInitialized() + .stringifyValue(this as SchemaValidationResult); + } + + @override + bool operator ==(Object other) { + return SchemaValidationResultMapper.ensureInitialized() + .equalsValue(this as SchemaValidationResult, other); + } + + @override + int get hashCode { + return SchemaValidationResultMapper.ensureInitialized() + .hashValue(this as SchemaValidationResult); + } +} + +extension SchemaValidationResultValueCopy<$R, $Out> + on ObjectCopyWith<$R, SchemaValidationResult, $Out> { + SchemaValidationResultCopyWith<$R, SchemaValidationResult, $Out> + get $asSchemaValidationResult => + $base.as((v, t, t2) => _SchemaValidationResultCopyWithImpl(v, t, t2)); +} + +abstract class SchemaValidationResultCopyWith< + $R, + $In extends SchemaValidationResult, + $Out> implements ClassCopyWith<$R, $In, $Out> { + ListCopyWith<$R, String, ObjectCopyWith<$R, String, String>> get key; + ListCopyWith<$R, SchemaError, + SchemaErrorCopyWith<$R, SchemaError, SchemaError>> get errors; + $R call({List? key, List? errors}); + SchemaValidationResultCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _SchemaValidationResultCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, SchemaValidationResult, $Out> + implements + SchemaValidationResultCopyWith<$R, SchemaValidationResult, $Out> { + _SchemaValidationResultCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + SchemaValidationResultMapper.ensureInitialized(); + @override + ListCopyWith<$R, String, ObjectCopyWith<$R, String, String>> get key => + ListCopyWith($value.key, (v, t) => ObjectCopyWith(v, $identity, t), + (v) => call(key: v)); + @override + ListCopyWith<$R, SchemaError, + SchemaErrorCopyWith<$R, SchemaError, SchemaError>> + get errors => ListCopyWith($value.errors, (v, t) => v.copyWith.$chain(t), + (v) => call(errors: v)); + @override + $R call({List? key, List? errors}) => + $apply(FieldCopyWithData( + {if (key != null) #key: key, if (errors != null) #errors: errors})); + @override + SchemaValidationResult $make(CopyWithData data) => SchemaValidationResult( + key: data.get(#key, or: $value.key), + errors: data.get(#errors, or: $value.errors)); + + @override + SchemaValidationResultCopyWith<$R2, SchemaValidationResult, $Out2> + $chain<$R2, $Out2>(Then<$Out2, $R2> t) => + _SchemaValidationResultCopyWithImpl($value, $cast, t); +} diff --git a/packages/superdeck_core/lib/src/schema/schema_values.dart b/packages/superdeck_core/lib/src/schema/schema_values.dart new file mode 100644 index 00000000..1deb2193 --- /dev/null +++ b/packages/superdeck_core/lib/src/schema/schema_values.dart @@ -0,0 +1,211 @@ +import 'schema_validation.dart'; +import 'validators.dart'; + +class SchemaValue { + const SchemaValue({ + bool optional = true, + this.validators = const [], + }) : optionalValue = optional; + + SchemaValue copyWith({ + bool? optional, + List>? validators, + }) { + return SchemaValue( + optional: optional ?? this.optionalValue, + validators: validators ?? this.validators, + ); + } + + SchemaValue required() { + return copyWith(optional: false); + } + + SchemaValue optional() { + return copyWith(optional: true); + } + + final bool optionalValue; + + final List> validators; + + bool get requiredValue => !optionalValue; + + V? tryParse(Object? value) { + if (value is V) { + return value; + } + if (V is int) { + return _tryParseInt(value) as V?; + } + + if (V is double) { + return _tryParseDouble(value) as V?; + } + + if (V is bool) { + return _tryParseBool(value) as V?; + } + + return null; + } + + void validateOrThrow(Object value) { + final result = validate([], value); + if (!result.isValid) { + throw SchemaValidationException(result); + } + } + + SchemaValidationResult validate(List path, Object? value) { + if (value == null) { + return optionalValue + ? SchemaValidationResult.valid(path) + : SchemaValidationResult.requiredPropMissing(path); + } + + final valueType = tryParse(value); + + if (valueType == null) { + return SchemaValidationResult.invalidType(path, value, V.toString()); + } + + for (final validator in validators) { + final error = validator.validate(valueType); + if (error != null) { + return SchemaValidationResult.constraints(path, error.message); + } + } + + return SchemaValidationResult.valid(path); + } +} + +/// Used to remove value from SchemaMap + +double? _tryParseDouble(Object? value) { + if (value is double) { + return value; + } + + if (value is int) { + return value.toDouble(); + } + + if (value is String) { + return double.tryParse(value); + } + + return null; +} + +bool? _tryParseBool(Object? value) { + if (value is bool) { + return value; + } + + if (value is String) { + if (value.toLowerCase() == 'true') { + return true; + } else if (value.toLowerCase() == 'false') { + return false; + } + } + + return null; +} + +int? _tryParseInt(Object? value) { + if (value is int) { + return value; + } + + if (value is String) { + return int.tryParse(value); + } + + return null; +} + +class BooleanSchema extends SchemaValue { + const BooleanSchema({super.optional = false, super.validators = const []}); + + @override + BooleanSchema copyWith({ + bool? optional, + List>? validators, + }) { + return BooleanSchema( + optional: optional ?? optionalValue, + validators: validators ?? this.validators, + ); + } + + @override + bool? tryParse(Object? value) { + if (value is bool) { + return value; + } + + if (value is String) { + if (value.toLowerCase() == 'true') { + return true; + } else if (value.toLowerCase() == 'false') { + return false; + } + } + + return null; + } +} + +extension StringSchemaExt on SchemaValue { + SchemaValue isPosixPath() { + return copyWith(validators: [ + ...validators, + const PosixPathValidator(), + ]); + } + + SchemaValue isEmail() { + return copyWith(validators: [ + ...validators, + const EmailValidator(), + ]); + } + + SchemaValue isHexColor() { + return copyWith(validators: [ + ...validators, + const HexColorValidator(), + ]); + } + + SchemaValue isArray(List values) { + return copyWith(validators: [ + ...validators, + ArrayValidator(values), + ]); + } + + SchemaValue isEmpty() { + return copyWith(validators: [ + ...validators, + const IsEmptyValidator(), + ]); + } + + SchemaValue minLength(int min) { + return copyWith(validators: [ + ...validators, + MinLengthValidator(min), + ]); + } + + SchemaValue maxLength(int max) { + return copyWith(validators: [ + ...validators, + MaxLengthValidator(max), + ]); + } +} diff --git a/packages/superdeck_core/lib/src/schema/validators.dart b/packages/superdeck_core/lib/src/schema/validators.dart new file mode 100644 index 00000000..230e60c6 --- /dev/null +++ b/packages/superdeck_core/lib/src/schema/validators.dart @@ -0,0 +1,218 @@ +import 'schema_validation.dart'; + +abstract class Validator { + const Validator(); + + SchemaError? validate(T value); +} + +class ArrayValidator extends Validator { + final List values; + const ArrayValidator(this.values); + + @override + SchemaError? validate(Object? value) { + if (value is String) { + if (values.contains(value)) { + return null; + } + } + return SchemaError.enumViolated( + '$value', + values, + ); + } +} + +class EmailValidator extends RegexValidator { + const EmailValidator() + : super( + name: 'email', + pattern: r'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$', + example: 'example@domain.com', + ); +} + +class UrlValidator extends RegexValidator { + const UrlValidator() + : super( + name: 'url', + pattern: + r'^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$', + example: 'https://example.com', + ); +} + +class PosixPathValidator extends RegexValidator { + const PosixPathValidator() + : super( + name: 'posix path', + example: '/path/to/file', + pattern: r'^(/[^/ ]*)+/?$', + ); +} + +class HexColorValidator extends RegexValidator { + const HexColorValidator() + : super( + name: 'hex color', + example: '#ff0000', + pattern: r'^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', + ); +} + +class RegexValidator extends Validator { + final String name; + final String pattern; + final String example; + const RegexValidator({ + required this.name, + required this.pattern, + required this.example, + }); + + @override + SchemaError? validate(String value) { + if (!RegExp(pattern).hasMatch(value)) { + return SchemaError.constraints( + 'String does is not $name. Example: $example', + ); + } + + return null; + } +} + +class IsEmptyValidator extends Validator { + const IsEmptyValidator(); + + @override + SchemaError? validate(String value) { + return value.isEmpty + ? null + : const SchemaError.constraints('String is not empty'); + } +} + +class MinLengthValidator extends Validator { + final int min; + const MinLengthValidator(this.min); + + @override + SchemaError? validate(String value) { + return value.length >= min + ? null + : SchemaError.constraints( + 'String length is less than the minimum required length: $min', + ); + } +} + +class MaxLengthValidator extends Validator { + final int max; + const MaxLengthValidator(this.max); + + @override + SchemaError? validate(String value) { + return value.length <= max + ? null + : SchemaError.constraints( + 'String length is greater than the maximum required length: $max', + ); + } +} + +class MinValueValidator extends Validator { + final num min; + const MinValueValidator(this.min); + + @override + SchemaError? validate(num value) { + return value >= min + ? null + : SchemaError.constraints( + 'Value is less than the minimum required value: $min', + ); + } +} + +class MaxValueValidator extends Validator { + final num max; + const MaxValueValidator(this.max); + + @override + SchemaError? validate(num value) { + return value <= max + ? null + : SchemaError.constraints( + 'Value is greater than the maximum required value: $max', + ); + } +} + +class RangeValidator extends Validator { + final num min; + final num max; + const RangeValidator(this.min, this.max); + + @override + SchemaError? validate(num value) { + return value >= min && value <= max + ? null + : SchemaError.constraints( + 'Value is not within the required range: $min - $max', + ); + } +} + +class RequiredValidator extends Validator { + const RequiredValidator(); + + @override + SchemaError? validate(value) { + return value != null ? null : const SchemaError.constraints('is required'); + } +} + +// unique item list validator +class UniqueItemsValidator extends Validator> { + const UniqueItemsValidator(); + + @override + SchemaError? validate(List value) { + final unique = value.toSet().toList(); + return unique.length == value.length + ? null + : const SchemaError.constraints('List items are not unique'); + } +} + +// min length of list validator +class MinItemsValidator extends Validator> { + final int min; + const MinItemsValidator(this.min); + + @override + SchemaError? validate(List value) { + return value.length >= min + ? null + : SchemaError.constraints( + 'List length is less than the minimum required length: $min', + ); + } +} + +// max length of list validator +class MaxItemsValidator extends Validator> { + final int max; + const MaxItemsValidator(this.max); + + @override + SchemaError? validate(List value) { + return value.length <= max + ? null + : SchemaError.constraints( + 'List length is greater than the maximum required length: $max', + ); + } +} diff --git a/packages/superdeck_core/lib/superdeck_core.dart b/packages/superdeck_core/lib/superdeck_core.dart new file mode 100644 index 00000000..233dbebd --- /dev/null +++ b/packages/superdeck_core/lib/superdeck_core.dart @@ -0,0 +1,13 @@ +@MappableLib(generateInitializerForScope: InitializerScope.package) +library; + +import 'package:dart_mappable/dart_mappable.dart'; + +export 'src/helpers/extensions.dart'; +export 'src/helpers/yaml_to_map.dart'; +export 'src/models/asset_model.dart'; +export 'src/models/config_model.dart'; +export 'src/models/options_model.dart'; +export 'src/models/reference_model.dart'; +export 'src/models/slide_model.dart'; +export 'src/models/slide_parts.dart'; diff --git a/packages/superdeck_core/pubspec.yaml b/packages/superdeck_core/pubspec.yaml new file mode 100644 index 00000000..7d976ba1 --- /dev/null +++ b/packages/superdeck_core/pubspec.yaml @@ -0,0 +1,23 @@ +name: superdeck_core +description: A core library for SuperDeck. +version: 0.0.1 +homepage: https://github.com/leoafarias/superdeck + + +environment: + sdk: ">=3.3.0 <4.0.0" + +# Add regular dependencies here. +dependencies: + dart_mappable: ^4.2.2 + yaml: ^3.1.2 + collection: ^1.18.0 + path: ^1.9.0 + # path: ^1.8.0 + +dev_dependencies: + lints: ^4.0.0 + test: ^1.24.0 + build_runner: ^2.4.9 + dart_mappable_builder: ^4.2.3 + build_verify: ^3.1.0 diff --git a/packages/superdeck_core/test/superdeck_core_test.dart b/packages/superdeck_core/test/superdeck_core_test.dart new file mode 100644 index 00000000..74084a7f --- /dev/null +++ b/packages/superdeck_core/test/superdeck_core_test.dart @@ -0,0 +1,13 @@ +void main() { + // group('A group of tests', () { + // final awesome = Awesome(); + + // setUp(() { + // // Additional setup goes here. + // }); + + // test('First Test', () { + // expect(awesome.isAwesome, isTrue); + // }); + // }); +} diff --git a/superdeck.code-workspace b/superdeck.code-workspace index 948d2ca1..f43e834d 100644 --- a/superdeck.code-workspace +++ b/superdeck.code-workspace @@ -12,6 +12,11 @@ "name": "superdeck_cli", "path": "packages/superdeck_cli" }, + { + "name": "superdeck_core", + "path": "packages/superdeck_core" + }, + ], "settings": { "workbench.colorCustomizations": { From 5deb518c4bbfc668596d524a0924c1a1fbee2332 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Wed, 21 Aug 2024 10:59:34 -0400 Subject: [PATCH 05/27] wip --- .../superdeck/example/.superdeck/slides.json | 215 ++++++++++++++++-- .../superdeck/example/TESTTEST_GFcAteuq.json | 1 - .../superdeck/example/TESTTEST_GhPSyqne.json | 1 - .../superdeck/example/TESTTEST_QpZaQP4T.json | 1 - .../superdeck/example/TESTTEST_Sz6GvdYE.json | 1 - .../superdeck/example/TESTTEST_k00ce27I.json | 1 - .../example/lib/src/widget/mix_demo.dart | 20 +- packages/superdeck/example/slides.md | 2 +- packages/superdeck/example/testest.json | 1 - .../components/molecules/code_preview.dart | 51 ----- .../components/molecules/slide_content.dart | 16 +- .../lib/components/superdeck_app.dart | 2 +- packages/superdeck/lib/helpers/mappers.dart | 54 ----- .../lib/providers/examples_provider.dart | 18 +- .../lib/services/snapshot_service.dart | 2 +- packages/superdeck/lib/superdeck.dart | 1 + .../lib/templates/slide_template.dart | 8 +- packages/superdeck/test/test_helpers.dart | 2 +- .../lib/src/helpers/section_parsing.dart | 30 +-- .../lib/src/slides_pipeline.dart | 5 +- .../src/helpers/section_parsing_test.dart | 188 +++++++-------- .../lib/src/helpers/mappers.dart | 27 +++ .../lib/src/models/options_model.dart | 6 +- .../lib/src/models/options_model.mapper.dart | 2 + .../lib/src/models/slide_parts.dart | 52 +++-- .../lib/src/models/slide_parts.mapper.dart | 182 ++++++++------- 26 files changed, 512 insertions(+), 377 deletions(-) delete mode 100644 packages/superdeck/example/TESTTEST_GFcAteuq.json delete mode 100644 packages/superdeck/example/TESTTEST_GhPSyqne.json delete mode 100644 packages/superdeck/example/TESTTEST_QpZaQP4T.json delete mode 100644 packages/superdeck/example/TESTTEST_Sz6GvdYE.json delete mode 100644 packages/superdeck/example/TESTTEST_k00ce27I.json delete mode 100644 packages/superdeck/example/testest.json delete mode 100644 packages/superdeck/lib/components/molecules/code_preview.dart delete mode 100644 packages/superdeck/lib/helpers/mappers.dart diff --git a/packages/superdeck/example/.superdeck/slides.json b/packages/superdeck/example/.superdeck/slides.json index d4aa832d..66e452a0 100644 --- a/packages/superdeck/example/.superdeck/slides.json +++ b/packages/superdeck/example/.superdeck/slides.json @@ -1,16 +1,59 @@ { "config": { - "transition": { "type": "fade_in", "duration": 0 }, + "transition": { + "type": "fade_in", + "duration": 0 + }, "type": "Config" }, "slides": [ { - "content": "{@content}\n## This is an example of a widget\n\n{@widget name: demo }", - "key": "vDGo8e8t", + "content": "{@content}\n## This is an example of a widget\n\n{@widget name: demo | size: 2 | super_name: car }", + "key": "bviQ6Lzw", "options": {}, "sections": [ - { "options": {}, "type": "root" }, - { "options": {}, "type": "root" } + { + "options": {}, + "content_sections": [ + { + "content": "\n## This is an example of a widget", + "options": {}, + "type": "content" + }, + { + "options": { + "name": "demo", + "type": "WidgetOptions", + "size": 2, + "super_name": "car" + }, + "content": "", + "type": "widget" + } + ], + "type": "root" + }, + { + "options": {}, + "content_sections": [ + { + "content": "\n## This is an example of a widget", + "options": {}, + "type": "content" + }, + { + "options": { + "name": "demo", + "type": "WidgetOptions", + "size": 2, + "super_name": "car" + }, + "content": "", + "type": "widget" + } + ], + "type": "root" + } ] }, { @@ -18,35 +61,173 @@ "key": "xUhI9Z6w", "options": {}, "sections": [ - { "options": {}, "type": "root" }, - { "options": {}, "type": "root" } + { + "options": {}, + "content_sections": [ + { + "content": "![Mermaid Diagram](.superdeck/generated/mermaid_spzwggdT.png)", + "options": {}, + "type": "content" + }, + { + "content": "\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n", + "options": {}, + "type": "content" + } + ], + "type": "root" + }, + { + "options": {}, + "content_sections": [ + { + "content": "![Mermaid Diagram](.superdeck/generated/mermaid_spzwggdT.png)", + "options": {}, + "type": "content" + }, + { + "content": "\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n", + "options": {}, + "type": "content" + } + ], + "type": "root" + } ] }, { "content": "{@content flex: 2}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo \n\n{@content }", "key": "dk6NgW8O", - "options": { "style": "quote" }, + "options": { + "style": "quote" + }, "sections": [ - { "options": {}, "type": "root" }, - { "options": {}, "type": "root" } + { + "options": {}, + "content_sections": [ + { + "content": "\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo ", + "options": { + "flex": 2 + }, + "type": "content" + }, + { + "content": "", + "options": {}, + "type": "content" + } + ], + "type": "root" + }, + { + "options": {}, + "content_sections": [ + { + "content": "\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo ", + "options": { + "flex": 2 + }, + "type": "content" + }, + { + "content": "", + "options": {}, + "type": "content" + } + ], + "type": "root" + } ] }, { "content": "{@header}\n{@image src: https://picsum.photos/1200/1200?waves | align: bottom_left | fit: cover}\n\n{@body flex: 2}\n{@content flex: 2}\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n\n{@content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", "key": "MGrRVh3m", - "options": { "style": "show_sections" }, + "options": { + "style": "show_sections" + }, "sections": [ - { "options": {}, "type": "header" }, - { "options": { "flex": 2 }, "type": "body" } + { + "options": {}, + "content_sections": [ + { + "options": { + "src": "//picsum.photos/1200/1200?waves", + "fit": "cover", + "align": "bottom_left", + "type": "ImageOptions" + }, + "content": "", + "type": "image" + } + ], + "type": "header" + }, + { + "options": { + "flex": 2 + }, + "content_sections": [ + { + "content": "\n# Two Column HGoes here\nThis is a two-column layout. You can use it to compare two different concepts or ideas.", + "options": { + "flex": 2 + }, + "type": "content" + }, + { + "content": "\n### Section Options\nEasily customize the content of each section to suit your needs.\nUse front matter to define the layout of each section", + "options": {}, + "type": "content" + } + ], + "type": "body" + } ] }, { "content": "{@header}\n{@content align: bottom_right}\n\n## First\n\n{@content} \n\n\n## Header\n\n{@body flex: 2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{@content}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", "key": "3thjboPz", - "options": { "style": "show_sections" }, + "options": { + "style": "show_sections" + }, "sections": [ - { "options": {}, "type": "header" }, - { "options": { "flex": 2 }, "type": "body" } + { + "options": {}, + "content_sections": [ + { + "content": "\n## First", + "options": { + "align": "bottom_right" + }, + "type": "content" + }, + { + "content": "\n## Header", + "options": {}, + "type": "content" + } + ], + "type": "header" + }, + { + "options": { + "flex": 2 + }, + "content_sections": [ + { + "content": "### Left Section\nEasily customize the content of each section to suit your needs.\nUse front matter to define the layout of each section", + "options": {}, + "type": "content" + }, + { + "content": "\n#### Section Options\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", + "options": {}, + "type": "content" + } + ], + "type": "body" + } ] } ], @@ -62,4 +243,4 @@ "height": 171 } ] -} +} \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_GFcAteuq.json b/packages/superdeck/example/TESTTEST_GFcAteuq.json deleted file mode 100644 index 8bc98bcf..00000000 --- a/packages/superdeck/example/TESTTEST_GFcAteuq.json +++ /dev/null @@ -1 +0,0 @@ -[{"options":{},"type":"root"},{"options":{},"type":"root"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_GhPSyqne.json b/packages/superdeck/example/TESTTEST_GhPSyqne.json deleted file mode 100644 index fd46b47d..00000000 --- a/packages/superdeck/example/TESTTEST_GhPSyqne.json +++ /dev/null @@ -1 +0,0 @@ -[{"options":{},"type":"header"},{"options":{"flex":2},"type":"body"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_QpZaQP4T.json b/packages/superdeck/example/TESTTEST_QpZaQP4T.json deleted file mode 100644 index 8bc98bcf..00000000 --- a/packages/superdeck/example/TESTTEST_QpZaQP4T.json +++ /dev/null @@ -1 +0,0 @@ -[{"options":{},"type":"root"},{"options":{},"type":"root"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_Sz6GvdYE.json b/packages/superdeck/example/TESTTEST_Sz6GvdYE.json deleted file mode 100644 index fd46b47d..00000000 --- a/packages/superdeck/example/TESTTEST_Sz6GvdYE.json +++ /dev/null @@ -1 +0,0 @@ -[{"options":{},"type":"header"},{"options":{"flex":2},"type":"body"}] \ No newline at end of file diff --git a/packages/superdeck/example/TESTTEST_k00ce27I.json b/packages/superdeck/example/TESTTEST_k00ce27I.json deleted file mode 100644 index 8bc98bcf..00000000 --- a/packages/superdeck/example/TESTTEST_k00ce27I.json +++ /dev/null @@ -1 +0,0 @@ -[{"options":{},"type":"root"},{"options":{},"type":"root"}] \ No newline at end of file diff --git a/packages/superdeck/example/lib/src/widget/mix_demo.dart b/packages/superdeck/example/lib/src/widget/mix_demo.dart index fd3ef271..c150d486 100644 --- a/packages/superdeck/example/lib/src/widget/mix_demo.dart +++ b/packages/superdeck/example/lib/src/widget/mix_demo.dart @@ -2,7 +2,7 @@ import 'dart:math' as math; import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; -import 'package:superdeck/components/molecules/code_preview.dart'; +import 'package:superdeck/superdeck.dart'; const purpleAccent = Color.fromARGB(255, 95, 44, 188); const purple = Color.fromARGB(255, 66, 19, 152); @@ -64,18 +64,18 @@ Style get _style => Style( ), ); -class ExampleOptions { +class _DemoOptions { final double? height; final double? width; final String? text; - const ExampleOptions({ + const _DemoOptions({ required this.height, required this.width, this.text, }); - static ExampleOptions fromMap(Map map) { - return ExampleOptions( + static _DemoOptions fromMap(Map map) { + return _DemoOptions( height: map['height'] as double?, width: map['width'] as double?, text: map['text'] as String?, @@ -83,18 +83,18 @@ class ExampleOptions { } } -Widget mixExampleBuilder(BuildContext context) { - final options = ExampleOptions.fromMap(context.args); +Widget mixExampleBuilder(BuildContext context, WidgetOptions options) { + final mappedOptions = _DemoOptions.fromMap(options.args); return Builder( builder: (context) { return Center( child: SizedBox( - height: options.height, - width: options.width, + height: mappedOptions.height, + width: mappedOptions.width, child: Box( style: _style.animate(), child: StyledText( - options.text ?? 'Mix', + mappedOptions.text ?? 'Mix', ), ), ), diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index a21170f9..831aa105 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -3,7 +3,7 @@ {@content} ## This is an example of a widget -{@widget name: demo } +{@widget name: demo | size: 2 | super_name: car } --- --- diff --git a/packages/superdeck/example/testest.json b/packages/superdeck/example/testest.json deleted file mode 100644 index fd46b47d..00000000 --- a/packages/superdeck/example/testest.json +++ /dev/null @@ -1 +0,0 @@ -[{"options":{},"type":"header"},{"options":{"flex":2},"type":"body"}] \ No newline at end of file diff --git a/packages/superdeck/lib/components/molecules/code_preview.dart b/packages/superdeck/lib/components/molecules/code_preview.dart deleted file mode 100644 index 453a4ee8..00000000 --- a/packages/superdeck/lib/components/molecules/code_preview.dart +++ /dev/null @@ -1,51 +0,0 @@ -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; - -class ExamplePreview extends StatelessWidget { - const ExamplePreview({ - super.key, - required this.args, - required this.builder, - }); - - final Map args; - - final Widget Function(BuildContext) builder; - - @override - Widget build(BuildContext context) { - return ExampleArgsProvider( - args: args, - child: Center( - child: Builder(builder: builder), - ), - ); - } -} - -extension BuildContextExampleX on BuildContext { - Map get args { - return ExampleArgsProvider.of(this); - } -} - -class ExampleArgsProvider extends InheritedWidget { - const ExampleArgsProvider({ - required this.args, - required super.child, - super.key, - }); - - final Map args; - - static Map of(BuildContext context) { - final provider = - context.dependOnInheritedWidgetOfExactType(); - return provider?.args ?? {}; - } - - @override - bool updateShouldNotify(ExampleArgsProvider oldWidget) { - return !mapEquals(args, oldWidget.args); - } -} diff --git a/packages/superdeck/lib/components/molecules/slide_content.dart b/packages/superdeck/lib/components/molecules/slide_content.dart index 05df11e5..a864a4f0 100644 --- a/packages/superdeck/lib/components/molecules/slide_content.dart +++ b/packages/superdeck/lib/components/molecules/slide_content.dart @@ -8,8 +8,8 @@ import '../../styles/style_spec.dart'; import '../atoms/cache_image_widget.dart'; import '../atoms/markdown_viewer.dart'; -class SlideContent extends StatelessWidget { - const SlideContent({ +class ContentBlock extends StatelessWidget { + const ContentBlock({ required this.content, required this.options, super.key, @@ -58,8 +58,8 @@ class SlideContent extends StatelessWidget { } } -class ImageContent extends StatelessWidget { - const ImageContent({ +class ImageBlock extends StatelessWidget { + const ImageBlock({ required this.options, super.key, }); @@ -89,8 +89,8 @@ class ImageContent extends StatelessWidget { } } -class WidgetContent extends StatelessWidget { - const WidgetContent({ +class WidgetBlock extends StatelessWidget { + const WidgetBlock({ required this.options, super.key, }); @@ -102,7 +102,7 @@ class WidgetContent extends StatelessWidget { final spec = SlideSpec.of(context); final alignment = options.align ?? ContentAlignment.center; - final examples = ExamplesProvider.of(context); + final examples = WidgetExamplesProvider.of(context); final widgetBuilder = examples[options.name]; if (widgetBuilder == null) { @@ -117,7 +117,7 @@ class WidgetContent extends StatelessWidget { child: Container( alignment: toAlignment(alignment), child: Builder( - builder: widgetBuilder, + builder: (context) => widgetBuilder(context, options), ), ), ); diff --git a/packages/superdeck/lib/components/superdeck_app.dart b/packages/superdeck/lib/components/superdeck_app.dart index fd83c01a..a10ad4a8 100644 --- a/packages/superdeck/lib/components/superdeck_app.dart +++ b/packages/superdeck/lib/components/superdeck_app.dart @@ -54,7 +54,7 @@ class SuperDeckApp extends HookWidget { return StyleProvider( baseStyle: baseStyle, styles: styles, - child: ExamplesProvider( + child: WidgetExamplesProvider( examples: examples, child: ListenableBuilder( listenable: $superdeck, diff --git a/packages/superdeck/lib/helpers/mappers.dart b/packages/superdeck/lib/helpers/mappers.dart deleted file mode 100644 index 8a8c2b5a..00000000 --- a/packages/superdeck/lib/helpers/mappers.dart +++ /dev/null @@ -1,54 +0,0 @@ -import 'dart:io'; - -import 'package:dart_mappable/dart_mappable.dart'; -import 'package:flutter/services.dart'; - -class FileMapper extends SimpleMapper { - const FileMapper(); - - @override - File decode(Object value) { - return File(value as String); - } - - @override - String encode(File self) { - return self.path; - } -} - -class DurationMapper extends SimpleMapper { - const DurationMapper(); - - @override - Duration decode(Object value) { - return Duration(milliseconds: value as int); - } - - @override - int encode(Duration self) { - return self.inMilliseconds; - } -} - -class SizeMapper extends SimpleMapper { - const SizeMapper(); - - @override - Size decode(Object value) { - final valueMap = value as Map; - - final width = valueMap['width'] as num; - final height = valueMap['height'] as num; - - return Size( - width.toDouble(), - height.toDouble(), - ); - } - - @override - Map encode(Size self) { - return {"width": self.width, "height": self.height}; - } -} diff --git a/packages/superdeck/lib/providers/examples_provider.dart b/packages/superdeck/lib/providers/examples_provider.dart index 0b853ea1..723e92b5 100644 --- a/packages/superdeck/lib/providers/examples_provider.dart +++ b/packages/superdeck/lib/providers/examples_provider.dart @@ -1,9 +1,13 @@ import 'package:flutter/material.dart'; +import 'package:superdeck_core/superdeck_core.dart'; -typedef ExampleBuilder = Widget Function(BuildContext context); +typedef ExampleBuilder = Widget Function( + BuildContext context, + WidgetOptions options, +); -class ExamplesProvider extends InheritedWidget { - const ExamplesProvider({ +class WidgetExamplesProvider extends InheritedWidget { + const WidgetExamplesProvider({ super.key, required this.examples, required super.child, @@ -13,19 +17,19 @@ class ExamplesProvider extends InheritedWidget { static Map of(BuildContext context) { return context - .dependOnInheritedWidgetOfExactType()! + .dependOnInheritedWidgetOfExactType()! .examples; } - static ExamplesProvider inherit({ + static WidgetExamplesProvider inherit({ required BuildContext context, required Widget child, }) { - return ExamplesProvider(examples: of(context), child: child); + return WidgetExamplesProvider(examples: of(context), child: child); } @override - bool updateShouldNotify(covariant ExamplesProvider oldWidget) { + bool updateShouldNotify(covariant WidgetExamplesProvider oldWidget) { return examples != oldWidget.examples; } } diff --git a/packages/superdeck/lib/services/snapshot_service.dart b/packages/superdeck/lib/services/snapshot_service.dart index 0dd2b183..54f04b47 100644 --- a/packages/superdeck/lib/services/snapshot_service.dart +++ b/packages/superdeck/lib/services/snapshot_service.dart @@ -102,7 +102,7 @@ class SnapshotService { context: context, child: AssetsProvider.inherit( context: context, - child: ExamplesProvider.inherit( + child: WidgetExamplesProvider.inherit( context: context, child: MediaQuery( data: MediaQuery.of(context), diff --git a/packages/superdeck/lib/superdeck.dart b/packages/superdeck/lib/superdeck.dart index 9044ea20..8616fdc3 100644 --- a/packages/superdeck/lib/superdeck.dart +++ b/packages/superdeck/lib/superdeck.dart @@ -3,5 +3,6 @@ library superdeck; export 'package:superdeck/components/superdeck_app.dart'; export 'package:superdeck/providers/controller.dart'; export 'package:superdeck/styles/style_spec.dart'; +export 'package:superdeck_core/superdeck_core.dart'; export 'components/organisms/app_shell.dart'; diff --git a/packages/superdeck/lib/templates/slide_template.dart b/packages/superdeck/lib/templates/slide_template.dart index 342204d3..06dadb94 100644 --- a/packages/superdeck/lib/templates/slide_template.dart +++ b/packages/superdeck/lib/templates/slide_template.dart @@ -19,18 +19,18 @@ class SlideTemplate extends StatelessWidget { return Expanded( flex: sectionFlex, child: Row( - children: section.subSections.map((part) { + children: section.contentSections.map((part) { return Expanded( flex: part.options.flex ?? 1, child: switch (part) { - (ImagePart p) => ImageContent( + (ImagePart p) => ImageBlock( options: p.options, ), - (ContentPart p) => SlideContent( + (ContentPart p) => ContentBlock( content: p.content, options: p.options, ), - (WidgetPart p) => WidgetContent( + (WidgetPart p) => WidgetBlock( options: p.options, ), }, diff --git a/packages/superdeck/test/test_helpers.dart b/packages/superdeck/test/test_helpers.dart index 46463e8c..24e5e319 100644 --- a/packages/superdeck/test/test_helpers.dart +++ b/packages/superdeck/test/test_helpers.dart @@ -27,7 +27,7 @@ extension WidgetTesterX on WidgetTester { baseStyle: style, child: AssetsProvider( assets: assets, - child: ExamplesProvider( + child: WidgetExamplesProvider( examples: examples, child: SlideView(slide), ), diff --git a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart index 12075f58..961c769b 100644 --- a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart +++ b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart @@ -1,8 +1,4 @@ -import 'dart:convert'; -import 'dart:io'; - import 'package:collection/collection.dart'; -import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; import 'package:superdeck_core/superdeck_core.dart'; const _tagMarker = '@'; @@ -55,10 +51,12 @@ SlidePart? parseBlock(String line) { ); case SubSectionPartType.image: return ImagePart( + content: '', options: ImageOptionsMapper.fromMap(options), ); case SubSectionPartType.widget: return WidgetPart( + content: '', options: WidgetOptionsMapper.fromMap(options), ); } @@ -112,7 +110,7 @@ List parseSections(String slideMarkdown) { } if (currentSection is RootLayoutPart) { - if (currentSection.subSections.isNotEmpty) { + if (currentSection.contentSections.isNotEmpty) { // throw error that says if to use any section wrapping all the content of the markdown throw Exception( 'Invalid location tag on line ${lineIndex}. ${part.type.name} cannot be before ${currentSection.type.name}', @@ -122,8 +120,8 @@ List parseSections(String slideMarkdown) { // Save current section before setting as current layoutParts.add(currentSection); currentSection = part; - } else if (part is SubSectionPart) { - currentSection.subSections.add(part); + } else if (part is ContentSectionPart) { + currentSection.addSubSection(part); } } @@ -131,23 +129,9 @@ List parseSections(String slideMarkdown) { // Return the parsed sections // remove all sections that have empty parts - final parts = layoutParts.where((part) { - return part.subSections.isNotEmpty; + return layoutParts.where((part) { + return part.contentSections.isNotEmpty; }).toList(); - - parts.forEach((part) { - part.subSections = part.subSections.where((subPart) { - if (subPart is ContentPart) { - print('Content: ${subPart.content}'); - } - return true; - }).toList(); - }); - - File('TESTTEST_${shortHashId(parts.toString())}.json') - .writeAsStringSync(jsonEncode(parts.map((e) => e.toMap()).toList())); - - return parts; } bool _isSyntax(String line) { diff --git a/packages/superdeck_cli/lib/src/slides_pipeline.dart b/packages/superdeck_cli/lib/src/slides_pipeline.dart index 78b47c30..7dd171c1 100644 --- a/packages/superdeck_cli/lib/src/slides_pipeline.dart +++ b/packages/superdeck_cli/lib/src/slides_pipeline.dart @@ -1,5 +1,4 @@ import 'dart:async'; -import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; @@ -32,8 +31,6 @@ class TaskController { Slide extractSlide() { final sections = parseSections(slide.content); - File('testest.json') - .writeAsStringSync(jsonEncode(sections.map((e) => e.toMap()).toList())); final newSlide = Slide( content: slide.content, @@ -179,7 +176,7 @@ class TaskPipeline { assets: result.neededAssets, ); - await kReferenceFile.writeAsString(reference.toJson()); + await kReferenceFile.writeAsString(prettyJson(reference.toMap())); return reference; } diff --git a/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart b/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart index 91680ce8..208dc144 100644 --- a/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart +++ b/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart @@ -20,15 +20,15 @@ Header content column 2. '''; final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, equals(3)); - expect(sections.body?.subSections.length, isNull); - expect(sections.footer?.subSections.length, isNull); - expect( - sections.header?.subSections[0].content.trim(), '# Header Title'); - expect(sections.header?.subSections[1].content.trim(), + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, equals(3)); + expect(sections.body?.contentSections.length, isNull); + expect(sections.footer?.contentSections.length, isNull); + expect(sections.header?.contentSections[0].content.trim(), + '# Header Title'); + expect(sections.header?.contentSections[1].content.trim(), 'Header content column 1.'); - expect(sections.header?.subSections[2].content.trim(), + expect(sections.header?.contentSections[2].content.trim(), 'Header content column 2.'); }); @@ -44,13 +44,13 @@ Body content column 2. '''; final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, isNull); - expect(sections.body?.subSections.length, equals(2)); - expect(sections.footer?.subSections.length, isNull); - expect(sections.body?.subSections[0].content.trim(), + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, isNull); + expect(sections.body?.contentSections.length, equals(2)); + expect(sections.footer?.contentSections.length, isNull); + expect(sections.body?.contentSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body?.subSections[1].content.trim(), + expect(sections.body?.contentSections[1].content.trim(), 'Body content column 2.'); }); @@ -66,13 +66,13 @@ Footer content column 2. '''; final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, isNull); - expect(sections.body?.subSections.length, isNull); - expect(sections.footer?.subSections.length, equals(2)); - expect(sections.footer?.subSections[0].content.trim(), + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, isNull); + expect(sections.body?.contentSections.length, isNull); + expect(sections.footer?.contentSections.length, equals(2)); + expect(sections.footer?.contentSections[0].content.trim(), 'Footer content column 1.'); - expect(sections.footer?.subSections[1].content.trim(), + expect(sections.footer?.contentSections[1].content.trim(), 'Footer content column 2.'); }); @@ -87,14 +87,14 @@ Content column 2. '''; final sections = parseSections(markdown); - expect(sections.root?.subSections.length, equals(2)); - expect(sections.header?.subSections.length, isNull); - expect(sections.body?.subSections.length, isNull); - expect(sections.footer?.subSections.length, isNull); - expect( - sections.root?.subSections[0].content.trim(), 'Content column 1.'); - expect( - sections.root?.subSections[1].content.trim(), 'Content column 2.'); + expect(sections.root?.contentSections.length, equals(2)); + expect(sections.header?.contentSections.length, isNull); + expect(sections.body?.contentSections.length, isNull); + expect(sections.footer?.contentSections.length, isNull); + expect(sections.root?.contentSections[0].content.trim(), + 'Content column 1.'); + expect(sections.root?.contentSections[1].content.trim(), + 'Content column 2.'); }); test('Header, body, and footer with columns', () { @@ -120,19 +120,19 @@ Footer content column. final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, equals(2)); - expect(sections.body?.subSections.length, equals(2)); - expect(sections.footer?.subSections.length, equals(1)); - expect( - sections.header?.subSections[0].content.trim(), '# Header Title'); - expect(sections.header?.subSections[1].content.trim(), + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, equals(2)); + expect(sections.body?.contentSections.length, equals(2)); + expect(sections.footer?.contentSections.length, equals(1)); + expect(sections.header?.contentSections[0].content.trim(), + '# Header Title'); + expect(sections.header?.contentSections[1].content.trim(), 'Header content column.'); - expect(sections.body?.subSections[0].content.trim(), + expect(sections.body?.contentSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body?.subSections[1].content.trim(), + expect(sections.body?.contentSections[1].content.trim(), 'Body content column 2.'); - expect(sections.footer?.subSections[0].content.trim(), + expect(sections.footer?.contentSections[0].content.trim(), 'Footer content column.'); }); }); @@ -210,18 +210,20 @@ Header content column 2. final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, equals(2)); - expect(sections.body?.subSections.length, isNull); - expect(sections.footer?.subSections.length, isNull); + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, equals(2)); + expect(sections.body?.contentSections.length, isNull); + expect(sections.footer?.contentSections.length, isNull); - expect(sections.header?.subSections[0].content.trim(), + expect(sections.header?.contentSections[0].content.trim(), 'Header content column 1.'); - expect(sections.header?.subSections[1].content.trim(), + expect(sections.header?.contentSections[1].content.trim(), 'Header content column 2.'); - expect(sections.header?.subSections[0].contentOptions.flex, equals(1)); - expect(sections.header?.subSections[1].contentOptions.flex, equals(2)); + expect( + sections.header?.contentSections[0].contentOptions.flex, equals(1)); + expect( + sections.header?.contentSections[1].contentOptions.flex, equals(2)); }); test('Body with columns and alignment attribute in snake case', () { @@ -237,19 +239,19 @@ Body content column 2. final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, isNull); - expect(sections.body?.subSections.length, equals(2)); - expect(sections.footer?.subSections.length, isNull); + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, isNull); + expect(sections.body?.contentSections.length, equals(2)); + expect(sections.footer?.contentSections.length, isNull); - expect(sections.body?.subSections[0].content.trim(), + expect(sections.body?.contentSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body?.subSections[1].content.trim(), + expect(sections.body?.contentSections[1].content.trim(), 'Body content column 2.'); - expect(sections.body?.subSections[0].contentOptions.align, + expect(sections.body?.contentSections[0].contentOptions.align, equals(ContentAlignment.center)); - expect(sections.body?.subSections[1].contentOptions.align, + expect(sections.body?.contentSections[1].contentOptions.align, equals(ContentAlignment.bottomRight)); }); @@ -267,22 +269,24 @@ Footer content column 2. final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, isNull); - expect(sections.body?.subSections.length, isNull); - expect(sections.footer?.subSections.length, equals(2)); + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, isNull); + expect(sections.body?.contentSections.length, isNull); + expect(sections.footer?.contentSections.length, equals(2)); - expect(sections.footer?.subSections[0].content.trim(), + expect(sections.footer?.contentSections[0].content.trim(), 'Footer content column 1.'); - expect(sections.footer?.subSections[1].content.trim(), + expect(sections.footer?.contentSections[1].content.trim(), 'Footer content column 2.'); - expect(sections.footer?.subSections[0].contentOptions.flex, equals(3)); - expect(sections.footer?.subSections[0].contentOptions.align, + expect( + sections.footer?.contentSections[0].contentOptions.flex, equals(3)); + expect(sections.footer?.contentSections[0].contentOptions.align, equals(ContentAlignment.topLeft)); - expect(sections.footer?.subSections[1].contentOptions.flex, equals(1)); - expect(sections.footer?.subSections[1].contentOptions.align, + expect( + sections.footer?.contentSections[1].contentOptions.flex, equals(1)); + expect(sections.footer?.contentSections[1].contentOptions.align, equals(ContentAlignment.centerRight)); }); @@ -307,31 +311,35 @@ Footer content. final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, equals(1)); - expect(sections.body?.subSections.length, equals(2)); - expect(sections.footer?.subSections.length, equals(1)); + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, equals(1)); + expect(sections.body?.contentSections.length, equals(2)); + expect(sections.footer?.contentSections.length, equals(1)); - expect(sections.header?.subSections[0].content.trim(), 'Header content.'); - expect(sections.header?.subSections[0].contentOptions.flex, equals(1)); - expect(sections.header?.subSections[0].contentOptions.align, + expect(sections.header?.contentSections[0].content.trim(), + 'Header content.'); + expect( + sections.header?.contentSections[0].contentOptions.flex, equals(1)); + expect(sections.header?.contentSections[0].contentOptions.align, equals(ContentAlignment.center)); - expect(sections.body?.subSections[0].content.trim(), + expect(sections.body?.contentSections[0].content.trim(), 'Body content column 1.'); - expect(sections.body?.subSections[0].contentOptions.flex, equals(2)); - expect(sections.body?.subSections[0].contentOptions.align, + expect(sections.body?.contentSections[0].contentOptions.flex, equals(2)); + expect(sections.body?.contentSections[0].contentOptions.align, equals(ContentAlignment.centerLeft)); - expect(sections.body?.subSections[1].content.trim(), + expect(sections.body?.contentSections[1].content.trim(), 'Body content column 2.'); - expect(sections.body?.subSections[1].contentOptions.flex, equals(1)); - expect(sections.body?.subSections[1].contentOptions.align, + expect(sections.body?.contentSections[1].contentOptions.flex, equals(1)); + expect(sections.body?.contentSections[1].contentOptions.align, equals(ContentAlignment.centerRight)); - expect(sections.footer?.subSections[0].content.trim(), 'Footer content.'); - expect(sections.footer?.subSections[0].contentOptions.flex, equals(1)); - expect(sections.footer?.subSections[0].contentOptions.align, + expect(sections.footer?.contentSections[0].content.trim(), + 'Footer content.'); + expect( + sections.footer?.contentSections[0].contentOptions.flex, equals(1)); + expect(sections.footer?.contentSections[0].contentOptions.align, equals(ContentAlignment.bottomCenter)); }); }); @@ -398,19 +406,21 @@ Footer content. final sections = parseSections(markdown); - expect(sections.root?.subSections.length, isNull); - expect(sections.header?.subSections.length, equals(1)); - expect(sections.body?.subSections.length, equals(1)); - expect(sections.footer?.subSections.length, equals(1)); + expect(sections.root?.contentSections.length, isNull); + expect(sections.header?.contentSections.length, equals(1)); + expect(sections.body?.contentSections.length, equals(1)); + expect(sections.footer?.contentSections.length, equals(1)); - expect(sections.header?.subSections[0].content.trim(), 'Header content.'); + expect(sections.header?.contentSections[0].content.trim(), + 'Header content.'); expect(sections.header?.options.align, equals(ContentAlignment.center)); - expect(sections.body?.subSections[0].content.trim(), 'Body content.'); + expect(sections.body?.contentSections[0].content.trim(), 'Body content.'); expect(sections.body?.options.align, equals(ContentAlignment.topLeft)); - expect(sections.body?.subSections[0].contentOptions.flex, equals(3)); + expect(sections.body?.contentSections[0].contentOptions.flex, equals(3)); - expect(sections.footer?.subSections[0].content.trim(), 'Footer content.'); + expect(sections.footer?.contentSections[0].content.trim(), + 'Footer content.'); expect( sections.footer?.options.align, equals(ContentAlignment.bottomRight)); expect(sections.footer?.options.flex, equals(1)); @@ -507,7 +517,7 @@ extension on List { firstWhereOrNull((part) => part.type.name == 'footer'); } -extension on SubSectionPart { +extension on ContentSectionPart { String get content => (this as ContentPart).content; ContentOptions get contentOptions => (this as ContentPart).options; ImageOptions get imageOptions => (this as ImagePart).options; diff --git a/packages/superdeck_core/lib/src/helpers/mappers.dart b/packages/superdeck_core/lib/src/helpers/mappers.dart index 136ca95b..0efbf596 100644 --- a/packages/superdeck_core/lib/src/helpers/mappers.dart +++ b/packages/superdeck_core/lib/src/helpers/mappers.dart @@ -29,3 +29,30 @@ class DurationMapper extends SimpleMapper { return self.inMilliseconds; } } + +class EmptyIterableToNullHook extends MappingHook { + const EmptyIterableToNullHook(); + dynamic afterEncode(Object? value) { + if (value is Iterable && value.isEmpty) { + return null; + } + + if (value is Map && value.isEmpty) { + return null; + } + + if (value is String && value.isEmpty) { + return null; + } + + if (value is List && value.isEmpty) { + return null; + } + + if (value is Set && value.isEmpty) { + return null; + } + + return value; + } +} diff --git a/packages/superdeck_core/lib/src/models/options_model.dart b/packages/superdeck_core/lib/src/models/options_model.dart index bd88f579..6f687505 100644 --- a/packages/superdeck_core/lib/src/models/options_model.dart +++ b/packages/superdeck_core/lib/src/models/options_model.dart @@ -29,6 +29,8 @@ class ContentOptions with ContentOptionsMappable { "flex": Schema.integer.optional(), }, ); + + bool get isEmpty => flex == null && align == null; } @MappableClass() @@ -51,7 +53,7 @@ class ImageOptions extends ContentOptions with ImageOptionsMappable { ); } -@MappableClass() +@MappableClass(hook: UnmappedPropertiesHook('args')) class WidgetOptions extends ContentOptions with WidgetOptionsMappable { final String name; final Map args; @@ -66,8 +68,8 @@ class WidgetOptions extends ContentOptions with WidgetOptionsMappable { static final schema = ContentOptions.schema.merge( { "name": Schema.string.required(), - "args": Schema.any.optional(), }, + additionalProperties: true, ); } diff --git a/packages/superdeck_core/lib/src/models/options_model.mapper.dart b/packages/superdeck_core/lib/src/models/options_model.mapper.dart index 64a94722..2fa46b2c 100644 --- a/packages/superdeck_core/lib/src/models/options_model.mapper.dart +++ b/packages/superdeck_core/lib/src/models/options_model.mapper.dart @@ -828,6 +828,8 @@ class WidgetOptionsMapper extends SubClassMapperBase { late final ClassMapperBase superMapper = ContentOptionsMapper.ensureInitialized(); + @override + final MappingHook hook = const UnmappedPropertiesHook('args'); static WidgetOptions _instantiate(DecodingData data) { return WidgetOptions( name: data.dec(_f$name), diff --git a/packages/superdeck_core/lib/src/models/slide_parts.dart b/packages/superdeck_core/lib/src/models/slide_parts.dart index 37b5f139..216f5730 100644 --- a/packages/superdeck_core/lib/src/models/slide_parts.dart +++ b/packages/superdeck_core/lib/src/models/slide_parts.dart @@ -25,12 +25,15 @@ interface class SlidePart { @MappableClass(discriminatorKey: 'type') sealed class SectionPart extends SlidePart with SectionPartMappable { final SectionPartType type; + final ContentOptions options; - List subSections = []; + @MappableField(key: 'content_sections') + List contentSections; SectionPart({ required this.type, required this.options, + this.contentSections = const [], }); factory SectionPart.build( @@ -48,56 +51,65 @@ sealed class SectionPart extends SlidePart with SectionPartMappable { String get name => type.name; void concatLine(String content) { - final lastPart = subSections.lastOrNull; + final lastPart = contentSections.lastOrNull; + final subSectionsCopy = [...contentSections]; if (lastPart is ContentPart) { - subSections.last = lastPart.copyWith( + subSectionsCopy.last = lastPart.copyWith( content: lastPart.content + '\n' + content, ); } else { - subSections.add(ContentPart( + subSectionsCopy.add(ContentPart( content: content, options: ContentOptions(), )); } + + contentSections = subSectionsCopy; + } + + void addSubSection(ContentSectionPart part) { + contentSections = [...contentSections, part]; } } @MappableClass(discriminatorKey: 'type') -sealed class SubSectionPart extends SlidePart - with SubSectionPartMappable { +sealed class ContentSectionPart extends SlidePart + with ContentSectionPartMappable { + @MappableField(hook: EmptyToNullHook()) + final String content; final SubSectionPartType type; + final T options; - SubSectionPart({ + ContentSectionPart({ required this.type, + required this.content, required this.options, }); } -@MappableClass(discriminatorValue: SubSectionPartType.content) -class ContentPart extends SubSectionPart +@MappableClass(discriminatorValue: 'content') +class ContentPart extends ContentSectionPart with ContentPartMappable { - final String content; - ContentPart({ - required this.content, + required super.content, required super.options, }) : super(type: SubSectionPartType.content); } @MappableClass(discriminatorValue: 'widget') -class WidgetPart extends SubSectionPart with WidgetPartMappable { - WidgetPart({ - required super.options, - }) : super(type: SubSectionPartType.widget); +class WidgetPart extends ContentSectionPart + with WidgetPartMappable { + WidgetPart({required super.options, required super.content}) + : super(type: SubSectionPartType.widget); } @MappableClass(discriminatorValue: 'image') -class ImagePart extends SubSectionPart with ImagePartMappable { - ImagePart({ - required super.options, - }) : super(type: SubSectionPartType.image); +class ImagePart extends ContentSectionPart + with ImagePartMappable { + ImagePart({required super.options, required super.content}) + : super(type: SubSectionPartType.image); } @MappableClass(discriminatorValue: 'root') diff --git a/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart b/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart index 39e793df..9b01eb87 100644 --- a/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart +++ b/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart @@ -123,6 +123,7 @@ class SectionPartMapper extends ClassMapperBase { FooterLayoutPartMapper.ensureInitialized(); SectionPartTypeMapper.ensureInitialized(); ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); } return _instance!; } @@ -136,17 +137,18 @@ class SectionPartMapper extends ClassMapperBase { static ContentOptions _$options(SectionPart v) => v.options; static const Field _f$options = Field('options', _$options); - static List> _$subSections(SectionPart v) => - v.subSections; - static const Field>> - _f$subSections = Field('subSections', _$subSections, - key: 'sub_sections', mode: FieldMode.member); + static List> _$contentSections( + SectionPart v) => + v.contentSections; + static const Field>> + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); @override final MappableFields fields = const { #type: _f$type, #options: _f$options, - #subSections: _f$subSections, + #contentSections: _f$contentSections, }; @override final bool ignoreNull = true; @@ -181,13 +183,13 @@ abstract class SectionPartCopyWith<$R, $In extends SectionPart, $Out> SectionPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } -class SubSectionPartMapper extends ClassMapperBase { - SubSectionPartMapper._(); +class ContentSectionPartMapper extends ClassMapperBase { + ContentSectionPartMapper._(); - static SubSectionPartMapper? _instance; - static SubSectionPartMapper ensureInitialized() { + static ContentSectionPartMapper? _instance; + static ContentSectionPartMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = SubSectionPartMapper._()); + MapperContainer.globals.use(_instance = ContentSectionPartMapper._()); ContentPartMapper.ensureInitialized(); WidgetPartMapper.ensureInitialized(); ImagePartMapper.ensureInitialized(); @@ -198,58 +200,62 @@ class SubSectionPartMapper extends ClassMapperBase { } @override - final String id = 'SubSectionPart'; + final String id = 'ContentSectionPart'; @override Function get typeFactory => - (f) => f>(); + (f) => f>(); - static SubSectionPartType _$type(SubSectionPart v) => v.type; - static const Field _f$type = + static SubSectionPartType _$type(ContentSectionPart v) => v.type; + static const Field _f$type = Field('type', _$type); - static ContentOptions _$options(SubSectionPart v) => v.options; + static String _$content(ContentSectionPart v) => v.content; + static const Field _f$content = + Field('content', _$content, hook: EmptyToNullHook()); + static ContentOptions _$options(ContentSectionPart v) => v.options; static dynamic _arg$options(f) => f(); - static const Field _f$options = + static const Field _f$options = Field('options', _$options, arg: _arg$options); @override - final MappableFields fields = const { + final MappableFields fields = const { #type: _f$type, + #content: _f$content, #options: _f$options, }; @override final bool ignoreNull = true; - static SubSectionPart _instantiate( + static ContentSectionPart _instantiate( DecodingData data) { throw MapperException.missingSubclass( - 'SubSectionPart', 'type', '${data.value['type']}'); + 'ContentSectionPart', 'type', '${data.value['type']}'); } @override final Function instantiate = _instantiate; - static SubSectionPart fromMap( + static ContentSectionPart fromMap( Map map) { - return ensureInitialized().decodeMap>(map); + return ensureInitialized().decodeMap>(map); } - static SubSectionPart fromJson(String json) { - return ensureInitialized().decodeJson>(json); + static ContentSectionPart fromJson(String json) { + return ensureInitialized().decodeJson>(json); } } -mixin SubSectionPartMappable { +mixin ContentSectionPartMappable { String toJson(); Map toMap(); - SubSectionPartCopyWith, SubSectionPart, - SubSectionPart, T> get copyWith; + ContentSectionPartCopyWith, ContentSectionPart, + ContentSectionPart, T> get copyWith; } -abstract class SubSectionPartCopyWith<$R, $In extends SubSectionPart, $Out, - T extends ContentOptions> implements ClassCopyWith<$R, $In, $Out> { +abstract class ContentSectionPartCopyWith<$R, $In extends ContentSectionPart, + $Out, T extends ContentOptions> implements ClassCopyWith<$R, $In, $Out> { ContentOptionsCopyWith<$R, ContentOptions, T> get options; - $R call({T? options}); - SubSectionPartCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>( + $R call({String? content, T? options}); + ContentSectionPartCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>( Then<$Out2, $R2> t); } @@ -260,7 +266,7 @@ class ContentPartMapper extends SubClassMapperBase { static ContentPartMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = ContentPartMapper._()); - SubSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); ContentOptionsMapper.ensureInitialized(); } return _instance!; @@ -271,7 +277,7 @@ class ContentPartMapper extends SubClassMapperBase { static String _$content(ContentPart v) => v.content; static const Field _f$content = - Field('content', _$content); + Field('content', _$content, hook: EmptyToNullHook()); static ContentOptions _$options(ContentPart v) => v.options; static const Field _f$options = Field('options', _$options); @@ -291,10 +297,10 @@ class ContentPartMapper extends SubClassMapperBase { @override final String discriminatorKey = 'type'; @override - final dynamic discriminatorValue = SubSectionPartType.content; + final dynamic discriminatorValue = 'content'; @override late final ClassMapperBase superMapper = - SubSectionPartMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); @override DecodingContext inherit(DecodingContext context) { @@ -356,7 +362,7 @@ extension ContentPartValueCopy<$R, $Out> } abstract class ContentPartCopyWith<$R, $In extends ContentPart, $Out> - implements SubSectionPartCopyWith<$R, $In, $Out, ContentOptions> { + implements ContentSectionPartCopyWith<$R, $In, $Out, ContentOptions> { @override ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; @override @@ -401,7 +407,7 @@ class WidgetPartMapper extends SubClassMapperBase { static WidgetPartMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = WidgetPartMapper._()); - SubSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); WidgetOptionsMapper.ensureInitialized(); } return _instance!; @@ -413,6 +419,9 @@ class WidgetPartMapper extends SubClassMapperBase { static WidgetOptions _$options(WidgetPart v) => v.options; static const Field _f$options = Field('options', _$options); + static String _$content(WidgetPart v) => v.content; + static const Field _f$content = + Field('content', _$content, hook: EmptyToNullHook()); static SubSectionPartType _$type(WidgetPart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); @@ -420,6 +429,7 @@ class WidgetPartMapper extends SubClassMapperBase { @override final MappableFields fields = const { #options: _f$options, + #content: _f$content, #type: _f$type, }; @override @@ -431,7 +441,7 @@ class WidgetPartMapper extends SubClassMapperBase { final dynamic discriminatorValue = 'widget'; @override late final ClassMapperBase superMapper = - SubSectionPartMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); @override DecodingContext inherit(DecodingContext context) { @@ -439,7 +449,8 @@ class WidgetPartMapper extends SubClassMapperBase { } static WidgetPart _instantiate(DecodingData data) { - return WidgetPart(options: data.dec(_f$options)); + return WidgetPart( + options: data.dec(_f$options), content: data.dec(_f$content)); } @override @@ -492,11 +503,11 @@ extension WidgetPartValueCopy<$R, $Out> } abstract class WidgetPartCopyWith<$R, $In extends WidgetPart, $Out> - implements SubSectionPartCopyWith<$R, $In, $Out, WidgetOptions> { + implements ContentSectionPartCopyWith<$R, $In, $Out, WidgetOptions> { @override WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options; @override - $R call({WidgetOptions? options}); + $R call({WidgetOptions? options, String? content}); WidgetPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } @@ -514,11 +525,15 @@ class _WidgetPartCopyWithImpl<$R, $Out> .copyWith .$chain((v) => call(options: v)); @override - $R call({WidgetOptions? options}) => - $apply(FieldCopyWithData({if (options != null) #options: options})); + $R call({WidgetOptions? options, String? content}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (content != null) #content: content + })); @override - WidgetPart $make(CopyWithData data) => - WidgetPart(options: data.get(#options, or: $value.options)); + WidgetPart $make(CopyWithData data) => WidgetPart( + options: data.get(#options, or: $value.options), + content: data.get(#content, or: $value.content)); @override WidgetPartCopyWith<$R2, WidgetPart, $Out2> $chain<$R2, $Out2>( @@ -533,7 +548,7 @@ class ImagePartMapper extends SubClassMapperBase { static ImagePartMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = ImagePartMapper._()); - SubSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); ImageOptionsMapper.ensureInitialized(); } return _instance!; @@ -545,6 +560,9 @@ class ImagePartMapper extends SubClassMapperBase { static ImageOptions _$options(ImagePart v) => v.options; static const Field _f$options = Field('options', _$options); + static String _$content(ImagePart v) => v.content; + static const Field _f$content = + Field('content', _$content, hook: EmptyToNullHook()); static SubSectionPartType _$type(ImagePart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); @@ -552,6 +570,7 @@ class ImagePartMapper extends SubClassMapperBase { @override final MappableFields fields = const { #options: _f$options, + #content: _f$content, #type: _f$type, }; @override @@ -563,7 +582,7 @@ class ImagePartMapper extends SubClassMapperBase { final dynamic discriminatorValue = 'image'; @override late final ClassMapperBase superMapper = - SubSectionPartMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); @override DecodingContext inherit(DecodingContext context) { @@ -571,7 +590,8 @@ class ImagePartMapper extends SubClassMapperBase { } static ImagePart _instantiate(DecodingData data) { - return ImagePart(options: data.dec(_f$options)); + return ImagePart( + options: data.dec(_f$options), content: data.dec(_f$content)); } @override @@ -623,11 +643,11 @@ extension ImagePartValueCopy<$R, $Out> on ObjectCopyWith<$R, ImagePart, $Out> { } abstract class ImagePartCopyWith<$R, $In extends ImagePart, $Out> - implements SubSectionPartCopyWith<$R, $In, $Out, ImageOptions> { + implements ContentSectionPartCopyWith<$R, $In, $Out, ImageOptions> { @override ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options; @override - $R call({ImageOptions? options}); + $R call({ImageOptions? options, String? content}); ImagePartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } @@ -643,11 +663,15 @@ class _ImagePartCopyWithImpl<$R, $Out> ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options => ($value.options as ImageOptions).copyWith.$chain((v) => call(options: v)); @override - $R call({ImageOptions? options}) => - $apply(FieldCopyWithData({if (options != null) #options: options})); + $R call({ImageOptions? options, String? content}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (content != null) #content: content + })); @override - ImagePart $make(CopyWithData data) => - ImagePart(options: data.get(#options, or: $value.options)); + ImagePart $make(CopyWithData data) => ImagePart( + options: data.get(#options, or: $value.options), + content: data.get(#content, or: $value.content)); @override ImagePartCopyWith<$R2, ImagePart, $Out2> $chain<$R2, $Out2>( @@ -677,17 +701,18 @@ class RootLayoutPartMapper extends SubClassMapperBase { static SectionPartType _$type(RootLayoutPart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); - static List> _$subSections(RootLayoutPart v) => - v.subSections; - static const Field>> - _f$subSections = Field('subSections', _$subSections, - key: 'sub_sections', mode: FieldMode.member); + static List> _$contentSections( + RootLayoutPart v) => + v.contentSections; + static const Field>> + _f$contentSections = + Field('contentSections', _$contentSections, key: 'content_sections'); @override final MappableFields fields = const { #options: _f$options, #type: _f$type, - #subSections: _f$subSections, + #contentSections: _f$contentSections, }; @override final bool ignoreNull = true; @@ -811,18 +836,18 @@ class HeaderLayoutPartMapper extends SubClassMapperBase { static SectionPartType _$type(HeaderLayoutPart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); - static List> _$subSections( + static List> _$contentSections( HeaderLayoutPart v) => - v.subSections; - static const Field>> - _f$subSections = Field('subSections', _$subSections, - key: 'sub_sections', mode: FieldMode.member); + v.contentSections; + static const Field>> + _f$contentSections = + Field('contentSections', _$contentSections, key: 'content_sections'); @override final MappableFields fields = const { #options: _f$options, #type: _f$type, - #subSections: _f$subSections, + #contentSections: _f$contentSections, }; @override final bool ignoreNull = true; @@ -947,17 +972,18 @@ class BodyLayoutPartMapper extends SubClassMapperBase { static SectionPartType _$type(BodyLayoutPart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); - static List> _$subSections(BodyLayoutPart v) => - v.subSections; - static const Field>> - _f$subSections = Field('subSections', _$subSections, - key: 'sub_sections', mode: FieldMode.member); + static List> _$contentSections( + BodyLayoutPart v) => + v.contentSections; + static const Field>> + _f$contentSections = + Field('contentSections', _$contentSections, key: 'content_sections'); @override final MappableFields fields = const { #options: _f$options, #type: _f$type, - #subSections: _f$subSections, + #contentSections: _f$contentSections, }; @override final bool ignoreNull = true; @@ -1081,18 +1107,18 @@ class FooterLayoutPartMapper extends SubClassMapperBase { static SectionPartType _$type(FooterLayoutPart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); - static List> _$subSections( + static List> _$contentSections( FooterLayoutPart v) => - v.subSections; - static const Field>> - _f$subSections = Field('subSections', _$subSections, - key: 'sub_sections', mode: FieldMode.member); + v.contentSections; + static const Field>> + _f$contentSections = + Field('contentSections', _$contentSections, key: 'content_sections'); @override final MappableFields fields = const { #options: _f$options, #type: _f$type, - #subSections: _f$subSections, + #contentSections: _f$contentSections, }; @override final bool ignoreNull = true; From 170924e670109c7e71a933e6ce0382550536649d Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Wed, 21 Aug 2024 12:41:02 -0400 Subject: [PATCH 06/27] wip --- .../generated/thumbnail_3thjboPz.png | Bin 0 -> 1303 bytes .../generated/thumbnail_BEcskpQr.png | Bin 0 -> 46928 bytes .../generated/thumbnail_MGrRVh3m.png | Bin 0 -> 1303 bytes .../generated/thumbnail_dk6NgW8O.png | Bin 0 -> 1303 bytes .../generated/thumbnail_xUhI9Z6w.png | Bin 0 -> 13164 bytes .../superdeck/example/.superdeck/slides.json | 87 ++----- packages/superdeck/example/slides.md | 5 +- .../components/atoms/cache_image_widget.dart | 3 +- .../lib/components/atoms/slide_thumbnail.dart | 112 ++++---- .../lib/components/molecules/split_view.dart | 18 +- .../lib/components/organisms/app_shell.dart | 2 +- .../lib/components/superdeck_app.dart | 42 +-- packages/superdeck/lib/helpers/watcher.dart | 13 +- .../superdeck/lib/providers/controller.dart | 87 +++---- .../lib/services/reference_service.dart | 2 +- .../superdeck/lib/templates/templates.dart | 1 - packages/superdeck/pubspec.yaml | 2 + .../lib/src/helpers/section_parsing.dart | 10 +- .../lib/src/models/slide_parts.dart | 77 ++++-- .../lib/src/models/slide_parts.mapper.dart | 244 ++++++++++++++---- 20 files changed, 424 insertions(+), 281 deletions(-) create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_BEcskpQr.png create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png create mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_xUhI9Z6w.png delete mode 100644 packages/superdeck/lib/templates/templates.dart diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png b/packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png new file mode 100644 index 0000000000000000000000000000000000000000..47766a8cb19d47949e7a1566af5b5f887fe6de6c GIT binary patch literal 1303 zcmeAS@N?(olHy`uVBq!ia0y~yU;;836*$;{)FGSGfgoOSkh>GZx^prwfgF}%C(jTL zAgJL;=>T#Mdb&7;rukz`Ov{m;k1aL<^5K_G>J zLE!`ggTn+yh6V*@1_no<4NW{i6C@cJIE+RWjE2K#dKk?Y^e-Ru>IIqYvxTOd1r}}$ Mp00i_>zopr01{5G`~Uy| literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_BEcskpQr.png b/packages/superdeck/example/.superdeck/generated/thumbnail_BEcskpQr.png new file mode 100644 index 0000000000000000000000000000000000000000..aa465854d7fe17f0196d575c8ced30cbc5e84c92 GIT binary patch literal 46928 zcmbqa^6BhTQo5Dy4gqOcmXMH^?v(BZfu$RkPNloM<6ZUn{sr&+ z!XEhS;oNi2TytG>&k0pll*U3QK?eW;Sh6w_ssI2y>?0f%Dl+Uxr_hkfpDSloX>maL zDA_LT0?}DqRvi^)-l(P_000$0RzghOJ?)^?qme=~S;TwROVLRjRSXpl9v6;FjHX{C zAcUwL5lICE{?@oEDuqLi%O=Gw;2g^SEjKr$5gvYzFN^PW7_B(6I*u|G5$$V5u(#19 zEjlg7z<|g8{rVRTVV%pL)%o_D7mL$%LK?q!i|;=blLMms|5*fjgoO_HzY7ZrGdShH zR*9R#3_$;Dyy9_4qGErnLn@>i!0^}RP*n&3NPmr#dJsPAuNl%vd;+}sYqo(582{Zh z0_XpE)9#fT7T5!HoRg+v9f8T;@ssI9Ci?}EB1o5eWED6^jx&vJatgR?eR{I(cnb*# z4#t?>ui1Y{;L}H4YmKJi8Ov$n#j);3#aVE;7Sb`eue4s5j#=|*^Qc)$ApY37^H{w5 z)iN_91%J}}#Yvm~iT<;2_|4@<{uUzar$Z8cY{nc>Zq4LAM;Q|09*U;pH~HD$V_*{|sI;pC`wttv?n< zq~gMP8E44Qq5O^2YAh70g;<(2XrZxeEICP?0wQt~x}_9mga3y1$DcL_jRUJb84oJ0 zv_3b!AHG>+C?G8jTR=Ly*sxU!w36pcyR2)LRz)Ob1)SF7~R?F;uF4b6(bkgAA{P(O$CuW5IW zlQUbPi5ocug`2~cSgdePA1w}_ZA+J`Wxr@(1W_9-_j}i>nOcKlVkb{H zv+;Mj=t2;srOLIE)0{4vw-*_|P>Lvu2#}Z1CgF_k#K*=TR#UQZaTMXSnW!&Ng0RK( zX~yO~fZPs$gZ-qmogd{`m@M~ct-<&y?uTG9=~4{0v6@ym@Znn=)cBz&FeUR%6@ECS z)6x(JNS5(dvh##LS2_Yale39*KP<9hmTbOJB?8XS64eya^z^=Axk##A+5nR-cnT4` zRgeNG$BpgFl0-|c?TuqVFna*Tj6?5-%CkgDHSw1H|X9 zXn+pY2erSR-Q7yggco8UN`TFkx`P5YAq|}OU35h&#Rt!Xoef#dkbB%i7Ce???ig`lo1S{ql^rph@|Z zEyU3gDZ4H!#jrzUn##|d;RF8Y1y1z}28$<1xe*1^uinsMNxsVcs9(EY5=!ePAz<+q zw642VA*)r7a2hDF91-1-^SE|9z(T}8I!glo9@9ARI>`GIrC(C!?2eUJtuMEb@-E?y zKY$~%<>v<)!-xBr=QdBtzsUFnDB=4nJmqX7@6U2Y3<$LydE_azlR6=8VoP(ALl~l7&1fa|SBT2`BRssB5 zjD!a;wu4%PCUa{AuOl}R;jb-$=FY~Aq{#c~?3AMJ?s}T(8}=UrfoL=($a_J$_&Om5 z`~aPBywcni6Tfi$JBvv|jF&_8qnt^75B2c7JM&FjkcXYXAhC??$g+*GVyyX0#GyX0 z-0|cS&YFn$4Q3$v}UZ7Zv^k?-{V0cXjz{2aZ;jm z7v-G)9;*N;VPrWJ;w_fdR3Ev&J^XTT$bi!~LygOKb=ts+xq4Vn*$F>!nQpzIb7h~X zjYlMRjK$S|$!^#MPiUG52Mcb5nuoH?8#Sc2YXvQi`ubJ4b)uVn9^$)q4>@5`Xn6C#v>`yE8G9;N?51X7*gy~?63%X-0v5G2;% zXSjjdLiddhmrs=&uNPhutKt7MjC?r$Og= znvRn$KTC9m)jA$T&p_j{jNi!k0>wF~Nl}1#>8!6(R8}~RQldws(dK8xdQBCg!}O3h zEA#I8dos^MB7dj~ly2uD-gazyC~W>=clN$hE_!h+KtX@OKApbC4|kSr{dQf00IHOq z-v9P1Z`RicgWg?fb^O`I3l_TJT^c>AHwA6hVv-h(!(j%DFC?BPnj9Q67#*CosS&SV zlEoWX_p&V5N(SY{gVR=e%+7wDSYqq3;$NtnpX7Y;%gMQWPjV@XbB}BaWRllXKNBEN zZDdy^-*mbBN2zv5!k
    cP=p(=7uOEmD~?J@AaRE;TA*I>A#jXKI*1{FnTHJF6xOP zhErlcJLD%!{X|=PZ~e0yOvqR{sf(`qUwqU5l2s=KrePs!go^4Tye8rer2t&wM&IM( zjKGolcFg_g1+xm|4t_ILDqszjCPWqo70`L>XI`O&&}aao?Q(AZqB+vS)^WuC%9diM zF(1w3tI$469mhwJYQBM>PdXWu!eOBUm{N%?DuWc*PZKk|4_5{ogVI3F)#S98y6Rkc zdY7&88jd&XD^>{cO9Z8Lfx*B2y}C~$_evKqmx^bp5!62U1EN>!lsN0Xr=L@G6_;Shm3rp4W<+RK%u{A(IEpokqRKe z9L(t>{h=ToX@CHfd%HnMQ?vXECwJO04sfXT`{v7kyE9&%~`9&tg zRyf&o&TVO2pd84|zDE0|kan>ob3|_Ahurm=7G8^?J|`qA!`6t(cD!smP;C8hk_}3SualtE3%V z@>~WGdnyZCapw6&6daTn^xRVreEiF^^#Z&W@N{g_qV^$MiJZNrD(|w}zd*0{JX_u} zz2G(Nxgo!2S-;^~$Ci)LilHOYvYAs12YROhto%(e0?3jz)6z44j2t9KNpPwRohwE) zi`eMaf<*JxD+zG8N&LbI<$H&iqQ?<(8kdYJW~2e0jx$nmfb{4ebW}%#RDCoTlvXXV zEnmcFU_g=?wxs+QOPZ0*B)-Kf>u{QgGs~IzUiO-?DY^Xq^wauI5!~R+Xig$gMaq4q z>^dK$V8F5LYCL5VN&$@<6(SW}vSw|4^!8YFy7tHWbfpV;OOj2ny7V2rcEn(4A|nbw zI6KsN!5<@TCHd87Z&%@6hM|CH>8Gbx*VF*Oe<8v?IEI<}yrV&ZghND>o%H=wj?K3m zFjjA}P)R&nQRvkgVPMT}I_00Y7v~u18n$?`-+3iUWb}|~bWnVIpn_>Fw4H+Z*3XB6 z(O!xtnhQnl6)}4bYMd0+#;7G?r)kMB&-A5s1b|rKk_Ap= zROkcMC7bZM2tKzr{QpXOgm$X0yWWRX-yWy$15F47j0k0CsH+!YOwP2Ki&APVn7>+aPiZy!K!zAjH=MN56;WEvYB$}GWIFuqVV!fCyCesnuN;sUgLd8678u=+jlSP23ALmxu!rbqTxbvtnBBKCEjFLiA-hi+YaU&U%r9}ga zUvvw+wiej%2iu@}N}j^O)Zq?psGj8aoR3_x`5d!{?D@rciSvwI2?uc+`tkI!D&c0^ z-%s-yX>9v?l~N`Tgmswf#3EyKhwRxMd33grteUsCcQ$?%Lm6m%NaQEo735pSXVs%- zUu*XWx6TG$ree9TXCz}+wM9)iNN!xxNz*p0g0e%2jCcKw0{>S1{U+Lno#GWn!d|B%h#9^eZ6rgi6Ma`8cu+7 zS&REd6l231-sv9k;@dxw0%zBKt99|_mgVcfS7-4)+r_CZCH+V$w!SP|jZq)JTYgpp z`-&%9GRUPPO{bA$OI!UR-a3DLV#~oN-a64}V)qpY%JM8#gn8ygmo2yDv8-3NkJA(# zKxy#%kgd|=m#?SR9PCq!>>|=UDu@YD0LVzFi{NKFxLMQ?f?;_5i_Xv|t=xhJ6skdZ zM`0Hs3eI==O#hVptnxh|FLR@zGPQR$B^IrkK#WOx8T@N8Q_TbA2rrAME_QmL;ym=J z?r{2;Z*pYeV$;1UMwwY#62X*Ma0gw6jmT4A;%*91mHUHwC3j;4)KGydL(|vm$AW{( zr6mII-8;QZf-|e20G_G*tN@63fjZmc6N&w~&NM#dg~+i@CKxpQ)PwRz;}S~vcQHh? zltac6%5C0r{MJgJma@x>;V7C(5?U}-YQ&Ep7?Q{hG^4oER8+b|{II32-xnx%M4uXM zHFG0+^(J-cs7ap|8S(dBL@I)@>*W;#G$o@a$r>*?r>9y)4A8-<@psca9ZSqj+4u9siy13P{(|z07T|&)~^fa`J+=>jRO|wv$X!(6e10kvqZHL zKHsrK%CfM-T_yeUi_Ja)#I@$as6#ZR@}Wjh(SlN7qS^_64Exd! zK6FP7H!7r$3OBvICGA5=D9w#b$md7isO~K#i?-qK?W9h#{14IWb({hq_e^T`l~B=6zbUGRQG8X3yVl+r+@zngz)=+iYhEXDKxZdqJ=;$;o+kt zpdIZqso?$T2lp!yQjpv+h}uf70yNE)db&u8{iXdT-2;=~-K(~<*<=t(EFheC=ydyC zO0=AC2QfiF$_M2pB#e=JpQb%nt#`IBG?VqN`y3;BRqG!41SO|t2VepL*mx%)w;u&7 zGhBqPA;4NLW5N>5wNX}S!UaP0BS22pj89df=K^-D=DZB5zuo518gf}Nqynly0~cT5 zmDYdgsIxiO7AjqTH8_3U`t+-X^es<_RcMJNXX`OR>gaEL6-`Z~Et_l<`pxSLm1&>X z*fFgRfVGllgW;`y;D9uyeUWwW&AB;H6 z-FymOGb`VUP{m#3V-lr9U?**PxbllyUny!)!DKbafjsgxL`|HF?xJF5!uP)v`l&se zS0HoL1ofe@B*D*AC`>^AS|9)W9aV(TaS*KJ6_f4!qHkZK2R~r!!JSW&ypip$vDUJu*NK#8qiNi1AQ&gPA@#g7B~ zcFN#fI{lXp`N@gd3LA?!4A*4*q+BSr^^ICF~k4Ww_*lHx}C%crd!_yn5`-c3t zTUYrwO9My4tj+1$5naRUOT}rSIF+6=5o&qucZ#A)aBelvH%Vw0`gF3j7rry&F4nzT z07auOd?DN=y+mpE@-uVl6cO#TjE4R#X8%?ome7$XQ3kLaw{rbpVASg^Iye}2#tJbh zM+#PdJ(7FdL-(^Kc7iPpz7C$9?%@CJI*sx8k8rlMh}q3_NF7WLv5ZuDr23`-OuT(9 znF@C)0A)hM+QjIW{?z02QYViBw9eQYy0PA)D5 zT!m#iT&*#~=n}1F+mJlPjQTt5W%X&=Q$pA2c;IvayQC|vC)CkxaE?ZXzIyD|0&AV^ zr~9u30Q&t#hj^k3N-78*Sje#r(*K%fN2@wD_|}AG{2MRqzW>x96soD%yK5RTP^;T< z&Jr*BDsNr!9B$#(QW{te%^afQ^mN4ZVVBCH;H*()+&I$OYAK@=7L<~*xz!=M^isiS z@1sUqv#|@!uydZ9SSZdw5Cy)yH3=tWjFWm(#?Y zpD=rcs0UsfLDDJ(C7HZxZetcCgtRf&juS>2w_#*OpcXSe+J`D-u?)G5 zvw~c9;*i$o{(RhOz`L5 zeKR>9?GEv%?uUqhJO!8UQI!A6jNiFfsSs?uOv8-Z*2gZtHu;!*Dx-6^&IT%;*p1gc zu_^VOyitP+)3sAG4hPOuYd4en_p4^h{xf!#RH3&EfID`;ZBs_lEbraTV3IJ(IN25k$Je{l{6PHx3f~ z4RBK-W+DaQ!_~KHImscEW)h46b=Y9~CiTmV+0Jhk{v9>LBbJLq8A5safxV!ie$*n3 z!jcAT zB;|Z?_h#THTDd*N{>4hf2Fr`l&^G}Irff+_hKC4Q>kn$w1Abqz;marnhJg5qZ^5HP z&xPz0dF+Ei(qW02a5)n8;0f9C#Vg}lcDAKH2DfE1FBSd><$0&g1JHaEh4`qMqi&>DWnT~$HUvaiNb zb_7pBlrj$PKlmve0k%E#%T40d(bceU@i4bWS_WV%g7l|gMe|})f!@0G`MSh`^H$iWR)wfrR}!J*_-bW z&!x5*1Q#Tnk&y5hGl;-%uODI)r-Hv9X&h6I!Due)g}clwioo~v)SHc$cw)k^-zh5>f`3v^?4DnU7w*s@4oA)W2GBODx{7y{B6+c%61Rb&&#~Q?0)QpRB&$ZPyEks*Uk}4?#5OPzijDk*{|FL5Xe_{2!AB`>^ zek9yQBXKq2i(8o!r9|ibheR|cT5$&xN2#na$U@MJh>m>DZOk(sLsrzf9u1Vm5=h_q zo%Z1`bF!8xOd_*GFT2fkvJBx58}rr2K3D2Oc|i$crX`nX%20urj}c)v0~v3Ms{Y9) z3tUev;1EUzyKcvW#;H03oj^LZqELCsH?EHWN?V*hnY;|@ zw3ho8vDRp^U|qaGNMF%wy99Bm;$y1Cq^GUH&W8TUD*YZsF5$tV|EB(uoi|_TucKHw{chn%VYmiiN+$3IrgvGg@oT)b2Zpw|Qz8fLU^{ zu>MRJ%o4rvKt9Lbwe$I{#AS$s2d4e@YZ0bWp8NA+SHOJi5#Yudg7si_xIza6cO1W_ z>Mq045AUg>0#5}_(l?}dXhp0zjor0LAYbftrSFbfu-93W8fzVG^apwH7m!(#*fBmK zE{5W8ScA8qR)~m~uCgSiJn$ZwVAm_Ol@X-d9ucI-C9U^(qC`MDpf%3-x7jo!N-zGa zYc1}w)o8QliMk8xnFU=@3;f*OH6*Y#a0 zqEn~RjEBaXNizQNw1)E3?*+>VO5kzwMKw67Jg_C(`*Y#gD7vel{|>=FAW-?h=OK&E zbx#gw40bQP!hP5BbUU5E>pSqUssEJIF&N2o-|;i4;WTWpbTvl*frSW2+Z7z{k7I<~ zWFlJPy~hA4-o9;g%fl_abKtP7nJJcBZ_Yd-x_Q`F;lqqu3CiEhVk%lwTPDQ!zi0xf1`^WE< zMYi8{Aeo53?-6r;tfxP{Nf1p~l=S>?NwlH;8p_L@2{;p)zekvZBJLvZR&4JIy;u5& zOGidN{83e+1@kS2c8q$9b9$!D1Y%pZHO{G!r6J(cX!mu)$PM}Pu1?{JLXgtA1yPIX zf^nZ$e@qq}cu*Ql+#@C>q6HaC5w*cIjy8~bPlaJk30IkW;Gs{WJUy86DyvrdQUyMl z0TAtg@lge!f)^bVYzgn5|6Up;ut#Qr-Y@^U>nZBr{-B-SZ<%JC?QZgTQqNBrb$b=~ z0E7hd?Udeo^3;qa<`G7!NZos+LXOYe(je9c4eYSKdTs%0ly{yE>Ffe-VcCCgJu7(Th#*YSTe~G}$lV}5PoN;+x z%fHZ%Kg2UMy|&6kV?|;)PL6^n6y%pY0}XMk2ry0(W}*D+Ib9o)z~cWdQU9p+ZP&hm z6<|Wqx7k__q5YG=BCoHGIQeWv%R?+fj734RzKVPCa8|hP7w|y4G@V(VyvRZ|m$ccr z{ds@HQql3ntYuHKhZ6h8OFfio_DUW&eN%^1p4R@X+Xh6{XJ-*Oe6DSDg!K~dRRO)c zT?Yo*h_An&b$vHIr9ea_TK`jE@t1MQEH$q3_Oulfu`D`^7W_?lm<;CEEk5yG`;(<3 z5QQigJzYmJf^|LVU!^{W(CsuF{?c|>8t4pz$1S5z)4zCV~?kO#hjBDP>)_(+l#)B{`TGm4| zh8~*kUhdL)-A*Pan$i03)*`3fyu<^K*==|um|}!8hDBix5S)v^Ng&{XeokdcFIc?h ziSwpyRP9_MA4BnE^QN{n0E{~%|9bP^F#|&oGm*O@!phD?Ps1VIrs7ce+Zw|L;DUD%QuKjyv3C!>JtxF}+2o1v#-Dc*_F6h!JR1Q%MO z3Zgn;0j9G)-(I{C`5||aYGkly{o;zNbCVB8dS_sVfA3FL$FK(BDGb5%si(0FS3HV zqnN?=`I=RI@p6nA`&zB%;nSef?Ct8Xf=H3DttSBQ{x(z-a^w5&&>O5WLo-hT8&7FN z4{rA)La=Y0G;J96yueT+Or)VrBpM6g#?{e2eKoC?w|1^=c=JF)jmH*N&ACJQ1iEXps&x^p6M zaiMrQirrHw;5o8c#1KRH3Ev{Lm9UhVWpt{Z@V;`j|2oYl>R2T7ice?gybAnA`Fw7w zk#kS$?*O6(&9pC;797C&VeZemX%JqclQX!50=QBN-ql!F4`5vc@J=9vQP`%dV13o+ z;*+H?_2;b}#N&E-_-1q{q-e$NXmm>$s^;_|(0$tY#7NBWkW`dY`QD?yt5(srb1Rm8 z&0iE-;^K2Oo`8^>i}F1}x1X`kpf96xez1kipq)*!z<*OR5i=x!-CM=M6cT_7`lVJ} z?4fE9+q*$4;%#iJb3zt|+opGXHbZGi9{Rg^nKiqy_NQj>CZ(@Y;-eI)Hh$IdZF6Nj zeWQN9qnbuk@8ipMg3aatr7&d7)94;nFmU_gM7>7B_S3RvkMRtx0Tae?2~iEQa~tO* z;4HD#NBMoMd59(nxcPJR)xV($&wxb4;7S5SQizyV+~I7WRyImSV!G!N6_ie>oc|OZ z{>?oLB#Tq$o@gxWTbj;eZjYp|sjr4}#>|h@mjZAoBcsOEES1_vxGu z!H)+Y6&$Tfk7YyFk}bHjkDQ@YCskUOi28tYw=uktXG3ps(`g_U9_z#^Yd$7qNq^PK+O&KjB zlkM)b2rjcmVKTGygF}BzOWdHhr_rRh;YE8FQKpoVZcg5>o`9A)U-wFB{_dO?WWU&O z#gi3F|6|%4sYir-tV?Cd!OWU!J*TDs)D36x%U~v0ot_6y=2EOw|Cms8Gj9K7QP4`g ziz}(|qb(AR&ft&W?fwG&35pV=h-p?iY-nL+-Nk~sN+@zJ_Yd><>2=#E5~irI;G2@Bf9+Zi#Otu z(JI8I(4H9PcxxU++uk3SbP)h38#i@w>qRmhm~}D_7;HT3?O2=(AJ{7{f8%&c)RrO> z{Kgf`y4U?WiFwJgZ>j;l+dpfw4d63@_+OnfVwV`KpL<~uN6qEGPQxW9$->J>%Dr}H z(gFdAd7|dipSgQ{+By?)7WU~9<$6ExjA)a0pjfv%kjxq0r&c1J-Lmx~Pb4?7r9}_> zC!GZ5I;~f^_V695J8Lcpyu-!Y>4M|zqmsy1(JteeUs?vvnWR-Q3ljNnI%JMr4ZutP z$^G}eBMssA1!mMl{Fisoqs!xuo>%)IF~lFCpNlAL9DI|f&##hclW(3PiF~(gg8chz zf+%~F9F{7+Bl#&gUa6dq@URY)=uvQWt8s7qX!-D>qcJ{8^lM`xh=|_dx6v63-001u zOF4%_T>}VxmG+ED0burE#O`x|okU0L5?mh}h90eh&=8KkgZm%N_O2s*V!&|17cA0` zNp5^5g73L%blW&TzcWkGe_lF4LuETWsaL!lclB`3te9W)t@V~m^{wp*P*8kZZg8Lj zSO7X)1}mx#&{HpLOfrAk{ILH1nqTHEe7T5)MEzD;BBiirl}<~Wg2A6+cl5|YyO2d@=f(+)=AIJqA=kHS-0o4K%6 zlE=KW1ayw$&c|N8j-!4I;q{#$h!wo-|GJ$0G{&|7q;~jK0G=Wq6kMRYRp|4JLLpb{ z<~Z1qIkG9vtle*9W(|ejr5#!Av61S`TSSW#j8?XdRfT9{arSy&i#kEcAlp`_TS-Ez zPXWK^1w`)j1FmBS67Tx%2=N|eG&N4}{$VQ7ZWkJo);W6HCe4fE!y zjes3|+qxGQv|0s3WMtgFgs)nZsfj_Z@K_MMir~?5yXUgjr%mzp`CZeP?|P_#n*nuM z1HHFHkcVK5(`SiPG34HpJ;KLVdI8&yYWE~_dNk4;u4}sbP>u9_=`OnRmW}kYgs8R9 zP|d?UX}hf#v~Bt!^z>tek7%<2cIj@hU$dG`L9%UtNM_U>cMS}RCD^eLIK}x3MBq1} z=#lpv)15Iq5e3Cj(Zk*4{yjA^z|hnbG4rOI{$wLo$#{3-$4xtm$XG+O&T3w)Vy8)z za8Nvx*4mVsl27jf3xj+8N@zM4Xj-X}wJ#lDa%M?f;W~(C@bNrD@11b>R}`M1V=Do> zcZY?&8=+^fK|YF79PX+a1LP*eGQjtlW{|vyBr;RrCq`|)L798m$UJ0Mi1xC|k~$Gk z)prm3kf}AenqsYv;#}1iZehsqeAWc-D4sqd->jv$%n+`DgMJ5bB*5tmQQw3s$G3@GU#r%VBI}HyW*)k z>HTA5(cGt>gRiJIeiVQH9$*X!@|i{1r1?>JAn2vdYF-@+BaS@qoT_$87A3&i{8 zq>25qBu@<2CTku0;!YxI$YF2n7B!$=M?uv11I;ihV*9a_p=n7cQAbO5&F)5tslifvBm3hn|c<+gM%+YEx{+UC9!#fu{O-Mif&O44&=k$L6=2?uD&5 za}gFT@pzx0M?5CO;&|=ankKYTG1lyyj#sNYO)FJts7oPbCC5S^q5ks02T>swS-W?u z@ll#k_fa-LZxm&enj$~a`PN9+dK577{^%z*q23qV7lH?sw#jNr!uWsw(&BN>ZnwbA z1%>?@Tr(I766}(7>DHsCl22*`ST=df6Aq3VCo! za~fov2iet(@Twd&IdAuRwmlv?m<)V>&295i zsdXb}&he};X!o*0s1p~2fo;25hrLD}DYHTr!$tl{K!(5XlTd_y^f-W}^Be>1vb5)MS(S+yV8%eep31}`f;iqU0_!|q z={iWb>mWIY;)eSrV$g$>fKS3M1m%vo&;oo-(=VIp_#VUb}|hGcheF>ip&3}}Du6^iSK^-{CcT&sXNeH?akxd> z8my~jU*9zEvjM)#DK*EZ+ikZgRzNuEyBAve9%i;c!-+iEBwjm`rL%+v!=qnKbFh0> z8uy?lSZt@eMQ*zOa+J1h-p#+6>l5icvu(YcnSC$x@A(zEyx1QVY=_;7RCERl& zH>_u0(NpSw^j7lT4jBAcq7YzA=;HXS;Zwe__O8c}p1)HB39OzPWQq717)1)WO2Mh zs#34uwySO#;EE@+v=fWh`g2Tfv&L0S@<~Szv7^)WLISn@vMk#kjt~wriK63J3W>?$ zwF)u2TP@56kj0E|e)c+RBYfUUw&)#z%-b4|r0^Wvh0StseW3BN?`~aopOM`E)^Fs@uf5MNCH4 zt<`oGUwW1G0&+K9F|`5lytLjj=wp)XR*uRLOMyHmKE-bFc63!4X(49HJ&N` zL_|c?o}X&}E!}ki4IB9IdHDS48Uo1`0G`D}buTw8c{0(-CxMI93XD4g(dMiQ($`++ zj$5v9W!}m!-<_>u`w~U;?tHHJSOq_suh7N2Xd56KOJ{UG@~#i&LE|MZs8CIAv)gYM zt%IsQiqnTb*lnI_7lejKXJ~1O+DGAKo7Vjf7RTD>19Md-8ssLu;T@8MdaurH8-Ba$ zv8bZ!CmCL;?LI;e@;YDG&MmZ-MlZO;`^{Beb2@k_#(aN_Beid>)+uQAaJ9p{YFT5z zwOKyT(VuNUtE)dn$!EKt{)RsoRyKNx&vrLntipDbYb#X+5}4^_^>cC)7MT&q>5S_; z!=}b}y$DZ&HYOHCf1mKaOI98^zsft7!v5o}lo7f=NvrGoc*$|tfkN30D@24SMqw=V zJN>M!i}pWzmMdVKrpo@efabMPFnN$<7=h90T90Gr5lW=U-OkPZFc-A@`y08n+gK%$ zP=ptJ0NC0{3E1?*H-{44)URQ*(XS_r&;<4!zUyDkj=jVdhSS9wr*~$FdO;PS%aYTF zG6x?UJ0F9GHNsEiBj$MYX`kVrPJ)5mLMW8ppQSkoT0XD7BDD=5Cmvo#qMMKLiQ}{( z+?T0$9BEAUc{lW6cN@x0j1^?GjqhqRLm9mvcd9nTR#%~e34AG0o*l9&Q8%eWEoHf^f`qrGDI_rHy$x^96Wvv! zQ0KrEB z(JH(*nK)obmiA>rR&T)0FNJOCVe4JVzLLl-?bV_Ka5#wr;m^_qi|>CfKeCz+C;1U` znVViyCINjx4+?ci1R{6iQ7OBL1|W|IVOZ2enlihu`qz9XVl10OkILpH@-pRWZ<4z>Oh;Lfrmqm@xDe?_Ch6F*Yu zOy-ZvZu)#5`rOMDO{$$X2M>A`ua~?W9)yiL14ZO?PrN1NumB5_fX}XpL|kST^~h8l zc6RULc^&NEYn4ViJy;UjQ$w;nqCp6Q`sAiD!v@tFlf4dHpslq(tgXIdA&IZ zSm3gbofojR0@6$0%#`abYNR`W&Qpm=GhszYe8=4AczR2tqwwprmJ|1AUKf(_>{n({ zHo2eWRo4KC$FdDV!G|BnvieJJW${?gR9_gE)DKV;{7lfKk{i@X)5$o=aAja}zEhD_ zZYBG;{+7~aAnViY{!1dYZ95Vu=C1TrGOh^$tv!@bR0eh+n%f$#DPzOl+~w>Eck;y$ zMqK7#x%;^XUyJ=7SS*YZ$+w33%VRrT-fRgQ6B`>AuEc*bU4v+8WrgYwxIFwx=G-We zg;VK3I>oe*KWeEU6C{wYlu1E;3wvS5USj68aEJ3S<##N!)K(+#nvd`1vrQ7uNTG^lBamJ~aKGZ__Tl_OHen0$%5G=1 z+0f@9!-O+RE* zSy^vyx~g_w3_KmkBZyw_Cc3IND|z;_&Ec5YRZ;XNIPFRhm_y4GfmNywLk82i_c2w+ z-=8c6E9h^9Y-r|^Cpmb{3jr?$@h{Xil&mrL2t}WBXZh3;p#B#%W6*DA?+bhoh<$H| z^Y(W^AEAo2I{n*lGuR^ero;U{<3RdZ!Xr_+4+%@mA;oKD+5HI8n zpB`>w4v(An%Ny6eF|osV9-t5_aUcH=_>JuXVC3hP;4H%f?X?U50if=R;oM+Sdka1hq*AL%& zIU0}w)yktUdaVo{CSEp>Z_J0)~eg>#rC0 z@k!&64bL_P`0jRc9WTbE`(!iLGQ5sDsDsH~Lg^LL<{IkX|4aye{)W%=8CLzPM?wn8 zT!=_WzEPT-Em>USFgV^LDWNdGoNzk!HHNBu(|7Aq6?Bia0VUwR` z`ra36KD&`HSC?lAH+fBZYjs{9(C@c)6knGEnXS&{T-+MZsA%M-GQig{`E?hhXpCEK zG_|>iOw!$|(CAIz>*6hKywmU@DcRJ$UgAI|ljWyTkbNO$RmzN6YTmYx(|U!~qn$napX14%1PTP~YpH z%XJ#p%`W?uu7}!xSobJ@%T-;4**zVg-2!<3>7ey`$!Awi4DM^SQG?-F++l&O1dS-M zlcX5FNd>1<)N@>4=#?``2<ic636|7HR5k>6W0feFGh zt#DqNL_A*TYmO0%dt|nWZ}(5F?~Iv!^JBM0?WN@8Q&CCco}RsijRnXGYL*)hpXz@` z&ftb?5owFyoJCaL%HSpxV^3z?kp3P!D2>lZl>&H*7cK8FL|CTbEkIf?TkeWudz;Cz6a(9CmO8?t^FXp8of5^MUf?Bdv61MZVYadDPXgCV=zrg*(SCU z(fSnoOJtDJ;I}x)m?;s1(D)qt?Bq6OD1FOCiGb6}ud5DTx2=->)M{{z>&rnlO4)SH zw|QzFy0*9SY_bW~w{YP4f{!f^u7FJbWaJKhRvI;>yt|uYvU_Y3rO`KV?>=asg<%#! zC_e0GOZ81?2YTLBBF_~P001Z1*gmKR_Y1RQmfY<2zxe*ZmwCvqbho8>r@j`&6Q$=1 zr5l)#^Mf(mcK%?PBaF9(liw~6#xspv2zZ|aPUnr`2>KR`jHMd=a*q`Ol=P)UPML8U>O(TE^OD%~j3NOvRM-5sNIFxZIk zT)V%&=O15+h~u*>&ht3l#|ggsPF~JYp1Suva5st0sa4ZyB(8swz^CA8U+;-NE>FMi zpSLjIpRKIfNU|>3ubOjhM`JA))gSz;up9&Z5pnLrtt4UV&)}?+h>!y~tD!8NyRuXo9ZaeRZ361-0pm zc>I#p?0Cj7v0(C+NiW+N)a?zf5d($sJ(V3{tHS6dok~g$pT0j&^?$5oaeUaGl7ZWu zehK%%%;^}GUgU$_7yeb5hMdtIXwPR;lWu+cu+B&>nA}v_!|0%Mdq@M7Y~?CgS$Vbb zMJ{eI(%9Ph=pu*Amd`LD%ZW^;IgRVCFg{i$R_Z~|QqtY@?lxAvH^md_d)U7|wKCl* zQ?sr8d;3jj;M-z+zwp8T0z1AXu4SQ{t)>e-UwgxM*i$E4C~McKaSnIpnB(^XU*$O5 zysEo;CZ~%03yT+Tq;-NCo^f`a;;iCgaSLHjc)vW}Hno8%JUn@cyZ@qY5l?Prl#}5n z-*K0g>fzO6W7=rG$WBArf{T|zkV9hg3(La5D-y?xl4h(!SsIxrZ|rC4FCO5~QNVCW zI_|7ZFf1DVhb?eUuBEz~VFXhn|2kTl$IK5Qz~R(ZpbN{c$R zWmJ@N7ce@#*pl05+z5EdESPmy9W_qfm$6Hpk3iB!DfRuVRx|q%ExYg;is#Od!tunA zRs6Vm>{9Uf|1b;nttSyphKD!qYQor^gTAN5c^pGtu|!``ufhXO(F$(_rQ5F9ljHAU zaa2>RDIiFn(I;_sAyI}ek_Z_he>I3va6nu{^E&;C_Wx9|kg>?|wvFE68weODaew$Q z1Ct0g{lS)4MHVK}hwP#5Wk>Zm3U<@Q(fy{QdzF-Ct!&3jp2I<%q4a;u$B|6q*8(}W zP1+~g4%|Wz2{c2>W*|wC&3uEGuG9BE|*jEF{7#(c#6Cg}5@6FqtvjFhB!C3PqqJZ%%wIn&fte?I4uIM zzp)r?Cnc_bh=AQ*WiEK^yqJjV=XL(q2uE&LI|)npSuB$LWYf0mb}-q)3h1ed`T>&2 zmB`Z6EaJ!AUN*mcq6EUUbB+B{hDLucz5YSjsNamfJFH1DYfon zznYy6dD1Sz|&hi*H1ZVWeN zny2#ZWJFnI$ z?4dXIs^w?bvQbjw=slMGjy_=+6R+7|u+=#_2acNz-TH>_czot0gI^o(4A)&=GgD)- zX=U2cCi-Zy-)_&TfXZsn+z-hPVt^CDGq`A)ooJ zf5=D1828GjQ#~SBJ9<=K$>3)$$vF1(r^vN)NVPmHZom9&XFc|k_4Fy}|1fXqM}4_e zW9m!EqEx~k+o%Zr23ox15_4>E;nep&WvYj$#8nAFO6l^kN}A5h!z0HvJ_u2?W*g_U zlB~g`7#Nm1e`u|>ud=Y?Ch&aWvtXE0)Wh!xnHYuCi1AAV@P~FJ>paeWPWHz04;y?A zBGt4=isIn*ujxA0zkM7B@5s97{Y844WD4)KU=*#nA%1uu9E)+}zPASCe|ym0gjf2R zc(kZ=e!P);2%ZbKdZe}>!?T{iS0lQi{cc~6%4W(~(dm84vWC_O<|qHa+V=_lhUD@a z*fjNOub?^kMpjvjP3QIMIPgpQ?Ai|@ZX10FIicKa-yolgIn&+z)Z~!A_!?Ep=eL&; z!{$Lb1^mAnWV-q-WjgBSLUB#Booozj-ZHweh9%w7Bh|jEbB|EoZG`SS+49L9(3-Q6 zbLsd2%WoNn0ohW{tu{36GG%xSE=PKdEEvb7`=uUKh%@AQ8TevKru&>)`y7+&2Er$` z?UjZ#8ir0```TgM9eVF1Q_7=V6$-B{eA=s0Vy39z|Dr^@AHg)YO^5t7h<`*P+D3Tk zBm^EiOTAQ%sG{f$3wt|U)b2XQAECd;`yzdNgoSF^)X-8TMVi%=%dGe-0b^OOXIG-@ zr<a&C5hCRldc2FXOpEQ(tv7rLbk< zS5mPqTkMx9YU{Tj2KUjx?wPvLSIRjhRQZw~rVBCouawce<`zwPq1-&e5)K3YKE1zk%HaekJN#Mhp11>{3x873< zlhPg`qD8VZg|%&V{qOCel+UCa_x4?1bb8S?Ms%tp{wQ$R$F>IFoUh8kdi#udNyidyHL~>I zvp&o#Wq?G-&r8ZHrc*Jn7Y}t8D5fyjKrc%eFyo1&*2MNo+Ex#jZqVmQ;76efd*2RA z|6CAY*%Ct}*+VFeVbS$7x*!HQ=R^p}n0xPXOyGC&>2fi*Yy1wf9bMD#W;U#$vt}J8 zJgOT0JYU_{;71+-L}&&&TT}Du<-snbo5=I&=E_q}?Ztg|p`UyU7FdkwJq5$B$d+%( zZ$!kbTl=YGj&M->B?RatCAM_6O|J}5!GkOyb6l)K{5G_^uzgH;?kSYX9_3gy}wKIb4Qmy@iFh^>HRY!<0;3|of+5Cu>F?^oBQCs z55KAPIr1i&{`1rZ`Et=}Jf

    _@l_pr;6)u!~=h~N*#62G8ioVb^pO20jAK2C@bacP}x)M9Z*e@mEmk&LKRgTc!>sh1!<`*{r|Fc+_| zKZ;n-%8ZUG5+D&0J5MlXRQqU_aw+hYu7D%Z66tfwtdcCE3R^G@<>s?rY(OpniTnMe zIB;1EJohX4mw>`s3q~^}PF9I7WriO`It=H*5WJ8}qL*f6<>TO3VPX@p3iWvT&d< zFV8y-bu73og#)eK3>f4(B_>!#*E`zPlnav>^P@`^?SPTy+<`=Kv?+T-6-v(i5B&LC z2pQX%fh-3xn&Af7Rdd*MiSf-aigwM(pd`QB!F=vwJo3P;ITU)bvBGT+RaTJ%cG8;k zHE4tvV!0L;&%dBEXw=OQ5(g5UULCUDliR?H4(;1bXvqB`I-C9+J>C?f?YX26R~)*g zuB}n>SwIH$Sl}f2;3)EiWiQE1Jb)-Jw^eR<2$j+^54;!RCx|5cY|(kFZpPaA?D=i6 zwX{)wrV)tB$jS#7+r=^0G-3Amnw;+Wx0GXE&J;_jbkNt)(~Ea+xD7 zhd$?$4SOGX`!-NOf(ikqSZJ0sc#6}&wtzq)WiE0p@zZ2|Wq_i08-g55M}GyvbHXj@vmf8zLI@zy-fju*fkt? zQj*G*wh>91084~Y)~7+&4V*6ic=Q$#@{$%p)W8FfArfDYvPnbiPOar;M*I_=GH4rZ zqa2T=p{Cw>k!Ez@`SeiCre3+g__Vx|pT#nlThj%e7K&omlN=dww!N2uIGX4A7)ls5 zN%yYcjnN2MIh{U_`e+A~Hk$}`o2lBy6eno_F}*y6z4&W{vfae&4pG48L9;*NVWiDO z%syh13tyFR2nj@jhCiE)d=9Y4Agz_9yKB#{eGw|4t@iPy#KXBFHsQBz$d`klh}G-k zTz6Efwr}6o-*--u4cB^?Siy2w8QDP7m{Cmaw_Dt7q>659Yumd5k6g&i5Au2VDPBj9 zS8ohEvfo^$t!OAsT2c+Y=m`YUP*rp~s^1(Vot_b!FVwl{lz&o{Vvuy@@y0@Bu2shdHqLO`@C6>1jl4OrVRXK{wZj zo3cJv?(^W5w}GE8mX}%yQP->l(eSzKj7RL^`32%rG7{=dsG=P z&GX@7&)gHI?BYZ2Df)@tIhKnmh}dDn2@^A7ag8h;dCTbZH^uwC=~DL&P9uL{0CI0! z1JujD0Ulc%wy7M))jD76w1#TF>T6aA$80-{=3VT)f^Xbn?|V5n?yrb*b2W5BJLHQf zFn$koFiKH7T9F0kw|h;O2M(r|Le$7*JXxK&NX+pixr8DDwyGdTU6ed*5X4uPT=v6( zKqw48V`2V{O<4~s#MxOhDrDk2GSIA?r<94!{FI$&OH!{{3jr-s5Fv%cznF+2V&neymhgV)+ zK0)B)tGTk%%O(ov$n{hPsg{=y^(ksaDm!2CNKaTvirqg&8{MV1Sw#Rr-UG(!yM#Wze9h=y$7Dgv~_Xg z5rD<8CZ4VAl@Arg#;yY4wyn9;tdREaNc}#O;bK$*&U#Dcp z*3#|aXw$!a74nGf6NT_HtMZr)7g_+;Ysqy#vnX1-RB1%5u@gHIj zr9bPLH-sRg*+rCM%7a#^v!knWi}Gn4!Z`DIjLi1&TYcEeF>lpE{z-v56#0*$DFZH) ztV-*-S9{O4CI1G-&p#dLTuvwcmwcsHb;n!q$^~s;xkY{b{>KvxLO8Yrb}kZL*r+pmpl! zKlTDa_n-2oyUgC<;9WoqdL`{W+4fS|Kp42Ca*y_Don!?-y(QN9S={HyAaXvjP z@yp1y$S!aqnau)3=!oIwn4uEU2&(;dKoBp7+6L9(uQL^7TGy#Q+U2wDL%!lZz zxh>r5n#0=*0RrbchIy;w%-^W3v8|>K1AkBtwV*jt527ga|A+ZW@bh=@;D#ne%O;oVsx*WhJtu zfMt5GOZc@r&V9!|LV0*0RPpk3`5Sj;c)UV{CCff<3Eh)B#35;qEli%*A5~K`qMBN= z6bc;L(;wyrBye|NO64;iMM(pYiwc~&79=>+-z1+OcQHgZr+M#Eh41P~kWvu)w%)t0C*Pgs1EJl`jITmdkW3Y{C}q+j&w<7txVUHDA6nC6C@^fd~|Nz)1c^@|_5m16&HKnNlz_bkxl~o@=U6WoAU?8lKPl=`8;Ip(;0p83V|Xngo;=2sVC zFBBYknO{)!4+Hd7Y1*y)3*@i`FL6 z*DV5;1k=xf0(!t{wa;l#9Mh5dUac{dLjk~0fV>3lAXFbwWLPhvHrmDD>(%$1j3Yh3 z70|7t$jdBVZ%f-nP*A1!Ae@&`u1m(Sr=+8`^Q#Lc^RF^{EW6~I{uWku1@`n! zH0u?$xJxfnThz2#tx~ouR7(fP_NBL2-kcHbl^*gW+(gguWtUnCmkKXOk#9APsxm<5 z3;5r!y4z6Fx8@AVV%=Os$_6QsEk--yXOk$Z=_u|YP$VPV2=5}$dmkKo?u;+K{BG-fc<5w zwzt2UBYSO0K&Rj2C63`e#5RvW_woR2b*-Iq6Kll*Rw+R6Tsv9a$Most_W|IeSdxNsFO!R zNR0Yz=J?%C!_=rKciDX1xp}nYbX^P6a(fd~((XR{u#TeRwdgbLrhz;C$Tf(_>Ii&G z1E0Kj1A$Oewm@*H*A!>!Xxdo=c>lqcnn>AF(VrkK+Cz1?Yk1X=WxnN3Qx&u5S7zXM zxFx8#m;;ia{M8}Fa|7FFK-<*jdDhUk8?P&O5}(0BW* zO6O?cQb!Tma@KsC??T%f-!D{I=#{~u7<9}YOQ-2B6$1nNA!OeTMz^;a(t!&`QIe<=4*&uu#^K0h)WuK)j800C!N ze}n1yOCXC7d7hp=3lexUOo{qN?~%JNQQVBaK+erR=fhyXVyN|K2Y3&gU{{k?&DpH= z+Nw2ZS;V&gME85);Na}d0sverFhnM&dhbCnpBX8?KIN5!#GK?V}?!i)g`i>1Y zAp>ELlML5p4WfN%6y@*={-!qHX>*y{jIWBHo`{g3hJV_*zY4h`N^bf=p6sR?$zOQg zClo=pW z2GUeYtk%>8^V6fAcc8>Gl#}~7%e7ud-0PK0;#{@CSJHbp8We{&Du+136of5TsFPAq z0Aa*N&|&CQSdd~+=E~^Btau}8wj4mul@R){s;7kkoIy6NdDrmpAGn`C14>0Hr`D}u zjSe|k-P9q4U;vdkW!hPgXaklk;0bk-zcKiT$()r&A~KV`+mwyq_YHhdF!x>krQXq{ zleF^^jh7O6)&DR^8m;fu@#n$!7pL3E9(A8DqK(_CTth(A_zV<0#m(m3qIw=01S7wI zz!!b{M&bPPA=w+Rd4Pq#nsWkJupl8O!!YK`Aklhq+|;b`sBuwp6f#^8HuCMAc{SM% ze-o|_Z~Uf8y*yM`vQ%QW$mFc>!3=ex(2KbhVTXYi84+p~486i$IA-%YCMHa35=bSB zi}yAn6?6>@t;wz^4qEC2zE6@u1~~Q$`=;)jrQ6FNyx@i>%K#2f`8u|EMJ9B8r?dXA z|D$iw=GP=RIA;8l;YykOxP((64Q^3&=M#n1phK91_VzNz4JDNS-p4`9W0%IWCfu!< zL^dCUMt6Y_ghLODAajQ9lA5u$Wj%af0n4^a=XVAltw{&+EV#*=5M%qd?^iEH05skP z6u3wr41EXPA=%Ak^GztGr6II;$GNmmA6Uosqs*W{?(D(S@(z84_X8 zTL0cI%!+ns_G7qO#(RD3xf;T@8YNHEI-zYG4yxm2fSCRR7vNs#xj zv2Vu!2cXp|i>hT&jw?w$&|3lhhqRjHzL3{(sPQcbM!(Pj=NAA?jo*W7;lG9+=uTWo z+70J6C)uw50dJt124Nrt(8$xd&123fV$mfp!K#^0G_;^4ng$}LDY~Gj?)(1iw7Qfr z*iEEW#D1jMAM-wD5-ys1K}NrVZS|E}%R9NMOvM~rVqTCIpY`=XV1@BsirtI7kgQZ6 zvt0^qXox^^1s@Yu3=_6sQI37KsNw(f9MYsK9!2;L|Hr3^&#Y8--{!970iC zLeZ$~9TA&x%QCWfc87rp`J(c@emsbVZ?vS3G6RGo^lVV+6cLpT?eZdjV;E6k)}!qE zqSie`r1|!6J+|Ma<>_}!3kmQO%|435|4S*fp8)wb6A6?%{CAgkK)8k_AN?Ad!E4+k zrDg;|1uOtT?RMV>1x8-DXfr_DN{3`FGXTrt?yduE9wSDqyB>LhW2Y3Psj$e&@-S<_ z1d#E!AQ*MS2A*jP6xw1}iYAOa0febic$NL8nH&&;jrtDnxF2FTqEt(h*^UtXG(LemTd%7`OUEaJ~bl>dV@~RB=`zy6@T28E! z>k=jE0+u@}f- z*ua%w#B%43zCe1Rm8EF_=UBsO7H>yoz{@QR2)%C7TYAb#nGo}Wz< zOLx->&aVR_+N$a+(1JCKCc~}WJ$H(tI|k^^CWyDA8Z7aL? zPwlxoby3>AAOF-Z3PaTAurvHJ=>+A$&%7c0W*g7sBtfiS&Z?#7uQ4*_>i(+#z=^Ch zWlIOSFve?dx3U^b_DGi`&qdLWDV_@E-R-Z{Zf+;itV?F7GMHOusmN)ldbO-QXF#$Q z_>I3*0OfpXgC##Z5}hd`UQx}MOOvif@z`L|ngLqj^=nApoz&@+ z8kOt;k>3#7dKII}i0R?o^?d~#xphQcyrs2?LwL`wRL_tw$p(_-=|G5V$VZhcO`LZo zhwc0oTZx4d2eOsodJVnBtMk%_@+mrPI>Ui-b;kWe(R^0>j8vVSg5p`{zO?_uR^VqJ zANXY=Y91Rq&aa;|imSadTB)Jx6m6Ck+12uhNDE!U27{%i-ARp;mU$%;cqP?0*1z|4 z$Aj0GZjUR^>T}d%=6r}e5^z=EQSY$iE@p${_CANn`L6D(T;Q;O{Z!*(bdaYzw3C~C(lC}j zOxfPdEri>U`q=N4sLI2JWXoG}U76k-#@o`Gz4#TNNv1ur0p~RUa6J@hAAub5 zOTJ3>_esZDM*O+C2egeztHT4%e`U^AS+;L+DpUJ?=M8fHl@ku%A%p}Y(^S8t`NV2e z46SF0Tr(C^L=(0ngRdbqK}<7ZDwU#l*Fy1`e!aW{`=ZEfDYBQDq>qhrZbBep@ywLQ z;F^R=q^C2n>Gj|^qocA=aC(Ayve3B%0Y%)?7bvGZf{ScJq}Z z@v(gpC3*Gwr5#l}kM_-SnFp6sMg+=3)>LBEkYO)9v&A7FFG^|MJt(LlN(oS9LO+vn zHIa^(E$*NZ}qwyY0t7L;dmdf0pVHn;VJ1xnM{DDLvpdx>q|;S1`{$LUel zDR`Ve3C*9#fiF_?3|XHBQ{yJ1%tyWHPBz2DUc#Q^DSG429zR|FrbQsRcgT2|zMhTm z?;KLaY~5FF%v;RA_gKQYh#(1Dmgm85k}(iQo@K;v?F+zdNexky?}ioiw-7Jsuh(Mgm=N!xF>U| zz6x5r_WiprdxDVN<@EgJ!(-$ur5QRvE^_w4=r>&anh^Wnda4cq9_qK8BR`%rdbWXO z{We|t;(t@jZhSqL=r1i_r~2aRxcYMLi4;9~a{m{up5Buh+psvjzkYs>{5qt(q|~}44%|9!^ zW-i$DP#CR3-&Yp?5ME4W^Ops8PD2|fijJ`5O>LH&@V_N?H$}o0o4@lX z|20pcPWP#SQkW*hUv8QG_G!M-V9Gt0Tb~HL5^Z<#+7sIU&=LB*pT3(}Pwkf-E=LG? zzGVRs=fv*=n|!8qAF?bHx@x&1tkHEPHsT%w3SEQzk4H4o64)DZKDXW|9# z`&%C@1)QnsJmAN=a|`-EtRGFTN${_hvB8iuZ3r_s0BiASB^#RK8 zPz#0a-$>n}_V!h{Eir)*p-NTR()eJe{)Kc2jM_MXN?v9)W=zM0ldaP4tRW`;os5Rh zz&HD+`VeT&EjWL4_GSauQ$}$SrXJbHHmKL0c?2(NU+>@`etT?L!w*+(-t9&t;rZO? z6#;%ov(a?hbSV}aurW&Jf2dvK|%*6=}OB-k^7zD$56BhYwZM%d9iPdvGnoxF?o(| z7_ZZ*b@SXR2nr$Q}<;4-ur}l-Z=PrxMQcbiXRk?1SZLbmPUfv1H*E+XWXy zn$w`x5f;rcbb~8mH~$2W-aP{&d6m6y3u4nxku$-bew&>5Td-tD6GGM1CtF_ognqTxXd@M^A_8w1Z zO=orvtK`8V0_zB-=7IfowqP**$X~kL#ZpJQ36*=D@ELQYqx?&AE#RV zobRtu!t)UpCONM+W0SIzF7aYBj%l_ssj&4m%JpJBP%yVaCy**RrE?Bo;hRpaoi`xG zWiz7^zVvKLkW$9C^?cKOU@)7Y*b;63Wj@pjk_IR9gFRD$VEe64D%dL%5X@DE$Zy1hl5h{+OB{+Rct zUt598_!u2Z;8^0P3uU;fKy;cUUq7Lc^z$T(XJxH^XG~;^{W(p(F-H@%d$&iu;w~e} z9jVG6PqP;0%#3+QI4%aVCvR6i*|Rl{xA-;XJ0PN7SwxSgAwySU38|Z_ASc90(~UZL zaEX0KmV!mLg052C5W5?ZvH!{G@`uZ1%ZgvET6a>=qk=mJK3Iu1yh4mg?~5Do2pke* zZGUd2opoLJ^glTr^l({Lv2tI>iq%WsE)M-=dV4kP0%Fx;<%HP#Y*lOXEyh%L6wR0G^*<&W1Lby zgU~@ZXw*)n!SQN!C2g6`;X&MQk-NPF4y>Nn)oxF{@fS(YvL0XESQ!7-{-hmOVyVWMTq_O6Jul@Ac2%U`(3fhr0L9 zTh@ILs7&v}3?tBPGOTy)0pb)h$kw93uvyRyMPpPL;fPKQ($F2>bjnf-JYxlgbxcpY z@UjKaL#%F#P;+j=R1*ihnmWHtvKAWoaPQ)tA8p1RjV}mWtP8WqQgab3O3g}&#Z{E#_0u9c{b%YQ zBeEv2RV1u46SQFV<#eLAHKennd<|fSmBn@mSsvc#Cec179UYt_fKN=`Z2`$t82Ek# z9ennueEy=1%0GqEYzFdry}!OLjr6wJfiD4HHL2AX06B=~7$@HmWIVgU)wMKW25c4( zkt7#Hu8lN;fc6)lG9FUKegq!|fz|5a<#eYwY0tCqOUweffROFg&!CRd)jV`N8)i#2ULV2Iv zer!V_j3m2kBSD9Elq*7Zzaeb2?M#OsXo%FVx_k26jg)?~;wkGr z{d(8G7*gzX50HDD3&r66OG6ZzhXi*6*@+8m_VoOD%(9CIir*Rn;7y0In8gZ$Wsf+u z3Zq29Tp@S>!<8Jct(#wetD~{2c?ymIHUWZZFtOwZt@H5HGN7G^1L_V|jNT~*>oLb? zCr1%hyPci9zOC+C7aR-}Z+WBhx~U$JL;CaCpv*H}FJs{&N6Ew3q_Jc@d) zZ-`JH@akI|;xN&Q&?2R1(P}Xr2LB6_Mk`74T)fE~LqWsxx}8mKnTCl;+&8nuJzoUk z`6_OvWS-gj} z|IU6Y99_ai=BJu0GO>h7+_Mwxqq4BgQ(eeApg{68^fd-U4c^9M%!F#9JxRBN7?9Ib zlQ~Ho>Q0mP{BVA-;5hR!z9-b^lnDwZvD8C>d!ra3zLDT@Q{>jDj9w;2XIKeW*)Q?f zd(O?hxIS3HoIqE5L+HZp41Wynunvg8KYNRf`U(n7!0hP-j-#jd-&Sgo9%+`uhe=({#kJ0flYlwSVAn-1ouhQ{a>0PwE z|0_{}fPLc>nGeE{N!hkBi2LDZS3h3Sf zo(RgyI{?*f@8S}mUtd*1jgf)Ixy`=2)jkD8v%vs?SC#<@QP-1}r%3&!i#RX=hrwaZ zcDkf>pn2KW-c$eD8(28K1ENbdtC*VwKIMBog+POGO$QsIxGBR8sDVk`Q%r2o5fG@o zV25*KhU-XcQ~9?DSriHjCijIOli~M%-#3|sH=s``orA8*JQfp5<)D-Y(hT&~4T8NA ztg$CVVp$t`J7(I zYulhC9FM7gLya;Y=L{?f-Yr?et!uA0^*p~K$XS#`95b%wS+jXGlrCuWN%|CtLE4#z zloUEUmd1)1>E&(IFl7(GUCg!fT;T%{7NP;~l+_6Zx;mG@yL*}o(MR)}GSz7GH(%s8 zyM}>eQMWdu z0PhlH;Jy-AWdEG;NI|}wtPh!0#?}T`Y}|P`RuEus>Tn?2F^ZRA&9LzKneM zVYq&ij#D}K77)KY)hsL$lh@JHDNw0KT=|(y;exTkAv3q!yCmdoA3aqrRC+jkE$Hts zFpHjiO`>weAoy3W?1lB?;w+3w`eTy6nYhAH_JWDBk+ z46&RMg7j69ElZ!zGZRanM*VjPN*;)jl8S?&OP~V900^LKr6;Ajx-DWe%{b(>A@~vC zL-1YjH^Rgfk?Q}z#l=EgA4LcJ#!QDPFc^c*1_S0nXZnm-nV5JzMnV-&*e^-l!4Mp! z3G5V5O~EURy=_hDUM2SjfGX=IZVD7@OaZ*DU@C|n6cA-RpuRq_O2J%cm=Rjy0EyY; zVIxWS`cI*E&`IthK22HAlpE&xkw{Uuj`LmEpnA{6)02)ObDR$xgEC!oXp^Dq!drjg zY#w{v#%WHq%96J}u^Ge?-y?Zs#1X@Xh41_$j^oGYwq^pD6?Rea??bW@C|hHUqd-jj zZL1Gu1F-Q%n<nHDPrpO$>*5wt@r943u`N)pj&nNg z95^+`mRWUqj5u-)UXb?fFd0c9LA5O>4vN(RRWLKGxX1yts5-vszG#%=zq@R~1j%=7 z=c;UX%Fgy?-o{U4#e|(aGTpngf_b`#b1?r7CO!m>pg9B)lvof=FH0W6z=ao=;HOs= zVT@L?o0~|`R)io@aHkBM!W&@R_CG-3VF2zgN;s+5e#KZ^R+wDIH=$_l#!qhH52>{t ze?Ml^Ulc1)CTZrc?-YDG$i8l0TP9U_cbJ;61O2A&7jE29S|pB$Pfq}@$RdmA!q=X3YxVk$YG2Mj0GOQ!8{g$_O-8 zg;whAJapFLemqLa74$I`l7V*vAc!}Tw}>vlH(Wq7*>K=e91XCu8K!{f<-!*K19kMe zdfo9NxTuvzf2aL_7QnU5t`-(&MXyt88aNLa;4+X<_rQ}SM3IKce{`$Qut379Mvl>(|!M=)fjp6n-h*dt%N<~+nmbY%S88lHF_ zD%3xjJ@u}CGBf-u_>*9@>p~%t-1Dz8cgSA#+wP@l4&)t5XzaJ@dqW9E?=DR|{i;Rp z{Mj*+-kZ^8l=nsmtJid$<`Qa%_`t73z2=KZKF^jR?w+Q$xaD0bSjj-2>0fw1mK1So z^!Q~(^L1A>b{9bkr`SgF$w9|+O0Wbsve(UzH#*DIAR_jQ29m8{jMo!^+)n#i82NYY zsvN^+AMe!17<*nY{u~grRcIMNfx+B-&)rm0!f8ZD>!8FnF$cOs9&s4S!)4+haBm-B z8oc@r{?$nIR;1NJBp9cII?a)_UB!qqb~P)wGc^vGHuE*FeSnj+)ZWVCvzhMObXOL0 z_<+H9WzdsPwZQWn`1#7eD*nA_tK4!(fGKm*(`fF7Vyvh{VMwJjhkE%x*0BWMmIU0k zpC93*d@GHbSULd z-}ft&RHnaBPkz?uH=AGSuuT(v(LMeBM;b0fa#x7jPtEvf-I$e7&M{mRe;JI%%f^`4 z2sEaUhOzKM?{+|euc(rY*JC1bWV0GQh&^5Q5g*#H1Y-M+3ocVVV0slB#uZyn9P-NU z8N1B%04yjkg^~OFY9k=4{7~j?tSIw5jN}aiZ^_Zk6pED~6!-+LC9;XT_14b;sNQ6PnsRvD!xL zpm{G&ahcSGV@9TKoP*x#Q9s0=jUb1DiMDfF*As{r+j9?R*k(tM+2&0@3s8b?F2Z$2lvMCq2hqw(GP- zHp{2haHAXUBwp>IAoZ2EIRR^NY}4pV5%hf<*o(nDKV#%sv=_Nw(AoM;ee15|@9s6Ibl1V)rdUi31K-hZPQtwbMc@=>PV8qiLr!INcrD;A}S6= zyegLOkC@LnRLG{Ot+A)SL13Tv8(1Rw#>Bo{XSV=G{@)wB5@B+Oh zPvO7UySE7D@D6V;y*4Z4kk|ieLe<^m{fO+(sy5%M64p&l(ya=?@ob`KE$`^ddllBj z>SFu+1A~EeMt_OjsR`WiV6_~@Reh&|O(8mGcOiC($xg0rXMkqvS_ez! zJSc4RfcWzYZ}$`qy_{R(!AO7gWJxsk4X-1l&vY=UrR|`b6$bP#Or1@YTH>{5#t@wu zA@Qo|INV<2@&RU~9~?Az>OfR#9)1-dXChGOT^9J^GG(tQf^ebqoO(`tI#c@6Qfu3) zH6k^B{jcSCk&BCM-6mPo%c4Xt>@p-`cS2B9U%a>19?O{U;`S3+tToY$Yep$%L8Pii zvcsH?zU*W{cd^aI2j+7d^z>vtuL*f$lON*m&BZ0HhIEd>`B0Uw!w&d`9}cAOeEZ3( z_}AvL^@E%2VIYIki*Jm4rVAvTd9V}9Ty`h(Mq^>V^=^l8;JYlPIh?gFjs+4+7O0^x zL%!gi&F7w(D0;BT9p@doFpcawSY`3R@VVw_+am|eDxVz{#x zE(Tjx_13Qw^fTXVxD?vEGt7F+3VTF=mJYdl;cNdaN_v7_ML`PXfE~S`U=7nkC9Sf~ z9HstP9G@a>FVO0QzmhR2aI-m|2r6c!-`Fu_$0j<;BX~CmIb6Ei!}+dIP%eVtG%HmJ zPeZ9?h7H@JI$M_oeLM#4|%)cj7nrFlP_OwpW#sS-$#VMp72zl#-ksRB*H8XtS|AgMPA?4Q+hcINE{Xzo*WAr%K~80{#OYb9ettbCiX?P-8`JZ_RkTBlgBZk zbh_`06vWBO6aeG@(SE!sMQR2OSjKf^l)jpfpdtQ8M=Fr9_VlkW!+b^?@jnbMLV{&! zvu(@tKerUmOw--GSUm7EX1&FXbCiqQG8x^gtAo>m;?2hjZd-l6{!RAk*MF-D%&9p@ z#KHsvZ5A7JeJ*l*C2()#Od!QsJVU2IVak>)xOL>^xjT{m>d}HX7HbM}@@M8aM{4o& z7U9Df+aC*t4_n|*PhxO0R+9ACTPF-zOk7o#L+%6+}F9!*?XK_&{AUWOyYE7?andA4RT`jz zJFnV8t%oigOMu`D<>$}O%ETtmD@kLRu^q*i{v!Ifo;!@6`MCQ`h18b=l{;iQ zb;-?vtoPx-X)UKfKZy?bPvibi9~7E4hJX~k7PW7e#C-rPbb!?6FheW3_X_=%fxe=_ z9~8ccfAli~jec(kyJlUdMlpsMwfS;xA8J_1aME`B(vuADF7tlztNF3TZFH3Rm-bi{ zCz2}2J#xlZl1EeZdPG4&c=o5luVDJ9K$tV@=rdMC<1(*mzL*lycdPL>&*gCz^;G9lKh|WvyIVd{9j{6$HjU{>>#fc+M!uC?HgEl;r|RaLkQSniW#H@I)`oJW1Y~^cFutjR`Bexj zg9OZsBB)>zC|Y=s1-(r?DnXV6cRMlR0CFdw22tj*C7rn*gXPERTsbyqfY=7?ub5&~ zPZB6=4VsO{gmC~|s4i=VR;G5g(!Kd+fTo@M?})$^4>drpMH#aR9YIjR+f+P0IlT(2 zLQKo0>8glHbSMqF)P^<0srSV66>Q@wDA|=Ml z7p;}|4l-74AxKZRbEsn6HI4mgg~m{Q{pFS06kh`RyHI7LN)gpY6}BR&=Vqi~@TiDw z3%v_=mQ8M~_t{|qpTLa44Y=Qvrn%bLRBJgmUdE;+jQ!FfE6X*$u9Au6Xb%9k2c6jl zt(IOxoq{@=t4x#0-(JbLU-!X73;aLMisrOw+Zs{2OrVt1 zb^)n$+OEYV4Us&0O8DrMtXw*~Zb}MaMLiU_cY*!s!wL5yOy`!QcNH>yNhfBP2r~T8 z4Jv5%mF*dkbQ)Ys=ekqq-A?zOJk;lK`1a!&dao1^Yy7Vu*^~U>S7RzR&vM2A%m>=9 zjVa;xAq8+@d$eXH>TUoJxB{s{0clSePWjkhkzC%=u>yETadvbaLZey|pZR5h;> z-Ope`X|^>zepc3%QmU_-QjtSmh07fKOTXor3lG~s6O+hpoWvl*zA1IqS)BBF=Iim} zWlL<5iD_rZhUdJ8Pb~eJ{HfjNCLe;)u}R@yPgg$FH|q}G*89x$dJJOEuA9HVzX0Of z`o|Exy}ypbJhq2)JiEXr_&tv~TkDi;a~N>TiGn1VFYD8UF-M5%Gs57)vTi4C4{I{G zu_;T9@c_g7H>B!_1i-uLi;CuWLcG-u8};8omb0vK24>yGabHwHOgAG?Nd>!=zOKIX zSt-@$saVx{Gf>J^)}?3I0)hR574&%4kQDtcQsAt^PV|t>#%a}ie1iL>Vt@1WHstCU zunJvPR<^Rxdal&wt|oSP$(mn2qXCx#^l)e6B*6CS3v?CE5;r`sJ8MDCUcz;J3mKPP zR=5lxhSX?$D^+qzkh6W4GeP?CxNYL2lYmKWvQ6YR@|3CiV1kX|g&e7s$lK`rcf5DJ zk?pEwNmic;gXEI}$MIyBg4?(f{ik$Cx8e|9MM!?C9~^PO6qH+oL9zBQ4a^SDccbS6~N}`P;~k;pi2LaEBYqQeQJj zv%Q$l0z8gvf+pG=GP}@7HZW9(=UeIe$@WYD_VY)Pih995?xzM|j@qD&mAOXGbM)BZ6v28(Y1I(c)YUE=<~bt^(|ohCwb$X}|2 z4>C$D_DPR&Nr8v5EEV=$jbI>anJ94&DYPNhw1kVt;p5}(&dEU8{gS6cx%>Qr^O=%V zHJI4>3MWkH1BUbyCpc3wP>CepiZ9r9#4u5WIUbLkHd<5)SGnZ@(Q zsU4*>4bZ=nct3OXQ`$}i4SOjK9l>K_ufohh3K%%acMV53bT7yhY|IxfzqpXV-$Z|5N^qg@f)LWJK-J!uTiD$6*EOqhDVdP~;Uqo_)!K+0gU0ORVpIqjQ50)XJT{nLRZ2y z4Non^MeeK56<(7O)Fj`H3V73Mj$3}!HZzpz+gj)d)l&InxOtl2ef?2H5sc8ojEaP1 zIcA)Aq=Ux*mFFKkK$(Y1EQpmOlYxkbRDk-& zq7K)7F2=w3S>wL5=N2>o9VI=bE?Twpf@sk+URGz7u;=Xvd||8b`o+7H6QRgiikr@| zf%B5TS(CgTdATJ)=BQrZkpw`DIfVXu5vij7N%k*;r^BwXk`qQw(#8^GA?3Ro{DwRL zzBJ=oliVBHlmK4e{P(ji>| zvvocT%0LZdOVWJj+~c7jqqgV~mfc!Q=!&bg%GP}sHOBcWRJ@1B{H<0Mm3f}qWoCey z^Wv}Q?v+p5v);U4x{o#h_nqr8AcX#9;~=!bUwK_RoEMR=>2xzpl&g-LrWxRM^&CP3 z-OwXOIz>Nj0sxm+5ndKIY4~p~klM@0f@spo{Ly~Xr^Inu1z)bUO$@(HPAk^ty4)oA zG+`Z>Sx~8=c)Mm3+?^hc;4Z)Eep)`&I9F-b&!anVG()yHdLv}-^NayA9g28HSUD-G z08`@f1vl#$^whCXYrdcmdx&YqO4|q9^C&X|fY56(uWPj0+IdQZr@ELL+p)lf9DyJ9 zjMwePISfR%OQ00Qn_XSZ{BgX-GY($RBEo}Dk1;O-^00=&ZaFygdCMZF7El0Im1D+8wMWHBDS*i?<-3>W7 zvnX|3hPcU_;!-Heu0fFC2KHH0?DL>TI8*l}IMp+JeOop`3 z)AVFreKn|3osGN-Ux+K-8+xA-Z>b(-NMGQEeibm1RqKVd-R_lq^-P5AbkwVPJo%Eh zM`Oe!-Qd}e{|s`@{s~U*dE`0$^`DjP?{5lKnUzjcBHn3`1{S<3UaEqNhf{C2IzIl6 zJbJu=hM?m~Gu~l{R5o(ee@W@jHBv4~65Lt~y^QPMBce%mu*Sq9-zX=mY zsuh!7R%Vm=rRB45PG6#_1E)B(4|)WAj%!yff@|BaLtqE}r;b$B3&UccbBSEJ$@|)G z;-8Q{B+swyRDJDA6%$%zd}B`*3*b>9p2o?>(6F{B+bX`!873Wieresld4}b-TV>fy z**$AW?Y*U7Xr@9>S^}_2THV0MNFKzrY*VG_{Ff(PLv)Ae)IABYq=_DY{vRvA(XCb|DX;#nAumS4Jg$G4 zx~n{(1?*H$Wmg>=DV9VfBjI@zcY)V>>2Nwl;cR5M+WQJbFXdKQNB{66zXE$nizXFn z2bfImIYHiTRss|BeQ3-`1J=rB7kCSEa5xTmLN@j~sj<Q6%}+;%5HxR)A67Apv(KWcxZAF>SeF z!LIerk}6Njxl7R*Ypxt==5hRPiU7 zuGK;{CGCwPFii_1^$c@}Tzf#UzZ%?2FJ@@l%gmQ)irljIf_M;664w@>cUsGNr0pt_ zb7v|{5zAJ4JQ=9jjW47r)S48{u_0FH=i9#0!8Y9aCQYW}=_O{fa)jae3Qgrt%7Np-+vo?Bvbu z%^-2}GbzxUdi%v*4CXlKE(?jP@?PP_OZHy|Srkifa*PN&pNVd0kGqT?vg2S z18GD+u}hiXfGah09yyIO0?6Z05wzRqFsg#4#Mv-zqBJ5OoU`y^@T@l*GpYcr`s8~c z6=NAg+Uc2nQ>WJYehTl0Bp}wHSF(@0X zptC_N2FISRUD%4|Yca;c;y-+k4g%e2X)Yt_UJ}8RausS%isaum@>(r>XE24MFrEQ> z9x2x3Gfp1d{&vwmIoj@^scX$KSbLX2$Evm7otblH)RQq!V4)~@HEw8GTiy{J9u-I) zQwuFuVM`mJoNqazaELF#QV4Z$s*h1*iWZ%6Eba9tiJ>4KSQx+lKi0d~2;+WzT=a2k zQH&Jye!92y%@$y-$iF20JWIHdzb&{Z8X7ENMfkmp1*Q`t- z)oDN4YxrCrB{()POD1$P%o-5F(~KEH4f_v68#Bo*IfH*ZPaX)L^XQv@iFmJYX) z`PgEv4+>n$fPtAt1Af5^@rO>>fBulD?2m8(Oqd%GSLbv{XHTMHoxU@99tvxAm8^~w z3B5EpQ^QKZKFa5XwWr87ur*QH^s%|Ks|+5b$@0BmwF)WY^=TTVWW?B*Gf!R4oAlw_ zzn`a%>|%-6hk>)i9FMK z^Y}EeMLFEM@$?Lb{i@xfNMkmt+Df)we)l;>E->!qSrm!EuiX0v0a>sY9*4t$22hlX zZYFtX$0s#w|D#)vz6*!dps(ep@mPjJ!iees+5K`06E+d-@rm%NGTu8U(hU3KZeY3& zfI@w{Bd|WlX%`Ztk+)a=@_~xm5tHR(uooD8&5mHizV0b`_bvi(N;7we$v_jmDsk}9 z?F^IMWhi368z>{>6;rhSelI)PcQf9o;1c76IQ7NBtd-M9IEbq2+pZNix~_1f=A7H# z_5M{=M?)!z`TRk9dzG^o-rFc@xAP;5u5_29BGUc~LUYRw^>tO~t@`JMwS|NhA3|Wr zXmo>>oDfduktMM0(SH~MqH8i|8)F&9f}cA@DTabrUgh=FDgvJQqdk$5vs_j?I$Bmm zGC25=6Wq$swK;^GDlilByqb`nUM<|!tfH*S{H+mhd~p#o`JMd42F@!x_u=OHUAn0y z^~+_&liH@jBf#Wjm2&Zpb+wPFds7n#Wz`)k8snevx;xs!~}n?3CUby zm%EY%_1+H&Z4l7EwvyZE4b$P4FAq5eDnJgxH9hHY#6zGYKCD-q3290dq*bW(l$3)a zV`&1q;LRQL+!oz5fn0LdcHR4Hxc9;9T8vC+x(#h7&Uzna8fz`jOJ_R!#x(C++71DG zb%YR- zAWCd|bK@3sKsg>CibgSOE1vB0Jc6nBRQzyvK`Ec0H?=m)Od0YISmBjoS|}IhNS0Xo z04(%`W=bF3(#LMTN%pLee;hElMG#pSOy%$4`UJ9K|ExLjBrzk|3mkZ$`Vn$ag>r0}=0(euF&HA(`SEx-QqZP9P(9p|u@$p9x(} zGEqhh_SC+F@p^B=p#j(Mt22JVtMAlQ&IxU*ygqtB^$(hB>9H{0#5p%A?*F#9^dt9f zfAPih^bbk#`XGm2$ys#*HeiA5&{F#azL#T>OOK4aQ&&h7H4i^H^gGr z?RXi`S0Ovm$mU1bk{w87YbTtv@ao)c&4xtY;<(!>^?-SAD}c#oV$+NAi~Ii)3lrFN zI+P)9l|x&8hP;8T^fhZZKWPviKp*snOl+GSBPoddZLmrO@XBR$7olc-sK0jS1 zN1O^x;Z{LER;U%uX;E;{zXkutiQiJ6`R#NaR-(tnoJ1xr)=|gr(%}auH3}FC)P+e2 z9IK{h7d#3)xaUf(N017HR9dzVw{Memfi3ab%GL0-fJQm;O`05wsaE~(mL}cTxXl-) zD^RcQived&fq_BSr)Ou~wzaJ>?23B$1J_L&Uz;&7+v-HCtle&1*WNv7pw|u)a~ku? zd04i_AVS9~E`8M+Js1w_f=WgqWE?mCUqZ1)9L z%wk9AcpiYySEPSXQsWBatF_Ne@X%ga#Aey&<=(|7pORZQaO#Iq2f#a9fcX#;sCh!S zmt1Rs?NkZey*7xd*T2>G+IY0ym8vRhd?TU6RgRsN{^UUf6?Ir|%;NoxZz|Y|=IcJ4 zdieRzpor+}_miWWR8q#ufA^Rzoo$Y|BnS$y@DNca3VsJvu`n;un>MWNO@ETtcuur; zy{A>D7EZqz-(@c*q);bnYQ<)v^GWIB8=ijtW>}tkyrgTx==B$%Yn|jUnm>UDm5{(G zzaa44;^KVgKZ=)6D|45BDC1QttnI=fp$QT&6-!qB=*3xMz$nVL|BmV*;d{5vqgcYuNX$M` zNOA1oz+jAkB@QwjaDyof{Iu<#b8hPAB1Juuf{m!goVHUuLS9mJ<%P9aVQE$u(eUY< zV{PA0cqt+hjiEA~$NfPc=AYMeBOktDZ^TUsHF#8_c$T3estsBCZ)e?iPW38v<6WEJ z8|#^|X;;ghk&jk#C1-_pw_bi&1X`0joWe~`ker`1FdgK-Q_wRP9Jh8%YB<>riGWqb z33j*(>$=PD8-E-hH=b=`9sR9Xnu%5uLmx#yXn{sK-eKr2EqV;7P|ECn+}9&Z7FE|r z9>4i{@}^b)F1VnNB!ey3Iv4G}C-Z-L_K|~ry=u;$V-I%#*Xn5Kqr~JV68+>qEFm&m zy&2DznT89CaI?pZ!&7LLIEzrUod*?IdHFH)_4#bo$)_Ziq?mmW{)MayXx$`ZPSgJC zr18uYZl%1zb-Um7b;{Ei0E^xWy-7BHx3eP)OeeR(TREQo*o~{?4`Wlb8Pb_U4oDKA+X3?%T%1 zu=NOKA!8~Mz7vis5^ir&L%(cx9&dBm_e2%C6`P(WG2~aWh`%1Kj)xMx&nF|(*k0~# zx_X(mYkG}4(9k6U8OWIp(syyX3g6tuoXx6Gmb7Xj6#rLx5Yw?`fNWbEpLs>rz;FsTde+6>LITzqu?9XGRQD74|60GWEC;GQEV zB`c2e1&uFsVb2#KqXeQI>JQxuedN`qakeOEg7!80f*4(!xO@M7UW7?)ZwQuxO!SWq zRlAoV4_VX@$ftj{T2cVX5*a+O+P`N-Cvptmm$1qZM~>^M=SeCpQHs+_Ro9w$rWXS- zDf}L>Z~GQzrCO0xTt+$p(-y6|jwI$B;f07$RX)h5lpR zWM~1CDtHRkO)NYieA)p`N>vXZ)%>H{9M-Zu&bFuE&AQy}rXZgPbIdt9V%u#_7-*>y zEg{^ntoUD$erw5lwA8K+y*0dgUQNMvL%cwbnC_y#fGByFIvZxo_tHg>f}P{wU;xtNG0bmKRzxp7YRir4%yJxOMSNITb@ zBo()vcTrwz$ic69gCCgn(Tx3r{RIzmDp8XjHO&Z}ZoK`PWub@Dqxqz@dZyUu_wHeW zBHYY}8nlxq)t7L{`NsMPRWx+KiZPnxFS32)1+^l-(3KLHfV(wwll%Gn ztD=~6GD8M!>S)Q+Jd~JwQY9~DVzWmfnovXK1V&bX_Lq+Dk~6)>BnKJ<7o^}HNi_mi z`eEm~HH`anFi-u<7c?%7XRpR@km9$96=9{L>8}TmtPXzV*SagUt;?=j> zzvh$MN-UtaQ)1(fzFZasSF`_bL3Dyx9EN_k>a@~R#Yd=Hq{DSZV;rghQ!4R)ISA}| zt<}P{X@>-55z|q9P!znz3w&Uk`AY;;8UgTFcs%Jwn(oV7aLwF|2Tc9AXkN(8<$igE ziBf}p^Q3DXah8pw=q=&gD_&4cb-BKN!7sG!y6v$~B#GSq&iFKU!h+Cra$*n@H8)+q z*icDIY!J;M`VZW|XIP-0)zd?abtux|YaC%qVfY?NfQa`m@o5IPAWN@&&Go+F2r_@9 z@?=2&Ya)Ef4J8c|)8L|-Z|c4|e6g&BjzkrY`^lMKjB?y=LNEI-w2uG2am=_I)-{kN zGddZwh{e{`TQERdSbpUbJM40s_2Wqao@vFuMIjVJ=PmD0H9x{s!VYOqT(Xu2Ob_ZD zLIK;mN$NbHFF$x)&6X_`c>N{CLd?|h<%Tfi{Dz6gocCq9uss(h&jQr&R#q4GP_{vF zX~#hn$GTghK+VAvqad;B-E(J^eoX>fnT?)tok`@S2@7pI?iY%mrFxo;6Has_JG;mj zWtx7U#JoHB(0?l8msXpS@77%Hj$WWY6=1reraf(?6lsOWX;6? zTu+pBY$&P%qit{fhv~hKY9IKV894t2!7lO@7rP}Z`L~qVWG>w~Hz;iozHyeUX40C%g*lrOZJg8O;E$;Q z(pG5qpy%}d9hp2la}h$S+pSlpI6k1v22jTi@WL zhbP?r@;|2jj~N+iMRLhtvKtK4J8lh07^fONpTlrH&SB#ydE<*DT9eLCUc$+@nzxO&Vni011T}Arirx%uU#jJsdx_e_K{SA4 z7KR-`YJ`bSXWItt@xyD#e~3d)2}Y8@6HUDKH+V|xaks8)tyJFZ;QWk@sfC`1NJ9iX z!^U=S&k|BADN?v?jZW%6QSF@Wd%kCf45+KI;P>MMVDdAGZel8H7(grm0?Z3p#pKHHhOeqTWM(~b-PB102* zh2DC}D?OANa)n5*mRvS}1;p!^d$Op9%uS(cCB^DVJ~vc5!g5SBbBxw=n&VI&J9g!R za20VRbCBctA2h;Arq!GqM3%U_|qw`(T*o~N<{g{MI!3twG;aHew-(Y2yy z5Q(JD#GA^8B>vftBUw=lJspmH*lXpd7Nq0_#>!;l)iuA4b=>v>7ubt^_g4eWRiIh( zR7xVW{PNrOnn6kR*481@vo~jd)alZ(20Dt-jjo%0prwB_t^}rBF7+2$&$m)oF`9{{ zUzykye=!pFb4}WqzLYOUXz3U@L?vHKzx+5e8HO7rGK@uj@7lbVk~qb2_&4ul|s6 zt4ki+cd;<}56mQx^?%@6uxNfGIL(ipKtkYL;L{`1th=NVBDa&*O%fjS+#(EY83OTJ# zgdJ7}vOe~tkUY;Fe5*8V=G{_VD@PhesD~6;eAd)Lxxa7o@n0+m(?ZdH0fHy09oFo= z3CpA(zEQV3$9d8-yucXAMP2M`{6&?`G>GTslL+{ah$O%~`t!Ivg1EXm%!W>6;Qr5% zFqqq?&NrDh!o~8G;94=Z?tqpk1ECu36SUZuoHxp>EuNMz4YI6D&Pu)Q`aeO8SD5D^ z4+L0C=FB@ z4EoAq!Pn`ObLa{(c6!h$$@UpqoV#z<xUj7R{#0+m(lRXq zD!G~%I)rXm1i&nd2NcZ>q+*Xj@_^!4!mS`Fr1haX?r~&;p2gxD0d6EsZfZ=v3Q!Mu z?#IhDC|+@ zul-Qx6F(y3gy4~y3JBKmYf^Ad&IfKA-ud75_ZC-fPzE<>W=(&T<}}6lxp+&PEf|^P z_a`AM;XOEmP>p#v8xKtz=k0o(Ohgd70@GyGQtt4VyZY&Y3ds74Q1`>kG~ctw9fA9n zI$Ia)nbEi5m1h!XluuK)bLAtY{Dh<4*=;U)VA=(^4+8=R+)GDdd{I{_VVpLkiC zAxp9fnZL13*y3ERjJgwi{(%4z$EO;9h6`Dpl7=|C=8OGQXsHi!^n>rtXEIgv`z&nV z2PtVTT~QlX2~s&s7PeU9KgEoq%ILn(Dd*^FA#OgOqIkUiKaSpfx;*%6RD+!5D(m^< z_3?Yf#|z9v;P(4z-r+Yoz!}7fM!pb99wmhPh8w(7eWq}v;`;F6G=yE?Nx_A}!B;T`MfK;s)y>|Acdv(5<K$d&Ia9bG_o4JWVnxlHxb@U{U-P?P9D3fj!Nhv7 z(cB}qrY8?-%6+KP|N3D4x%V;>JqYvnZ@Kg3p}ctShVXp(U~&2X^Vr2*JY(h9_a7o4 Q!2M79y~4Yaw}yWI4?7F?ivR!s literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png b/packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png new file mode 100644 index 0000000000000000000000000000000000000000..47766a8cb19d47949e7a1566af5b5f887fe6de6c GIT binary patch literal 1303 zcmeAS@N?(olHy`uVBq!ia0y~yU;;836*$;{)FGSGfgoOSkh>GZx^prwfgF}%C(jTL zAgJL;=>T#Mdb&7;rukz`Ov{m;k1aL<^5K_G>J zLE!`ggTn+yh6V*@1_no<4NW{i6C@cJIE+RWjE2K#dKk?Y^e-Ru>IIqYvxTOd1r}}$ Mp00i_>zopr01{5G`~Uy| literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png b/packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png new file mode 100644 index 0000000000000000000000000000000000000000..47766a8cb19d47949e7a1566af5b5f887fe6de6c GIT binary patch literal 1303 zcmeAS@N?(olHy`uVBq!ia0y~yU;;836*$;{)FGSGfgoOSkh>GZx^prwfgF}%C(jTL zAgJL;=>T#Mdb&7;rukz`Ov{m;k1aL<^5K_G>J zLE!`ggTn+yh6V*@1_no<4NW{i6C@cJIE+RWjE2K#dKk?Y^e-Ru>IIqYvxTOd1r}}$ Mp00i_>zopr01{5G`~Uy| literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_xUhI9Z6w.png b/packages/superdeck/example/.superdeck/generated/thumbnail_xUhI9Z6w.png new file mode 100644 index 0000000000000000000000000000000000000000..7c70e86d20eaba34eb55f44739b44112a27b829e GIT binary patch literal 13164 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 PW*`MwRd}VeY3Tm}=IrUb literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/slides.json b/packages/superdeck/example/.superdeck/slides.json index 66e452a0..a547e161 100644 --- a/packages/superdeck/example/.superdeck/slides.json +++ b/packages/superdeck/example/.superdeck/slides.json @@ -8,51 +8,28 @@ }, "slides": [ { - "content": "{@content}\n## This is an example of a widget\n\n{@widget name: demo | size: 2 | super_name: car }", - "key": "bviQ6Lzw", + "content": "{@body}\n{@content}\n## This is an example of a widgets\n\n{@widget name: demo }", + "key": "BEcskpQr", "options": {}, "sections": [ { "options": {}, "content_sections": [ { - "content": "\n## This is an example of a widget", + "content": "\n## This is an example of a widgets", "options": {}, "type": "content" }, { "options": { "name": "demo", - "type": "WidgetOptions", - "size": 2, - "super_name": "car" + "type": "WidgetOptions" }, "content": "", "type": "widget" } ], - "type": "root" - }, - { - "options": {}, - "content_sections": [ - { - "content": "\n## This is an example of a widget", - "options": {}, - "type": "content" - }, - { - "options": { - "name": "demo", - "type": "WidgetOptions", - "size": 2, - "super_name": "car" - }, - "content": "", - "type": "widget" - } - ], - "type": "root" + "type": "body" } ] }, @@ -61,22 +38,6 @@ "key": "xUhI9Z6w", "options": {}, "sections": [ - { - "options": {}, - "content_sections": [ - { - "content": "![Mermaid Diagram](.superdeck/generated/mermaid_spzwggdT.png)", - "options": {}, - "type": "content" - }, - { - "content": "\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n", - "options": {}, - "type": "content" - } - ], - "type": "root" - }, { "options": {}, "content_sections": [ @@ -102,24 +63,6 @@ "style": "quote" }, "sections": [ - { - "options": {}, - "content_sections": [ - { - "content": "\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo ", - "options": { - "flex": 2 - }, - "type": "content" - }, - { - "content": "", - "options": {}, - "type": "content" - } - ], - "type": "root" - }, { "options": {}, "content_sections": [ @@ -241,6 +184,26 @@ "path": ".superdeck/generated/mermaid_BTVEzSEg.png", "width": 650, "height": 171 + }, + { + "path": ".superdeck/generated/thumbnail_xUhI9Z6w.png", + "width": 512, + "height": 288 + }, + { + "path": ".superdeck/generated/thumbnail_dk6NgW8O.png", + "width": 512, + "height": 288 + }, + { + "path": ".superdeck/generated/thumbnail_MGrRVh3m.png", + "width": 512, + "height": 288 + }, + { + "path": ".superdeck/generated/thumbnail_3thjboPz.png", + "width": 512, + "height": 288 } ] } \ No newline at end of file diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index 831aa105..4d4819c9 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -1,9 +1,10 @@ --- --- +{@body} {@content} -## This is an example of a widget +## This is an example of a widgets -{@widget name: demo | size: 2 | super_name: car } +{@widget name: demo } --- --- diff --git a/packages/superdeck/lib/components/atoms/cache_image_widget.dart b/packages/superdeck/lib/components/atoms/cache_image_widget.dart index 7f1a2a43..dad8eb64 100644 --- a/packages/superdeck/lib/components/atoms/cache_image_widget.dart +++ b/packages/superdeck/lib/components/atoms/cache_image_widget.dart @@ -5,7 +5,6 @@ import 'package:cached_network_image/cached_network_image.dart'; import 'package:collection/collection.dart'; import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; -import 'package:superdeck_core/superdeck_core.dart'; import '../../helpers/constants.dart'; import '../../superdeck.dart'; @@ -66,7 +65,7 @@ class CacheImage extends StatelessWidget { ImageProvider getImageProvider(String url, {Size? targetSize}) { ImageProvider provider; - final assets = $superdeck.assets; + final assets = superDeckController.assets.value; final assetUrl = assets.firstWhereOrNull((e) { if (e.path == url) { diff --git a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart index 77139aec..06731e8c 100644 --- a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart +++ b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart @@ -2,19 +2,19 @@ import 'dart:async'; import 'dart:io'; import 'package:flutter/material.dart'; -import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:mix/mix.dart'; import 'package:remix/remix.dart'; +import 'package:signals/signals_flutter.dart'; import 'package:superdeck_core/superdeck_core.dart'; import '../../helpers/constants.dart'; -import '../../helpers/extensions.dart'; +import '../../providers/controller.dart'; import '../../services/reference_service.dart'; import '../../services/snapshot_service.dart'; import 'cache_image_widget.dart'; import 'loading_indicator.dart'; -class SlideThumbnail extends HookWidget { +class SlideThumbnail extends StatefulWidget { final VoidCallback onTap; final bool selected; final Slide slide; @@ -28,72 +28,92 @@ class SlideThumbnail extends HookWidget { required this.page, }); + @override + State createState() => _SlideThumbnailState(); +} + +class _SlideThumbnailState extends State { + late final thumbnailRequest = futureSignal( + () => _generateThumbnail(widget.slide), + ); + + @override + void didUpdateWidget(covariant SlideThumbnail oldWidget) { + if (oldWidget.slide != widget.slide) { + thumbnailRequest.refresh(); + } + super.didUpdateWidget(oldWidget); + } + + @override + void dispose() { + thumbnailRequest.dispose(); + super.dispose(); + } + @override Widget build(BuildContext context) { - final processThumbnail = useFuture( - useMemoized(() => _generateThumbnail(slide, context), [slide]), - ); - return LayoutBuilder(builder: (context, constraints) { - final child = processThumbnail.when( + final thumbnailContents = thumbnailRequest.build((value) { + return value.map( data: (file) { return Image( gaplessPlayback: true, image: getImageProvider(file.path), ); }, - loading: () { - return IsometricLoading(); - }, + loading: () => IsometricLoading(), error: (error, _) { return const Center( child: Text('Error loading image'), ); }, ); + }); - return GestureDetector( - onTap: onTap, - child: _PreviewContainer( - selected: selected, - child: Stack( - children: [ - AspectRatio( - aspectRatio: kAspectRatio, - child: child, - ), - Positioned( - top: 0, - right: 0, - left: 0, - child: SizedBox( - child: processThumbnail.isRefreshing + return GestureDetector( + onTap: widget.onTap, + child: _PreviewContainer( + selected: widget.selected, + child: Stack( + children: [ + AspectRatio( + aspectRatio: kAspectRatio, + child: thumbnailContents, + ), + Positioned( + top: 0, + right: 0, + left: 0, + child: thumbnailRequest.build((value) { + return SizedBox( + child: value.isRefreshing ? const LinearProgressIndicator( minHeight: 3, backgroundColor: Colors.transparent, ) : null, - ), - ), - Positioned( - right: 0, - bottom: 0, - child: Container( - padding: const EdgeInsets.fromLTRB(12, 4, 12, 4), - color: Colors.black.withOpacity(0.9), - child: Text( - '$page', - style: const TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - ), + ); + }), + ), + Positioned( + right: 0, + bottom: 0, + child: Container( + padding: const EdgeInsets.fromLTRB(12, 4, 12, 4), + color: Colors.black.withOpacity(0.9), + child: Text( + '${widget.page}', + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, ), ), ), - ], - ), + ), + ], ), - ); - }); + ), + ); } } @@ -132,7 +152,7 @@ class _PreviewContainer extends StatelessWidget { } } -Future _generateThumbnail(Slide slide, BuildContext context) async { +Future _generateThumbnail(Slide slide) async { final thumbnailFile = ReferenceService.instance.getAssetFile('thumbnail_${slide.key}.png'); diff --git a/packages/superdeck/lib/components/molecules/split_view.dart b/packages/superdeck/lib/components/molecules/split_view.dart index 147b6e13..48173efd 100644 --- a/packages/superdeck/lib/components/molecules/split_view.dart +++ b/packages/superdeck/lib/components/molecules/split_view.dart @@ -3,8 +3,6 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:go_router/go_router.dart'; -import '../../helpers/hooks.dart'; -import '../../helpers/routes.dart'; import '../../helpers/utils.dart'; import '../atoms/sized_transition.dart'; import '../organisms/chat_panel.dart'; @@ -43,13 +41,13 @@ class SplitView extends HookWidget { curve: Curves.ease, )); - usePostFrameEffect(() { - if (context.isDrawerOpen) { - animationController.forward(); - } else { - animationController.reverse(); - } - }, [context.isDrawerOpen]); + // usePostFrameEffect(() { + // if (context.isDrawerOpen) { + // animationController.forward(); + // } else { + // animationController.reverse(); + // } + // }, [context.isDrawerOpen]); return LayoutBuilder( builder: (context, constraints) { @@ -68,7 +66,7 @@ class SplitView extends HookWidget { return Row( children: [ SizedTransition( - sizeFactor: animation, + sizeFactor: 1, child: Row( children: [ CustomNavigationRail( diff --git a/packages/superdeck/lib/components/organisms/app_shell.dart b/packages/superdeck/lib/components/organisms/app_shell.dart index b9e83001..75ef4abe 100644 --- a/packages/superdeck/lib/components/organisms/app_shell.dart +++ b/packages/superdeck/lib/components/organisms/app_shell.dart @@ -6,7 +6,7 @@ import 'package:superdeck_core/superdeck_core.dart'; import '../../helpers/routes.dart'; import '../../helpers/utils.dart'; -import '../../superdeck.dart'; +import '../../providers/controller.dart'; import '../molecules/split_view.dart'; final kScaffoldKey = GlobalKey(); diff --git a/packages/superdeck/lib/components/superdeck_app.dart b/packages/superdeck/lib/components/superdeck_app.dart index a10ad4a8..ea2703a1 100644 --- a/packages/superdeck/lib/components/superdeck_app.dart +++ b/packages/superdeck/lib/components/superdeck_app.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:mix/mix.dart'; import 'package:remix/remix.dart'; +import 'package:signals/signals_flutter.dart'; import 'package:window_manager/window_manager.dart'; import '../../helpers/syntax_highlighter.dart'; @@ -56,27 +57,26 @@ class SuperDeckApp extends HookWidget { styles: styles, child: WidgetExamplesProvider( examples: examples, - child: ListenableBuilder( - listenable: $superdeck, - builder: (context, snapshot) { - return RemixTokens( - data: RemixTokens.dark, - child: MaterialApp.router( - debugShowCheckedModeBanner: true, - title: 'Superdeck', - routerConfig: goRouterConfig, - theme: theme, - builder: (context, child) { - return LoadingOverlay( - isLoading: $superdeck.loading, - key: _uniqueKey, - child: - $superdeck.completed ? child! : const SizedBox(), - ); - }, - ), - ); - }), + child: RemixTokens( + data: RemixTokens.dark, + child: MaterialApp.router( + debugShowCheckedModeBanner: true, + title: 'Superdeck', + routerConfig: goRouterConfig, + theme: theme, + builder: (context, child) { + return Watch.builder(builder: (context) { + return LoadingOverlay( + isLoading: superDeckController.isLoading.value, + key: _uniqueKey, + child: superDeckController.isDone.value + ? child! + : const SizedBox(), + ); + }); + }, + ), + ), ), ); }, diff --git a/packages/superdeck/lib/helpers/watcher.dart b/packages/superdeck/lib/helpers/watcher.dart index 5a0fafed..32a3a1b5 100644 --- a/packages/superdeck/lib/helpers/watcher.dart +++ b/packages/superdeck/lib/helpers/watcher.dart @@ -5,16 +5,23 @@ class FileWatcher { final File file; Timer? _timer; DateTime? _lastModified; + bool _isProcessing = false; FileWatcher(this.file); /// Starts watching the file for changes - void start(void Function() onFileChange) { - _timer = Timer.periodic(const Duration(seconds: 2), (_) async { + void start(FutureOr Function() onFileChange) { + _timer = Timer.periodic(const Duration(milliseconds: 500), (_) async { + if (_isProcessing) return; final hasChanged = await _checkFileChanges(file); if (hasChanged) { - onFileChange(); + try { + _isProcessing = true; + await onFileChange(); + } finally { + _isProcessing = false; + } } }); } diff --git a/packages/superdeck/lib/providers/controller.dart b/packages/superdeck/lib/providers/controller.dart index 6a08d087..76deece2 100644 --- a/packages/superdeck/lib/providers/controller.dart +++ b/packages/superdeck/lib/providers/controller.dart @@ -1,12 +1,14 @@ import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:signals/signals_flutter.dart'; import 'package:superdeck_core/superdeck_core.dart'; import '../services/reference_service.dart'; -final $superdeck = SuperDeckController.instance; +final superDeckController = SuperDeckController.instance; -class SuperDeckController extends ChangeNotifier { +class SuperDeckController { SuperDeckController._(); static final instance = SuperDeckController._(); @@ -17,60 +19,55 @@ class SuperDeckController extends ChangeNotifier { if (instance._initialized) return; instance._initialized = true; await instance._loadData(); - ReferenceService.instance.listen(instance.refresh); + ReferenceService.instance.listen(instance._getData.refresh); } - bool _loading = false; - Object? _error; - List _slides = []; - List _assets = []; - bool _completed = false; - bool _isRefreshing = false; + late final _getData = futureSignal(_loadData); - bool get loading => _loading; - Object? get error => _error; - List get slides => _slides; - List get assets => _assets; - bool get completed => _completed; - bool get isRefreshing => _isRefreshing; + late final isLoading = computed(() => _getData.value.isLoading); + late final isRefreshing = computed(() => _getData.value.isRefreshing); + late final hasError = computed(() => _getData.value.hasError); + late final isDone = computed(() => _getData.value.hasValue); - Future _loadData() async { - _loading = _isRefreshing ? false : true; - _error = null; - _completed = false; - notifyListeners(); + final slides = signal>([]); + final assets = signal>([]); - try { - final data = await ReferenceService.instance.loadReference(); + Future _loadData() async { + final data = await ReferenceService.instance.loadReference(); - _slides = data.slides; - _assets = data.assets; - } catch (e) { - _error = e; - } finally { - _completed = true; - _loading = false; - _isRefreshing = false; - notifyListeners(); - } + batch(() { + slides.assign(data.slides); + assets.assign(data.assets); + }); } +} - Future refresh() async { - _isRefreshing = true; - await _loadData(); +extension on Signal { + void assign(List value) { + if (listEquals(value, this.value)) { + return; + } + this.value = value; } } -T useSuperdeckSelector(T Function(SuperDeckController) selector) { - return useListenableSelector( - $superdeck, - () => selector($superdeck), - ); +T useSignal(Signal signal) { + final state = useState(signal.value); + final context = useContext(); + useEffect(() { + signal.listen(context, () { + state.value = signal.value; + }); + }, [signal]); + return state.value; } -List useSlides() { - return useListenableSelector( - $superdeck, - () => $superdeck.slides, - ); +final useSlides = () => useSignal(superDeckController.slides); + +extension SignalX on Signal { + Widget build(Widget Function(T) builder) { + return Watch.builder( + builder: (context) => builder(value), + ); + } } diff --git a/packages/superdeck/lib/services/reference_service.dart b/packages/superdeck/lib/services/reference_service.dart index eabfeaf6..2f3e8986 100644 --- a/packages/superdeck/lib/services/reference_service.dart +++ b/packages/superdeck/lib/services/reference_service.dart @@ -50,7 +50,7 @@ class ReferenceService { return File(p.join(_generatedDir.path, fileName)); } - void listen(VoidCallback callback) { + void listen(FutureOr Function() callback) { if (kCanRunProcess) { if (!_watcher.isWatching) { _watcher.start(callback); diff --git a/packages/superdeck/lib/templates/templates.dart b/packages/superdeck/lib/templates/templates.dart deleted file mode 100644 index 8b137891..00000000 --- a/packages/superdeck/lib/templates/templates.dart +++ /dev/null @@ -1 +0,0 @@ - diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index 8f536aa3..e7bf812d 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -41,6 +41,7 @@ dependencies: google_generative_ai: ^0.4.4 meta: ^1.15.0 auto_size_text: ^3.0.0 + signals: ^5.4.0 dev_dependencies: flutter_test: @@ -51,6 +52,7 @@ dev_dependencies: mix_lint: ^0.1.1 + flutter: assets: - grammars/ \ No newline at end of file diff --git a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart index 961c769b..835cec5b 100644 --- a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart +++ b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart @@ -31,9 +31,7 @@ SlidePart? parseBlock(String line) { if (sectionName != null) { return SectionPart.build( sectionName, - ContentOptionsMapper.fromMap( - options, - ), + options: ContentOptionsMapper.fromMap(options), ); } @@ -67,7 +65,7 @@ SlidePart? parseBlock(String line) { List parseSections(String slideMarkdown) { final lines = slideMarkdown.split('\n'); - final rootSection = RootLayoutPart(ContentOptions()); + final rootSection = SectionPart.build(SectionPartType.root); final layoutParts = {rootSection}; @@ -92,7 +90,7 @@ List parseSections(String slideMarkdown) { } if (!_isSyntax(trimmedLine)) { - currentSection.concatLine(line); + currentSection = currentSection.addLine(line); continue; } @@ -121,7 +119,7 @@ List parseSections(String slideMarkdown) { layoutParts.add(currentSection); currentSection = part; } else if (part is ContentSectionPart) { - currentSection.addSubSection(part); + currentSection = currentSection.addSubSection(part); } } diff --git a/packages/superdeck_core/lib/src/models/slide_parts.dart b/packages/superdeck_core/lib/src/models/slide_parts.dart index 216f5730..f8fa62e5 100644 --- a/packages/superdeck_core/lib/src/models/slide_parts.dart +++ b/packages/superdeck_core/lib/src/models/slide_parts.dart @@ -22,13 +22,13 @@ interface class SlidePart { const SlidePart(); } -@MappableClass(discriminatorKey: 'type') -sealed class SectionPart extends SlidePart with SectionPartMappable { +@MappableClass() +abstract class SectionPart extends SlidePart with SectionPartMappable { final SectionPartType type; final ContentOptions options; - @MappableField(key: 'content_sections') - List contentSections; + + final List contentSections; SectionPart({ required this.type, @@ -37,20 +37,21 @@ sealed class SectionPart extends SlidePart with SectionPartMappable { }); factory SectionPart.build( - SectionPartType type, - ContentOptions options, - ) { + SectionPartType type, { + ContentOptions? options, + }) { + options ??= ContentOptions(); return switch (type) { - SectionPartType.header => HeaderLayoutPart(options), - SectionPartType.body => BodyLayoutPart(options), - SectionPartType.footer => FooterLayoutPart(options), - SectionPartType.root => RootLayoutPart(options), + SectionPartType.header => HeaderLayoutPart(options: options), + SectionPartType.body => BodyLayoutPart(options: options), + SectionPartType.footer => FooterLayoutPart(options: options), + SectionPartType.root => RootLayoutPart(options: options), }; } String get name => type.name; - void concatLine(String content) { + SectionPart addLine(String content) { final lastPart = contentSections.lastOrNull; final subSectionsCopy = [...contentSections]; @@ -65,18 +66,18 @@ sealed class SectionPart extends SlidePart with SectionPartMappable { )); } - contentSections = subSectionsCopy; + return copyWith(contentSections: subSectionsCopy); } - void addSubSection(ContentSectionPart part) { - contentSections = [...contentSections, part]; + SectionPart addSubSection(ContentSectionPart part) { + return copyWith(contentSections: [...contentSections, part]); } } @MappableClass(discriminatorKey: 'type') sealed class ContentSectionPart extends SlidePart with ContentSectionPartMappable { - @MappableField(hook: EmptyToNullHook()) + @MappableField() final String content; final SubSectionPartType type; @@ -101,37 +102,57 @@ class ContentPart extends ContentSectionPart @MappableClass(discriminatorValue: 'widget') class WidgetPart extends ContentSectionPart with WidgetPartMappable { - WidgetPart({required super.options, required super.content}) - : super(type: SubSectionPartType.widget); + WidgetPart({ + required super.options, + required super.content, + }) : super(type: SubSectionPartType.widget); } @MappableClass(discriminatorValue: 'image') class ImagePart extends ContentSectionPart with ImagePartMappable { - ImagePart({required super.options, required super.content}) - : super(type: SubSectionPartType.image); + ImagePart({ + required super.options, + required super.content, + }) : super(type: SubSectionPartType.image); } @MappableClass(discriminatorValue: 'root') class RootLayoutPart extends SectionPart with RootLayoutPartMappable { - RootLayoutPart(ContentOptions options) - : super(type: SectionPartType.root, options: options); + RootLayoutPart({ + required super.options, + super.contentSections = const [], + }) : super( + type: SectionPartType.root, + ); } @MappableClass(discriminatorValue: 'header') class HeaderLayoutPart extends SectionPart with HeaderLayoutPartMappable { - HeaderLayoutPart(ContentOptions options) - : super(type: SectionPartType.header, options: options); + HeaderLayoutPart({ + required super.options, + super.contentSections = const [], + }) : super( + type: SectionPartType.header, + ); } @MappableClass(discriminatorValue: 'body') class BodyLayoutPart extends SectionPart with BodyLayoutPartMappable { - BodyLayoutPart(ContentOptions options) - : super(type: SectionPartType.body, options: options); + BodyLayoutPart({ + required super.options, + super.contentSections = const [], + }) : super( + type: SectionPartType.body, + ); } @MappableClass(discriminatorValue: 'footer') class FooterLayoutPart extends SectionPart with FooterLayoutPartMappable { - FooterLayoutPart(ContentOptions options) - : super(type: SectionPartType.footer, options: options); + FooterLayoutPart({ + required super.options, + super.contentSections = const [], + }) : super( + type: SectionPartType.footer, + ); } diff --git a/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart b/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart index 9b01eb87..dbb38733 100644 --- a/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart +++ b/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart @@ -179,7 +179,17 @@ mixin SectionPartMappable { abstract class SectionPartCopyWith<$R, $In extends SectionPart, $Out> implements ClassCopyWith<$R, $In, $Out> { ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - $R call({ContentOptions? options}); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + $R call( + {ContentOptions? options, + List>? contentSections}); SectionPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } @@ -210,7 +220,7 @@ class ContentSectionPartMapper extends ClassMapperBase { Field('type', _$type); static String _$content(ContentSectionPart v) => v.content; static const Field _f$content = - Field('content', _$content, hook: EmptyToNullHook()); + Field('content', _$content); static ContentOptions _$options(ContentSectionPart v) => v.options; static dynamic _arg$options(f) => f(); static const Field _f$options = @@ -277,7 +287,7 @@ class ContentPartMapper extends SubClassMapperBase { static String _$content(ContentPart v) => v.content; static const Field _f$content = - Field('content', _$content, hook: EmptyToNullHook()); + Field('content', _$content); static ContentOptions _$options(ContentPart v) => v.options; static const Field _f$options = Field('options', _$options); @@ -421,7 +431,7 @@ class WidgetPartMapper extends SubClassMapperBase { Field('options', _$options); static String _$content(WidgetPart v) => v.content; static const Field _f$content = - Field('content', _$content, hook: EmptyToNullHook()); + Field('content', _$content); static SubSectionPartType _$type(WidgetPart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); @@ -562,7 +572,7 @@ class ImagePartMapper extends SubClassMapperBase { Field('options', _$options); static String _$content(ImagePart v) => v.content; static const Field _f$content = - Field('content', _$content, hook: EmptyToNullHook()); + Field('content', _$content); static SubSectionPartType _$type(ImagePart v) => v.type; static const Field _f$type = Field('type', _$type, mode: FieldMode.member); @@ -688,6 +698,7 @@ class RootLayoutPartMapper extends SubClassMapperBase { MapperContainer.globals.use(_instance = RootLayoutPartMapper._()); SectionPartMapper.ensureInitialized().addSubMapper(_instance!); ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); } return _instance!; } @@ -698,21 +709,21 @@ class RootLayoutPartMapper extends SubClassMapperBase { static ContentOptions _$options(RootLayoutPart v) => v.options; static const Field _f$options = Field('options', _$options); - static SectionPartType _$type(RootLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); static List> _$contentSections( RootLayoutPart v) => v.contentSections; static const Field>> - _f$contentSections = - Field('contentSections', _$contentSections, key: 'content_sections'); + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionPartType _$type(RootLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); @override final MappableFields fields = const { #options: _f$options, - #type: _f$type, #contentSections: _f$contentSections, + #type: _f$type, }; @override final bool ignoreNull = true; @@ -726,7 +737,9 @@ class RootLayoutPartMapper extends SubClassMapperBase { SectionPartMapper.ensureInitialized(); static RootLayoutPart _instantiate(DecodingData data) { - return RootLayoutPart(data.dec(_f$options)); + return RootLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); } @override @@ -785,7 +798,18 @@ abstract class RootLayoutPartCopyWith<$R, $In extends RootLayoutPart, $Out> @override ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; @override - $R call({ContentOptions? options}); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); RootLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t); } @@ -802,11 +826,29 @@ class _RootLayoutPartCopyWithImpl<$R, $Out> ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => $value.options.copyWith.$chain((v) => call(options: v)); @override - $R call({ContentOptions? options}) => - $apply(FieldCopyWithData({if (options != null) #options: options})); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); @override - RootLayoutPart $make(CopyWithData data) => - RootLayoutPart(data.get(#options, or: $value.options)); + RootLayoutPart $make(CopyWithData data) => RootLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); @override RootLayoutPartCopyWith<$R2, RootLayoutPart, $Out2> $chain<$R2, $Out2>( @@ -823,6 +865,7 @@ class HeaderLayoutPartMapper extends SubClassMapperBase { MapperContainer.globals.use(_instance = HeaderLayoutPartMapper._()); SectionPartMapper.ensureInitialized().addSubMapper(_instance!); ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); } return _instance!; } @@ -833,21 +876,21 @@ class HeaderLayoutPartMapper extends SubClassMapperBase { static ContentOptions _$options(HeaderLayoutPart v) => v.options; static const Field _f$options = Field('options', _$options); - static SectionPartType _$type(HeaderLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); static List> _$contentSections( HeaderLayoutPart v) => v.contentSections; static const Field>> - _f$contentSections = - Field('contentSections', _$contentSections, key: 'content_sections'); + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionPartType _$type(HeaderLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); @override final MappableFields fields = const { #options: _f$options, - #type: _f$type, #contentSections: _f$contentSections, + #type: _f$type, }; @override final bool ignoreNull = true; @@ -861,7 +904,9 @@ class HeaderLayoutPartMapper extends SubClassMapperBase { SectionPartMapper.ensureInitialized(); static HeaderLayoutPart _instantiate(DecodingData data) { - return HeaderLayoutPart(data.dec(_f$options)); + return HeaderLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); } @override @@ -921,7 +966,18 @@ abstract class HeaderLayoutPartCopyWith<$R, $In extends HeaderLayoutPart, $Out> @override ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; @override - $R call({ContentOptions? options}); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); HeaderLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t); } @@ -938,11 +994,29 @@ class _HeaderLayoutPartCopyWithImpl<$R, $Out> ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => $value.options.copyWith.$chain((v) => call(options: v)); @override - $R call({ContentOptions? options}) => - $apply(FieldCopyWithData({if (options != null) #options: options})); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); @override - HeaderLayoutPart $make(CopyWithData data) => - HeaderLayoutPart(data.get(#options, or: $value.options)); + HeaderLayoutPart $make(CopyWithData data) => HeaderLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); @override HeaderLayoutPartCopyWith<$R2, HeaderLayoutPart, $Out2> $chain<$R2, $Out2>( @@ -959,6 +1033,7 @@ class BodyLayoutPartMapper extends SubClassMapperBase { MapperContainer.globals.use(_instance = BodyLayoutPartMapper._()); SectionPartMapper.ensureInitialized().addSubMapper(_instance!); ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); } return _instance!; } @@ -969,21 +1044,21 @@ class BodyLayoutPartMapper extends SubClassMapperBase { static ContentOptions _$options(BodyLayoutPart v) => v.options; static const Field _f$options = Field('options', _$options); - static SectionPartType _$type(BodyLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); static List> _$contentSections( BodyLayoutPart v) => v.contentSections; static const Field>> - _f$contentSections = - Field('contentSections', _$contentSections, key: 'content_sections'); + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionPartType _$type(BodyLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); @override final MappableFields fields = const { #options: _f$options, - #type: _f$type, #contentSections: _f$contentSections, + #type: _f$type, }; @override final bool ignoreNull = true; @@ -997,7 +1072,9 @@ class BodyLayoutPartMapper extends SubClassMapperBase { SectionPartMapper.ensureInitialized(); static BodyLayoutPart _instantiate(DecodingData data) { - return BodyLayoutPart(data.dec(_f$options)); + return BodyLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); } @override @@ -1056,7 +1133,18 @@ abstract class BodyLayoutPartCopyWith<$R, $In extends BodyLayoutPart, $Out> @override ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; @override - $R call({ContentOptions? options}); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); BodyLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t); } @@ -1073,11 +1161,29 @@ class _BodyLayoutPartCopyWithImpl<$R, $Out> ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => $value.options.copyWith.$chain((v) => call(options: v)); @override - $R call({ContentOptions? options}) => - $apply(FieldCopyWithData({if (options != null) #options: options})); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); @override - BodyLayoutPart $make(CopyWithData data) => - BodyLayoutPart(data.get(#options, or: $value.options)); + BodyLayoutPart $make(CopyWithData data) => BodyLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); @override BodyLayoutPartCopyWith<$R2, BodyLayoutPart, $Out2> $chain<$R2, $Out2>( @@ -1094,6 +1200,7 @@ class FooterLayoutPartMapper extends SubClassMapperBase { MapperContainer.globals.use(_instance = FooterLayoutPartMapper._()); SectionPartMapper.ensureInitialized().addSubMapper(_instance!); ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); } return _instance!; } @@ -1104,21 +1211,21 @@ class FooterLayoutPartMapper extends SubClassMapperBase { static ContentOptions _$options(FooterLayoutPart v) => v.options; static const Field _f$options = Field('options', _$options); - static SectionPartType _$type(FooterLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); static List> _$contentSections( FooterLayoutPart v) => v.contentSections; static const Field>> - _f$contentSections = - Field('contentSections', _$contentSections, key: 'content_sections'); + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionPartType _$type(FooterLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); @override final MappableFields fields = const { #options: _f$options, - #type: _f$type, #contentSections: _f$contentSections, + #type: _f$type, }; @override final bool ignoreNull = true; @@ -1132,7 +1239,9 @@ class FooterLayoutPartMapper extends SubClassMapperBase { SectionPartMapper.ensureInitialized(); static FooterLayoutPart _instantiate(DecodingData data) { - return FooterLayoutPart(data.dec(_f$options)); + return FooterLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); } @override @@ -1192,7 +1301,18 @@ abstract class FooterLayoutPartCopyWith<$R, $In extends FooterLayoutPart, $Out> @override ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; @override - $R call({ContentOptions? options}); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); FooterLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t); } @@ -1209,11 +1329,29 @@ class _FooterLayoutPartCopyWithImpl<$R, $Out> ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => $value.options.copyWith.$chain((v) => call(options: v)); @override - $R call({ContentOptions? options}) => - $apply(FieldCopyWithData({if (options != null) #options: options})); + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); @override - FooterLayoutPart $make(CopyWithData data) => - FooterLayoutPart(data.get(#options, or: $value.options)); + FooterLayoutPart $make(CopyWithData data) => FooterLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); @override FooterLayoutPartCopyWith<$R2, FooterLayoutPart, $Out2> $chain<$R2, $Out2>( From 82d7586cbc3ca8a1e96b54366fb0118f24f9e140 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Wed, 21 Aug 2024 16:37:35 -0400 Subject: [PATCH 07/27] wip --- packages/superdeck/devtools_options.yaml | 3 + .../generated/thumbnail_3thjboPz.png | Bin 1303 -> 19875 bytes .../generated/thumbnail_MGrRVh3m.png | Bin 1303 -> 21466 bytes .../generated/thumbnail_dk6NgW8O.png | Bin 1303 -> 9960 bytes .../components/atoms/sized_transition.dart | 37 ----- .../lib/components/atoms/slide_thumbnail.dart | 96 ++++++++---- .../molecules/floating_bottom_bar.dart | 58 ++++++++ .../components/molecules/navigation_rail.dart | 68 --------- .../lib/components/molecules/split_view.dart | 139 +++++++++--------- .../lib/components/organisms/app_shell.dart | 29 +--- ...e_panel.dart => slide_thumbnail_list.dart} | 4 +- .../lib/components/remix/button.dart | 12 +- .../lib/components/remix/button_style.dart | 0 .../superdeck/lib/helpers/dialog_page.dart | 2 +- packages/superdeck/lib/helpers/routes.dart | 21 +++ .../superdeck/lib/providers/controller.dart | 62 ++++++-- .../lib/services/snapshot_service.dart | 1 + .../lib/src/slides_pipeline.dart | 1 - 18 files changed, 284 insertions(+), 249 deletions(-) create mode 100644 packages/superdeck/devtools_options.yaml delete mode 100644 packages/superdeck/lib/components/atoms/sized_transition.dart create mode 100644 packages/superdeck/lib/components/molecules/floating_bottom_bar.dart delete mode 100644 packages/superdeck/lib/components/molecules/navigation_rail.dart rename packages/superdeck/lib/components/organisms/{presentation_side_panel.dart => slide_thumbnail_list.dart} (96%) delete mode 100644 packages/superdeck/lib/components/remix/button_style.dart diff --git a/packages/superdeck/devtools_options.yaml b/packages/superdeck/devtools_options.yaml new file mode 100644 index 00000000..fa0b357c --- /dev/null +++ b/packages/superdeck/devtools_options.yaml @@ -0,0 +1,3 @@ +description: This file stores settings for Dart & Flutter DevTools. +documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states +extensions: diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png b/packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png index 47766a8cb19d47949e7a1566af5b5f887fe6de6c..b800b9c96fcdcdbd8117b7e49f95eee9da29d4fd 100644 GIT binary patch literal 19875 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 literal 1303 zcmeAS@N?(olHy`uVBq!ia0y~yU;;836*$;{)FGSGfgoOSkh>GZx^prwfgF}%C(jTL zAgJL;=>T#Mdb&7;rukz`Ov{m;k1aL<^5K_G>J zLE!`ggTn+yh6V*@1_no<4NW{i6C@cJIE+RWjE2K#dKk?Y^e-Ru>IIqYvxTOd1r}}$ Mp00i_>zopr01{5G`~Uy| diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png b/packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png index 47766a8cb19d47949e7a1566af5b5f887fe6de6c..be3285eca211d7a1600c4a456145122be81652b2 100644 GIT binary patch literal 21466 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 literal 1303 zcmeAS@N?(olHy`uVBq!ia0y~yU;;836*$;{)FGSGfgoOSkh>GZx^prwfgF}%C(jTL zAgJL;=>T#Mdb&7;rukz`Ov{m;k1aL<^5K_G>J zLE!`ggTn+yh6V*@1_no<4NW{i6C@cJIE+RWjE2K#dKk?Y^e-Ru>IIqYvxTOd1r}}$ Mp00i_>zopr01{5G`~Uy| diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png b/packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png index 47766a8cb19d47949e7a1566af5b5f887fe6de6c..1567aa428751852acd7354946f0199a8b5409e0f 100644 GIT binary patch literal 9960 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 Mp00i_>zopr01{5G`~Uy| diff --git a/packages/superdeck/lib/components/atoms/sized_transition.dart b/packages/superdeck/lib/components/atoms/sized_transition.dart deleted file mode 100644 index 9f203265..00000000 --- a/packages/superdeck/lib/components/atoms/sized_transition.dart +++ /dev/null @@ -1,37 +0,0 @@ -import 'dart:math' as math; - -import 'package:flutter/widgets.dart'; - -class SizedTransition extends StatelessWidget { - const SizedTransition({ - super.key, - required this.sizeFactor, - this.child, - this.direction = Axis.horizontal, - }); - - final double sizeFactor; - final Axis direction; - - final Widget? child; - - @override - Widget build(BuildContext context) { - AlignmentDirectional alignment; - if (direction == Axis.horizontal) { - alignment = const AlignmentDirectional(0.0, -1.0); - } else { - alignment = const AlignmentDirectional(-1.0, 0.0); - } - return ClipRect( - child: Align( - alignment: alignment, - heightFactor: - direction == Axis.vertical ? math.max(sizeFactor, 0.0) : 1.0, - widthFactor: - direction == Axis.horizontal ? math.max(sizeFactor, 0.0) : 1.0, - child: child, - ), - ); - } -} diff --git a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart index 06731e8c..8b5f1649 100644 --- a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart +++ b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart @@ -1,6 +1,3 @@ -import 'dart:async'; -import 'dart:io'; - import 'package:flutter/material.dart'; import 'package:mix/mix.dart'; import 'package:remix/remix.dart'; @@ -14,6 +11,15 @@ import '../../services/snapshot_service.dart'; import 'cache_image_widget.dart'; import 'loading_indicator.dart'; +enum _PopMenuAction { + refreshThumbnail('Refresh Thumbnail', Icons.refresh); + + const _PopMenuAction(this.label, this.icon); + + final String label; + final IconData icon; +} + class SlideThumbnail extends StatefulWidget { final VoidCallback onTap; final bool selected; @@ -33,16 +39,37 @@ class SlideThumbnail extends StatefulWidget { } class _SlideThumbnailState extends State { - late final thumbnailRequest = futureSignal( - () => _generateThumbnail(widget.slide), - ); + bool _shouldRegenerate = false; + late final thumbnailRequest = futureSignal(() async { + final thumbnailFile = ReferenceService.instance + .getAssetFile('thumbnail_${widget.slide.key}.png'); + + if ((!kCanRunProcess || await thumbnailFile.exists()) && + !_shouldRegenerate) { + return thumbnailFile; + } + + try { + if (!context.mounted) { + return thumbnailFile; + } + final imageData = await SnapshotService.instance.generate( + quality: SnapshotQuality.low, + slide: widget.slide, + ); + + return await thumbnailFile.writeAsBytes(imageData, flush: true); + } finally { + _shouldRegenerate = false; + } + }); @override void didUpdateWidget(covariant SlideThumbnail oldWidget) { + super.didUpdateWidget(oldWidget); if (oldWidget.slide != widget.slide) { thumbnailRequest.refresh(); } - super.didUpdateWidget(oldWidget); } @override @@ -69,9 +96,44 @@ class _SlideThumbnailState extends State { }, ); }); - return GestureDetector( onTap: widget.onTap, + onSecondaryTapDown: (details) { + final overlay = + Overlay.of(context).context.findRenderObject() as RenderBox; + final menuItem = + (_PopMenuAction action) => PopupMenuItem<_PopMenuAction>( + value: action, + onTap: () { + switch (action) { + case _PopMenuAction.refreshThumbnail: + _shouldRegenerate = true; + thumbnailRequest.reset(AsyncState.loading()); + thumbnailRequest.reload(); + break; + } + }, + mouseCursor: SystemMouseCursors.click, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Icon(action.icon), + const SizedBox(width: 8), + Text(action.label), + ], + )); + showMenu( + context: context, + menuPadding: EdgeInsets.zero, + items: [ + menuItem(_PopMenuAction.refreshThumbnail), + ], + position: RelativeRect.fromSize( + details.globalPosition & Size.zero, + overlay.size, + ), + ); + }, child: _PreviewContainer( selected: widget.selected, child: Stack( @@ -151,21 +213,3 @@ class _PreviewContainer extends StatelessWidget { ); } } - -Future _generateThumbnail(Slide slide) async { - final thumbnailFile = - ReferenceService.instance.getAssetFile('thumbnail_${slide.key}.png'); - - if (!kCanRunProcess || await thumbnailFile.exists()) { - return thumbnailFile; - } - - final imageData = await SnapshotService.instance.generate( - quality: SnapshotQuality.low, - slide: slide, - ); - - await thumbnailFile.writeAsBytes(imageData); - - return thumbnailFile; -} diff --git a/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart b/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart new file mode 100644 index 00000000..0c90c727 --- /dev/null +++ b/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart @@ -0,0 +1,58 @@ +import 'package:flutter/material.dart'; + +import '../../helpers/routes.dart'; + +class FloatingBottomBar extends StatefulWidget { + final bool isVisible; + const FloatingBottomBar({ + super.key, + required this.isVisible, + }); + + static double height = 60; + + @override + State createState() => _FloatingBottomBarState(); +} + +class _FloatingBottomBarState extends State { + @override + Widget build(BuildContext context) { + return Container( + height: FloatingBottomBar.height, + padding: EdgeInsets.symmetric(horizontal: 16), + decoration: BoxDecoration( + color: Colors.black, + border: Border( + top: BorderSide( + color: Colors.white10, + width: 1, + ), + ), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + IconButton( + icon: const Icon(Icons.present_to_all), + onPressed: () => context.toggleDrawer(), + ), + IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () => context.previousSlide(), + ), + IconButton( + icon: const Icon(Icons.arrow_forward), + onPressed: () => context.nextSlide(), + ), + Spacer(), + IconButton( + onPressed: () => context.closePresenterMenu(), + icon: const Icon(Icons.close), + ), + ], + ), + ); + } +} diff --git a/packages/superdeck/lib/components/molecules/navigation_rail.dart b/packages/superdeck/lib/components/molecules/navigation_rail.dart deleted file mode 100644 index fc65f8dd..00000000 --- a/packages/superdeck/lib/components/molecules/navigation_rail.dart +++ /dev/null @@ -1,68 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:flutter_hooks/flutter_hooks.dart'; -import 'package:mix/mix.dart'; - -import '../remix/button.dart'; - -class CustomNavigationRail extends HookWidget { - final int selectedIndex; - final ValueChanged? onDestinationSelected; - final List destinations; - final bool displayLabel; - final double? leading; - final double? trailing; - - CustomNavigationRail({ - required this.selectedIndex, - this.onDestinationSelected, - required this.destinations, - this.displayLabel = false, - this.leading, - this.trailing, - }); - - @override - Widget build(BuildContext context) { - final _buildDestination = useCallback((int index) { - final destination = destinations[index]; - final isSelected = selectedIndex == index; - - return Padding( - padding: const EdgeInsets.symmetric(vertical: 4), - child: SDIconButton( - icon: destination.icon, - onPressed: () => onDestinationSelected?.call(index), - selected: isSelected, - ), - ); - }, [selectedIndex, destinations]); - - return VBox( - style: _containerStyle, - children: [ - if (leading != null) SizedBox(height: leading), - for (int i = 0; i < destinations.length; i++) _buildDestination(i), - if (trailing != null) SizedBox(height: trailing), - ], - ); - } -} - -get _containerStyle => Style( - $box.color.black(), - $box.padding(16), - $box.border.right( - color: Colors.white10, - width: 1, - ), - ); - -class CustomNavigationRailDestination { - final IconData icon; - final String label; - - CustomNavigationRailDestination({ - required this.icon, - required this.label, - }); -} diff --git a/packages/superdeck/lib/components/molecules/split_view.dart b/packages/superdeck/lib/components/molecules/split_view.dart index 48173efd..923903b1 100644 --- a/packages/superdeck/lib/components/molecules/split_view.dart +++ b/packages/superdeck/lib/components/molecules/split_view.dart @@ -1,13 +1,13 @@ -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:go_router/go_router.dart'; -import '../../helpers/utils.dart'; -import '../atoms/sized_transition.dart'; -import '../organisms/chat_panel.dart'; -import '../organisms/presentation_side_panel.dart'; -import 'navigation_rail.dart'; +import '../../helpers/hooks.dart'; +import '../../helpers/routes.dart'; +import '../organisms/slide_thumbnail_list.dart'; +import 'floating_bottom_bar.dart'; + +final kScaffoldKey = GlobalKey(); class SplitView extends HookWidget { final StatefulNavigationShell navigationShell; @@ -17,88 +17,81 @@ class SplitView extends HookWidget { required this.navigationShell, }); - final _maxWidth = 400.0; final _thumbnailWidth = 300.0; + final _duration = const Duration(milliseconds: 200); @override Widget build(BuildContext context) { - final sideSize = useState(0.0); + final isBottomOpen = context.isPresenterMenuOpen; + final isSideOpen = context.isDrawerOpen; + final sideAnimation = useAnimationController( + duration: _duration, + initialValue: isSideOpen && isBottomOpen ? 1.0 : 0.0, + ); + final bottomAnimation = useAnimationController( + duration: _duration, + initialValue: isBottomOpen ? 1.0 : 0.0, + ); - useEffect(() { - if (context.isMobileLandscape) { - sideSize.value = 200.0; + usePostFrameEffect(() { + if (isBottomOpen) { + bottomAnimation.forward(); + if (isSideOpen) { + sideAnimation.forward(); + } else { + sideAnimation.reverse(); + } } else { - sideSize.value = _maxWidth; + sideAnimation.reverse(); + bottomAnimation.reverse(); } - }, [navigationShell.currentIndex]); - - final animationController = useAnimationController( - duration: Durations.medium1, - ); - - final animation = useAnimation(CurvedAnimation( - parent: animationController, - curve: Curves.ease, - )); + }, [isBottomOpen, isSideOpen]); // usePostFrameEffect(() { - // if (context.isDrawerOpen) { - // animationController.forward(); + // if (isSideOpen) { + // sideAnimation.forward(); // } else { - // animationController.reverse(); + // sideAnimation.reverse(); // } - // }, [context.isDrawerOpen]); + // }, [isSideOpen]); - return LayoutBuilder( - builder: (context, constraints) { - final sidebar = switch (navigationShell.currentIndex) { - 0 => SizedBox( - width: _thumbnailWidth, - child: const PresentationSidePanel(), + return Scaffold( + backgroundColor: const Color.fromARGB(255, 9, 9, 9), + bottomNavigationBar: SizeTransition( + sizeFactor: CurvedAnimation( + parent: bottomAnimation, + curve: Curves.easeIn, + ), + child: SizedBox( + height: FloatingBottomBar.height, + child: FloatingBottomBar( + isVisible: true, ), - 1 => SizedBox( - width: _thumbnailWidth, - child: const ChatScreen(), + )), + key: kScaffoldKey, + floatingActionButtonLocation: FloatingActionButtonLocation.miniEndFloat, + floatingActionButton: !context.isPresenterMenuOpen + ? FloatingActionButton( + onPressed: () => context.togglePresenterMenu(), + child: const Icon(Icons.arrow_forward), + ) + : null, + body: Row( + children: [ + SizeTransition( + axis: Axis.horizontal, + sizeFactor: CurvedAnimation( + parent: sideAnimation, + curve: Curves.easeInOut, ), - _ => const SizedBox.shrink(), - }; - - return Row( - children: [ - SizedTransition( - sizeFactor: 1, - child: Row( - children: [ - CustomNavigationRail( - selectedIndex: navigationShell.currentIndex, - onDestinationSelected: (value) { - navigationShell.goBranch(value); - }, - leading: 20, - destinations: [ - CustomNavigationRailDestination( - icon: Icons.view_carousel, - label: 'Home', - ), - CustomNavigationRailDestination( - icon: Icons.chat, - label: 'Chat', - ), - if (!kIsWeb) - CustomNavigationRailDestination( - icon: Icons.picture_as_pdf, - label: 'Export', - ), - ], - ), - sidebar - ], - ), + child: SizedBox( + width: _thumbnailWidth, + child: const SlideThumbnailList(), ), - Expanded(child: navigationShell) - ], - ); - }, + ), + Expanded(child: navigationShell) + ], + ), ); } } diff --git a/packages/superdeck/lib/components/organisms/app_shell.dart b/packages/superdeck/lib/components/organisms/app_shell.dart index 75ef4abe..20e2e8a8 100644 --- a/packages/superdeck/lib/components/organisms/app_shell.dart +++ b/packages/superdeck/lib/components/organisms/app_shell.dart @@ -2,15 +2,11 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:go_router/go_router.dart'; -import 'package:superdeck_core/superdeck_core.dart'; import '../../helpers/routes.dart'; -import '../../helpers/utils.dart'; import '../../providers/controller.dart'; import '../molecules/split_view.dart'; -final kScaffoldKey = GlobalKey(); - /// Builds the "shell" for the app by building a Scaffold with a /// BottomNavigationBar, where [child] is placed in the body of the Scaffold. class AppShell extends HookWidget { @@ -24,11 +20,8 @@ class AppShell extends HookWidget { @override Widget build(BuildContext context) { - final isSmall = context.isSmall; - final slides = useSlides(); - final invalidSlides = slides.whereType().toList(); final handleNext = useCallback(() { if (context.currentSlidePage < slides.length) { context.nextSlide(); @@ -66,26 +59,8 @@ class AppShell extends HookWidget { return CallbackShortcuts( bindings: bindings, - child: Scaffold( - backgroundColor: const Color.fromARGB(255, 9, 9, 9), - bottomNavigationBar: null, - extendBodyBehindAppBar: true, - extendBody: true, - key: kScaffoldKey, - floatingActionButtonLocation: isSmall - ? FloatingActionButtonLocation.miniEndFloat - : FloatingActionButtonLocation.miniStartFloat, - floatingActionButton: FloatingActionButton.small( - onPressed: context.toggleDrawer, - child: Badge( - label: Text(invalidSlides.length.toString()), - isLabelVisible: invalidSlides.isNotEmpty, - child: const Icon(Icons.menu), - ), - ), - body: SplitView( - navigationShell: navigationShell, - ), + child: SplitView( + navigationShell: navigationShell, ), ); } diff --git a/packages/superdeck/lib/components/organisms/presentation_side_panel.dart b/packages/superdeck/lib/components/organisms/slide_thumbnail_list.dart similarity index 96% rename from packages/superdeck/lib/components/organisms/presentation_side_panel.dart rename to packages/superdeck/lib/components/organisms/slide_thumbnail_list.dart index 2e1f81d9..af43f6b4 100644 --- a/packages/superdeck/lib/components/organisms/presentation_side_panel.dart +++ b/packages/superdeck/lib/components/organisms/slide_thumbnail_list.dart @@ -9,8 +9,8 @@ import '../../helpers/utils.dart'; import '../../providers/controller.dart'; import '../atoms/slide_thumbnail.dart'; -class PresentationSidePanel extends HookWidget { - const PresentationSidePanel({ +class SlideThumbnailList extends HookWidget { + const SlideThumbnailList({ super.key, }); diff --git a/packages/superdeck/lib/components/remix/button.dart b/packages/superdeck/lib/components/remix/button.dart index 0be6f173..447b8a39 100644 --- a/packages/superdeck/lib/components/remix/button.dart +++ b/packages/superdeck/lib/components/remix/button.dart @@ -1,7 +1,14 @@ import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; +import 'package:mix/mix.dart'; import 'package:remix/remix.dart'; +final _button = ButtonSpecUtility.self; + +Style get _buttonStyle => Style( + _button.container.padding.all(8), + ); + class SDButton extends StatelessWidget { const SDButton({ required this.onPressed, @@ -18,6 +25,7 @@ class SDButton extends StatelessWidget { @override Widget build(BuildContext context) { return XButton( + style: _buttonStyle, onPressed: onPressed, iconLeft: icon, label: label, @@ -86,9 +94,9 @@ class SDIconButton extends StatelessWidget { @override Widget build(BuildContext context) { - return XButton( + return SDButton( onPressed: onPressed, - iconLeft: icon, + icon: icon, label: '', ); } diff --git a/packages/superdeck/lib/components/remix/button_style.dart b/packages/superdeck/lib/components/remix/button_style.dart deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/superdeck/lib/helpers/dialog_page.dart b/packages/superdeck/lib/helpers/dialog_page.dart index 4db74ae2..87893879 100644 --- a/packages/superdeck/lib/helpers/dialog_page.dart +++ b/packages/superdeck/lib/helpers/dialog_page.dart @@ -1,6 +1,6 @@ import 'package:flutter/material.dart'; -import '../superdeck.dart'; +import '../components/molecules/split_view.dart'; /// A dialog page with Material entrance and exit animations, modal barrier color, /// and modal barrier behavior (dialog is dismissible with a tap on the barrier). diff --git a/packages/superdeck/lib/helpers/routes.dart b/packages/superdeck/lib/helpers/routes.dart index e2f07ce3..46abfb21 100644 --- a/packages/superdeck/lib/helpers/routes.dart +++ b/packages/superdeck/lib/helpers/routes.dart @@ -24,6 +24,7 @@ class ChatPath extends Path { class QueryParams { static const drawer = 'drawer'; static const slide = 'slide'; + static const presenterMenu = 'isPresenter'; } final kRootNavigatorKey = GlobalKey(debugLabel: 'root'); @@ -137,6 +138,22 @@ extension BuildContextRoutesX on BuildContext { void closeDrawer() => go(_replaceQueryParam(QueryParams.drawer, '0')); + bool get isPresenterMenuOpen => _presenterMenuParam == '1'; + + void openPresenterMenu() => + go(_replaceQueryParam(QueryParams.presenterMenu, '1')); + + void closePresenterMenu() => + go(_replaceQueryParam(QueryParams.presenterMenu, '0')); + + void togglePresenterMenu() { + if (isPresenterMenuOpen) { + closePresenterMenu(); + } else { + openPresenterMenu(); + } + } + void toggleDrawer() { if (isDrawerOpen) { closeDrawer(); @@ -149,8 +166,12 @@ extension BuildContextRoutesX on BuildContext { return GoRouterState.of(this).uri.queryParameters; } + // listen to the drawer query parameter + String? get _drawerParam => _queryParams[QueryParams.drawer]; + String? get _presenterMenuParam => _queryParams[QueryParams.presenterMenu]; + String? get _slidePage => _queryParams[QueryParams.slide]; bool get isDrawerOpen => _drawerParam == '1'; diff --git a/packages/superdeck/lib/providers/controller.dart b/packages/superdeck/lib/providers/controller.dart index 76deece2..db06b9d1 100644 --- a/packages/superdeck/lib/providers/controller.dart +++ b/packages/superdeck/lib/providers/controller.dart @@ -22,12 +22,12 @@ class SuperDeckController { ReferenceService.instance.listen(instance._getData.refresh); } - late final _getData = futureSignal(_loadData); + late final _getData = futureSignal(_loadData, lazy: false); - late final isLoading = computed(() => _getData.value.isLoading); - late final isRefreshing = computed(() => _getData.value.isRefreshing); - late final hasError = computed(() => _getData.value.hasError); - late final isDone = computed(() => _getData.value.hasValue); + late final isLoading = _getData.select((s) => s.value.isLoading); + late final isRefreshing = _getData.select((s) => s.value.isRefreshing); + late final hasError = _getData.select((s) => s.value.hasError); + late final isDone = _getData.select((s) => s.value.hasValue); final slides = signal>([]); final assets = signal>([]); @@ -52,14 +52,9 @@ extension on Signal { } T useSignal(Signal signal) { - final state = useState(signal.value); final context = useContext(); - useEffect(() { - signal.listen(context, () { - state.value = signal.value; - }); - }, [signal]); - return state.value; + + return signal.watch(context); } final useSlides = () => useSignal(superDeckController.slides); @@ -71,3 +66,46 @@ extension SignalX on Signal { ); } } + +// coverage:ignore-start +/// Logs all signals and computed changes to the console. +class LoggingSignalsObserver extends SignalsObserver { + @override + void onComputedCreated(Computed instance) { + log('computed created: [${instance.globalId}|${instance.debugLabel}]'); + } + + @override + void onComputedUpdated(Computed instance, value) { + log('computed updated: [${instance.globalId}|${instance.debugLabel}] => $value'); + } + + @override + void onSignalCreated(Signal instance) { + log('signal created: [${instance.globalId}|${instance.debugLabel}] => ${instance.peek()}'); + } + + @override + void onSignalUpdated(Signal instance, value) { + log('signal updated: [${instance.globalId}|${instance.debugLabel}] => $value'); + } + + @override + void onEffectCreated(Effect instance) { + log('effect created: [${instance.globalId}|${instance.debugLabel}]'); + } + + @override + void onEffectCalled(Effect instance) { + log('effect called: [${instance.globalId}|${instance.debugLabel}]'); + } + + @override + void onEffectRemoved(Effect instance) { + log('effect removed: [${instance.globalId}|${instance.debugLabel}]'); + } + + /// Logs a message to the console. + void log(String message) => log(message); +} +// coverage:ignore-end diff --git a/packages/superdeck/lib/services/snapshot_service.dart b/packages/superdeck/lib/services/snapshot_service.dart index 54f04b47..17796048 100644 --- a/packages/superdeck/lib/services/snapshot_service.dart +++ b/packages/superdeck/lib/services/snapshot_service.dart @@ -9,6 +9,7 @@ import 'package:flutter/services.dart'; import 'package:superdeck_core/superdeck_core.dart'; import '../components/atoms/slide_view.dart'; +import '../components/molecules/split_view.dart'; import '../helpers/constants.dart'; import '../providers/assets_provider.dart'; import '../providers/examples_provider.dart'; diff --git a/packages/superdeck_cli/lib/src/slides_pipeline.dart b/packages/superdeck_cli/lib/src/slides_pipeline.dart index 7dd171c1..2803baf2 100644 --- a/packages/superdeck_cli/lib/src/slides_pipeline.dart +++ b/packages/superdeck_cli/lib/src/slides_pipeline.dart @@ -80,7 +80,6 @@ class TaskController { var asset = _assets.firstWhereOrNull((f) => f.path == file.path); if (asset == null) { - print(file.path); final image = await img.decodeImageFile(file.path); if (image == null) { From ac99e9ac3c4e8d68afb30490e87b5265a42feca7 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Wed, 21 Aug 2024 17:26:07 -0400 Subject: [PATCH 08/27] wip --- .../molecules/floating_bottom_bar.dart | 82 ++++++++++++------- .../components/molecules/slide_preview.dart | 2 +- .../lib/components/molecules/split_view.dart | 44 +++++----- .../lib/screens/presentation_screen.dart | 14 ++-- packages/superdeck/pubspec.yaml | 1 + 5 files changed, 81 insertions(+), 62 deletions(-) diff --git a/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart b/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart index 0c90c727..daa195a3 100644 --- a/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart +++ b/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart @@ -1,4 +1,7 @@ +import 'dart:ui'; + import 'package:flutter/material.dart'; +import 'package:material_symbols_icons/symbols.dart'; import '../../helpers/routes.dart'; @@ -9,7 +12,7 @@ class FloatingBottomBar extends StatefulWidget { required this.isVisible, }); - static double height = 60; + static double height = 80; @override State createState() => _FloatingBottomBarState(); @@ -18,41 +21,58 @@ class FloatingBottomBar extends StatefulWidget { class _FloatingBottomBarState extends State { @override Widget build(BuildContext context) { + final isDrawerOpen = context.isDrawerOpen; return Container( height: FloatingBottomBar.height, - padding: EdgeInsets.symmetric(horizontal: 16), - decoration: BoxDecoration( - color: Colors.black, - border: Border( - top: BorderSide( - color: Colors.white10, - width: 1, + padding: EdgeInsets.only(bottom: 20, left: 20, right: 20), + width: MediaQuery.sizeOf(context).width, + child: ClipRect( + child: BackdropFilter( + filter: ImageFilter.blur(sigmaX: 10, sigmaY: 10), + child: Container( + padding: EdgeInsets.symmetric(horizontal: 16), + height: 60, + decoration: BoxDecoration( + color: const Color.fromARGB(98, 0, 0, 0), + border: Border( + top: BorderSide( + color: Colors.white10, + width: 1, + ), + ), + borderRadius: BorderRadius.circular(18), + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + IconButton( + icon: Icon( + isDrawerOpen + ? Symbols.left_panel_close + : Symbols.left_panel_open, + ), + onPressed: () => context.toggleDrawer(), + ), + Spacer(), + IconButton( + icon: const Icon(Icons.arrow_back), + onPressed: () => context.previousSlide(), + ), + IconButton( + icon: const Icon(Icons.arrow_forward), + onPressed: () => context.nextSlide(), + ), + Spacer(), + IconButton( + onPressed: () => context.closePresenterMenu(), + icon: const Icon(Icons.close), + ), + ], + ), ), ), ), - child: Row( - mainAxisAlignment: MainAxisAlignment.center, - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - IconButton( - icon: const Icon(Icons.present_to_all), - onPressed: () => context.toggleDrawer(), - ), - IconButton( - icon: const Icon(Icons.arrow_back), - onPressed: () => context.previousSlide(), - ), - IconButton( - icon: const Icon(Icons.arrow_forward), - onPressed: () => context.nextSlide(), - ), - Spacer(), - IconButton( - onPressed: () => context.closePresenterMenu(), - icon: const Icon(Icons.close), - ), - ], - ), ); } } diff --git a/packages/superdeck/lib/components/molecules/slide_preview.dart b/packages/superdeck/lib/components/molecules/slide_preview.dart index 7cef96ee..0befc3f3 100644 --- a/packages/superdeck/lib/components/molecules/slide_preview.dart +++ b/packages/superdeck/lib/components/molecules/slide_preview.dart @@ -17,7 +17,7 @@ class SlidePreview extends StatelessWidget { return Center( child: Container( decoration: BoxDecoration( - color: const Color.fromARGB(255, 68, 60, 60), + color: const Color.fromARGB(255, 29, 29, 29), boxShadow: [ BoxShadow( color: Colors.black.withOpacity(0.3), diff --git a/packages/superdeck/lib/components/molecules/split_view.dart b/packages/superdeck/lib/components/molecules/split_view.dart index 923903b1..82390206 100644 --- a/packages/superdeck/lib/components/molecules/split_view.dart +++ b/packages/superdeck/lib/components/molecules/split_view.dart @@ -57,17 +57,6 @@ class SplitView extends HookWidget { return Scaffold( backgroundColor: const Color.fromARGB(255, 9, 9, 9), - bottomNavigationBar: SizeTransition( - sizeFactor: CurvedAnimation( - parent: bottomAnimation, - curve: Curves.easeIn, - ), - child: SizedBox( - height: FloatingBottomBar.height, - child: FloatingBottomBar( - isVisible: true, - ), - )), key: kScaffoldKey, floatingActionButtonLocation: FloatingActionButtonLocation.miniEndFloat, floatingActionButton: !context.isPresenterMenuOpen @@ -76,20 +65,31 @@ class SplitView extends HookWidget { child: const Icon(Icons.arrow_forward), ) : null, - body: Row( + body: Stack( children: [ - SizeTransition( - axis: Axis.horizontal, - sizeFactor: CurvedAnimation( - parent: sideAnimation, - curve: Curves.easeInOut, - ), - child: SizedBox( - width: _thumbnailWidth, - child: const SlideThumbnailList(), + Row( + children: [ + SizeTransition( + axis: Axis.horizontal, + sizeFactor: CurvedAnimation( + parent: sideAnimation, + curve: Curves.easeInOut, + ), + child: SizedBox( + width: _thumbnailWidth, + child: const SlideThumbnailList(), + ), + ), + Expanded(child: navigationShell) + ], + ), + AnimatedPositioned( + duration: Durations.short2, + bottom: isBottomOpen ? 0 : -FloatingBottomBar.height, + child: FloatingBottomBar( + isVisible: true, ), ), - Expanded(child: navigationShell) ], ), ); diff --git a/packages/superdeck/lib/screens/presentation_screen.dart b/packages/superdeck/lib/screens/presentation_screen.dart index 66b462ec..1e39da81 100644 --- a/packages/superdeck/lib/screens/presentation_screen.dart +++ b/packages/superdeck/lib/screens/presentation_screen.dart @@ -34,14 +34,12 @@ class PresentationScreen extends HookWidget { ); }, [slideIndex, slides.length]); - return Center( - child: PageView.builder( - controller: pageController, - itemCount: slides.length, - itemBuilder: (_, index) { - return SlidePreview(slides[index]); - }, - ), + return PageView.builder( + controller: pageController, + itemCount: slides.length, + itemBuilder: (_, index) { + return SlidePreview(slides[index]); + }, ); } } diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index e7bf812d..99b7eb93 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -42,6 +42,7 @@ dependencies: meta: ^1.15.0 auto_size_text: ^3.0.0 signals: ^5.4.0 + material_symbols_icons: ^4.2780.0 dev_dependencies: flutter_test: From 79f802b587db2685584e7048fdba1716ba16e5b9 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Thu, 22 Aug 2024 13:47:10 -0400 Subject: [PATCH 09/27] wip --- ...maid_spzwggdT.png => mermaid_llAVsepR.png} | Bin 24887 -> 24345 bytes .../generated/thumbnail_3thjboPz.png | Bin 19875 -> 0 bytes .../generated/thumbnail_BEcskpQr.png | Bin 46928 -> 0 bytes .../generated/thumbnail_MGrRVh3m.png | Bin 21466 -> 0 bytes .../generated/thumbnail_dk6NgW8O.png | Bin 9960 -> 0 bytes .../generated/thumbnail_xUhI9Z6w.png | Bin 13164 -> 0 bytes .../superdeck/example/.superdeck/slides.json | 85 ++++++++++-------- packages/superdeck/example/lib/src/style.dart | 2 + .../example/lib/src/widget/mix_demo.dart | 24 +++-- packages/superdeck/example/slides.md | 37 ++++++-- .../lib/components/atoms/slide_thumbnail.dart | 4 - .../molecules/floating_bottom_bar.dart | 2 +- .../lib/components/superdeck_app.dart | 3 +- .../lib/helpers/dependency_injection.dart | 9 ++ .../superdeck/lib/helpers/signal_hook.dart | 58 ++++++++++++ .../superdeck/lib/providers/controller.dart | 16 +--- .../lib/services/reference_service.dart | 16 ++-- packages/superdeck/pubspec.yaml | 1 + .../lib/src/helpers/dart_process.dart | 65 ++++++++++++++ .../lib/src/helpers/exceptions.dart | 37 ++++++++ .../superdeck_cli/lib/src/helpers/logger.dart | 70 +++++++++++++++ .../lib/src/helpers/slide_parser.dart | 40 +++++++-- .../lib/src/helpers/yaml_to_map.dart | 7 +- .../superdeck_cli/lib/src/slides_loader.dart | 9 +- .../lib/src/slides_pipeline.dart | 29 +++++- .../lib/src/tasks/dart_formatter_task.dart | 19 +++- .../lib/src/tasks/mermaid_task.dart | 10 ++- .../lib/src/tasks/slide_thumbnail_task.dart | 2 +- packages/superdeck_cli/pubspec.yaml | 1 + .../lib/src/models/slide_model.dart | 4 +- .../lib/src/schema/schema_validation.dart | 2 - .../superdeck_core/lib/superdeck_core.dart | 2 + 32 files changed, 443 insertions(+), 111 deletions(-) rename packages/superdeck/example/.superdeck/generated/{mermaid_spzwggdT.png => mermaid_llAVsepR.png} (71%) delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_BEcskpQr.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png delete mode 100644 packages/superdeck/example/.superdeck/generated/thumbnail_xUhI9Z6w.png create mode 100644 packages/superdeck/lib/helpers/dependency_injection.dart create mode 100644 packages/superdeck/lib/helpers/signal_hook.dart create mode 100644 packages/superdeck_cli/lib/src/helpers/dart_process.dart create mode 100644 packages/superdeck_cli/lib/src/helpers/exceptions.dart create mode 100644 packages/superdeck_cli/lib/src/helpers/logger.dart diff --git a/packages/superdeck/example/.superdeck/generated/mermaid_spzwggdT.png b/packages/superdeck/example/.superdeck/generated/mermaid_llAVsepR.png similarity index 71% rename from packages/superdeck/example/.superdeck/generated/mermaid_spzwggdT.png rename to packages/superdeck/example/.superdeck/generated/mermaid_llAVsepR.png index 802df6d64b359499bb6a26ecc40ed155f8246347..5d946332e183f4e1c1ccf165138dfec4c5ede61b 100644 GIT binary patch delta 6414 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�=XAdoW5`C8efhc_9S zm|~!oz8e(=3G7MduZ+vinbN+{k?KjbNc6K_X%N)#h^Ot=kP3vOQCqu07~>d;svD!V|5`FZMp7%8|30BaTWKukqcs2k18T|&PZrm7 z4GePs91UKDD7~(!gWAla#PHTvq=99p5KVti|NBRh|H+dlU(D|~J(pN9g1l_E#)#UV z{-mhDW95^bIgh=C)&Sg#*fT~9^Wk;ll!T0otxR-hn#t*}`$=y4tY~dSJwYf7l8`mM z_P+^ByA~rNZ-rLKHpibHS#DEc%!KQeH?$dh#B#ixE2nb>d{Ao3ICgt_bgW?K|Nr5X aaU~ZkY_EqZ5MzVl2h>!wluH$@!u|(ZxnaKm diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png b/packages/superdeck/example/.superdeck/generated/thumbnail_3thjboPz.png deleted file mode 100644 index b800b9c96fcdcdbd8117b7e49f95eee9da29d4fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19875 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 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_BEcskpQr.png b/packages/superdeck/example/.superdeck/generated/thumbnail_BEcskpQr.png deleted file mode 100644 index aa465854d7fe17f0196d575c8ced30cbc5e84c92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46928 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 Q!2M79y~4Yaw}yWI4?7F?ivR!s diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png b/packages/superdeck/example/.superdeck/generated/thumbnail_MGrRVh3m.png deleted file mode 100644 index be3285eca211d7a1600c4a456145122be81652b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21466 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 diff --git a/packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png b/packages/superdeck/example/.superdeck/generated/thumbnail_dk6NgW8O.png deleted file mode 100644 index 1567aa428751852acd7354946f0199a8b5409e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9960 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 PW*`MwRd}VeY3Tm}=IrUb diff --git a/packages/superdeck/example/.superdeck/slides.json b/packages/superdeck/example/.superdeck/slides.json index a547e161..c3a3029e 100644 --- a/packages/superdeck/example/.superdeck/slides.json +++ b/packages/superdeck/example/.superdeck/slides.json @@ -8,9 +8,11 @@ }, "slides": [ { - "content": "{@body}\n{@content}\n## This is an example of a widgets\n\n{@widget name: demo }", - "key": "BEcskpQr", - "options": {}, + "content": "{@content}\n## This is an example of a widgets\n\n{@widget name: demo }\n\n{@content}\n\n```dart\nimport 'package:flutter/material.dart';\n\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n\n```", + "key": "hzjE0REi", + "options": { + "style": "custom" + }, "sections": [ { "options": {}, @@ -27,28 +29,35 @@ }, "content": "", "type": "widget" + }, + { + "content": "\n```dart\nimport 'package:flutter/material.dart';\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n```", + "options": {}, + "type": "content" } ], - "type": "body" + "type": "root" } ] }, { - "content": "![Mermaid Diagram](.superdeck/generated/mermaid_spzwggdT.png)\n\n{@content}\n\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n\n\n", - "key": "xUhI9Z6w", + "content": "![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png)\n\n{@content flex: 3}\n\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n\n\n", + "key": "BL6j0ocx", "options": {}, "sections": [ { "options": {}, "content_sections": [ { - "content": "![Mermaid Diagram](.superdeck/generated/mermaid_spzwggdT.png)", + "content": "![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png)", "options": {}, "type": "content" }, { "content": "\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n", - "options": {}, + "options": { + "flex": 3 + }, "type": "content" } ], @@ -57,8 +66,8 @@ ] }, { - "content": "{@content flex: 2}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo \n\n{@content }", - "key": "dk6NgW8O", + "content": "{@header}\n{@content align: bottom_right | flex: 3}\n# This presentation will be great\n\n{@content}\n\n{@body}\n\n\n{@content }\n{@content flex: 2 | align: top_right}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo", + "key": "N2t8AzgD", "options": { "style": "quote" }, @@ -67,9 +76,10 @@ "options": {}, "content_sections": [ { - "content": "\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo ", + "content": "\n# This presentation will be great", "options": { - "flex": 2 + "flex": 3, + "align": "bottom_right" }, "type": "content" }, @@ -79,13 +89,32 @@ "type": "content" } ], - "type": "root" + "type": "header" + }, + { + "options": {}, + "content_sections": [ + { + "content": "", + "options": {}, + "type": "content" + }, + { + "content": "\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo", + "options": { + "flex": 2, + "align": "top_right" + }, + "type": "content" + } + ], + "type": "body" } ] }, { - "content": "{@header}\n{@image src: https://picsum.photos/1200/1200?waves | align: bottom_left | fit: cover}\n\n{@body flex: 2}\n{@content flex: 2}\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n\n{@content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", - "key": "MGrRVh3m", + "content": "{@header}\n{@image src: https://picsum.photos/1200/1200?waves | align: top_left | fit: cover}\n\n{@body flex: 2}\n{@content flex: 2}\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n\n{@content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", + "key": "oTEXuXXM", "options": { "style": "show_sections" }, @@ -97,7 +126,7 @@ "options": { "src": "//picsum.photos/1200/1200?waves", "fit": "cover", - "align": "bottom_left", + "align": "top_left", "type": "ImageOptions" }, "content": "", @@ -130,7 +159,7 @@ }, { "content": "{@header}\n{@content align: bottom_right}\n\n## First\n\n{@content} \n\n\n## Header\n\n{@body flex: 2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{@content}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", - "key": "3thjboPz", + "key": "aJflg4a6", "options": { "style": "show_sections" }, @@ -176,7 +205,7 @@ ], "assets": [ { - "path": ".superdeck/generated/mermaid_spzwggdT.png", + "path": ".superdeck/generated/mermaid_llAVsepR.png", "width": 313, "height": 449 }, @@ -184,26 +213,6 @@ "path": ".superdeck/generated/mermaid_BTVEzSEg.png", "width": 650, "height": 171 - }, - { - "path": ".superdeck/generated/thumbnail_xUhI9Z6w.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_dk6NgW8O.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_MGrRVh3m.png", - "width": 512, - "height": 288 - }, - { - "path": ".superdeck/generated/thumbnail_3thjboPz.png", - "width": 512, - "height": 288 } ] } \ No newline at end of file diff --git a/packages/superdeck/example/lib/src/style.dart b/packages/superdeck/example/lib/src/style.dart index b85d8f9c..8d097c3b 100644 --- a/packages/superdeck/example/lib/src/style.dart +++ b/packages/superdeck/example/lib/src/style.dart @@ -25,6 +25,8 @@ Style get customStyle { return Style( _textStyle.as(GoogleFonts.poppins()), _h1.textStyle.as(GoogleFonts.smooch()), + _code.textStyle.as(GoogleFonts.firaCode()), + _code.decoration.color(Colors.black), _h1.textStyle.fontSize(200), _h1.textStyle.height(0), _h1.textStyle.shadow( diff --git a/packages/superdeck/example/lib/src/widget/mix_demo.dart b/packages/superdeck/example/lib/src/widget/mix_demo.dart index c150d486..48053d7c 100644 --- a/packages/superdeck/example/lib/src/widget/mix_demo.dart +++ b/packages/superdeck/example/lib/src/widget/mix_demo.dart @@ -85,21 +85,17 @@ class _DemoOptions { Widget mixExampleBuilder(BuildContext context, WidgetOptions options) { final mappedOptions = _DemoOptions.fromMap(options.args); - return Builder( - builder: (context) { - return Center( - child: SizedBox( - height: mappedOptions.height, - width: mappedOptions.width, - child: Box( - style: _style.animate(), - child: StyledText( - mappedOptions.text ?? 'Mix', - ), - ), + return Center( + child: SizedBox( + height: mappedOptions.height, + width: mappedOptions.width, + child: Box( + style: _style.animate(), + child: StyledText( + mappedOptions.text ?? 'Hello', ), - ); - }, + ), + ), ); } diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index 4d4819c9..a740b5d6 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -1,11 +1,26 @@ --- +style: custom --- -{@body} + {@content} ## This is an example of a widgets {@widget name: demo } +{@content} + +```dart +import 'package:flutter/material.dart'; + +void main() { + final style = Style( + $box.padding.all(), + $box.border.all(), + ); +} + +``` + --- --- @@ -16,11 +31,11 @@ graph TD C --> D[Keep] C --> E[Edit Definition] E --> B - D --> F[Save Image and Code] + D --> F[Save Image and Car] F --> B ``` -{@content} +{@content flex: 3} ```mermaid sequenceDiagram @@ -36,20 +51,28 @@ sequenceDiagram style: quote --- -{@content flex: 2} +{@header} +{@content align: bottom_right | flex: 3} +# This presentation will be great + +{@content} + +{@body} + + +{@content } +{@content flex: 2 | align: top_right} > Create your Flutter presentations faster and easier than ever. > You can quote me on that > ### Leo -{@content } - --- style: show_sections --- {@header} -{@image src: https://picsum.photos/1200/1200?waves | align: bottom_left | fit: cover} +{@image src: https://picsum.photos/1200/1200?waves | align: top_left | fit: cover} {@body flex: 2} {@content flex: 2} diff --git a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart index 8b5f1649..2e4b5a6a 100644 --- a/packages/superdeck/lib/components/atoms/slide_thumbnail.dart +++ b/packages/superdeck/lib/components/atoms/slide_thumbnail.dart @@ -198,13 +198,9 @@ class _PreviewContainer extends StatelessWidget { blurRadius: 4, spreadRadius: 1, ), - selected ? $box.wrap.scale(1.05) : $box.wrap.scale(1), selected ? $box.wrap.opacity(1) : $box.wrap.opacity(0.5), selected ? $box.border.color.$accent() : $box.border.color.transparent(), - // $on.hover( - // $box.wrap.opacity(1), - // ), ).animate(); return Box( diff --git a/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart b/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart index daa195a3..b03634b2 100644 --- a/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart +++ b/packages/superdeck/lib/components/molecules/floating_bottom_bar.dart @@ -33,7 +33,7 @@ class _FloatingBottomBarState extends State { padding: EdgeInsets.symmetric(horizontal: 16), height: 60, decoration: BoxDecoration( - color: const Color.fromARGB(98, 0, 0, 0), + color: const Color.fromARGB(171, 0, 0, 0), border: Border( top: BorderSide( color: Colors.white10, diff --git a/packages/superdeck/lib/components/superdeck_app.dart b/packages/superdeck/lib/components/superdeck_app.dart index ea2703a1..d0662327 100644 --- a/packages/superdeck/lib/components/superdeck_app.dart +++ b/packages/superdeck/lib/components/superdeck_app.dart @@ -11,6 +11,7 @@ import 'package:window_manager/window_manager.dart'; import '../../helpers/syntax_highlighter.dart'; import '../../superdeck.dart'; import '../helpers/constants.dart'; +import '../helpers/dependency_injection.dart'; import '../helpers/routes.dart'; import '../helpers/theme.dart'; import '../providers/examples_provider.dart'; @@ -39,9 +40,9 @@ class SuperDeckApp extends HookWidget { _initialized = true; WidgetsFlutterBinding.ensureInitialized(); + setupDependencyInjection(); await Future.wait([ - SuperDeckController.initialize(), SyntaxHighlight.initialize(), _initializeWindowManager(), ]); diff --git a/packages/superdeck/lib/helpers/dependency_injection.dart b/packages/superdeck/lib/helpers/dependency_injection.dart new file mode 100644 index 00000000..fdb5c215 --- /dev/null +++ b/packages/superdeck/lib/helpers/dependency_injection.dart @@ -0,0 +1,9 @@ +import 'package:get_it/get_it.dart'; + +import '../superdeck.dart'; + +final getIt = GetIt.instance; + +void setupDependencyInjection() { + getIt.registerSingleton(SuperDeckController()); +} diff --git a/packages/superdeck/lib/helpers/signal_hook.dart b/packages/superdeck/lib/helpers/signal_hook.dart new file mode 100644 index 00000000..b3215626 --- /dev/null +++ b/packages/superdeck/lib/helpers/signal_hook.dart @@ -0,0 +1,58 @@ +import 'package:flutter/foundation.dart'; +import 'package:flutter/widgets.dart'; +import 'package:flutter_hooks/flutter_hooks.dart'; +import 'package:signals/signals_flutter.dart'; + +typedef ListeableSignal + = SignalValueListenable, ReadonlySignal>; + +R useSignal(R initialValue) { + return use(_UseSignal(initialValue)); +} + +class _UseSignal, V> extends Hook { + final V initialValue; + const _UseSignal( + this.initialValue, { + super.keys, + }); + + @override + HookState> createState() => _UseSignalState(); +} + +class _UseSignalState, V> + extends HookState> { + late T _signal; + late ListeableSignal _listenable; + + _UseSignalState(); + + @override + void initHook() { + // Initialize the ValueNotifier with the initial value + _signal = signal(hook.initialValue) as T; + + // Automatically add a listener that triggers setState when the notifier's value changes + _listenable = _signal.toValueListenable(); + + _listenable.addListener(_notifyChange); + } + + _notifyChange() { + setState(() {}); + } + + @override + T build(BuildContext context) { + // Return the current value of the notifier + return _signal; + } + + @override + void dispose() { + // Remove the listener and dispose of the notifier when the hook is disposed + _listenable.removeListener(_notifyChange); + _signal.dispose(); + } +} diff --git a/packages/superdeck/lib/providers/controller.dart b/packages/superdeck/lib/providers/controller.dart index db06b9d1..c611a0c5 100644 --- a/packages/superdeck/lib/providers/controller.dart +++ b/packages/superdeck/lib/providers/controller.dart @@ -4,22 +4,14 @@ import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:signals/signals_flutter.dart'; import 'package:superdeck_core/superdeck_core.dart'; +import '../helpers/dependency_injection.dart'; import '../services/reference_service.dart'; -final superDeckController = SuperDeckController.instance; +final superDeckController = getIt.get(); class SuperDeckController { - SuperDeckController._(); - - static final instance = SuperDeckController._(); - - bool _initialized = false; - - static Future initialize() async { - if (instance._initialized) return; - instance._initialized = true; - await instance._loadData(); - ReferenceService.instance.listen(instance._getData.refresh); + SuperDeckController() { + ReferenceService.instance.listen(_getData.refresh); } late final _getData = futureSignal(_loadData, lazy: false); diff --git a/packages/superdeck/lib/services/reference_service.dart b/packages/superdeck/lib/services/reference_service.dart index 2f3e8986..20aa3bb2 100644 --- a/packages/superdeck/lib/services/reference_service.dart +++ b/packages/superdeck/lib/services/reference_service.dart @@ -33,14 +33,14 @@ class ReferenceService { return _markdown.readAsString(); } - Future loadBytes(String path) async { - if (kCanRunProcess) { - final bytes = await File(path).readAsBytes(); - return ByteData.view(Uint8List.fromList(bytes).buffer); - } else { - return await rootBundle.load(path); - } - } + // Future loadBytes(String path) async { + // if (kCanRunProcess) { + // final bytes = await File(path).readAsBytes(); + // return ByteData.view(Uint8List.fromList(bytes).buffer); + // } else { + // return await rootBundle.load(path); + // } + // } Future saveMarkdown(String data) async { await _markdown.writeAsString(data); diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index 99b7eb93..dc952337 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -43,6 +43,7 @@ dependencies: auto_size_text: ^3.0.0 signals: ^5.4.0 material_symbols_icons: ^4.2780.0 + get_it: ^7.7.0 dev_dependencies: flutter_test: diff --git a/packages/superdeck_cli/lib/src/helpers/dart_process.dart b/packages/superdeck_cli/lib/src/helpers/dart_process.dart new file mode 100644 index 00000000..69b4f8ae --- /dev/null +++ b/packages/superdeck_cli/lib/src/helpers/dart_process.dart @@ -0,0 +1,65 @@ +import 'dart:io'; + +import 'package:superdeck_cli/src/helpers/exceptions.dart'; +import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; + +class DartProcess { + // static Future _run(List args) async { + // return Process.start('dart', args, mode: ProcessStartMode.inheritStdio); + // } + + // runSync + static ProcessResult _runSync(List args) { + return Process.runSync('dart', args); + } + + static String format(String code) { + final hash = shortHashId('$code'); // Generate a hash for the code + final tempFile = File('${Directory.systemTemp.path}/$hash.dart'); + try { + tempFile.createSync(recursive: true); + + tempFile.writeAsStringSync(code); + + final result = _runSync(['format', '--fix', tempFile.path]); + + if (result.exitCode != 0) { + throw _handleFormattingError(result.stderr as String, code); + } + return tempFile.readAsStringSync(); + } finally { + if (tempFile.existsSync()) { + tempFile.deleteSync(); + } + } + } +} + +SDFormatException _handleFormattingError(String stderr, String source) { + final match = + RegExp(r'line (\d+), column (\d+) of .*: (.+)').firstMatch(stderr); + + if (match != null) { + final line = int.parse(match.group(1)!); + final column = int.parse(match.group(2)!); + final message = match.group(3)!; + + // Calculate the zero-based offset + final lines = source.split('\n'); + int offset = 0; + + // Calculate the offset by summing the lengths of all preceding lines + for (int i = 0; i < line - 1; i++) { + offset += lines[i].length + 1; // +1 for the newline character + } + offset += column - 1; // Add the column offset within the line + + return SDFormatException( + 'Dart code formatting error: $message', + source, + offset, + ); + } else { + return SDFormatException('Error formatting dart code: $stderr'); + } +} diff --git a/packages/superdeck_cli/lib/src/helpers/exceptions.dart b/packages/superdeck_cli/lib/src/helpers/exceptions.dart new file mode 100644 index 00000000..f7276fce --- /dev/null +++ b/packages/superdeck_cli/lib/src/helpers/exceptions.dart @@ -0,0 +1,37 @@ +class SDFormatException implements Exception { + final String message; + final int? offset; + final String source; + + SDFormatException( + this.message, [ + this.source = '', + this.offset, + ]); + + int? get lineNumber { + return source.substring(0, offset).split('\n').length; + } + + String? get lineContent { + return source.split('\n')[lineNumber! - 1]; + } + + int? get columnNumber { + final lines = source.split('\n'); + int totalOffset = 0; + + for (int i = 0; i < lineNumber! - 1; i++) { + // +1 for the newline character + totalOffset += lines[i].length + 1; + } + + // Convert zero-based index to one-based + return offset! - totalOffset + 1; + } + + @override + String toString() { + return message; + } +} diff --git a/packages/superdeck_cli/lib/src/helpers/logger.dart b/packages/superdeck_cli/lib/src/helpers/logger.dart new file mode 100644 index 00000000..f1720c0d --- /dev/null +++ b/packages/superdeck_cli/lib/src/helpers/logger.dart @@ -0,0 +1,70 @@ +import 'package:mason_logger/mason_logger.dart'; +import 'package:superdeck_cli/src/helpers/exceptions.dart'; + +final logger = Logger( + // Optionally, specify a log level (defaults to Level.info). + level: Level.info, + // Optionally, specify a custom `LogTheme` to override log styles. + theme: LogTheme(), +); + +extension LoggerX on Logger { + // void formatError(String message) { + // info(message, style: _formatErrorStyle); + // } + + void formatError(SDFormatException exception) { + final message = exception.message; + final source = exception.source; + + final arrow = _createArrow(exception.columnNumber ?? 0); + + final splitLines = source.split('\n'); + + // Get the longes line + final longestLine = splitLines.fold(0, (prev, element) { + return element.length > prev ? element.length : prev; + }); + + String padline(String line) { + return ' ' + line.padRight(longestLine + 2); + } + + // Print the error message with the source code + + warn('Formatting Error: $message'); + newLine(); + _formatCodeBlock(padline('')); + + for (int i = 0; i < splitLines.length; i++) { + final lineNumber = i + 1; + final currentLineContent = splitLines[i]; + final isErrorLine = lineNumber == exception.lineNumber; + + if (isErrorLine) { + info(padline(currentLineContent), style: _highlightLine); + info(padline(arrow), style: _highlightLine); + } else { + _formatCodeBlock(padline(currentLineContent)); + } + } + } + + void _formatCodeBlock(String message) { + info(message, style: _formatErrorStyle); + } + + void newLine() => info(''); +} + +String _createArrow(int column) { + return ' ' * (column - 1) + '^'; +} + +String? _formatErrorStyle(String? m) { + return backgroundLightGray.wrap(styleBold.wrap(black.wrap(m))); +} + +String? _highlightLine(String? m) { + return backgroundRed.wrap(styleBold.wrap(black.wrap(m))); +} diff --git a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart index f26d5630..4bdc0a73 100644 --- a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart +++ b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart @@ -1,6 +1,7 @@ // lib/slide_parser.dart -import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; +import 'package:collection/collection.dart'; +import 'package:superdeck_cli/src/helpers/logger.dart'; import 'package:superdeck_cli/src/helpers/yaml_to_map.dart'; import 'package:superdeck_core/superdeck_core.dart'; @@ -46,15 +47,36 @@ class SlideParser { List run() { final markdownContents = _splitSlides(contents.trim()); - final slideRaws = markdownContents.map(parseSlideMarkdown).toList(); + final slideRaws = markdownContents.map(parseSlideMarkdown).map((e) { + return { + 'content': e.content, + 'options': e.options, + 'key': e.key, + }; + }); - return slideRaws.map((raw) { - return Slide( - content: raw.content, - key: shortHashId(raw.toString()), - options: SlideOptions.fromMap(raw.options), - ); - }).toList(); + slideRaws.forEachIndexed((index, raw) { + try { + Slide.schema.validateOrThrow(raw); + } on SchemaValidationException catch (e) { + final keyPath = e.result.key.join(' | '); + final errorMessages = e.result.errors.map((e) => e.message).join(', '); + logger + ..newLine() + ..alert( + 'Slide schema validation failed', + ) + ..newLine() + ..info( + 'slide ${index + 1}: > $keyPath > $errorMessages', + ) + ..newLine(); + + throw Exception('Slide schema validation failed'); + } + }); + + return slideRaws.map(Slide.fromMap).toList(); } } diff --git a/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart b/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart index eb7a8916..c4a04ba4 100644 --- a/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart +++ b/packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart @@ -1,9 +1,11 @@ +import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; import 'package:superdeck_core/superdeck_core.dart'; final _frontMatterRegex = RegExp(r'---([\s\S]*?)---'); -({String content, Map options}) parseSlideMarkdown( - String slideContents) { +({String content, String key, Map options}) parseSlideMarkdown( + String slideContents, +) { final frontMatter = _frontMatterRegex.firstMatch(slideContents)?.group(1) ?? ''; final options = convertYamlToMap(frontMatter); @@ -15,5 +17,6 @@ final _frontMatterRegex = RegExp(r'---([\s\S]*?)---'); return ( content: content, options: options, + key: shortHashId(slideContents), ); } diff --git a/packages/superdeck_cli/lib/src/slides_loader.dart b/packages/superdeck_cli/lib/src/slides_loader.dart index 1ca794e5..29b1af9f 100644 --- a/packages/superdeck_cli/lib/src/slides_loader.dart +++ b/packages/superdeck_cli/lib/src/slides_loader.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:superdeck_cli/src/constants.dart'; +import 'package:superdeck_cli/src/helpers/logger.dart'; import 'package:superdeck_cli/src/tasks/dart_formatter_task.dart'; import 'package:superdeck_cli/src/tasks/image_cache_task.dart'; import 'package:superdeck_cli/src/tasks/mermaid_task.dart'; @@ -37,7 +38,11 @@ class SlidesLoader { const SlideThumbnailTask(), const ImageCachingTask(), ]); - - await pipeline.run(); + try { + await pipeline.run(); + } catch (e, stackTrace) { + logger.detail('Exception: $e'); + logger.detail(stackTrace.toString()); + } } } diff --git a/packages/superdeck_cli/lib/src/slides_pipeline.dart b/packages/superdeck_cli/lib/src/slides_pipeline.dart index 2803baf2..b9857b57 100644 --- a/packages/superdeck_cli/lib/src/slides_pipeline.dart +++ b/packages/superdeck_cli/lib/src/slides_pipeline.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; @@ -24,6 +25,7 @@ typedef PipelineResult = ({ }); class TaskController { + final int position; final Slide slide; final List _assets; final TaskPipeline pipeline; @@ -43,6 +45,7 @@ class TaskController { } TaskController._({ + required this.position, required this.slide, required List assets, required this.pipeline, @@ -50,6 +53,7 @@ class TaskController { }) : _assets = assets; TaskController({ + required this.position, required this.slide, required this.pipeline, required List assets, @@ -69,6 +73,7 @@ class TaskController { List? markdownReplacements, }) { return TaskController._( + position: position, slide: slide ?? this.slide, pipeline: pipeline, markdownReplacements: markdownReplacements ?? this.markdownReplacements, @@ -122,10 +127,12 @@ class TaskPipeline { } Future _runEachSlide( + int position, Slide slide, List assets, ) async { var controller = TaskController( + position: position, slide: slide, assets: assets, pipeline: this, @@ -148,9 +155,10 @@ class TaskPipeline { final slides = parser.run(); final futures = >[]; - + int position = 0; for (var slide in slides) { - futures.add(_runEachSlide(slide, loadedReference.assets)); + position++; + futures.add(_runEachSlide(position, slide, loadedReference.assets)); } final controllers = await Future.wait(futures); @@ -223,6 +231,23 @@ abstract class Task { return shortHashId(content); } + Future dartProcess(String code) async { + final process = await Process.start('dart', ['format', '--fix'], + mode: ProcessStartMode.inheritStdio); + + process.stdin.writeln(code); + process.stdin.close(); + + final output = await process.stdout.transform(utf8.decoder).join(); + final error = await process.stderr.transform(utf8.decoder).join(); + + if (error.isNotEmpty) { + throw Exception('Error formatting dart code: $error'); + } + + return output; + } + File buildAssetFile(String assetName, String extension) { if (p.extension(assetName).isNotEmpty) { throw Exception('Asset name should not have an extension'); diff --git a/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart b/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart index b852e7f8..4dcf407e 100644 --- a/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart @@ -1,6 +1,8 @@ import 'dart:async'; -import 'package:dart_style/dart_style.dart'; +import 'package:superdeck_cli/src/helpers/dart_process.dart'; +import 'package:superdeck_cli/src/helpers/exceptions.dart'; +import 'package:superdeck_cli/src/helpers/logger.dart'; import 'package:superdeck_cli/src/slides_pipeline.dart'; class DartFormatterTask extends Task { @@ -22,8 +24,19 @@ class DartFormatterTask extends Task { final markdown = controller.slide.content; return markdown.replaceAllMapped(codeBlockRegex, (match) { final code = match.group(1)!; - final formatter = DartFormatter(); - final formattedCode = formatter.format(code); + // Analyze the code + String formattedCode; + try { + formattedCode = DartProcess.format(code); + } on SDFormatException catch (e) { + logger + ..newLine() + ..warn('slide position: ${controller.position}') + ..formatError(e) + ..newLine(); + + throw Exception('Failed to format the code block'); + } final replacement = '```dart\n$formattedCode\n```'; diff --git a/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart b/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart index 65ffeb9a..2b79b26a 100644 --- a/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:puppeteer/puppeteer.dart'; +import 'package:superdeck_cli/src/helpers/logger.dart'; import 'package:superdeck_cli/src/slides_pipeline.dart'; // --- @@ -15,7 +16,12 @@ Future _generateMermaidGraph( Browser browser, String graphDefinition, ) async { - print('Generating mermaid graph...'); + logger + ..detail('') + ..detail('Generating mermaid graph...') + ..detail(graphDefinition) + ..detail(''); + final page = await browser.newPage(); await page.setContent(''' @@ -130,7 +136,7 @@ class MermaidConverterTask extends Task { 'png', ); - if (true) { + if (!await mermaidFile.exists()) { final browser = await controller.pipeline.getBrowser(); final imageData = diff --git a/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart b/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart index dfdf89a5..7747b279 100644 --- a/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart @@ -9,7 +9,7 @@ class SlideThumbnailTask extends Task { @override FutureOr run(controller) async { - final file = buildAssetFile(controller.slide.key, 'png'); + final file = buildAssetFile('thumbnail_' + controller.slide.key, 'png'); if (await file.exists()) { await controller.markFileAsNeeded(file); diff --git a/packages/superdeck_cli/pubspec.yaml b/packages/superdeck_cli/pubspec.yaml index 67b0cb69..0b1965dd 100644 --- a/packages/superdeck_cli/pubspec.yaml +++ b/packages/superdeck_cli/pubspec.yaml @@ -18,6 +18,7 @@ dependencies: http: ^1.2.2 puppeteer: ^3.12.0 superdeck_core: ^0.0.1 + mason_logger: ^0.3.0 dev_dependencies: diff --git a/packages/superdeck_core/lib/src/models/slide_model.dart b/packages/superdeck_core/lib/src/models/slide_model.dart index 04d9f1d3..8d8ab987 100644 --- a/packages/superdeck_core/lib/src/models/slide_model.dart +++ b/packages/superdeck_core/lib/src/models/slide_model.dart @@ -1,9 +1,6 @@ import 'package:dart_mappable/dart_mappable.dart'; import 'package:superdeck_core/superdeck_core.dart'; -import '../schema/schema_model.dart'; -import '../schema/schema_validation.dart'; - part 'slide_model.mapper.dart'; @MappableClass() @@ -39,6 +36,7 @@ class Slide with SlideMappable { static final schema = SchemaShape( { + "key": Schema.string.required(), "content": Schema.string.required(), "title": Schema.string, 'options': SlideOptions.schema.optional(), diff --git a/packages/superdeck_core/lib/src/schema/schema_validation.dart b/packages/superdeck_core/lib/src/schema/schema_validation.dart index b37f1428..cc09b0f7 100644 --- a/packages/superdeck_core/lib/src/schema/schema_validation.dart +++ b/packages/superdeck_core/lib/src/schema/schema_validation.dart @@ -2,8 +2,6 @@ import 'package:dart_mappable/dart_mappable.dart'; part 'schema_validation.mapper.dart'; -typedef JSON = Map; - class SchemaValidationException implements Exception { final SchemaValidationResult result; diff --git a/packages/superdeck_core/lib/superdeck_core.dart b/packages/superdeck_core/lib/superdeck_core.dart index 233dbebd..2dc1c4c1 100644 --- a/packages/superdeck_core/lib/superdeck_core.dart +++ b/packages/superdeck_core/lib/superdeck_core.dart @@ -11,3 +11,5 @@ export 'src/models/options_model.dart'; export 'src/models/reference_model.dart'; export 'src/models/slide_model.dart'; export 'src/models/slide_parts.dart'; +export 'src/schema/schema_model.dart'; +export 'src/schema/schema_validation.dart'; From 53e9ff65104556a3418ffd40c3d725d8bcc0ce66 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Thu, 22 Aug 2024 15:38:25 -0400 Subject: [PATCH 10/27] Improved parsing --- .../superdeck/example/.superdeck/slides.json | 4 +- packages/superdeck/example/slides.md | 3 +- .../lib/src/helpers/exceptions.dart | 35 +++++++++++ .../superdeck_cli/lib/src/helpers/logger.dart | 20 +++++-- .../lib/src/helpers/slide_parser.dart | 58 ++++++++----------- .../superdeck_cli/lib/src/slides_loader.dart | 51 ++++++++++++++-- .../lib/src/slides_pipeline.dart | 37 +++++++----- .../lib/src/tasks/dart_formatter_task.dart | 17 +----- 8 files changed, 144 insertions(+), 81 deletions(-) diff --git a/packages/superdeck/example/.superdeck/slides.json b/packages/superdeck/example/.superdeck/slides.json index c3a3029e..d67363cc 100644 --- a/packages/superdeck/example/.superdeck/slides.json +++ b/packages/superdeck/example/.superdeck/slides.json @@ -8,8 +8,8 @@ }, "slides": [ { - "content": "{@content}\n## This is an example of a widgets\n\n{@widget name: demo }\n\n{@content}\n\n```dart\nimport 'package:flutter/material.dart';\n\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n\n```", - "key": "hzjE0REi", + "content": "{@content}\n## This is an example of a widgets\n\n{@widget name: demo }\n\n{@content}\n\n```dart\nimport 'package:flutter/material.dart';\n\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n\n```", + "key": "jyRrvnQW", "options": { "style": "custom" }, diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index a740b5d6..42385344 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -1,11 +1,12 @@ --- style: custom +sdf --- {@content} ## This is an example of a widgets -{@widget name: demo } +{@widget name: demo } {@content} diff --git a/packages/superdeck_cli/lib/src/helpers/exceptions.dart b/packages/superdeck_cli/lib/src/helpers/exceptions.dart index f7276fce..2ef03c7b 100644 --- a/packages/superdeck_cli/lib/src/helpers/exceptions.dart +++ b/packages/superdeck_cli/lib/src/helpers/exceptions.dart @@ -1,3 +1,38 @@ +import 'package:superdeck_cli/src/slides_pipeline.dart'; +import 'package:superdeck_core/superdeck_core.dart'; + +class SDMarkdownParsingException implements Exception { + final SchemaValidationException exception; + final int slideLocation; + + SDMarkdownParsingException(this.exception, this.slideLocation); + + String get location => exception.result.key.join(' | '); + + List get messages { + return exception.result.errors.map((e) => e.message).toList(); + } +} + +class SDTaskException implements Exception { + final String taskName; + final TaskController controller; + final Exception exception; + + SDTaskException( + this.taskName, + this.controller, + this.exception, + ); + + String get message { + return 'Error running task on slide ${controller.position}'; + } + + @override + String toString() => message; +} + class SDFormatException implements Exception { final String message; final int? offset; diff --git a/packages/superdeck_cli/lib/src/helpers/logger.dart b/packages/superdeck_cli/lib/src/helpers/logger.dart index f1720c0d..6944f241 100644 --- a/packages/superdeck_cli/lib/src/helpers/logger.dart +++ b/packages/superdeck_cli/lib/src/helpers/logger.dart @@ -9,10 +9,6 @@ final logger = Logger( ); extension LoggerX on Logger { - // void formatError(String message) { - // info(message, style: _formatErrorStyle); - // } - void formatError(SDFormatException exception) { final message = exception.message; final source = exception.source; @@ -31,16 +27,28 @@ extension LoggerX on Logger { } // Print the error message with the source code - - warn('Formatting Error: $message'); + newLine(); + alert('Formatting Error:'); + newLine(); + err('$message on line ${exception.lineNumber}, column ${exception.columnNumber}'); newLine(); _formatCodeBlock(padline('')); + final exceptionLineNumber = exception.lineNumber ?? 0; + + // Calculate only 4 lines before and after the error line + final start = (exceptionLineNumber - 5).clamp(0, splitLines.length); + final end = (exceptionLineNumber + 5).clamp(0, splitLines.length); + for (int i = 0; i < splitLines.length; i++) { final lineNumber = i + 1; final currentLineContent = splitLines[i]; final isErrorLine = lineNumber == exception.lineNumber; + if (lineNumber < start || lineNumber > end) { + continue; + } + if (isErrorLine) { info(padline(currentLineContent), style: _highlightLine); info(padline(arrow), style: _highlightLine); diff --git a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart index 4bdc0a73..d9494169 100644 --- a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart +++ b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart @@ -1,15 +1,12 @@ // lib/slide_parser.dart import 'package:collection/collection.dart'; -import 'package:superdeck_cli/src/helpers/logger.dart'; +import 'package:superdeck_cli/src/helpers/exceptions.dart'; import 'package:superdeck_cli/src/helpers/yaml_to_map.dart'; import 'package:superdeck_core/superdeck_core.dart'; class SlideParser { - final String contents; - SlideParser(this.contents); - - List _splitSlides(String content) { + static List _splitSlides(String content) { final lines = content.split('\n'); final slides = []; final buffer = StringBuffer(); @@ -44,39 +41,30 @@ class SlideParser { return slides; } - List run() { - final markdownContents = _splitSlides(contents.trim()); - - final slideRaws = markdownContents.map(parseSlideMarkdown).map((e) { - return { - 'content': e.content, - 'options': e.options, - 'key': e.key, - }; - }); + static List run(String contents) { + try { + final markdownContents = _splitSlides(contents.trim()); - slideRaws.forEachIndexed((index, raw) { - try { - Slide.schema.validateOrThrow(raw); - } on SchemaValidationException catch (e) { - final keyPath = e.result.key.join(' | '); - final errorMessages = e.result.errors.map((e) => e.message).join(', '); - logger - ..newLine() - ..alert( - 'Slide schema validation failed', - ) - ..newLine() - ..info( - 'slide ${index + 1}: > $keyPath > $errorMessages', - ) - ..newLine(); + final slideRaws = markdownContents.map(parseSlideMarkdown).map((e) { + return { + 'content': e.content, + 'options': e.options, + 'key': e.key, + }; + }); - throw Exception('Slide schema validation failed'); - } - }); + slideRaws.forEachIndexed((index, raw) { + try { + Slide.schema.validateOrThrow(raw); + } on SchemaValidationException catch (e) { + throw SDMarkdownParsingException(e, index + 1); + } + }); - return slideRaws.map(Slide.fromMap).toList(); + return slideRaws.map(Slide.fromMap).toList(); + } on FormatException catch (e) { + throw SDFormatException(e.message, contents, e.offset); + } } } diff --git a/packages/superdeck_cli/lib/src/slides_loader.dart b/packages/superdeck_cli/lib/src/slides_loader.dart index 29b1af9f..a442d6b2 100644 --- a/packages/superdeck_cli/lib/src/slides_loader.dart +++ b/packages/superdeck_cli/lib/src/slides_loader.dart @@ -1,6 +1,7 @@ import 'dart:async'; import 'package:superdeck_cli/src/constants.dart'; +import 'package:superdeck_cli/src/helpers/exceptions.dart'; import 'package:superdeck_cli/src/helpers/logger.dart'; import 'package:superdeck_cli/src/tasks/dart_formatter_task.dart'; import 'package:superdeck_cli/src/tasks/image_cache_task.dart'; @@ -16,21 +17,30 @@ class SlidesLoader { SlidesLoader(); Future watch() async { - print('Watching for changes...'); + final watchingLabel = 'Watching for changes...'; + logger + ..newLine() + ..info(watchingLabel); final watcher = FileWatcher(kMarkdownFile.path); await for (final event in watcher.events) { if (event.type == ChangeType.MODIFY) { final newContents = await kMarkdownFile.readAsString(); if (newContents != _markdownContents) { _markdownContents = newContents; - await generate(); + try { + await generate(); + } finally { + logger + ..newLine() + ..info(watchingLabel); + } } } } } Future generate() async { - print('Generating slides...'); + final progress = logger.progress('Generating slides...'); final pipeline = TaskPipeline([ const MermaidConverterTask(), @@ -39,10 +49,39 @@ class SlidesLoader { const ImageCachingTask(), ]); try { - await pipeline.run(); - } catch (e, stackTrace) { - logger.detail('Exception: $e'); + final references = await pipeline.run(); + progress.complete('Generated ${references.slides.length} slides.'); + } on Exception catch (e, stackTrace) { + progress.fail(); + _handleException(e); + logger.detail(stackTrace.toString()); } } } + +void _handleException(Exception e) { + if (e is SDTaskException) { + logger + ..err('slide: ${e.controller.position}') + ..err('Task error: ${e.taskName}'); + + _handleException(e.exception); + } else if (e is SDFormatException) { + logger.formatError(e); + } else if (e is SDMarkdownParsingException) { + final errorMessages = e.messages.join('\n'); + logger + ..newLine() + ..warn( + 'Slide schema validation failed', + ) + ..newLine() + ..info( + 'slide ${e.slideLocation}: > ${e.location} > $errorMessages', + ) + ..newLine(); + } else { + logger.err(e.toString()); + } +} diff --git a/packages/superdeck_cli/lib/src/slides_pipeline.dart b/packages/superdeck_cli/lib/src/slides_pipeline.dart index b9857b57..a8d505e4 100644 --- a/packages/superdeck_cli/lib/src/slides_pipeline.dart +++ b/packages/superdeck_cli/lib/src/slides_pipeline.dart @@ -7,6 +7,7 @@ import 'package:image/image.dart' as img; import 'package:path/path.dart' as p; import 'package:puppeteer/puppeteer.dart'; import 'package:superdeck_cli/src/constants.dart'; +import 'package:superdeck_cli/src/helpers/exceptions.dart'; import 'package:superdeck_cli/src/helpers/extensions.dart'; import 'package:superdeck_cli/src/helpers/section_parsing.dart'; import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; @@ -127,18 +128,10 @@ class TaskPipeline { } Future _runEachSlide( - int position, - Slide slide, - List assets, + TaskController controller, ) async { - var controller = TaskController( - position: position, - slide: slide, - assets: assets, - pipeline: this, - ); for (var task in builders) { - controller = await task.run(controller); + controller = await task.build(controller); } return controller; } @@ -151,14 +144,18 @@ class TaskPipeline { final loadedReference = SuperDeckReference.loadFile(kReferenceFile); - final parser = SlideParser(markdownRaw); - final slides = parser.run(); + final slides = SlideParser.run(markdownRaw); final futures = >[]; - int position = 0; - for (var slide in slides) { - position++; - futures.add(_runEachSlide(position, slide, loadedReference.assets)); + + for (var i = 0; i < slides.length; i++) { + final controller = TaskController( + position: i, + slide: slides[i], + assets: loadedReference.assets, + pipeline: this, + ); + futures.add(_runEachSlide(controller)); } final controllers = await Future.wait(futures); @@ -227,6 +224,14 @@ abstract class Task { TaskController controller, ); + FutureOr build(TaskController controller) { + try { + return run(controller); + } on Exception catch (e) { + throw SDTaskException(taskName, controller, e); + } + } + String buildReferenceName(String content) { return shortHashId(content); } diff --git a/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart b/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart index 4dcf407e..d214f323 100644 --- a/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart @@ -1,8 +1,6 @@ import 'dart:async'; import 'package:superdeck_cli/src/helpers/dart_process.dart'; -import 'package:superdeck_cli/src/helpers/exceptions.dart'; -import 'package:superdeck_cli/src/helpers/logger.dart'; import 'package:superdeck_cli/src/slides_pipeline.dart'; class DartFormatterTask extends Task { @@ -24,19 +22,8 @@ class DartFormatterTask extends Task { final markdown = controller.slide.content; return markdown.replaceAllMapped(codeBlockRegex, (match) { final code = match.group(1)!; - // Analyze the code - String formattedCode; - try { - formattedCode = DartProcess.format(code); - } on SDFormatException catch (e) { - logger - ..newLine() - ..warn('slide position: ${controller.position}') - ..formatError(e) - ..newLine(); - - throw Exception('Failed to format the code block'); - } + + final formattedCode = DartProcess.format(code); final replacement = '```dart\n$formattedCode\n```'; From a6b9de15a8b7c7cdfd189bf4e2eb5651c1f211e4 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Thu, 22 Aug 2024 16:01:07 -0400 Subject: [PATCH 11/27] better parsing --- .../superdeck/example/.superdeck/slides.json | 4 +- packages/superdeck/example/slides.md | 3 +- .../test/templates/slide_template_test.dart | 3 +- .../lib/src/helpers/exceptions.dart | 2 +- .../lib/src/helpers/section_parsing.dart | 16 +- .../lib/src/helpers/slide_parser.dart | 14 +- .../superdeck_cli/lib/src/slides_loader.dart | 6 +- .../lib/src/slides_pipeline.dart | 6 +- .../lib/src/models/slide_model.dart | 70 +------- .../lib/src/models/slide_model.mapper.dart | 165 ++++-------------- 10 files changed, 72 insertions(+), 217 deletions(-) diff --git a/packages/superdeck/example/.superdeck/slides.json b/packages/superdeck/example/.superdeck/slides.json index d67363cc..e0d46f33 100644 --- a/packages/superdeck/example/.superdeck/slides.json +++ b/packages/superdeck/example/.superdeck/slides.json @@ -8,8 +8,8 @@ }, "slides": [ { - "content": "{@content}\n## This is an example of a widgets\n\n{@widget name: demo }\n\n{@content}\n\n```dart\nimport 'package:flutter/material.dart';\n\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n\n```", - "key": "jyRrvnQW", + "content": "{@content blue: car}\n## This is an example of a widgets\n\n{@widget name: demo }\n\n{@content}\n\n```dart\nimport 'package:flutter/material.dart';\n\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n\n```", + "key": "TaIAWsPj", "options": { "style": "custom" }, diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index 42385344..f75cd799 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -1,9 +1,8 @@ --- style: custom -sdf --- -{@content} +{@content blue: car} ## This is an example of a widgets {@widget name: demo } diff --git a/packages/superdeck/test/templates/slide_template_test.dart b/packages/superdeck/test/templates/slide_template_test.dart index 318a90a2..a0a7662b 100644 --- a/packages/superdeck/test/templates/slide_template_test.dart +++ b/packages/superdeck/test/templates/slide_template_test.dart @@ -9,7 +9,8 @@ void main() { const rawMarkdown = ''' # Hello '''; - final slideConfig = Slide(content: rawMarkdown, key: 'simple-slide'); + final slideConfig = + Slide(index: 0, content: rawMarkdown, key: 'simple-slide'); testWidgets('builds content', (WidgetTester tester) async { await tester.pumpSlide(slideConfig); final finder = find.byType(SlideTemplate); diff --git a/packages/superdeck_cli/lib/src/helpers/exceptions.dart b/packages/superdeck_cli/lib/src/helpers/exceptions.dart index 2ef03c7b..e4ed13b7 100644 --- a/packages/superdeck_cli/lib/src/helpers/exceptions.dart +++ b/packages/superdeck_cli/lib/src/helpers/exceptions.dart @@ -26,7 +26,7 @@ class SDTaskException implements Exception { ); String get message { - return 'Error running task on slide ${controller.position}'; + return 'Error running task on slide ${controller.slide.index}'; } @override diff --git a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart index 835cec5b..b123b7fc 100644 --- a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart +++ b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart @@ -1,4 +1,5 @@ import 'package:collection/collection.dart'; +import 'package:superdeck_cli/src/helpers/exceptions.dart'; import 'package:superdeck_core/superdeck_core.dart'; const _tagMarker = '@'; @@ -29,6 +30,7 @@ SlidePart? parseBlock(String line) { ); if (sectionName != null) { + ContentOptions.schema.validateOrThrow(options); return SectionPart.build( sectionName, options: ContentOptionsMapper.fromMap(options), @@ -43,16 +45,19 @@ SlidePart? parseBlock(String line) { if (subSectionName != null) { switch (subSectionName) { case SubSectionPartType.content: + ContentOptions.schema.validateOrThrow(options); return ContentPart( content: '', options: ContentOptionsMapper.fromMap(options), ); case SubSectionPartType.image: + ImageOptions.schema.validateOrThrow(options); return ImagePart( content: '', options: ImageOptionsMapper.fromMap(options), ); case SubSectionPartType.widget: + WidgetOptions.schema.validateOrThrow(options); return WidgetPart( content: '', options: WidgetOptionsMapper.fromMap(options), @@ -94,7 +99,16 @@ List parseSections(String slideMarkdown) { continue; } - final part = parseBlock(line); + SlidePart? part; + try { + part = parseBlock(line); + } on SchemaValidationException catch (e) { + final message = e.result.errors.map((e) => e.message).join('\n'); + // get all lines before this one + final previousLines = lines.sublist(0, lineIndex); + final getOffset = previousLines.join('\n').length; + throw SDFormatException(message, slideMarkdown, getOffset); + } if (part == null) { continue; diff --git a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart index d9494169..4481655c 100644 --- a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart +++ b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart @@ -45,25 +45,21 @@ class SlideParser { try { final markdownContents = _splitSlides(contents.trim()); - final slideRaws = markdownContents.map(parseSlideMarkdown).map((e) { + final slideRaws = + markdownContents.map(parseSlideMarkdown).mapIndexed((index, e) { return { + 'index': index, 'content': e.content, 'options': e.options, 'key': e.key, }; }); - slideRaws.forEachIndexed((index, raw) { - try { - Slide.schema.validateOrThrow(raw); - } on SchemaValidationException catch (e) { - throw SDMarkdownParsingException(e, index + 1); - } - }); - return slideRaws.map(Slide.fromMap).toList(); } on FormatException catch (e) { throw SDFormatException(e.message, contents, e.offset); + } on SchemaValidationException catch (e) { + throw SDMarkdownParsingException(e, 0); } } } diff --git a/packages/superdeck_cli/lib/src/slides_loader.dart b/packages/superdeck_cli/lib/src/slides_loader.dart index a442d6b2..7b6e3e18 100644 --- a/packages/superdeck_cli/lib/src/slides_loader.dart +++ b/packages/superdeck_cli/lib/src/slides_loader.dart @@ -63,7 +63,7 @@ class SlidesLoader { void _handleException(Exception e) { if (e is SDTaskException) { logger - ..err('slide: ${e.controller.position}') + ..err('slide: ${e.controller.slide.index}') ..err('Task error: ${e.taskName}'); _handleException(e.exception); @@ -73,11 +73,11 @@ void _handleException(Exception e) { final errorMessages = e.messages.join('\n'); logger ..newLine() - ..warn( + ..alert( 'Slide schema validation failed', ) ..newLine() - ..info( + ..err( 'slide ${e.slideLocation}: > ${e.location} > $errorMessages', ) ..newLine(); diff --git a/packages/superdeck_cli/lib/src/slides_pipeline.dart b/packages/superdeck_cli/lib/src/slides_pipeline.dart index a8d505e4..b90a384d 100644 --- a/packages/superdeck_cli/lib/src/slides_pipeline.dart +++ b/packages/superdeck_cli/lib/src/slides_pipeline.dart @@ -26,7 +26,6 @@ typedef PipelineResult = ({ }); class TaskController { - final int position; final Slide slide; final List _assets; final TaskPipeline pipeline; @@ -36,6 +35,7 @@ class TaskController { final sections = parseSections(slide.content); final newSlide = Slide( + index: slide.index, content: slide.content, key: slide.key, options: slide.options, @@ -46,7 +46,6 @@ class TaskController { } TaskController._({ - required this.position, required this.slide, required List assets, required this.pipeline, @@ -54,7 +53,6 @@ class TaskController { }) : _assets = assets; TaskController({ - required this.position, required this.slide, required this.pipeline, required List assets, @@ -74,7 +72,6 @@ class TaskController { List? markdownReplacements, }) { return TaskController._( - position: position, slide: slide ?? this.slide, pipeline: pipeline, markdownReplacements: markdownReplacements ?? this.markdownReplacements, @@ -150,7 +147,6 @@ class TaskPipeline { for (var i = 0; i < slides.length; i++) { final controller = TaskController( - position: i, slide: slides[i], assets: loadedReference.assets, pipeline: this, diff --git a/packages/superdeck_core/lib/src/models/slide_model.dart b/packages/superdeck_core/lib/src/models/slide_model.dart index 8d8ab987..c03b60b3 100644 --- a/packages/superdeck_core/lib/src/models/slide_model.dart +++ b/packages/superdeck_core/lib/src/models/slide_model.dart @@ -5,12 +5,14 @@ part 'slide_model.mapper.dart'; @MappableClass() class Slide with SlideMappable { + final int index; final String content; final String key; final List sections; final SlideOptions? options; Slide({ + required this.index, required this.content, required this.key, this.options, @@ -18,24 +20,19 @@ class Slide with SlideMappable { }); static Slide parse(Map map) { - try { - Slide.schema.validateOrThrow(map); - return Slide.fromMap(map); - } on SchemaValidationException catch (e) { - return InvalidSlide.schemaError(e.result); - } on Exception catch (e) { - return InvalidSlide.exception(e); - } catch (e) { - return InvalidSlide.message('# Unknown Error \n $e'); - } + return Slide.fromMap(map); } - static const fromMap = SlideMapper.fromMap; + static Slide fromMap(Map map) { + Slide.schema.validateOrThrow(map); + return SlideMapper.fromMap(map); + } static const fromJson = SlideMapper.fromJson; static final schema = SchemaShape( { + "index": Schema.integer.required(), "key": Schema.string.required(), "content": Schema.string.required(), "title": Schema.string, @@ -47,54 +44,3 @@ class Slide with SlideMappable { @MappableRecord() typedef SectionData = ({String content, ContentOptions? options}); - -@MappableClass() -class InvalidSlide extends Slide with InvalidSlideMappable { - InvalidSlide(String message) - : super( - content: message, - key: message, - ); - - InvalidSlide.message(String message) : this(message); - - InvalidSlide.invalidTemplate(String template) - : this.message('# Invalid template \n ## $template'); - - factory InvalidSlide.exception(Exception exception) { - return InvalidSlide.message('# Exception \n ## ${exception.toString()}'); - } - - factory InvalidSlide.schemaError( - SchemaValidationResult result, [ - String? content, - ]) { - final path = result.key; - final errors = result.errors; - final errorMessage = errors.map((error) => error.message).join('\n\n'); - - // dont forget the tab or spacing since they are nested - String keysNested = ''; - - if (path.isNotEmpty) { - keysNested = path.join('.'); - } - - content ??= '# Schema Error'; - - final message = ''' -$content -## $keysNested -$errorMessage -'''; - - return InvalidSlide.message(message); - } - - factory InvalidSlide.projectSchemaError(SchemaValidationResult error) { - return InvalidSlide.schemaError(error, '# Project configuration error'); - } - - static const fromMap = InvalidSlideMapper.fromMap; - static const fromJson = InvalidSlideMapper.fromJson; -} diff --git a/packages/superdeck_core/lib/src/models/slide_model.mapper.dart b/packages/superdeck_core/lib/src/models/slide_model.mapper.dart index 225f716a..693e0de8 100644 --- a/packages/superdeck_core/lib/src/models/slide_model.mapper.dart +++ b/packages/superdeck_core/lib/src/models/slide_model.mapper.dart @@ -13,7 +13,6 @@ class SlideMapper extends ClassMapperBase { static SlideMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = SlideMapper._()); - InvalidSlideMapper.ensureInitialized(); SlideOptionsMapper.ensureInitialized(); SectionPartMapper.ensureInitialized(); } @@ -23,6 +22,8 @@ class SlideMapper extends ClassMapperBase { @override final String id = 'Slide'; + static int _$index(Slide v) => v.index; + static const Field _f$index = Field('index', _$index); static String _$content(Slide v) => v.content; static const Field _f$content = Field('content', _$content); static String _$key(Slide v) => v.key; @@ -36,6 +37,7 @@ class SlideMapper extends ClassMapperBase { @override final MappableFields fields = const { + #index: _f$index, #content: _f$content, #key: _f$key, #options: _f$options, @@ -46,6 +48,7 @@ class SlideMapper extends ClassMapperBase { static Slide _instantiate(DecodingData data) { return Slide( + index: data.dec(_f$index), content: data.dec(_f$content), key: data.dec(_f$key), options: data.dec(_f$options), @@ -98,7 +101,15 @@ extension SlideValueCopy<$R, $Out> on ObjectCopyWith<$R, Slide, $Out> { abstract class SlideCopyWith<$R, $In extends Slide, $Out> implements ClassCopyWith<$R, $In, $Out> { - $R call({String? content}); + SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options; + ListCopyWith<$R, SectionPart, ObjectCopyWith<$R, SectionPart, SectionPart>> + get sections; + $R call( + {int? index, + String? content, + String? key, + SlideOptions? options, + List? sections}); SlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } @@ -109,10 +120,29 @@ class _SlideCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Slide, $Out> @override late final ClassMapperBase $mapper = SlideMapper.ensureInitialized(); @override - $R call({String? content}) => - $apply(FieldCopyWithData({if (content != null) #content: content})); + SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options => + $value.options?.copyWith.$chain((v) => call(options: v)); + @override + ListCopyWith<$R, SectionPart, ObjectCopyWith<$R, SectionPart, SectionPart>> + get sections => ListCopyWith($value.sections, + (v, t) => ObjectCopyWith(v, $identity, t), (v) => call(sections: v)); + @override + $R call( + {int? index, + String? content, + String? key, + Object? options = $none, + List? sections}) => + $apply(FieldCopyWithData({ + if (index != null) #index: index, + if (content != null) #content: content, + if (key != null) #key: key, + if (options != $none) #options: options, + if (sections != null) #sections: sections + })); @override Slide $make(CopyWithData data) => Slide( + index: data.get(#index, or: $value.index), content: data.get(#content, or: $value.content), key: data.get(#key, or: $value.key), options: data.get(#options, or: $value.options), @@ -123,133 +153,6 @@ class _SlideCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Slide, $Out> _SlideCopyWithImpl($value, $cast, t); } -class InvalidSlideMapper extends SubClassMapperBase { - InvalidSlideMapper._(); - - static InvalidSlideMapper? _instance; - static InvalidSlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = InvalidSlideMapper._()); - SlideMapper.ensureInitialized().addSubMapper(_instance!); - } - return _instance!; - } - - @override - final String id = 'InvalidSlide'; - - static String _$content(InvalidSlide v) => v.content; - static const Field _f$content = - Field('content', _$content, key: 'message'); - static String _$key(InvalidSlide v) => v.key; - static const Field _f$key = - Field('key', _$key, mode: FieldMode.member); - static List _$sections(InvalidSlide v) => v.sections; - static const Field> _f$sections = - Field('sections', _$sections, mode: FieldMode.member); - static SlideOptions? _$options(InvalidSlide v) => v.options; - static const Field _f$options = - Field('options', _$options, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #content: _f$content, - #key: _f$key, - #sections: _f$sections, - #options: _f$options, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'InvalidSlide'; - @override - late final ClassMapperBase superMapper = SlideMapper.ensureInitialized(); - - static InvalidSlide _instantiate(DecodingData data) { - return InvalidSlide(data.dec(_f$content)); - } - - @override - final Function instantiate = _instantiate; - - static InvalidSlide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static InvalidSlide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin InvalidSlideMappable { - String toJson() { - return InvalidSlideMapper.ensureInitialized() - .encodeJson(this as InvalidSlide); - } - - Map toMap() { - return InvalidSlideMapper.ensureInitialized() - .encodeMap(this as InvalidSlide); - } - - InvalidSlideCopyWith get copyWith => - _InvalidSlideCopyWithImpl(this as InvalidSlide, $identity, $identity); - @override - String toString() { - return InvalidSlideMapper.ensureInitialized() - .stringifyValue(this as InvalidSlide); - } - - @override - bool operator ==(Object other) { - return InvalidSlideMapper.ensureInitialized() - .equalsValue(this as InvalidSlide, other); - } - - @override - int get hashCode { - return InvalidSlideMapper.ensureInitialized() - .hashValue(this as InvalidSlide); - } -} - -extension InvalidSlideValueCopy<$R, $Out> - on ObjectCopyWith<$R, InvalidSlide, $Out> { - InvalidSlideCopyWith<$R, InvalidSlide, $Out> get $asInvalidSlide => - $base.as((v, t, t2) => _InvalidSlideCopyWithImpl(v, t, t2)); -} - -abstract class InvalidSlideCopyWith<$R, $In extends InvalidSlide, $Out> - implements SlideCopyWith<$R, $In, $Out> { - @override - $R call({String? content}); - InvalidSlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _InvalidSlideCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, InvalidSlide, $Out> - implements InvalidSlideCopyWith<$R, InvalidSlide, $Out> { - _InvalidSlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - InvalidSlideMapper.ensureInitialized(); - @override - $R call({String? content}) => - $apply(FieldCopyWithData({if (content != null) #content: content})); - @override - InvalidSlide $make(CopyWithData data) => - InvalidSlide(data.get(#content, or: $value.content)); - - @override - InvalidSlideCopyWith<$R2, InvalidSlide, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _InvalidSlideCopyWithImpl($value, $cast, t); -} - class SectionDataMapper extends RecordMapperBase { static SectionDataMapper? _instance; SectionDataMapper._(); From e35ad86d4d6a7795197da6c9cac0bcb24e115019 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Thu, 22 Aug 2024 16:23:06 -0400 Subject: [PATCH 12/27] Update logger --- .../superdeck_cli/lib/src/helpers/logger.dart | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/superdeck_cli/lib/src/helpers/logger.dart b/packages/superdeck_cli/lib/src/helpers/logger.dart index 6944f241..f40e7259 100644 --- a/packages/superdeck_cli/lib/src/helpers/logger.dart +++ b/packages/superdeck_cli/lib/src/helpers/logger.dart @@ -22,17 +22,18 @@ extension LoggerX on Logger { return element.length > prev ? element.length : prev; }); - String padline(String line) { - return ' ' + line.padRight(longestLine + 2); + String padline(String line, [int? index]) { + final pageNumber = index != null ? '${index + 1}' : ' '; + return ' $pageNumber | ' + line.padRight(longestLine + 2); } // Print the error message with the source code newLine(); - alert('Formatting Error:'); + err('Formatting Error:'); newLine(); - err('$message on line ${exception.lineNumber}, column ${exception.columnNumber}'); + info( + '$message on line ${exception.lineNumber}, column ${exception.columnNumber}'); newLine(); - _formatCodeBlock(padline('')); final exceptionLineNumber = exception.lineNumber ?? 0; @@ -50,10 +51,10 @@ extension LoggerX on Logger { } if (isErrorLine) { - info(padline(currentLineContent), style: _highlightLine); + info(padline(currentLineContent, i), style: _highlightLine); info(padline(arrow), style: _highlightLine); } else { - _formatCodeBlock(padline(currentLineContent)); + _formatCodeBlock(padline(currentLineContent, i)); } } } @@ -70,9 +71,9 @@ String _createArrow(int column) { } String? _formatErrorStyle(String? m) { - return backgroundLightGray.wrap(styleBold.wrap(black.wrap(m))); + return backgroundDefault.wrap(styleBold.wrap(white.wrap(m))); } String? _highlightLine(String? m) { - return backgroundRed.wrap(styleBold.wrap(black.wrap(m))); + return backgroundDefault.wrap(styleBold.wrap(yellow.wrap(m))); } From fabc8dcf87fbe49cee100a6e424a5212ecb26c47 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Fri, 23 Aug 2024 10:10:36 -0400 Subject: [PATCH 13/27] wip --- .../lib/src/helpers/exceptions.dart | 2 +- .../lib/src/helpers/section_parsing.dart | 71 +- .../src/helpers/section_parsing_test.dart | 10 +- .../lib/src/models/asset_model.dart | 6 +- .../lib/src/models/asset_model.mapper.dart | 191 - .../lib/src/models/config_model.dart | 10 +- .../lib/src/models/config_model.mapper.dart | 299 -- .../superdeck_core/lib/src/models/models.dart | 17 + .../lib/src/models/models.mapper.dart | 3299 +++++++++++++++++ .../lib/src/models/options_model.dart | 10 +- .../lib/src/models/options_model.mapper.dart | 1085 ------ .../lib/src/models/reference_model.dart | 10 +- .../src/models/reference_model.mapper.dart | 152 - .../lib/src/models/slide_model.dart | 7 +- .../lib/src/models/slide_model.mapper.dart | 252 -- .../lib/src/models/slide_parts.mapper.dart | 1360 ------- ...e_parts.dart => slide_sections_model.dart} | 61 +- .../superdeck_core/lib/src/schema/schema.dart | 6 + .../lib/src/schema/schema_model.dart | 103 +- .../lib/src/schema/schema_validation.dart | 154 +- .../src/schema/schema_validation.mapper.dart | 248 -- .../lib/src/schema/schema_values.dart | 43 +- .../lib/src/schema/validators.dart | 57 +- .../superdeck_core/lib/superdeck_core.dart | 13 +- 24 files changed, 3576 insertions(+), 3890 deletions(-) delete mode 100644 packages/superdeck_core/lib/src/models/asset_model.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/config_model.mapper.dart create mode 100644 packages/superdeck_core/lib/src/models/models.dart create mode 100644 packages/superdeck_core/lib/src/models/models.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/options_model.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/reference_model.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/slide_model.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/slide_parts.mapper.dart rename packages/superdeck_core/lib/src/models/{slide_parts.dart => slide_sections_model.dart} (64%) create mode 100644 packages/superdeck_core/lib/src/schema/schema.dart delete mode 100644 packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart diff --git a/packages/superdeck_cli/lib/src/helpers/exceptions.dart b/packages/superdeck_cli/lib/src/helpers/exceptions.dart index e4ed13b7..4b428e00 100644 --- a/packages/superdeck_cli/lib/src/helpers/exceptions.dart +++ b/packages/superdeck_cli/lib/src/helpers/exceptions.dart @@ -7,7 +7,7 @@ class SDMarkdownParsingException implements Exception { SDMarkdownParsingException(this.exception, this.slideLocation); - String get location => exception.result.key.join(' | '); + String get location => exception.result.path.join(' | '); List get messages { return exception.result.errors.map((e) => e.message).toList(); diff --git a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart index b123b7fc..c0a20875 100644 --- a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart +++ b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart @@ -17,7 +17,7 @@ T? _findEnumValue( ); } -SlidePart? parseBlock(String line) { +PartDto? parseBlock(String line) { if (!_isSyntax(line)) { return null; } @@ -25,38 +25,38 @@ SlidePart? parseBlock(String line) { final (:tag, :options) = getTagContents(line); final sectionName = _findEnumValue( - SectionPartType.values, + SectionType.values, tag, ); if (sectionName != null) { ContentOptions.schema.validateOrThrow(options); - return SectionPart.build( + return SectionDto.build( sectionName, options: ContentOptionsMapper.fromMap(options), ); } final subSectionName = _findEnumValue( - SubSectionPartType.values, + SubSectionType.values, tag, ); if (subSectionName != null) { switch (subSectionName) { - case SubSectionPartType.content: + case SubSectionType.content: ContentOptions.schema.validateOrThrow(options); return ContentPart( content: '', options: ContentOptionsMapper.fromMap(options), ); - case SubSectionPartType.image: + case SubSectionType.image: ImageOptions.schema.validateOrThrow(options); return ImagePart( content: '', options: ImageOptionsMapper.fromMap(options), ); - case SubSectionPartType.widget: + case SubSectionType.widget: WidgetOptions.schema.validateOrThrow(options); return WidgetPart( content: '', @@ -67,15 +67,15 @@ SlidePart? parseBlock(String line) { return null; } -List parseSections(String slideMarkdown) { +List parseSections(String slideMarkdown) { final lines = slideMarkdown.split('\n'); - final rootSection = SectionPart.build(SectionPartType.root); + final rootSection = SectionDto.build(SectionType.root); - final layoutParts = {rootSection}; + final layoutParts = {rootSection}; // Start with the header - SectionPart currentSection = rootSection; + SectionDto currentSection = rootSection; int lineIndex = 0; @@ -99,7 +99,7 @@ List parseSections(String slideMarkdown) { continue; } - SlidePart? part; + PartDto? part; try { part = parseBlock(line); } on SchemaValidationException catch (e) { @@ -114,7 +114,7 @@ List parseSections(String slideMarkdown) { continue; } - if (part is SectionPart) { + if (part is SectionDto) { if (part.type.index <= currentSection.type.index) { throw Exception( 'Invalid location tag on line ${lineIndex}. ${part.type.name} cannot be before ${currentSection.type.name}', @@ -189,28 +189,53 @@ Map getOptionsMapFromLine( } } +/// The separator used to split the tag from its options. +const _TAG_OPTION_SEPARATOR = ' '; + +/// Parses a line containing a tag and its options. ({String tag, Map options}) getTagContents(String line) { + // Remove any leading or trailing whitespace from the input line + line = line.trim(); + + // Check if the line matches the expected syntax if (!_isSyntax(line)) { - throw FormatException('Error parsing tags: $line'); + // If not, throw an exception with a descriptive error message + throw FormatException('Invalid tag syntax: $line'); } + + // Use a regular expression to match the contents of the tag final match = _regexMatchTagContents.firstMatch(line); - final separator = '|||superdeck|||'; + // If no match is found, throw an exception + if (match == null) { + throw FormatException('Failed to extract tag contents: $line'); + } + + // Extract the first capturing group from the regex match and trim any whitespace + // If the group is null or empty, use an empty string + final result = match.group(1)?.trim() ?? ''; - String tag = ''; - Map options = {}; + // Split the result into parts using the defined separator + final parts = result.split(_TAG_OPTION_SEPARATOR); - if (match != null) { - final result = match.group(1)?.trim() ?? ''; + // Extract the tag (first part of the split result) + // If parts is empty, use an empty string + final tag = parts.isNotEmpty ? parts.first : ''; - final parts = result.replaceFirst(' ', separator).split(separator); + // Join the remaining parts (if any) back into a string for options parsing + // If there's only one part (just the tag), use an empty string + final optionsPart = + parts.length > 1 ? parts.sublist(1).join(_TAG_OPTION_SEPARATOR) : ''; - tag = parts.tryElementAt(0) ?? ''; - final optionsPart = parts.tryElementAt(1) ?? ''; + // Parse the options string into a Map using a helper function + final options = getOptionsMapFromLine(optionsPart); - options = getOptionsMapFromLine(optionsPart); + // If the extracted tag is empty, throw an exception + if (tag.isEmpty) { + throw FormatException('Empty tag extracted: $line'); } + // Return a record containing the tag and options return ( tag: tag, options: options, diff --git a/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart b/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart index 208dc144..a7f1f03c 100644 --- a/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart +++ b/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart @@ -508,12 +508,12 @@ Footer content. ); } -extension on List { - SectionPart? get root => firstWhereOrNull((part) => part.type.name == 'root'); - SectionPart? get header => +extension on List { + SectionDto? get root => firstWhereOrNull((part) => part.type.name == 'root'); + SectionDto? get header => firstWhereOrNull((part) => part.type.name == 'header'); - SectionPart? get body => firstWhereOrNull((part) => part.type.name == 'body'); - SectionPart? get footer => + SectionDto? get body => firstWhereOrNull((part) => part.type.name == 'body'); + SectionDto? get footer => firstWhereOrNull((part) => part.type.name == 'footer'); } diff --git a/packages/superdeck_core/lib/src/models/asset_model.dart b/packages/superdeck_core/lib/src/models/asset_model.dart index 3611b11a..3f2dc7f5 100644 --- a/packages/superdeck_core/lib/src/models/asset_model.dart +++ b/packages/superdeck_core/lib/src/models/asset_model.dart @@ -1,8 +1,4 @@ -import 'package:collection/collection.dart'; -import 'package:dart_mappable/dart_mappable.dart'; -import 'package:path/path.dart' as p; - -part 'asset_model.mapper.dart'; +part of 'models.dart'; @MappableEnum() enum AssetFileType { diff --git a/packages/superdeck_core/lib/src/models/asset_model.mapper.dart b/packages/superdeck_core/lib/src/models/asset_model.mapper.dart deleted file mode 100644 index e92d784d..00000000 --- a/packages/superdeck_core/lib/src/models/asset_model.mapper.dart +++ /dev/null @@ -1,191 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'asset_model.dart'; - -class AssetFileTypeMapper extends EnumMapper { - AssetFileTypeMapper._(); - - static AssetFileTypeMapper? _instance; - static AssetFileTypeMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = AssetFileTypeMapper._()); - } - return _instance!; - } - - static AssetFileType fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - AssetFileType decode(dynamic value) { - switch (value) { - case 'png': - return AssetFileType.png; - case 'jpg': - return AssetFileType.jpg; - case 'jpeg': - return AssetFileType.jpeg; - case 'gif': - return AssetFileType.gif; - case 'webp': - return AssetFileType.webp; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(AssetFileType self) { - switch (self) { - case AssetFileType.png: - return 'png'; - case AssetFileType.jpg: - return 'jpg'; - case AssetFileType.jpeg: - return 'jpeg'; - case AssetFileType.gif: - return 'gif'; - case AssetFileType.webp: - return 'webp'; - } - } -} - -extension AssetFileTypeMapperExtension on AssetFileType { - String toValue() { - AssetFileTypeMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class SlideAssetMapper extends ClassMapperBase { - SlideAssetMapper._(); - - static SlideAssetMapper? _instance; - static SlideAssetMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SlideAssetMapper._()); - } - return _instance!; - } - - @override - final String id = 'SlideAsset'; - - static String _$path(SlideAsset v) => v.path; - static const Field _f$path = Field('path', _$path); - static int _$width(SlideAsset v) => v.width; - static const Field _f$width = Field('width', _$width); - static int _$height(SlideAsset v) => v.height; - static const Field _f$height = Field('height', _$height); - static String? _$reference(SlideAsset v) => v.reference; - static const Field _f$reference = - Field('reference', _$reference); - - @override - final MappableFields fields = const { - #path: _f$path, - #width: _f$width, - #height: _f$height, - #reference: _f$reference, - }; - @override - final bool ignoreNull = true; - - static SlideAsset _instantiate(DecodingData data) { - return SlideAsset( - path: data.dec(_f$path), - width: data.dec(_f$width), - height: data.dec(_f$height), - reference: data.dec(_f$reference)); - } - - @override - final Function instantiate = _instantiate; - - static SlideAsset fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SlideAsset fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SlideAssetMappable { - String toJson() { - return SlideAssetMapper.ensureInitialized() - .encodeJson(this as SlideAsset); - } - - Map toMap() { - return SlideAssetMapper.ensureInitialized() - .encodeMap(this as SlideAsset); - } - - SlideAssetCopyWith get copyWith => - _SlideAssetCopyWithImpl(this as SlideAsset, $identity, $identity); - @override - String toString() { - return SlideAssetMapper.ensureInitialized() - .stringifyValue(this as SlideAsset); - } - - @override - bool operator ==(Object other) { - return SlideAssetMapper.ensureInitialized() - .equalsValue(this as SlideAsset, other); - } - - @override - int get hashCode { - return SlideAssetMapper.ensureInitialized().hashValue(this as SlideAsset); - } -} - -extension SlideAssetValueCopy<$R, $Out> - on ObjectCopyWith<$R, SlideAsset, $Out> { - SlideAssetCopyWith<$R, SlideAsset, $Out> get $asSlideAsset => - $base.as((v, t, t2) => _SlideAssetCopyWithImpl(v, t, t2)); -} - -abstract class SlideAssetCopyWith<$R, $In extends SlideAsset, $Out> - implements ClassCopyWith<$R, $In, $Out> { - $R call({String? path, int? width, int? height, String? reference}); - SlideAssetCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _SlideAssetCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SlideAsset, $Out> - implements SlideAssetCopyWith<$R, SlideAsset, $Out> { - _SlideAssetCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SlideAssetMapper.ensureInitialized(); - @override - $R call({String? path, int? width, int? height, Object? reference = $none}) => - $apply(FieldCopyWithData({ - if (path != null) #path: path, - if (width != null) #width: width, - if (height != null) #height: height, - if (reference != $none) #reference: reference - })); - @override - SlideAsset $make(CopyWithData data) => SlideAsset( - path: data.get(#path, or: $value.path), - width: data.get(#width, or: $value.width), - height: data.get(#height, or: $value.height), - reference: data.get(#reference, or: $value.reference)); - - @override - SlideAssetCopyWith<$R2, SlideAsset, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _SlideAssetCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck_core/lib/src/models/config_model.dart b/packages/superdeck_core/lib/src/models/config_model.dart index 9c46e34b..74cc8a35 100644 --- a/packages/superdeck_core/lib/src/models/config_model.dart +++ b/packages/superdeck_core/lib/src/models/config_model.dart @@ -1,12 +1,4 @@ -import 'dart:io'; - -import 'package:dart_mappable/dart_mappable.dart'; -import 'package:superdeck_core/superdeck_core.dart'; - -import '../schema/schema_model.dart'; -import '../schema/schema_values.dart'; - -part 'config_model.mapper.dart'; +part of 'models.dart'; @MappableClass() class SlideOptions with SlideOptionsMappable { diff --git a/packages/superdeck_core/lib/src/models/config_model.mapper.dart b/packages/superdeck_core/lib/src/models/config_model.mapper.dart deleted file mode 100644 index 3a2848ff..00000000 --- a/packages/superdeck_core/lib/src/models/config_model.mapper.dart +++ /dev/null @@ -1,299 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'config_model.dart'; - -class SlideOptionsMapper extends ClassMapperBase { - SlideOptionsMapper._(); - - static SlideOptionsMapper? _instance; - static SlideOptionsMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SlideOptionsMapper._()); - ConfigMapper.ensureInitialized(); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SlideOptions'; - - static String? _$title(SlideOptions v) => v.title; - static const Field _f$title = - Field('title', _$title, opt: true); - static String? _$background(SlideOptions v) => v.background; - static const Field _f$background = - Field('background', _$background, opt: true); - static String? _$style(SlideOptions v) => v.style; - static const Field _f$style = - Field('style', _$style, opt: true); - static TransitionOptions? _$transition(SlideOptions v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition, opt: true); - - @override - final MappableFields fields = const { - #title: _f$title, - #background: _f$background, - #style: _f$style, - #transition: _f$transition, - }; - @override - final bool ignoreNull = true; - - static SlideOptions _instantiate(DecodingData data) { - return SlideOptions( - title: data.dec(_f$title), - background: data.dec(_f$background), - style: data.dec(_f$style), - transition: data.dec(_f$transition)); - } - - @override - final Function instantiate = _instantiate; - - static SlideOptions fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SlideOptions fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SlideOptionsMappable { - String toJson() { - return SlideOptionsMapper.ensureInitialized() - .encodeJson(this as SlideOptions); - } - - Map toMap() { - return SlideOptionsMapper.ensureInitialized() - .encodeMap(this as SlideOptions); - } - - SlideOptionsCopyWith get copyWith => - _SlideOptionsCopyWithImpl(this as SlideOptions, $identity, $identity); - @override - String toString() { - return SlideOptionsMapper.ensureInitialized() - .stringifyValue(this as SlideOptions); - } - - @override - bool operator ==(Object other) { - return SlideOptionsMapper.ensureInitialized() - .equalsValue(this as SlideOptions, other); - } - - @override - int get hashCode { - return SlideOptionsMapper.ensureInitialized() - .hashValue(this as SlideOptions); - } -} - -extension SlideOptionsValueCopy<$R, $Out> - on ObjectCopyWith<$R, SlideOptions, $Out> { - SlideOptionsCopyWith<$R, SlideOptions, $Out> get $asSlideOptions => - $base.as((v, t, t2) => _SlideOptionsCopyWithImpl(v, t, t2)); -} - -abstract class SlideOptionsCopyWith<$R, $In extends SlideOptions, $Out> - implements ClassCopyWith<$R, $In, $Out> { - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - $R call({String? background, String? style, TransitionOptions? transition}); - SlideOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _SlideOptionsCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SlideOptions, $Out> - implements SlideOptionsCopyWith<$R, SlideOptions, $Out> { - _SlideOptionsCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SlideOptionsMapper.ensureInitialized(); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - $R call( - {Object? background = $none, - Object? style = $none, - Object? transition = $none}) => - $apply(FieldCopyWithData({ - if (background != $none) #background: background, - if (style != $none) #style: style, - if (transition != $none) #transition: transition - })); - @override - SlideOptions $make(CopyWithData data) => SlideOptions( - title: data.get(#title, or: $value.title), - background: data.get(#background, or: $value.background), - style: data.get(#style, or: $value.style), - transition: data.get(#transition, or: $value.transition)); - - @override - SlideOptionsCopyWith<$R2, SlideOptions, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _SlideOptionsCopyWithImpl($value, $cast, t); -} - -class ConfigMapper extends SubClassMapperBase { - ConfigMapper._(); - - static ConfigMapper? _instance; - static ConfigMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ConfigMapper._()); - SlideOptionsMapper.ensureInitialized().addSubMapper(_instance!); - TransitionOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'Config'; - - static String? _$background(Config v) => v.background; - static const Field _f$background = - Field('background', _$background); - static String? _$style(Config v) => v.style; - static const Field _f$style = Field('style', _$style); - static TransitionOptions? _$transition(Config v) => v.transition; - static const Field _f$transition = - Field('transition', _$transition); - static bool? _$cacheRemoteAssets(Config v) => v.cacheRemoteAssets; - static const Field _f$cacheRemoteAssets = Field( - 'cacheRemoteAssets', _$cacheRemoteAssets, - key: 'cache_remote_assets', opt: true); - static String? _$title(Config v) => v.title; - static const Field _f$title = - Field('title', _$title, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #background: _f$background, - #style: _f$style, - #transition: _f$transition, - #cacheRemoteAssets: _f$cacheRemoteAssets, - #title: _f$title, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'Config'; - @override - late final ClassMapperBase superMapper = - SlideOptionsMapper.ensureInitialized(); - - static Config _instantiate(DecodingData data) { - return Config( - background: data.dec(_f$background), - style: data.dec(_f$style), - transition: data.dec(_f$transition), - cacheRemoteAssets: data.dec(_f$cacheRemoteAssets)); - } - - @override - final Function instantiate = _instantiate; - - static Config fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static Config fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin ConfigMappable { - String toJson() { - return ConfigMapper.ensureInitialized().encodeJson(this as Config); - } - - Map toMap() { - return ConfigMapper.ensureInitialized().encodeMap(this as Config); - } - - ConfigCopyWith get copyWith => - _ConfigCopyWithImpl(this as Config, $identity, $identity); - @override - String toString() { - return ConfigMapper.ensureInitialized().stringifyValue(this as Config); - } - - @override - bool operator ==(Object other) { - return ConfigMapper.ensureInitialized().equalsValue(this as Config, other); - } - - @override - int get hashCode { - return ConfigMapper.ensureInitialized().hashValue(this as Config); - } -} - -extension ConfigValueCopy<$R, $Out> on ObjectCopyWith<$R, Config, $Out> { - ConfigCopyWith<$R, Config, $Out> get $asConfig => - $base.as((v, t, t2) => _ConfigCopyWithImpl(v, t, t2)); -} - -abstract class ConfigCopyWith<$R, $In extends Config, $Out> - implements SlideOptionsCopyWith<$R, $In, $Out> { - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition; - @override - $R call( - {String? background, - String? style, - TransitionOptions? transition, - bool? cacheRemoteAssets}); - ConfigCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _ConfigCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Config, $Out> - implements ConfigCopyWith<$R, Config, $Out> { - _ConfigCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = ConfigMapper.ensureInitialized(); - @override - TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? - get transition => - $value.transition?.copyWith.$chain((v) => call(transition: v)); - @override - $R call( - {Object? background = $none, - Object? style = $none, - Object? transition = $none, - Object? cacheRemoteAssets = $none}) => - $apply(FieldCopyWithData({ - if (background != $none) #background: background, - if (style != $none) #style: style, - if (transition != $none) #transition: transition, - if (cacheRemoteAssets != $none) #cacheRemoteAssets: cacheRemoteAssets - })); - @override - Config $make(CopyWithData data) => Config( - background: data.get(#background, or: $value.background), - style: data.get(#style, or: $value.style), - transition: data.get(#transition, or: $value.transition), - cacheRemoteAssets: - data.get(#cacheRemoteAssets, or: $value.cacheRemoteAssets)); - - @override - ConfigCopyWith<$R2, Config, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t) => - _ConfigCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck_core/lib/src/models/models.dart b/packages/superdeck_core/lib/src/models/models.dart new file mode 100644 index 00000000..e1f4a802 --- /dev/null +++ b/packages/superdeck_core/lib/src/models/models.dart @@ -0,0 +1,17 @@ +library models; + +import 'dart:io'; + +import 'package:collection/collection.dart'; +import 'package:dart_mappable/dart_mappable.dart'; +import 'package:path/path.dart' as p; +import 'package:superdeck_core/src/helpers/mappers.dart'; +import 'package:superdeck_core/superdeck_core.dart'; + +part 'asset_model.dart'; +part 'config_model.dart'; +part 'models.mapper.dart'; +part 'options_model.dart'; +part 'reference_model.dart'; +part 'slide_model.dart'; +part 'slide_sections_model.dart'; diff --git a/packages/superdeck_core/lib/src/models/models.mapper.dart b/packages/superdeck_core/lib/src/models/models.mapper.dart new file mode 100644 index 00000000..2ff9d9e3 --- /dev/null +++ b/packages/superdeck_core/lib/src/models/models.mapper.dart @@ -0,0 +1,3299 @@ +// coverage:ignore-file +// GENERATED CODE - DO NOT MODIFY BY HAND +// ignore_for_file: type=lint +// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member +// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter + +part of 'models.dart'; + +class AssetFileTypeMapper extends EnumMapper { + AssetFileTypeMapper._(); + + static AssetFileTypeMapper? _instance; + static AssetFileTypeMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = AssetFileTypeMapper._()); + } + return _instance!; + } + + static AssetFileType fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + AssetFileType decode(dynamic value) { + switch (value) { + case 'png': + return AssetFileType.png; + case 'jpg': + return AssetFileType.jpg; + case 'jpeg': + return AssetFileType.jpeg; + case 'gif': + return AssetFileType.gif; + case 'webp': + return AssetFileType.webp; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(AssetFileType self) { + switch (self) { + case AssetFileType.png: + return 'png'; + case AssetFileType.jpg: + return 'jpg'; + case AssetFileType.jpeg: + return 'jpeg'; + case AssetFileType.gif: + return 'gif'; + case AssetFileType.webp: + return 'webp'; + } + } +} + +extension AssetFileTypeMapperExtension on AssetFileType { + String toValue() { + AssetFileTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class SlideAssetMapper extends ClassMapperBase { + SlideAssetMapper._(); + + static SlideAssetMapper? _instance; + static SlideAssetMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SlideAssetMapper._()); + } + return _instance!; + } + + @override + final String id = 'SlideAsset'; + + static String _$path(SlideAsset v) => v.path; + static const Field _f$path = Field('path', _$path); + static int _$width(SlideAsset v) => v.width; + static const Field _f$width = Field('width', _$width); + static int _$height(SlideAsset v) => v.height; + static const Field _f$height = Field('height', _$height); + static String? _$reference(SlideAsset v) => v.reference; + static const Field _f$reference = + Field('reference', _$reference); + + @override + final MappableFields fields = const { + #path: _f$path, + #width: _f$width, + #height: _f$height, + #reference: _f$reference, + }; + @override + final bool ignoreNull = true; + + static SlideAsset _instantiate(DecodingData data) { + return SlideAsset( + path: data.dec(_f$path), + width: data.dec(_f$width), + height: data.dec(_f$height), + reference: data.dec(_f$reference)); + } + + @override + final Function instantiate = _instantiate; + + static SlideAsset fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SlideAsset fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SlideAssetMappable { + String toJson() { + return SlideAssetMapper.ensureInitialized() + .encodeJson(this as SlideAsset); + } + + Map toMap() { + return SlideAssetMapper.ensureInitialized() + .encodeMap(this as SlideAsset); + } + + SlideAssetCopyWith get copyWith => + _SlideAssetCopyWithImpl(this as SlideAsset, $identity, $identity); + @override + String toString() { + return SlideAssetMapper.ensureInitialized() + .stringifyValue(this as SlideAsset); + } + + @override + bool operator ==(Object other) { + return SlideAssetMapper.ensureInitialized() + .equalsValue(this as SlideAsset, other); + } + + @override + int get hashCode { + return SlideAssetMapper.ensureInitialized().hashValue(this as SlideAsset); + } +} + +extension SlideAssetValueCopy<$R, $Out> + on ObjectCopyWith<$R, SlideAsset, $Out> { + SlideAssetCopyWith<$R, SlideAsset, $Out> get $asSlideAsset => + $base.as((v, t, t2) => _SlideAssetCopyWithImpl(v, t, t2)); +} + +abstract class SlideAssetCopyWith<$R, $In extends SlideAsset, $Out> + implements ClassCopyWith<$R, $In, $Out> { + $R call({String? path, int? width, int? height, String? reference}); + SlideAssetCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _SlideAssetCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, SlideAsset, $Out> + implements SlideAssetCopyWith<$R, SlideAsset, $Out> { + _SlideAssetCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + SlideAssetMapper.ensureInitialized(); + @override + $R call({String? path, int? width, int? height, Object? reference = $none}) => + $apply(FieldCopyWithData({ + if (path != null) #path: path, + if (width != null) #width: width, + if (height != null) #height: height, + if (reference != $none) #reference: reference + })); + @override + SlideAsset $make(CopyWithData data) => SlideAsset( + path: data.get(#path, or: $value.path), + width: data.get(#width, or: $value.width), + height: data.get(#height, or: $value.height), + reference: data.get(#reference, or: $value.reference)); + + @override + SlideAssetCopyWith<$R2, SlideAsset, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _SlideAssetCopyWithImpl($value, $cast, t); +} + +class SlideOptionsMapper extends ClassMapperBase { + SlideOptionsMapper._(); + + static SlideOptionsMapper? _instance; + static SlideOptionsMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SlideOptionsMapper._()); + ConfigMapper.ensureInitialized(); + TransitionOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'SlideOptions'; + + static String? _$title(SlideOptions v) => v.title; + static const Field _f$title = + Field('title', _$title, opt: true); + static String? _$background(SlideOptions v) => v.background; + static const Field _f$background = + Field('background', _$background, opt: true); + static String? _$style(SlideOptions v) => v.style; + static const Field _f$style = + Field('style', _$style, opt: true); + static TransitionOptions? _$transition(SlideOptions v) => v.transition; + static const Field _f$transition = + Field('transition', _$transition, opt: true); + + @override + final MappableFields fields = const { + #title: _f$title, + #background: _f$background, + #style: _f$style, + #transition: _f$transition, + }; + @override + final bool ignoreNull = true; + + static SlideOptions _instantiate(DecodingData data) { + return SlideOptions( + title: data.dec(_f$title), + background: data.dec(_f$background), + style: data.dec(_f$style), + transition: data.dec(_f$transition)); + } + + @override + final Function instantiate = _instantiate; + + static SlideOptions fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SlideOptions fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SlideOptionsMappable { + String toJson() { + return SlideOptionsMapper.ensureInitialized() + .encodeJson(this as SlideOptions); + } + + Map toMap() { + return SlideOptionsMapper.ensureInitialized() + .encodeMap(this as SlideOptions); + } + + SlideOptionsCopyWith get copyWith => + _SlideOptionsCopyWithImpl(this as SlideOptions, $identity, $identity); + @override + String toString() { + return SlideOptionsMapper.ensureInitialized() + .stringifyValue(this as SlideOptions); + } + + @override + bool operator ==(Object other) { + return SlideOptionsMapper.ensureInitialized() + .equalsValue(this as SlideOptions, other); + } + + @override + int get hashCode { + return SlideOptionsMapper.ensureInitialized() + .hashValue(this as SlideOptions); + } +} + +extension SlideOptionsValueCopy<$R, $Out> + on ObjectCopyWith<$R, SlideOptions, $Out> { + SlideOptionsCopyWith<$R, SlideOptions, $Out> get $asSlideOptions => + $base.as((v, t, t2) => _SlideOptionsCopyWithImpl(v, t, t2)); +} + +abstract class SlideOptionsCopyWith<$R, $In extends SlideOptions, $Out> + implements ClassCopyWith<$R, $In, $Out> { + TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? + get transition; + $R call({String? background, String? style, TransitionOptions? transition}); + SlideOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _SlideOptionsCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, SlideOptions, $Out> + implements SlideOptionsCopyWith<$R, SlideOptions, $Out> { + _SlideOptionsCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + SlideOptionsMapper.ensureInitialized(); + @override + TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? + get transition => + $value.transition?.copyWith.$chain((v) => call(transition: v)); + @override + $R call( + {Object? background = $none, + Object? style = $none, + Object? transition = $none}) => + $apply(FieldCopyWithData({ + if (background != $none) #background: background, + if (style != $none) #style: style, + if (transition != $none) #transition: transition + })); + @override + SlideOptions $make(CopyWithData data) => SlideOptions( + title: data.get(#title, or: $value.title), + background: data.get(#background, or: $value.background), + style: data.get(#style, or: $value.style), + transition: data.get(#transition, or: $value.transition)); + + @override + SlideOptionsCopyWith<$R2, SlideOptions, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _SlideOptionsCopyWithImpl($value, $cast, t); +} + +class TransitionOptionsMapper extends ClassMapperBase { + TransitionOptionsMapper._(); + + static TransitionOptionsMapper? _instance; + static TransitionOptionsMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = TransitionOptionsMapper._()); + MapperContainer.globals.useAll([DurationMapper()]); + TransitionTypeMapper.ensureInitialized(); + CurveTypeMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'TransitionOptions'; + + static TransitionType _$type(TransitionOptions v) => v.type; + static const Field _f$type = + Field('type', _$type); + static Duration? _$duration(TransitionOptions v) => v.duration; + static const Field _f$duration = + Field('duration', _$duration, opt: true); + static Duration? _$delay(TransitionOptions v) => v.delay; + static const Field _f$delay = + Field('delay', _$delay, opt: true); + static CurveType? _$curve(TransitionOptions v) => v.curve; + static const Field _f$curve = + Field('curve', _$curve, opt: true); + + @override + final MappableFields fields = const { + #type: _f$type, + #duration: _f$duration, + #delay: _f$delay, + #curve: _f$curve, + }; + @override + final bool ignoreNull = true; + + static TransitionOptions _instantiate(DecodingData data) { + return TransitionOptions( + type: data.dec(_f$type), + duration: data.dec(_f$duration), + delay: data.dec(_f$delay), + curve: data.dec(_f$curve)); + } + + @override + final Function instantiate = _instantiate; + + static TransitionOptions fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static TransitionOptions fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin TransitionOptionsMappable { + String toJson() { + return TransitionOptionsMapper.ensureInitialized() + .encodeJson(this as TransitionOptions); + } + + Map toMap() { + return TransitionOptionsMapper.ensureInitialized() + .encodeMap(this as TransitionOptions); + } + + TransitionOptionsCopyWith + get copyWith => _TransitionOptionsCopyWithImpl( + this as TransitionOptions, $identity, $identity); + @override + String toString() { + return TransitionOptionsMapper.ensureInitialized() + .stringifyValue(this as TransitionOptions); + } + + @override + bool operator ==(Object other) { + return TransitionOptionsMapper.ensureInitialized() + .equalsValue(this as TransitionOptions, other); + } + + @override + int get hashCode { + return TransitionOptionsMapper.ensureInitialized() + .hashValue(this as TransitionOptions); + } +} + +extension TransitionOptionsValueCopy<$R, $Out> + on ObjectCopyWith<$R, TransitionOptions, $Out> { + TransitionOptionsCopyWith<$R, TransitionOptions, $Out> + get $asTransitionOptions => + $base.as((v, t, t2) => _TransitionOptionsCopyWithImpl(v, t, t2)); +} + +abstract class TransitionOptionsCopyWith<$R, $In extends TransitionOptions, + $Out> implements ClassCopyWith<$R, $In, $Out> { + $R call( + {TransitionType? type, + Duration? duration, + Duration? delay, + CurveType? curve}); + TransitionOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _TransitionOptionsCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, TransitionOptions, $Out> + implements TransitionOptionsCopyWith<$R, TransitionOptions, $Out> { + _TransitionOptionsCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + TransitionOptionsMapper.ensureInitialized(); + @override + $R call( + {TransitionType? type, + Object? duration = $none, + Object? delay = $none, + Object? curve = $none}) => + $apply(FieldCopyWithData({ + if (type != null) #type: type, + if (duration != $none) #duration: duration, + if (delay != $none) #delay: delay, + if (curve != $none) #curve: curve + })); + @override + TransitionOptions $make(CopyWithData data) => TransitionOptions( + type: data.get(#type, or: $value.type), + duration: data.get(#duration, or: $value.duration), + delay: data.get(#delay, or: $value.delay), + curve: data.get(#curve, or: $value.curve)); + + @override + TransitionOptionsCopyWith<$R2, TransitionOptions, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _TransitionOptionsCopyWithImpl($value, $cast, t); +} + +class TransitionTypeMapper extends EnumMapper { + TransitionTypeMapper._(); + + static TransitionTypeMapper? _instance; + static TransitionTypeMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = TransitionTypeMapper._()); + } + return _instance!; + } + + static TransitionType fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + TransitionType decode(dynamic value) { + switch (value) { + case 'fade_in': + return TransitionType.fadeIn; + case 'fade_in_down': + return TransitionType.fadeInDown; + case 'fade_in_down_big': + return TransitionType.fadeInDownBig; + case 'fade_in_up': + return TransitionType.fadeInUp; + case 'fade_in_up_big': + return TransitionType.fadeInUpBig; + case 'fade_in_left': + return TransitionType.fadeInLeft; + case 'fade_in_left_big': + return TransitionType.fadeInLeftBig; + case 'fade_in_right': + return TransitionType.fadeInRight; + case 'fade_in_right_big': + return TransitionType.fadeInRightBig; + case 'fade_out': + return TransitionType.fadeOut; + case 'fade_out_down': + return TransitionType.fadeOutDown; + case 'fade_out_down_big': + return TransitionType.fadeOutDownBig; + case 'fade_out_up': + return TransitionType.fadeOutUp; + case 'fade_out_up_big': + return TransitionType.fadeOutUpBig; + case 'fade_out_left': + return TransitionType.fadeOutLeft; + case 'fade_out_left_big': + return TransitionType.fadeOutLeftBig; + case 'fade_out_right': + return TransitionType.fadeOutRight; + case 'fade_out_right_big': + return TransitionType.fadeOutRightBig; + case 'bounce_in_down': + return TransitionType.bounceInDown; + case 'bounce_in_up': + return TransitionType.bounceInUp; + case 'bounce_in_left': + return TransitionType.bounceInLeft; + case 'bounce_in_right': + return TransitionType.bounceInRight; + case 'elastic_in': + return TransitionType.elasticIn; + case 'elastic_in_down': + return TransitionType.elasticInDown; + case 'elastic_in_up': + return TransitionType.elasticInUp; + case 'elastic_in_left': + return TransitionType.elasticInLeft; + case 'elastic_in_right': + return TransitionType.elasticInRight; + case 'slide_in_down': + return TransitionType.slideInDown; + case 'slide_in_up': + return TransitionType.slideInUp; + case 'slide_in_left': + return TransitionType.slideInLeft; + case 'slide_in_right': + return TransitionType.slideInRight; + case 'flip_in_x': + return TransitionType.flipInX; + case 'flip_in_y': + return TransitionType.flipInY; + case 'zoom_in': + return TransitionType.zoomIn; + case 'zoom_out': + return TransitionType.zoomOut; + case 'jello_in': + return TransitionType.jelloIn; + case 'bounce': + return TransitionType.bounce; + case 'dance': + return TransitionType.dance; + case 'flash': + return TransitionType.flash; + case 'pulse': + return TransitionType.pulse; + case 'roulette': + return TransitionType.roulette; + case 'shake_x': + return TransitionType.shakeX; + case 'shake_y': + return TransitionType.shakeY; + case 'spin': + return TransitionType.spin; + case 'spin_perfect': + return TransitionType.spinPerfect; + case 'swing': + return TransitionType.swing; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(TransitionType self) { + switch (self) { + case TransitionType.fadeIn: + return 'fade_in'; + case TransitionType.fadeInDown: + return 'fade_in_down'; + case TransitionType.fadeInDownBig: + return 'fade_in_down_big'; + case TransitionType.fadeInUp: + return 'fade_in_up'; + case TransitionType.fadeInUpBig: + return 'fade_in_up_big'; + case TransitionType.fadeInLeft: + return 'fade_in_left'; + case TransitionType.fadeInLeftBig: + return 'fade_in_left_big'; + case TransitionType.fadeInRight: + return 'fade_in_right'; + case TransitionType.fadeInRightBig: + return 'fade_in_right_big'; + case TransitionType.fadeOut: + return 'fade_out'; + case TransitionType.fadeOutDown: + return 'fade_out_down'; + case TransitionType.fadeOutDownBig: + return 'fade_out_down_big'; + case TransitionType.fadeOutUp: + return 'fade_out_up'; + case TransitionType.fadeOutUpBig: + return 'fade_out_up_big'; + case TransitionType.fadeOutLeft: + return 'fade_out_left'; + case TransitionType.fadeOutLeftBig: + return 'fade_out_left_big'; + case TransitionType.fadeOutRight: + return 'fade_out_right'; + case TransitionType.fadeOutRightBig: + return 'fade_out_right_big'; + case TransitionType.bounceInDown: + return 'bounce_in_down'; + case TransitionType.bounceInUp: + return 'bounce_in_up'; + case TransitionType.bounceInLeft: + return 'bounce_in_left'; + case TransitionType.bounceInRight: + return 'bounce_in_right'; + case TransitionType.elasticIn: + return 'elastic_in'; + case TransitionType.elasticInDown: + return 'elastic_in_down'; + case TransitionType.elasticInUp: + return 'elastic_in_up'; + case TransitionType.elasticInLeft: + return 'elastic_in_left'; + case TransitionType.elasticInRight: + return 'elastic_in_right'; + case TransitionType.slideInDown: + return 'slide_in_down'; + case TransitionType.slideInUp: + return 'slide_in_up'; + case TransitionType.slideInLeft: + return 'slide_in_left'; + case TransitionType.slideInRight: + return 'slide_in_right'; + case TransitionType.flipInX: + return 'flip_in_x'; + case TransitionType.flipInY: + return 'flip_in_y'; + case TransitionType.zoomIn: + return 'zoom_in'; + case TransitionType.zoomOut: + return 'zoom_out'; + case TransitionType.jelloIn: + return 'jello_in'; + case TransitionType.bounce: + return 'bounce'; + case TransitionType.dance: + return 'dance'; + case TransitionType.flash: + return 'flash'; + case TransitionType.pulse: + return 'pulse'; + case TransitionType.roulette: + return 'roulette'; + case TransitionType.shakeX: + return 'shake_x'; + case TransitionType.shakeY: + return 'shake_y'; + case TransitionType.spin: + return 'spin'; + case TransitionType.spinPerfect: + return 'spin_perfect'; + case TransitionType.swing: + return 'swing'; + } + } +} + +extension TransitionTypeMapperExtension on TransitionType { + String toValue() { + TransitionTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class CurveTypeMapper extends EnumMapper { + CurveTypeMapper._(); + + static CurveTypeMapper? _instance; + static CurveTypeMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = CurveTypeMapper._()); + } + return _instance!; + } + + static CurveType fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + CurveType decode(dynamic value) { + switch (value) { + case 'ease': + return CurveType.ease; + case 'bounce_in': + return CurveType.bounceIn; + case 'bounce_out': + return CurveType.bounceOut; + case 'ease_in': + return CurveType.easeIn; + case 'ease_in_out': + return CurveType.easeInOut; + case 'ease_out': + return CurveType.easeOut; + case 'elastic_in': + return CurveType.elasticIn; + case 'elastic_in_out': + return CurveType.elasticInOut; + case 'elastic_out': + return CurveType.elasticOut; + case 'fast_linear_to_slow_ease_in': + return CurveType.fastLinearToSlowEaseIn; + case 'fast_out_slow_in': + return CurveType.fastOutSlowIn; + case 'linear': + return CurveType.linear; + case 'decelerate': + return CurveType.decelerate; + case 'slow_middle': + return CurveType.slowMiddle; + case 'linear_to_ease_out': + return CurveType.linearToEaseOut; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(CurveType self) { + switch (self) { + case CurveType.ease: + return 'ease'; + case CurveType.bounceIn: + return 'bounce_in'; + case CurveType.bounceOut: + return 'bounce_out'; + case CurveType.easeIn: + return 'ease_in'; + case CurveType.easeInOut: + return 'ease_in_out'; + case CurveType.easeOut: + return 'ease_out'; + case CurveType.elasticIn: + return 'elastic_in'; + case CurveType.elasticInOut: + return 'elastic_in_out'; + case CurveType.elasticOut: + return 'elastic_out'; + case CurveType.fastLinearToSlowEaseIn: + return 'fast_linear_to_slow_ease_in'; + case CurveType.fastOutSlowIn: + return 'fast_out_slow_in'; + case CurveType.linear: + return 'linear'; + case CurveType.decelerate: + return 'decelerate'; + case CurveType.slowMiddle: + return 'slow_middle'; + case CurveType.linearToEaseOut: + return 'linear_to_ease_out'; + } + } +} + +extension CurveTypeMapperExtension on CurveType { + String toValue() { + CurveTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class ConfigMapper extends SubClassMapperBase { + ConfigMapper._(); + + static ConfigMapper? _instance; + static ConfigMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ConfigMapper._()); + SlideOptionsMapper.ensureInitialized().addSubMapper(_instance!); + TransitionOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'Config'; + + static String? _$background(Config v) => v.background; + static const Field _f$background = + Field('background', _$background); + static String? _$style(Config v) => v.style; + static const Field _f$style = Field('style', _$style); + static TransitionOptions? _$transition(Config v) => v.transition; + static const Field _f$transition = + Field('transition', _$transition); + static bool? _$cacheRemoteAssets(Config v) => v.cacheRemoteAssets; + static const Field _f$cacheRemoteAssets = Field( + 'cacheRemoteAssets', _$cacheRemoteAssets, + key: 'cache_remote_assets', opt: true); + static String? _$title(Config v) => v.title; + static const Field _f$title = + Field('title', _$title, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #background: _f$background, + #style: _f$style, + #transition: _f$transition, + #cacheRemoteAssets: _f$cacheRemoteAssets, + #title: _f$title, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'Config'; + @override + late final ClassMapperBase superMapper = + SlideOptionsMapper.ensureInitialized(); + + static Config _instantiate(DecodingData data) { + return Config( + background: data.dec(_f$background), + style: data.dec(_f$style), + transition: data.dec(_f$transition), + cacheRemoteAssets: data.dec(_f$cacheRemoteAssets)); + } + + @override + final Function instantiate = _instantiate; + + static Config fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static Config fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin ConfigMappable { + String toJson() { + return ConfigMapper.ensureInitialized().encodeJson(this as Config); + } + + Map toMap() { + return ConfigMapper.ensureInitialized().encodeMap(this as Config); + } + + ConfigCopyWith get copyWith => + _ConfigCopyWithImpl(this as Config, $identity, $identity); + @override + String toString() { + return ConfigMapper.ensureInitialized().stringifyValue(this as Config); + } + + @override + bool operator ==(Object other) { + return ConfigMapper.ensureInitialized().equalsValue(this as Config, other); + } + + @override + int get hashCode { + return ConfigMapper.ensureInitialized().hashValue(this as Config); + } +} + +extension ConfigValueCopy<$R, $Out> on ObjectCopyWith<$R, Config, $Out> { + ConfigCopyWith<$R, Config, $Out> get $asConfig => + $base.as((v, t, t2) => _ConfigCopyWithImpl(v, t, t2)); +} + +abstract class ConfigCopyWith<$R, $In extends Config, $Out> + implements SlideOptionsCopyWith<$R, $In, $Out> { + @override + TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? + get transition; + @override + $R call( + {String? background, + String? style, + TransitionOptions? transition, + bool? cacheRemoteAssets}); + ConfigCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _ConfigCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Config, $Out> + implements ConfigCopyWith<$R, Config, $Out> { + _ConfigCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = ConfigMapper.ensureInitialized(); + @override + TransitionOptionsCopyWith<$R, TransitionOptions, TransitionOptions>? + get transition => + $value.transition?.copyWith.$chain((v) => call(transition: v)); + @override + $R call( + {Object? background = $none, + Object? style = $none, + Object? transition = $none, + Object? cacheRemoteAssets = $none}) => + $apply(FieldCopyWithData({ + if (background != $none) #background: background, + if (style != $none) #style: style, + if (transition != $none) #transition: transition, + if (cacheRemoteAssets != $none) #cacheRemoteAssets: cacheRemoteAssets + })); + @override + Config $make(CopyWithData data) => Config( + background: data.get(#background, or: $value.background), + style: data.get(#style, or: $value.style), + transition: data.get(#transition, or: $value.transition), + cacheRemoteAssets: + data.get(#cacheRemoteAssets, or: $value.cacheRemoteAssets)); + + @override + ConfigCopyWith<$R2, Config, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t) => + _ConfigCopyWithImpl($value, $cast, t); +} + +class ImageFitMapper extends EnumMapper { + ImageFitMapper._(); + + static ImageFitMapper? _instance; + static ImageFitMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ImageFitMapper._()); + } + return _instance!; + } + + static ImageFit fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + ImageFit decode(dynamic value) { + switch (value) { + case 'fill': + return ImageFit.fill; + case 'contain': + return ImageFit.contain; + case 'cover': + return ImageFit.cover; + case 'fit_width': + return ImageFit.fitWidth; + case 'fit_height': + return ImageFit.fitHeight; + case 'none': + return ImageFit.none; + case 'scale_down': + return ImageFit.scaleDown; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(ImageFit self) { + switch (self) { + case ImageFit.fill: + return 'fill'; + case ImageFit.contain: + return 'contain'; + case ImageFit.cover: + return 'cover'; + case ImageFit.fitWidth: + return 'fit_width'; + case ImageFit.fitHeight: + return 'fit_height'; + case ImageFit.none: + return 'none'; + case ImageFit.scaleDown: + return 'scale_down'; + } + } +} + +extension ImageFitMapperExtension on ImageFit { + String toValue() { + ImageFitMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class LayoutPositionMapper extends EnumMapper { + LayoutPositionMapper._(); + + static LayoutPositionMapper? _instance; + static LayoutPositionMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = LayoutPositionMapper._()); + } + return _instance!; + } + + static LayoutPosition fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + LayoutPosition decode(dynamic value) { + switch (value) { + case 'left': + return LayoutPosition.left; + case 'right': + return LayoutPosition.right; + case 'top': + return LayoutPosition.top; + case 'bottom': + return LayoutPosition.bottom; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(LayoutPosition self) { + switch (self) { + case LayoutPosition.left: + return 'left'; + case LayoutPosition.right: + return 'right'; + case LayoutPosition.top: + return 'top'; + case LayoutPosition.bottom: + return 'bottom'; + } + } +} + +extension LayoutPositionMapperExtension on LayoutPosition { + String toValue() { + LayoutPositionMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class ContentAlignmentMapper extends EnumMapper { + ContentAlignmentMapper._(); + + static ContentAlignmentMapper? _instance; + static ContentAlignmentMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ContentAlignmentMapper._()); + } + return _instance!; + } + + static ContentAlignment fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + ContentAlignment decode(dynamic value) { + switch (value) { + case 'top_left': + return ContentAlignment.topLeft; + case 'top_center': + return ContentAlignment.topCenter; + case 'top_right': + return ContentAlignment.topRight; + case 'center_left': + return ContentAlignment.centerLeft; + case 'center': + return ContentAlignment.center; + case 'center_right': + return ContentAlignment.centerRight; + case 'bottom_left': + return ContentAlignment.bottomLeft; + case 'bottom_center': + return ContentAlignment.bottomCenter; + case 'bottom_right': + return ContentAlignment.bottomRight; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(ContentAlignment self) { + switch (self) { + case ContentAlignment.topLeft: + return 'top_left'; + case ContentAlignment.topCenter: + return 'top_center'; + case ContentAlignment.topRight: + return 'top_right'; + case ContentAlignment.centerLeft: + return 'center_left'; + case ContentAlignment.center: + return 'center'; + case ContentAlignment.centerRight: + return 'center_right'; + case ContentAlignment.bottomLeft: + return 'bottom_left'; + case ContentAlignment.bottomCenter: + return 'bottom_center'; + case ContentAlignment.bottomRight: + return 'bottom_right'; + } + } +} + +extension ContentAlignmentMapperExtension on ContentAlignment { + String toValue() { + ContentAlignmentMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class ContentOptionsMapper extends ClassMapperBase { + ContentOptionsMapper._(); + + static ContentOptionsMapper? _instance; + static ContentOptionsMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ContentOptionsMapper._()); + ImageOptionsMapper.ensureInitialized(); + WidgetOptionsMapper.ensureInitialized(); + ContentAlignmentMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'ContentOptions'; + + static int? _$flex(ContentOptions v) => v.flex; + static const Field _f$flex = + Field('flex', _$flex, opt: true); + static ContentAlignment? _$align(ContentOptions v) => v.align; + static const Field _f$align = + Field('align', _$align, opt: true); + + @override + final MappableFields fields = const { + #flex: _f$flex, + #align: _f$align, + }; + @override + final bool ignoreNull = true; + + static ContentOptions _instantiate(DecodingData data) { + return ContentOptions(flex: data.dec(_f$flex), align: data.dec(_f$align)); + } + + @override + final Function instantiate = _instantiate; + + static ContentOptions fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static ContentOptions fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin ContentOptionsMappable { + String toJson() { + return ContentOptionsMapper.ensureInitialized() + .encodeJson(this as ContentOptions); + } + + Map toMap() { + return ContentOptionsMapper.ensureInitialized() + .encodeMap(this as ContentOptions); + } + + ContentOptionsCopyWith + get copyWith => _ContentOptionsCopyWithImpl( + this as ContentOptions, $identity, $identity); + @override + String toString() { + return ContentOptionsMapper.ensureInitialized() + .stringifyValue(this as ContentOptions); + } + + @override + bool operator ==(Object other) { + return ContentOptionsMapper.ensureInitialized() + .equalsValue(this as ContentOptions, other); + } + + @override + int get hashCode { + return ContentOptionsMapper.ensureInitialized() + .hashValue(this as ContentOptions); + } +} + +extension ContentOptionsValueCopy<$R, $Out> + on ObjectCopyWith<$R, ContentOptions, $Out> { + ContentOptionsCopyWith<$R, ContentOptions, $Out> get $asContentOptions => + $base.as((v, t, t2) => _ContentOptionsCopyWithImpl(v, t, t2)); +} + +abstract class ContentOptionsCopyWith<$R, $In extends ContentOptions, $Out> + implements ClassCopyWith<$R, $In, $Out> { + $R call({int? flex, ContentAlignment? align}); + ContentOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _ContentOptionsCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ContentOptions, $Out> + implements ContentOptionsCopyWith<$R, ContentOptions, $Out> { + _ContentOptionsCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + ContentOptionsMapper.ensureInitialized(); + @override + $R call({Object? flex = $none, Object? align = $none}) => + $apply(FieldCopyWithData( + {if (flex != $none) #flex: flex, if (align != $none) #align: align})); + @override + ContentOptions $make(CopyWithData data) => ContentOptions( + flex: data.get(#flex, or: $value.flex), + align: data.get(#align, or: $value.align)); + + @override + ContentOptionsCopyWith<$R2, ContentOptions, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _ContentOptionsCopyWithImpl($value, $cast, t); +} + +class ImageOptionsMapper extends SubClassMapperBase { + ImageOptionsMapper._(); + + static ImageOptionsMapper? _instance; + static ImageOptionsMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ImageOptionsMapper._()); + ContentOptionsMapper.ensureInitialized().addSubMapper(_instance!); + ImageFitMapper.ensureInitialized(); + ContentAlignmentMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'ImageOptions'; + + static String _$src(ImageOptions v) => v.src; + static const Field _f$src = Field('src', _$src); + static ImageFit? _$fit(ImageOptions v) => v.fit; + static const Field _f$fit = + Field('fit', _$fit, opt: true); + static int? _$flex(ImageOptions v) => v.flex; + static const Field _f$flex = + Field('flex', _$flex, opt: true); + static ContentAlignment? _$align(ImageOptions v) => v.align; + static const Field _f$align = + Field('align', _$align, opt: true); + + @override + final MappableFields fields = const { + #src: _f$src, + #fit: _f$fit, + #flex: _f$flex, + #align: _f$align, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'ImageOptions'; + @override + late final ClassMapperBase superMapper = + ContentOptionsMapper.ensureInitialized(); + + static ImageOptions _instantiate(DecodingData data) { + return ImageOptions( + src: data.dec(_f$src), + fit: data.dec(_f$fit), + flex: data.dec(_f$flex), + align: data.dec(_f$align)); + } + + @override + final Function instantiate = _instantiate; + + static ImageOptions fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static ImageOptions fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin ImageOptionsMappable { + String toJson() { + return ImageOptionsMapper.ensureInitialized() + .encodeJson(this as ImageOptions); + } + + Map toMap() { + return ImageOptionsMapper.ensureInitialized() + .encodeMap(this as ImageOptions); + } + + ImageOptionsCopyWith get copyWith => + _ImageOptionsCopyWithImpl(this as ImageOptions, $identity, $identity); + @override + String toString() { + return ImageOptionsMapper.ensureInitialized() + .stringifyValue(this as ImageOptions); + } + + @override + bool operator ==(Object other) { + return ImageOptionsMapper.ensureInitialized() + .equalsValue(this as ImageOptions, other); + } + + @override + int get hashCode { + return ImageOptionsMapper.ensureInitialized() + .hashValue(this as ImageOptions); + } +} + +extension ImageOptionsValueCopy<$R, $Out> + on ObjectCopyWith<$R, ImageOptions, $Out> { + ImageOptionsCopyWith<$R, ImageOptions, $Out> get $asImageOptions => + $base.as((v, t, t2) => _ImageOptionsCopyWithImpl(v, t, t2)); +} + +abstract class ImageOptionsCopyWith<$R, $In extends ImageOptions, $Out> + implements ContentOptionsCopyWith<$R, $In, $Out> { + @override + $R call({String? src, ImageFit? fit, int? flex, ContentAlignment? align}); + ImageOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _ImageOptionsCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ImageOptions, $Out> + implements ImageOptionsCopyWith<$R, ImageOptions, $Out> { + _ImageOptionsCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + ImageOptionsMapper.ensureInitialized(); + @override + $R call( + {String? src, + Object? fit = $none, + Object? flex = $none, + Object? align = $none}) => + $apply(FieldCopyWithData({ + if (src != null) #src: src, + if (fit != $none) #fit: fit, + if (flex != $none) #flex: flex, + if (align != $none) #align: align + })); + @override + ImageOptions $make(CopyWithData data) => ImageOptions( + src: data.get(#src, or: $value.src), + fit: data.get(#fit, or: $value.fit), + flex: data.get(#flex, or: $value.flex), + align: data.get(#align, or: $value.align)); + + @override + ImageOptionsCopyWith<$R2, ImageOptions, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _ImageOptionsCopyWithImpl($value, $cast, t); +} + +class WidgetOptionsMapper extends SubClassMapperBase { + WidgetOptionsMapper._(); + + static WidgetOptionsMapper? _instance; + static WidgetOptionsMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = WidgetOptionsMapper._()); + ContentOptionsMapper.ensureInitialized().addSubMapper(_instance!); + ContentAlignmentMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'WidgetOptions'; + + static String _$name(WidgetOptions v) => v.name; + static const Field _f$name = Field('name', _$name); + static Map _$args(WidgetOptions v) => v.args; + static const Field> _f$args = + Field('args', _$args, opt: true, def: const {}); + static int? _$flex(WidgetOptions v) => v.flex; + static const Field _f$flex = + Field('flex', _$flex, opt: true); + static ContentAlignment? _$align(WidgetOptions v) => v.align; + static const Field _f$align = + Field('align', _$align, opt: true); + + @override + final MappableFields fields = const { + #name: _f$name, + #args: _f$args, + #flex: _f$flex, + #align: _f$align, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'WidgetOptions'; + @override + late final ClassMapperBase superMapper = + ContentOptionsMapper.ensureInitialized(); + + @override + final MappingHook hook = const UnmappedPropertiesHook('args'); + static WidgetOptions _instantiate(DecodingData data) { + return WidgetOptions( + name: data.dec(_f$name), + args: data.dec(_f$args), + flex: data.dec(_f$flex), + align: data.dec(_f$align)); + } + + @override + final Function instantiate = _instantiate; + + static WidgetOptions fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static WidgetOptions fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin WidgetOptionsMappable { + String toJson() { + return WidgetOptionsMapper.ensureInitialized() + .encodeJson(this as WidgetOptions); + } + + Map toMap() { + return WidgetOptionsMapper.ensureInitialized() + .encodeMap(this as WidgetOptions); + } + + WidgetOptionsCopyWith + get copyWith => _WidgetOptionsCopyWithImpl( + this as WidgetOptions, $identity, $identity); + @override + String toString() { + return WidgetOptionsMapper.ensureInitialized() + .stringifyValue(this as WidgetOptions); + } + + @override + bool operator ==(Object other) { + return WidgetOptionsMapper.ensureInitialized() + .equalsValue(this as WidgetOptions, other); + } + + @override + int get hashCode { + return WidgetOptionsMapper.ensureInitialized() + .hashValue(this as WidgetOptions); + } +} + +extension WidgetOptionsValueCopy<$R, $Out> + on ObjectCopyWith<$R, WidgetOptions, $Out> { + WidgetOptionsCopyWith<$R, WidgetOptions, $Out> get $asWidgetOptions => + $base.as((v, t, t2) => _WidgetOptionsCopyWithImpl(v, t, t2)); +} + +abstract class WidgetOptionsCopyWith<$R, $In extends WidgetOptions, $Out> + implements ContentOptionsCopyWith<$R, $In, $Out> { + MapCopyWith<$R, String, dynamic, ObjectCopyWith<$R, dynamic, dynamic>> + get args; + @override + $R call( + {String? name, + Map? args, + int? flex, + ContentAlignment? align}); + WidgetOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _WidgetOptionsCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, WidgetOptions, $Out> + implements WidgetOptionsCopyWith<$R, WidgetOptions, $Out> { + _WidgetOptionsCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + WidgetOptionsMapper.ensureInitialized(); + @override + MapCopyWith<$R, String, dynamic, ObjectCopyWith<$R, dynamic, dynamic>> + get args => MapCopyWith($value.args, + (v, t) => ObjectCopyWith(v, $identity, t), (v) => call(args: v)); + @override + $R call( + {String? name, + Map? args, + Object? flex = $none, + Object? align = $none}) => + $apply(FieldCopyWithData({ + if (name != null) #name: name, + if (args != null) #args: args, + if (flex != $none) #flex: flex, + if (align != $none) #align: align + })); + @override + WidgetOptions $make(CopyWithData data) => WidgetOptions( + name: data.get(#name, or: $value.name), + args: data.get(#args, or: $value.args), + flex: data.get(#flex, or: $value.flex), + align: data.get(#align, or: $value.align)); + + @override + WidgetOptionsCopyWith<$R2, WidgetOptions, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _WidgetOptionsCopyWithImpl($value, $cast, t); +} + +class SuperDeckReferenceMapper extends ClassMapperBase { + SuperDeckReferenceMapper._(); + + static SuperDeckReferenceMapper? _instance; + static SuperDeckReferenceMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SuperDeckReferenceMapper._()); + ConfigMapper.ensureInitialized(); + SlideMapper.ensureInitialized(); + SlideAssetMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'SuperDeckReference'; + + static Config _$config(SuperDeckReference v) => v.config; + static const Field _f$config = + Field('config', _$config); + static List _$slides(SuperDeckReference v) => v.slides; + static const Field> _f$slides = + Field('slides', _$slides); + static List _$assets(SuperDeckReference v) => v.assets; + static const Field> _f$assets = + Field('assets', _$assets); + + @override + final MappableFields fields = const { + #config: _f$config, + #slides: _f$slides, + #assets: _f$assets, + }; + @override + final bool ignoreNull = true; + + static SuperDeckReference _instantiate(DecodingData data) { + return SuperDeckReference( + config: data.dec(_f$config), + slides: data.dec(_f$slides), + assets: data.dec(_f$assets)); + } + + @override + final Function instantiate = _instantiate; + + static SuperDeckReference fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SuperDeckReference fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SuperDeckReferenceMappable { + String toJson() { + return SuperDeckReferenceMapper.ensureInitialized() + .encodeJson(this as SuperDeckReference); + } + + Map toMap() { + return SuperDeckReferenceMapper.ensureInitialized() + .encodeMap(this as SuperDeckReference); + } + + SuperDeckReferenceCopyWith + get copyWith => _SuperDeckReferenceCopyWithImpl( + this as SuperDeckReference, $identity, $identity); + @override + String toString() { + return SuperDeckReferenceMapper.ensureInitialized() + .stringifyValue(this as SuperDeckReference); + } + + @override + bool operator ==(Object other) { + return SuperDeckReferenceMapper.ensureInitialized() + .equalsValue(this as SuperDeckReference, other); + } + + @override + int get hashCode { + return SuperDeckReferenceMapper.ensureInitialized() + .hashValue(this as SuperDeckReference); + } +} + +extension SuperDeckReferenceValueCopy<$R, $Out> + on ObjectCopyWith<$R, SuperDeckReference, $Out> { + SuperDeckReferenceCopyWith<$R, SuperDeckReference, $Out> + get $asSuperDeckReference => + $base.as((v, t, t2) => _SuperDeckReferenceCopyWithImpl(v, t, t2)); +} + +abstract class SuperDeckReferenceCopyWith<$R, $In extends SuperDeckReference, + $Out> implements ClassCopyWith<$R, $In, $Out> { + ConfigCopyWith<$R, Config, Config> get config; + ListCopyWith<$R, Slide, SlideCopyWith<$R, Slide, Slide>> get slides; + ListCopyWith<$R, SlideAsset, SlideAssetCopyWith<$R, SlideAsset, SlideAsset>> + get assets; + $R call({Config? config, List? slides, List? assets}); + SuperDeckReferenceCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _SuperDeckReferenceCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, SuperDeckReference, $Out> + implements SuperDeckReferenceCopyWith<$R, SuperDeckReference, $Out> { + _SuperDeckReferenceCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + SuperDeckReferenceMapper.ensureInitialized(); + @override + ConfigCopyWith<$R, Config, Config> get config => + $value.config.copyWith.$chain((v) => call(config: v)); + @override + ListCopyWith<$R, Slide, SlideCopyWith<$R, Slide, Slide>> get slides => + ListCopyWith($value.slides, (v, t) => v.copyWith.$chain(t), + (v) => call(slides: v)); + @override + ListCopyWith<$R, SlideAsset, SlideAssetCopyWith<$R, SlideAsset, SlideAsset>> + get assets => ListCopyWith($value.assets, (v, t) => v.copyWith.$chain(t), + (v) => call(assets: v)); + @override + $R call({Config? config, List? slides, List? assets}) => + $apply(FieldCopyWithData({ + if (config != null) #config: config, + if (slides != null) #slides: slides, + if (assets != null) #assets: assets + })); + @override + SuperDeckReference $make(CopyWithData data) => SuperDeckReference( + config: data.get(#config, or: $value.config), + slides: data.get(#slides, or: $value.slides), + assets: data.get(#assets, or: $value.assets)); + + @override + SuperDeckReferenceCopyWith<$R2, SuperDeckReference, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _SuperDeckReferenceCopyWithImpl($value, $cast, t); +} + +class SlideMapper extends ClassMapperBase { + SlideMapper._(); + + static SlideMapper? _instance; + static SlideMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SlideMapper._()); + SlideOptionsMapper.ensureInitialized(); + SectionDtoMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'Slide'; + + static int _$index(Slide v) => v.index; + static const Field _f$index = Field('index', _$index); + static String _$content(Slide v) => v.content; + static const Field _f$content = Field('content', _$content); + static String _$key(Slide v) => v.key; + static const Field _f$key = Field('key', _$key); + static SlideOptions? _$options(Slide v) => v.options; + static const Field _f$options = + Field('options', _$options, opt: true); + static List _$sections(Slide v) => v.sections; + static const Field> _f$sections = + Field('sections', _$sections, opt: true, def: const []); + + @override + final MappableFields fields = const { + #index: _f$index, + #content: _f$content, + #key: _f$key, + #options: _f$options, + #sections: _f$sections, + }; + @override + final bool ignoreNull = true; + + static Slide _instantiate(DecodingData data) { + return Slide( + index: data.dec(_f$index), + content: data.dec(_f$content), + key: data.dec(_f$key), + options: data.dec(_f$options), + sections: data.dec(_f$sections)); + } + + @override + final Function instantiate = _instantiate; + + static Slide fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static Slide fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SlideMappable { + String toJson() { + return SlideMapper.ensureInitialized().encodeJson(this as Slide); + } + + Map toMap() { + return SlideMapper.ensureInitialized().encodeMap(this as Slide); + } + + SlideCopyWith get copyWith => + _SlideCopyWithImpl(this as Slide, $identity, $identity); + @override + String toString() { + return SlideMapper.ensureInitialized().stringifyValue(this as Slide); + } + + @override + bool operator ==(Object other) { + return SlideMapper.ensureInitialized().equalsValue(this as Slide, other); + } + + @override + int get hashCode { + return SlideMapper.ensureInitialized().hashValue(this as Slide); + } +} + +extension SlideValueCopy<$R, $Out> on ObjectCopyWith<$R, Slide, $Out> { + SlideCopyWith<$R, Slide, $Out> get $asSlide => + $base.as((v, t, t2) => _SlideCopyWithImpl(v, t, t2)); +} + +abstract class SlideCopyWith<$R, $In extends Slide, $Out> + implements ClassCopyWith<$R, $In, $Out> { + SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options; + ListCopyWith<$R, SectionDto, SectionDtoCopyWith<$R, SectionDto, SectionDto>> + get sections; + $R call( + {int? index, + String? content, + String? key, + SlideOptions? options, + List? sections}); + SlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _SlideCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Slide, $Out> + implements SlideCopyWith<$R, Slide, $Out> { + _SlideCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = SlideMapper.ensureInitialized(); + @override + SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options => + $value.options?.copyWith.$chain((v) => call(options: v)); + @override + ListCopyWith<$R, SectionDto, SectionDtoCopyWith<$R, SectionDto, SectionDto>> + get sections => ListCopyWith($value.sections, + (v, t) => v.copyWith.$chain(t), (v) => call(sections: v)); + @override + $R call( + {int? index, + String? content, + String? key, + Object? options = $none, + List? sections}) => + $apply(FieldCopyWithData({ + if (index != null) #index: index, + if (content != null) #content: content, + if (key != null) #key: key, + if (options != $none) #options: options, + if (sections != null) #sections: sections + })); + @override + Slide $make(CopyWithData data) => Slide( + index: data.get(#index, or: $value.index), + content: data.get(#content, or: $value.content), + key: data.get(#key, or: $value.key), + options: data.get(#options, or: $value.options), + sections: data.get(#sections, or: $value.sections)); + + @override + SlideCopyWith<$R2, Slide, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t) => + _SlideCopyWithImpl($value, $cast, t); +} + +class SectionDtoMapper extends ClassMapperBase { + SectionDtoMapper._(); + + static SectionDtoMapper? _instance; + static SectionDtoMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SectionDtoMapper._()); + RootLayoutPartMapper.ensureInitialized(); + HeaderLayoutPartMapper.ensureInitialized(); + BodyLayoutPartMapper.ensureInitialized(); + FooterLayoutPartMapper.ensureInitialized(); + SectionTypeMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'SectionDto'; + + static SectionType _$type(SectionDto v) => v.type; + static const Field _f$type = Field('type', _$type); + static ContentOptions _$options(SectionDto v) => v.options; + static const Field _f$options = + Field('options', _$options); + static List> _$contentSections( + SectionDto v) => + v.contentSections; + static const Field>> + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + + @override + final MappableFields fields = const { + #type: _f$type, + #options: _f$options, + #contentSections: _f$contentSections, + }; + @override + final bool ignoreNull = true; + + static SectionDto _instantiate(DecodingData data) { + throw MapperException.missingSubclass( + 'SectionDto', 'type', '${data.value['type']}'); + } + + @override + final Function instantiate = _instantiate; + + static SectionDto fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SectionDto fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin SectionDtoMappable { + String toJson(); + Map toMap(); + SectionDtoCopyWith get copyWith; +} + +abstract class SectionDtoCopyWith<$R, $In extends SectionDto, $Out> + implements ClassCopyWith<$R, $In, $Out> { + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + $R call( + {ContentOptions? options, + List>? contentSections}); + SectionDtoCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class SectionTypeMapper extends EnumMapper { + SectionTypeMapper._(); + + static SectionTypeMapper? _instance; + static SectionTypeMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SectionTypeMapper._()); + } + return _instance!; + } + + static SectionType fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + SectionType decode(dynamic value) { + switch (value) { + case 'root': + return SectionType.root; + case 'header': + return SectionType.header; + case 'body': + return SectionType.body; + case 'footer': + return SectionType.footer; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(SectionType self) { + switch (self) { + case SectionType.root: + return 'root'; + case SectionType.header: + return 'header'; + case SectionType.body: + return 'body'; + case SectionType.footer: + return 'footer'; + } + } +} + +extension SectionTypeMapperExtension on SectionType { + String toValue() { + SectionTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class ContentSectionPartMapper extends ClassMapperBase { + ContentSectionPartMapper._(); + + static ContentSectionPartMapper? _instance; + static ContentSectionPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ContentSectionPartMapper._()); + ContentPartMapper.ensureInitialized(); + WidgetPartMapper.ensureInitialized(); + ImagePartMapper.ensureInitialized(); + SubSectionTypeMapper.ensureInitialized(); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'ContentSectionPart'; + @override + Function get typeFactory => + (f) => f>(); + + static SubSectionType _$type(ContentSectionPart v) => v.type; + static const Field _f$type = + Field('type', _$type); + static String _$content(ContentSectionPart v) => v.content; + static const Field _f$content = + Field('content', _$content); + static ContentOptions _$options(ContentSectionPart v) => v.options; + static dynamic _arg$options(f) => f(); + static const Field _f$options = + Field('options', _$options, arg: _arg$options); + + @override + final MappableFields fields = const { + #type: _f$type, + #content: _f$content, + #options: _f$options, + }; + @override + final bool ignoreNull = true; + + static ContentSectionPart _instantiate( + DecodingData data) { + throw MapperException.missingSubclass( + 'ContentSectionPart', 'type', '${data.value['type']}'); + } + + @override + final Function instantiate = _instantiate; + + static ContentSectionPart fromMap( + Map map) { + return ensureInitialized().decodeMap>(map); + } + + static ContentSectionPart fromJson(String json) { + return ensureInitialized().decodeJson>(json); + } +} + +mixin ContentSectionPartMappable { + String toJson(); + Map toMap(); + ContentSectionPartCopyWith, ContentSectionPart, + ContentSectionPart, T> get copyWith; +} + +abstract class ContentSectionPartCopyWith<$R, $In extends ContentSectionPart, + $Out, T extends ContentOptions> implements ClassCopyWith<$R, $In, $Out> { + ContentOptionsCopyWith<$R, ContentOptions, T> get options; + $R call({String? content, T? options}); + ContentSectionPartCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class SubSectionTypeMapper extends EnumMapper { + SubSectionTypeMapper._(); + + static SubSectionTypeMapper? _instance; + static SubSectionTypeMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SubSectionTypeMapper._()); + } + return _instance!; + } + + static SubSectionType fromValue(dynamic value) { + ensureInitialized(); + return MapperContainer.globals.fromValue(value); + } + + @override + SubSectionType decode(dynamic value) { + switch (value) { + case 'content': + return SubSectionType.content; + case 'image': + return SubSectionType.image; + case 'widget': + return SubSectionType.widget; + default: + throw MapperException.unknownEnumValue(value); + } + } + + @override + dynamic encode(SubSectionType self) { + switch (self) { + case SubSectionType.content: + return 'content'; + case SubSectionType.image: + return 'image'; + case SubSectionType.widget: + return 'widget'; + } + } +} + +extension SubSectionTypeMapperExtension on SubSectionType { + String toValue() { + SubSectionTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; + } +} + +class SectionDataMapper extends RecordMapperBase { + static SectionDataMapper? _instance; + SectionDataMapper._(); + + static SectionDataMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = SectionDataMapper._()); + MapperBase.addType((f) => f<({A content, B options})>()); + } + return _instance!; + } + + static String _$content(SectionData v) => v.content; + static const Field _f$content = + Field('content', _$content); + static ContentOptions? _$options(SectionData v) => v.options; + static const Field _f$options = + Field('options', _$options); + + @override + final MappableFields fields = const { + #content: _f$content, + #options: _f$options, + }; + + @override + Function get typeFactory => (f) => f(); + + @override + List apply(MappingContext context) { + return []; + } + + static SectionData _instantiate(DecodingData data) { + return (content: data.dec(_f$content), options: data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static SectionData fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static SectionData fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +extension SectionDataMappable on SectionData { + Map toMap() { + return SectionDataMapper.ensureInitialized().encodeMap(this); + } + + String toJson() { + return SectionDataMapper.ensureInitialized().encodeJson(this); + } + + SectionDataCopyWith get copyWith => + _SectionDataCopyWithImpl(this, $identity, $identity); +} + +extension SectionDataValueCopy<$R> + on ObjectCopyWith<$R, SectionData, SectionData> { + SectionDataCopyWith<$R> get $asSectionData => + $base.as((v, t, t2) => _SectionDataCopyWithImpl(v, t, t2)); +} + +abstract class SectionDataCopyWith<$R> + implements RecordCopyWith<$R, SectionData> { + $R call({String? content, ContentOptions? options}); + SectionDataCopyWith<$R2> $chain<$R2>(Then t); +} + +class _SectionDataCopyWithImpl<$R> extends RecordCopyWithBase<$R, SectionData> + implements SectionDataCopyWith<$R> { + _SectionDataCopyWithImpl(super.value, super.then, super.then2); + + @override + late final RecordMapperBase $mapper = + SectionDataMapper.ensureInitialized(); + @override + $R call({String? content, Object? options = $none}) => + $apply(FieldCopyWithData({ + if (content != null) #content: content, + if (options != $none) #options: options + })); + @override + SectionData $make(CopyWithData data) => ( + content: data.get(#content, or: $value.content), + options: data.get(#options, or: $value.options) + ); + + @override + SectionDataCopyWith<$R2> $chain<$R2>(Then t) => + _SectionDataCopyWithImpl($value, $cast, t); +} + +class ContentPartMapper extends SubClassMapperBase { + ContentPartMapper._(); + + static ContentPartMapper? _instance; + static ContentPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ContentPartMapper._()); + ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'ContentPart'; + + static String _$content(ContentPart v) => v.content; + static const Field _f$content = + Field('content', _$content); + static ContentOptions _$options(ContentPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static SubSectionType _$type(ContentPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #content: _f$content, + #options: _f$options, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'content'; + @override + late final ClassMapperBase superMapper = + ContentSectionPartMapper.ensureInitialized(); + + @override + DecodingContext inherit(DecodingContext context) { + return context.inherit(args: () => []); + } + + static ContentPart _instantiate(DecodingData data) { + return ContentPart( + content: data.dec(_f$content), options: data.dec(_f$options)); + } + + @override + final Function instantiate = _instantiate; + + static ContentPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static ContentPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin ContentPartMappable { + String toJson() { + return ContentPartMapper.ensureInitialized() + .encodeJson(this as ContentPart); + } + + Map toMap() { + return ContentPartMapper.ensureInitialized() + .encodeMap(this as ContentPart); + } + + ContentPartCopyWith get copyWith => + _ContentPartCopyWithImpl(this as ContentPart, $identity, $identity); + @override + String toString() { + return ContentPartMapper.ensureInitialized() + .stringifyValue(this as ContentPart); + } + + @override + bool operator ==(Object other) { + return ContentPartMapper.ensureInitialized() + .equalsValue(this as ContentPart, other); + } + + @override + int get hashCode { + return ContentPartMapper.ensureInitialized().hashValue(this as ContentPart); + } +} + +extension ContentPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, ContentPart, $Out> { + ContentPartCopyWith<$R, ContentPart, $Out> get $asContentPart => + $base.as((v, t, t2) => _ContentPartCopyWithImpl(v, t, t2)); +} + +abstract class ContentPartCopyWith<$R, $In extends ContentPart, $Out> + implements ContentSectionPartCopyWith<$R, $In, $Out, ContentOptions> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + $R call({String? content, ContentOptions? options}); + ContentPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _ContentPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ContentPart, $Out> + implements ContentPartCopyWith<$R, ContentPart, $Out> { + _ContentPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + ContentPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + ($value.options as ContentOptions) + .copyWith + .$chain((v) => call(options: v)); + @override + $R call({String? content, ContentOptions? options}) => + $apply(FieldCopyWithData({ + if (content != null) #content: content, + if (options != null) #options: options + })); + @override + ContentPart $make(CopyWithData data) => ContentPart( + content: data.get(#content, or: $value.content), + options: data.get(#options, or: $value.options)); + + @override + ContentPartCopyWith<$R2, ContentPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _ContentPartCopyWithImpl($value, $cast, t); +} + +class WidgetPartMapper extends SubClassMapperBase { + WidgetPartMapper._(); + + static WidgetPartMapper? _instance; + static WidgetPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = WidgetPartMapper._()); + ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + WidgetOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'WidgetPart'; + + static WidgetOptions _$options(WidgetPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static String _$content(WidgetPart v) => v.content; + static const Field _f$content = + Field('content', _$content); + static SubSectionType _$type(WidgetPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #content: _f$content, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'widget'; + @override + late final ClassMapperBase superMapper = + ContentSectionPartMapper.ensureInitialized(); + + @override + DecodingContext inherit(DecodingContext context) { + return context.inherit(args: () => []); + } + + static WidgetPart _instantiate(DecodingData data) { + return WidgetPart( + options: data.dec(_f$options), content: data.dec(_f$content)); + } + + @override + final Function instantiate = _instantiate; + + static WidgetPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static WidgetPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin WidgetPartMappable { + String toJson() { + return WidgetPartMapper.ensureInitialized() + .encodeJson(this as WidgetPart); + } + + Map toMap() { + return WidgetPartMapper.ensureInitialized() + .encodeMap(this as WidgetPart); + } + + WidgetPartCopyWith get copyWith => + _WidgetPartCopyWithImpl(this as WidgetPart, $identity, $identity); + @override + String toString() { + return WidgetPartMapper.ensureInitialized() + .stringifyValue(this as WidgetPart); + } + + @override + bool operator ==(Object other) { + return WidgetPartMapper.ensureInitialized() + .equalsValue(this as WidgetPart, other); + } + + @override + int get hashCode { + return WidgetPartMapper.ensureInitialized().hashValue(this as WidgetPart); + } +} + +extension WidgetPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, WidgetPart, $Out> { + WidgetPartCopyWith<$R, WidgetPart, $Out> get $asWidgetPart => + $base.as((v, t, t2) => _WidgetPartCopyWithImpl(v, t, t2)); +} + +abstract class WidgetPartCopyWith<$R, $In extends WidgetPart, $Out> + implements ContentSectionPartCopyWith<$R, $In, $Out, WidgetOptions> { + @override + WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options; + @override + $R call({WidgetOptions? options, String? content}); + WidgetPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _WidgetPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, WidgetPart, $Out> + implements WidgetPartCopyWith<$R, WidgetPart, $Out> { + _WidgetPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + WidgetPartMapper.ensureInitialized(); + @override + WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options => + ($value.options as WidgetOptions) + .copyWith + .$chain((v) => call(options: v)); + @override + $R call({WidgetOptions? options, String? content}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (content != null) #content: content + })); + @override + WidgetPart $make(CopyWithData data) => WidgetPart( + options: data.get(#options, or: $value.options), + content: data.get(#content, or: $value.content)); + + @override + WidgetPartCopyWith<$R2, WidgetPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _WidgetPartCopyWithImpl($value, $cast, t); +} + +class ImagePartMapper extends SubClassMapperBase { + ImagePartMapper._(); + + static ImagePartMapper? _instance; + static ImagePartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = ImagePartMapper._()); + ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + ImageOptionsMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'ImagePart'; + + static ImageOptions _$options(ImagePart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static String _$content(ImagePart v) => v.content; + static const Field _f$content = + Field('content', _$content); + static SubSectionType _$type(ImagePart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #content: _f$content, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'image'; + @override + late final ClassMapperBase superMapper = + ContentSectionPartMapper.ensureInitialized(); + + @override + DecodingContext inherit(DecodingContext context) { + return context.inherit(args: () => []); + } + + static ImagePart _instantiate(DecodingData data) { + return ImagePart( + options: data.dec(_f$options), content: data.dec(_f$content)); + } + + @override + final Function instantiate = _instantiate; + + static ImagePart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static ImagePart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin ImagePartMappable { + String toJson() { + return ImagePartMapper.ensureInitialized() + .encodeJson(this as ImagePart); + } + + Map toMap() { + return ImagePartMapper.ensureInitialized() + .encodeMap(this as ImagePart); + } + + ImagePartCopyWith get copyWith => + _ImagePartCopyWithImpl(this as ImagePart, $identity, $identity); + @override + String toString() { + return ImagePartMapper.ensureInitialized() + .stringifyValue(this as ImagePart); + } + + @override + bool operator ==(Object other) { + return ImagePartMapper.ensureInitialized() + .equalsValue(this as ImagePart, other); + } + + @override + int get hashCode { + return ImagePartMapper.ensureInitialized().hashValue(this as ImagePart); + } +} + +extension ImagePartValueCopy<$R, $Out> on ObjectCopyWith<$R, ImagePart, $Out> { + ImagePartCopyWith<$R, ImagePart, $Out> get $asImagePart => + $base.as((v, t, t2) => _ImagePartCopyWithImpl(v, t, t2)); +} + +abstract class ImagePartCopyWith<$R, $In extends ImagePart, $Out> + implements ContentSectionPartCopyWith<$R, $In, $Out, ImageOptions> { + @override + ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options; + @override + $R call({ImageOptions? options, String? content}); + ImagePartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); +} + +class _ImagePartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ImagePart, $Out> + implements ImagePartCopyWith<$R, ImagePart, $Out> { + _ImagePartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + ImagePartMapper.ensureInitialized(); + @override + ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options => + ($value.options as ImageOptions).copyWith.$chain((v) => call(options: v)); + @override + $R call({ImageOptions? options, String? content}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (content != null) #content: content + })); + @override + ImagePart $make(CopyWithData data) => ImagePart( + options: data.get(#options, or: $value.options), + content: data.get(#content, or: $value.content)); + + @override + ImagePartCopyWith<$R2, ImagePart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _ImagePartCopyWithImpl($value, $cast, t); +} + +class RootLayoutPartMapper extends SubClassMapperBase { + RootLayoutPartMapper._(); + + static RootLayoutPartMapper? _instance; + static RootLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = RootLayoutPartMapper._()); + SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'RootLayoutPart'; + + static ContentOptions _$options(RootLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static List> _$contentSections( + RootLayoutPart v) => + v.contentSections; + static const Field>> + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionType _$type(RootLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #contentSections: _f$contentSections, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'root'; + @override + late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); + + static RootLayoutPart _instantiate(DecodingData data) { + return RootLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); + } + + @override + final Function instantiate = _instantiate; + + static RootLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static RootLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin RootLayoutPartMappable { + String toJson() { + return RootLayoutPartMapper.ensureInitialized() + .encodeJson(this as RootLayoutPart); + } + + Map toMap() { + return RootLayoutPartMapper.ensureInitialized() + .encodeMap(this as RootLayoutPart); + } + + RootLayoutPartCopyWith + get copyWith => _RootLayoutPartCopyWithImpl( + this as RootLayoutPart, $identity, $identity); + @override + String toString() { + return RootLayoutPartMapper.ensureInitialized() + .stringifyValue(this as RootLayoutPart); + } + + @override + bool operator ==(Object other) { + return RootLayoutPartMapper.ensureInitialized() + .equalsValue(this as RootLayoutPart, other); + } + + @override + int get hashCode { + return RootLayoutPartMapper.ensureInitialized() + .hashValue(this as RootLayoutPart); + } +} + +extension RootLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, RootLayoutPart, $Out> { + RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> get $asRootLayoutPart => + $base.as((v, t, t2) => _RootLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class RootLayoutPartCopyWith<$R, $In extends RootLayoutPart, $Out> + implements SectionDtoCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); + RootLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _RootLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, RootLayoutPart, $Out> + implements RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> { + _RootLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + RootLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); + @override + RootLayoutPart $make(CopyWithData data) => RootLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); + + @override + RootLayoutPartCopyWith<$R2, RootLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _RootLayoutPartCopyWithImpl($value, $cast, t); +} + +class HeaderLayoutPartMapper extends SubClassMapperBase { + HeaderLayoutPartMapper._(); + + static HeaderLayoutPartMapper? _instance; + static HeaderLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = HeaderLayoutPartMapper._()); + SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'HeaderLayoutPart'; + + static ContentOptions _$options(HeaderLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static List> _$contentSections( + HeaderLayoutPart v) => + v.contentSections; + static const Field>> + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionType _$type(HeaderLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #contentSections: _f$contentSections, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'header'; + @override + late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); + + static HeaderLayoutPart _instantiate(DecodingData data) { + return HeaderLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); + } + + @override + final Function instantiate = _instantiate; + + static HeaderLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static HeaderLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin HeaderLayoutPartMappable { + String toJson() { + return HeaderLayoutPartMapper.ensureInitialized() + .encodeJson(this as HeaderLayoutPart); + } + + Map toMap() { + return HeaderLayoutPartMapper.ensureInitialized() + .encodeMap(this as HeaderLayoutPart); + } + + HeaderLayoutPartCopyWith + get copyWith => _HeaderLayoutPartCopyWithImpl( + this as HeaderLayoutPart, $identity, $identity); + @override + String toString() { + return HeaderLayoutPartMapper.ensureInitialized() + .stringifyValue(this as HeaderLayoutPart); + } + + @override + bool operator ==(Object other) { + return HeaderLayoutPartMapper.ensureInitialized() + .equalsValue(this as HeaderLayoutPart, other); + } + + @override + int get hashCode { + return HeaderLayoutPartMapper.ensureInitialized() + .hashValue(this as HeaderLayoutPart); + } +} + +extension HeaderLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, HeaderLayoutPart, $Out> { + HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> + get $asHeaderLayoutPart => + $base.as((v, t, t2) => _HeaderLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class HeaderLayoutPartCopyWith<$R, $In extends HeaderLayoutPart, $Out> + implements SectionDtoCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); + HeaderLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _HeaderLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, HeaderLayoutPart, $Out> + implements HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> { + _HeaderLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + HeaderLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); + @override + HeaderLayoutPart $make(CopyWithData data) => HeaderLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); + + @override + HeaderLayoutPartCopyWith<$R2, HeaderLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _HeaderLayoutPartCopyWithImpl($value, $cast, t); +} + +class BodyLayoutPartMapper extends SubClassMapperBase { + BodyLayoutPartMapper._(); + + static BodyLayoutPartMapper? _instance; + static BodyLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = BodyLayoutPartMapper._()); + SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'BodyLayoutPart'; + + static ContentOptions _$options(BodyLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static List> _$contentSections( + BodyLayoutPart v) => + v.contentSections; + static const Field>> + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionType _$type(BodyLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #contentSections: _f$contentSections, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'body'; + @override + late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); + + static BodyLayoutPart _instantiate(DecodingData data) { + return BodyLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); + } + + @override + final Function instantiate = _instantiate; + + static BodyLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static BodyLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin BodyLayoutPartMappable { + String toJson() { + return BodyLayoutPartMapper.ensureInitialized() + .encodeJson(this as BodyLayoutPart); + } + + Map toMap() { + return BodyLayoutPartMapper.ensureInitialized() + .encodeMap(this as BodyLayoutPart); + } + + BodyLayoutPartCopyWith + get copyWith => _BodyLayoutPartCopyWithImpl( + this as BodyLayoutPart, $identity, $identity); + @override + String toString() { + return BodyLayoutPartMapper.ensureInitialized() + .stringifyValue(this as BodyLayoutPart); + } + + @override + bool operator ==(Object other) { + return BodyLayoutPartMapper.ensureInitialized() + .equalsValue(this as BodyLayoutPart, other); + } + + @override + int get hashCode { + return BodyLayoutPartMapper.ensureInitialized() + .hashValue(this as BodyLayoutPart); + } +} + +extension BodyLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, BodyLayoutPart, $Out> { + BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> get $asBodyLayoutPart => + $base.as((v, t, t2) => _BodyLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class BodyLayoutPartCopyWith<$R, $In extends BodyLayoutPart, $Out> + implements SectionDtoCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); + BodyLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _BodyLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, BodyLayoutPart, $Out> + implements BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> { + _BodyLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + BodyLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); + @override + BodyLayoutPart $make(CopyWithData data) => BodyLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); + + @override + BodyLayoutPartCopyWith<$R2, BodyLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _BodyLayoutPartCopyWithImpl($value, $cast, t); +} + +class FooterLayoutPartMapper extends SubClassMapperBase { + FooterLayoutPartMapper._(); + + static FooterLayoutPartMapper? _instance; + static FooterLayoutPartMapper ensureInitialized() { + if (_instance == null) { + MapperContainer.globals.use(_instance = FooterLayoutPartMapper._()); + SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); + ContentOptionsMapper.ensureInitialized(); + ContentSectionPartMapper.ensureInitialized(); + } + return _instance!; + } + + @override + final String id = 'FooterLayoutPart'; + + static ContentOptions _$options(FooterLayoutPart v) => v.options; + static const Field _f$options = + Field('options', _$options); + static List> _$contentSections( + FooterLayoutPart v) => + v.contentSections; + static const Field>> + _f$contentSections = Field('contentSections', _$contentSections, + key: 'content_sections', opt: true, def: const []); + static SectionType _$type(FooterLayoutPart v) => v.type; + static const Field _f$type = + Field('type', _$type, mode: FieldMode.member); + + @override + final MappableFields fields = const { + #options: _f$options, + #contentSections: _f$contentSections, + #type: _f$type, + }; + @override + final bool ignoreNull = true; + + @override + final String discriminatorKey = 'type'; + @override + final dynamic discriminatorValue = 'footer'; + @override + late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); + + static FooterLayoutPart _instantiate(DecodingData data) { + return FooterLayoutPart( + options: data.dec(_f$options), + contentSections: data.dec(_f$contentSections)); + } + + @override + final Function instantiate = _instantiate; + + static FooterLayoutPart fromMap(Map map) { + return ensureInitialized().decodeMap(map); + } + + static FooterLayoutPart fromJson(String json) { + return ensureInitialized().decodeJson(json); + } +} + +mixin FooterLayoutPartMappable { + String toJson() { + return FooterLayoutPartMapper.ensureInitialized() + .encodeJson(this as FooterLayoutPart); + } + + Map toMap() { + return FooterLayoutPartMapper.ensureInitialized() + .encodeMap(this as FooterLayoutPart); + } + + FooterLayoutPartCopyWith + get copyWith => _FooterLayoutPartCopyWithImpl( + this as FooterLayoutPart, $identity, $identity); + @override + String toString() { + return FooterLayoutPartMapper.ensureInitialized() + .stringifyValue(this as FooterLayoutPart); + } + + @override + bool operator ==(Object other) { + return FooterLayoutPartMapper.ensureInitialized() + .equalsValue(this as FooterLayoutPart, other); + } + + @override + int get hashCode { + return FooterLayoutPartMapper.ensureInitialized() + .hashValue(this as FooterLayoutPart); + } +} + +extension FooterLayoutPartValueCopy<$R, $Out> + on ObjectCopyWith<$R, FooterLayoutPart, $Out> { + FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> + get $asFooterLayoutPart => + $base.as((v, t, t2) => _FooterLayoutPartCopyWithImpl(v, t, t2)); +} + +abstract class FooterLayoutPartCopyWith<$R, $In extends FooterLayoutPart, $Out> + implements SectionDtoCopyWith<$R, $In, $Out> { + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections; + @override + $R call( + {ContentOptions? options, + List>? contentSections}); + FooterLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); +} + +class _FooterLayoutPartCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, FooterLayoutPart, $Out> + implements FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> { + _FooterLayoutPartCopyWithImpl(super.value, super.then, super.then2); + + @override + late final ClassMapperBase $mapper = + FooterLayoutPartMapper.ensureInitialized(); + @override + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => + $value.options.copyWith.$chain((v) => call(options: v)); + @override + ListCopyWith< + $R, + ContentSectionPart, + ContentSectionPartCopyWith< + $R, + ContentSectionPart, + ContentSectionPart, + ContentOptions>> get contentSections => ListCopyWith( + $value.contentSections, + (v, t) => v.copyWith.$chain(t), + (v) => call(contentSections: v)); + @override + $R call( + {ContentOptions? options, + List>? contentSections}) => + $apply(FieldCopyWithData({ + if (options != null) #options: options, + if (contentSections != null) #contentSections: contentSections + })); + @override + FooterLayoutPart $make(CopyWithData data) => FooterLayoutPart( + options: data.get(#options, or: $value.options), + contentSections: data.get(#contentSections, or: $value.contentSections)); + + @override + FooterLayoutPartCopyWith<$R2, FooterLayoutPart, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _FooterLayoutPartCopyWithImpl($value, $cast, t); +} diff --git a/packages/superdeck_core/lib/src/models/options_model.dart b/packages/superdeck_core/lib/src/models/options_model.dart index 6f687505..c66c6bd9 100644 --- a/packages/superdeck_core/lib/src/models/options_model.dart +++ b/packages/superdeck_core/lib/src/models/options_model.dart @@ -1,12 +1,4 @@ -import 'package:dart_mappable/dart_mappable.dart'; -import 'package:superdeck_core/src/helpers/extensions.dart'; - -import '../helpers/mappers.dart'; -import '../schema/schema_model.dart'; -import '../schema/schema_values.dart'; -import '../schema/validators.dart'; - -part 'options_model.mapper.dart'; +part of 'models.dart'; @MappableClass() class ContentOptions with ContentOptionsMappable { diff --git a/packages/superdeck_core/lib/src/models/options_model.mapper.dart b/packages/superdeck_core/lib/src/models/options_model.mapper.dart deleted file mode 100644 index 2fa46b2c..00000000 --- a/packages/superdeck_core/lib/src/models/options_model.mapper.dart +++ /dev/null @@ -1,1085 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'options_model.dart'; - -class ImageFitMapper extends EnumMapper { - ImageFitMapper._(); - - static ImageFitMapper? _instance; - static ImageFitMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ImageFitMapper._()); - } - return _instance!; - } - - static ImageFit fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - ImageFit decode(dynamic value) { - switch (value) { - case 'fill': - return ImageFit.fill; - case 'contain': - return ImageFit.contain; - case 'cover': - return ImageFit.cover; - case 'fit_width': - return ImageFit.fitWidth; - case 'fit_height': - return ImageFit.fitHeight; - case 'none': - return ImageFit.none; - case 'scale_down': - return ImageFit.scaleDown; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(ImageFit self) { - switch (self) { - case ImageFit.fill: - return 'fill'; - case ImageFit.contain: - return 'contain'; - case ImageFit.cover: - return 'cover'; - case ImageFit.fitWidth: - return 'fit_width'; - case ImageFit.fitHeight: - return 'fit_height'; - case ImageFit.none: - return 'none'; - case ImageFit.scaleDown: - return 'scale_down'; - } - } -} - -extension ImageFitMapperExtension on ImageFit { - String toValue() { - ImageFitMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class TransitionTypeMapper extends EnumMapper { - TransitionTypeMapper._(); - - static TransitionTypeMapper? _instance; - static TransitionTypeMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = TransitionTypeMapper._()); - } - return _instance!; - } - - static TransitionType fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - TransitionType decode(dynamic value) { - switch (value) { - case 'fade_in': - return TransitionType.fadeIn; - case 'fade_in_down': - return TransitionType.fadeInDown; - case 'fade_in_down_big': - return TransitionType.fadeInDownBig; - case 'fade_in_up': - return TransitionType.fadeInUp; - case 'fade_in_up_big': - return TransitionType.fadeInUpBig; - case 'fade_in_left': - return TransitionType.fadeInLeft; - case 'fade_in_left_big': - return TransitionType.fadeInLeftBig; - case 'fade_in_right': - return TransitionType.fadeInRight; - case 'fade_in_right_big': - return TransitionType.fadeInRightBig; - case 'fade_out': - return TransitionType.fadeOut; - case 'fade_out_down': - return TransitionType.fadeOutDown; - case 'fade_out_down_big': - return TransitionType.fadeOutDownBig; - case 'fade_out_up': - return TransitionType.fadeOutUp; - case 'fade_out_up_big': - return TransitionType.fadeOutUpBig; - case 'fade_out_left': - return TransitionType.fadeOutLeft; - case 'fade_out_left_big': - return TransitionType.fadeOutLeftBig; - case 'fade_out_right': - return TransitionType.fadeOutRight; - case 'fade_out_right_big': - return TransitionType.fadeOutRightBig; - case 'bounce_in_down': - return TransitionType.bounceInDown; - case 'bounce_in_up': - return TransitionType.bounceInUp; - case 'bounce_in_left': - return TransitionType.bounceInLeft; - case 'bounce_in_right': - return TransitionType.bounceInRight; - case 'elastic_in': - return TransitionType.elasticIn; - case 'elastic_in_down': - return TransitionType.elasticInDown; - case 'elastic_in_up': - return TransitionType.elasticInUp; - case 'elastic_in_left': - return TransitionType.elasticInLeft; - case 'elastic_in_right': - return TransitionType.elasticInRight; - case 'slide_in_down': - return TransitionType.slideInDown; - case 'slide_in_up': - return TransitionType.slideInUp; - case 'slide_in_left': - return TransitionType.slideInLeft; - case 'slide_in_right': - return TransitionType.slideInRight; - case 'flip_in_x': - return TransitionType.flipInX; - case 'flip_in_y': - return TransitionType.flipInY; - case 'zoom_in': - return TransitionType.zoomIn; - case 'zoom_out': - return TransitionType.zoomOut; - case 'jello_in': - return TransitionType.jelloIn; - case 'bounce': - return TransitionType.bounce; - case 'dance': - return TransitionType.dance; - case 'flash': - return TransitionType.flash; - case 'pulse': - return TransitionType.pulse; - case 'roulette': - return TransitionType.roulette; - case 'shake_x': - return TransitionType.shakeX; - case 'shake_y': - return TransitionType.shakeY; - case 'spin': - return TransitionType.spin; - case 'spin_perfect': - return TransitionType.spinPerfect; - case 'swing': - return TransitionType.swing; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(TransitionType self) { - switch (self) { - case TransitionType.fadeIn: - return 'fade_in'; - case TransitionType.fadeInDown: - return 'fade_in_down'; - case TransitionType.fadeInDownBig: - return 'fade_in_down_big'; - case TransitionType.fadeInUp: - return 'fade_in_up'; - case TransitionType.fadeInUpBig: - return 'fade_in_up_big'; - case TransitionType.fadeInLeft: - return 'fade_in_left'; - case TransitionType.fadeInLeftBig: - return 'fade_in_left_big'; - case TransitionType.fadeInRight: - return 'fade_in_right'; - case TransitionType.fadeInRightBig: - return 'fade_in_right_big'; - case TransitionType.fadeOut: - return 'fade_out'; - case TransitionType.fadeOutDown: - return 'fade_out_down'; - case TransitionType.fadeOutDownBig: - return 'fade_out_down_big'; - case TransitionType.fadeOutUp: - return 'fade_out_up'; - case TransitionType.fadeOutUpBig: - return 'fade_out_up_big'; - case TransitionType.fadeOutLeft: - return 'fade_out_left'; - case TransitionType.fadeOutLeftBig: - return 'fade_out_left_big'; - case TransitionType.fadeOutRight: - return 'fade_out_right'; - case TransitionType.fadeOutRightBig: - return 'fade_out_right_big'; - case TransitionType.bounceInDown: - return 'bounce_in_down'; - case TransitionType.bounceInUp: - return 'bounce_in_up'; - case TransitionType.bounceInLeft: - return 'bounce_in_left'; - case TransitionType.bounceInRight: - return 'bounce_in_right'; - case TransitionType.elasticIn: - return 'elastic_in'; - case TransitionType.elasticInDown: - return 'elastic_in_down'; - case TransitionType.elasticInUp: - return 'elastic_in_up'; - case TransitionType.elasticInLeft: - return 'elastic_in_left'; - case TransitionType.elasticInRight: - return 'elastic_in_right'; - case TransitionType.slideInDown: - return 'slide_in_down'; - case TransitionType.slideInUp: - return 'slide_in_up'; - case TransitionType.slideInLeft: - return 'slide_in_left'; - case TransitionType.slideInRight: - return 'slide_in_right'; - case TransitionType.flipInX: - return 'flip_in_x'; - case TransitionType.flipInY: - return 'flip_in_y'; - case TransitionType.zoomIn: - return 'zoom_in'; - case TransitionType.zoomOut: - return 'zoom_out'; - case TransitionType.jelloIn: - return 'jello_in'; - case TransitionType.bounce: - return 'bounce'; - case TransitionType.dance: - return 'dance'; - case TransitionType.flash: - return 'flash'; - case TransitionType.pulse: - return 'pulse'; - case TransitionType.roulette: - return 'roulette'; - case TransitionType.shakeX: - return 'shake_x'; - case TransitionType.shakeY: - return 'shake_y'; - case TransitionType.spin: - return 'spin'; - case TransitionType.spinPerfect: - return 'spin_perfect'; - case TransitionType.swing: - return 'swing'; - } - } -} - -extension TransitionTypeMapperExtension on TransitionType { - String toValue() { - TransitionTypeMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class CurveTypeMapper extends EnumMapper { - CurveTypeMapper._(); - - static CurveTypeMapper? _instance; - static CurveTypeMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = CurveTypeMapper._()); - } - return _instance!; - } - - static CurveType fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - CurveType decode(dynamic value) { - switch (value) { - case 'ease': - return CurveType.ease; - case 'bounce_in': - return CurveType.bounceIn; - case 'bounce_out': - return CurveType.bounceOut; - case 'ease_in': - return CurveType.easeIn; - case 'ease_in_out': - return CurveType.easeInOut; - case 'ease_out': - return CurveType.easeOut; - case 'elastic_in': - return CurveType.elasticIn; - case 'elastic_in_out': - return CurveType.elasticInOut; - case 'elastic_out': - return CurveType.elasticOut; - case 'fast_linear_to_slow_ease_in': - return CurveType.fastLinearToSlowEaseIn; - case 'fast_out_slow_in': - return CurveType.fastOutSlowIn; - case 'linear': - return CurveType.linear; - case 'decelerate': - return CurveType.decelerate; - case 'slow_middle': - return CurveType.slowMiddle; - case 'linear_to_ease_out': - return CurveType.linearToEaseOut; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(CurveType self) { - switch (self) { - case CurveType.ease: - return 'ease'; - case CurveType.bounceIn: - return 'bounce_in'; - case CurveType.bounceOut: - return 'bounce_out'; - case CurveType.easeIn: - return 'ease_in'; - case CurveType.easeInOut: - return 'ease_in_out'; - case CurveType.easeOut: - return 'ease_out'; - case CurveType.elasticIn: - return 'elastic_in'; - case CurveType.elasticInOut: - return 'elastic_in_out'; - case CurveType.elasticOut: - return 'elastic_out'; - case CurveType.fastLinearToSlowEaseIn: - return 'fast_linear_to_slow_ease_in'; - case CurveType.fastOutSlowIn: - return 'fast_out_slow_in'; - case CurveType.linear: - return 'linear'; - case CurveType.decelerate: - return 'decelerate'; - case CurveType.slowMiddle: - return 'slow_middle'; - case CurveType.linearToEaseOut: - return 'linear_to_ease_out'; - } - } -} - -extension CurveTypeMapperExtension on CurveType { - String toValue() { - CurveTypeMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class LayoutPositionMapper extends EnumMapper { - LayoutPositionMapper._(); - - static LayoutPositionMapper? _instance; - static LayoutPositionMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = LayoutPositionMapper._()); - } - return _instance!; - } - - static LayoutPosition fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - LayoutPosition decode(dynamic value) { - switch (value) { - case 'left': - return LayoutPosition.left; - case 'right': - return LayoutPosition.right; - case 'top': - return LayoutPosition.top; - case 'bottom': - return LayoutPosition.bottom; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(LayoutPosition self) { - switch (self) { - case LayoutPosition.left: - return 'left'; - case LayoutPosition.right: - return 'right'; - case LayoutPosition.top: - return 'top'; - case LayoutPosition.bottom: - return 'bottom'; - } - } -} - -extension LayoutPositionMapperExtension on LayoutPosition { - String toValue() { - LayoutPositionMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class ContentAlignmentMapper extends EnumMapper { - ContentAlignmentMapper._(); - - static ContentAlignmentMapper? _instance; - static ContentAlignmentMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ContentAlignmentMapper._()); - } - return _instance!; - } - - static ContentAlignment fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - ContentAlignment decode(dynamic value) { - switch (value) { - case 'top_left': - return ContentAlignment.topLeft; - case 'top_center': - return ContentAlignment.topCenter; - case 'top_right': - return ContentAlignment.topRight; - case 'center_left': - return ContentAlignment.centerLeft; - case 'center': - return ContentAlignment.center; - case 'center_right': - return ContentAlignment.centerRight; - case 'bottom_left': - return ContentAlignment.bottomLeft; - case 'bottom_center': - return ContentAlignment.bottomCenter; - case 'bottom_right': - return ContentAlignment.bottomRight; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(ContentAlignment self) { - switch (self) { - case ContentAlignment.topLeft: - return 'top_left'; - case ContentAlignment.topCenter: - return 'top_center'; - case ContentAlignment.topRight: - return 'top_right'; - case ContentAlignment.centerLeft: - return 'center_left'; - case ContentAlignment.center: - return 'center'; - case ContentAlignment.centerRight: - return 'center_right'; - case ContentAlignment.bottomLeft: - return 'bottom_left'; - case ContentAlignment.bottomCenter: - return 'bottom_center'; - case ContentAlignment.bottomRight: - return 'bottom_right'; - } - } -} - -extension ContentAlignmentMapperExtension on ContentAlignment { - String toValue() { - ContentAlignmentMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class ContentOptionsMapper extends ClassMapperBase { - ContentOptionsMapper._(); - - static ContentOptionsMapper? _instance; - static ContentOptionsMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ContentOptionsMapper._()); - ImageOptionsMapper.ensureInitialized(); - WidgetOptionsMapper.ensureInitialized(); - ContentAlignmentMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'ContentOptions'; - - static int? _$flex(ContentOptions v) => v.flex; - static const Field _f$flex = - Field('flex', _$flex, opt: true); - static ContentAlignment? _$align(ContentOptions v) => v.align; - static const Field _f$align = - Field('align', _$align, opt: true); - - @override - final MappableFields fields = const { - #flex: _f$flex, - #align: _f$align, - }; - @override - final bool ignoreNull = true; - - static ContentOptions _instantiate(DecodingData data) { - return ContentOptions(flex: data.dec(_f$flex), align: data.dec(_f$align)); - } - - @override - final Function instantiate = _instantiate; - - static ContentOptions fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static ContentOptions fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin ContentOptionsMappable { - String toJson() { - return ContentOptionsMapper.ensureInitialized() - .encodeJson(this as ContentOptions); - } - - Map toMap() { - return ContentOptionsMapper.ensureInitialized() - .encodeMap(this as ContentOptions); - } - - ContentOptionsCopyWith - get copyWith => _ContentOptionsCopyWithImpl( - this as ContentOptions, $identity, $identity); - @override - String toString() { - return ContentOptionsMapper.ensureInitialized() - .stringifyValue(this as ContentOptions); - } - - @override - bool operator ==(Object other) { - return ContentOptionsMapper.ensureInitialized() - .equalsValue(this as ContentOptions, other); - } - - @override - int get hashCode { - return ContentOptionsMapper.ensureInitialized() - .hashValue(this as ContentOptions); - } -} - -extension ContentOptionsValueCopy<$R, $Out> - on ObjectCopyWith<$R, ContentOptions, $Out> { - ContentOptionsCopyWith<$R, ContentOptions, $Out> get $asContentOptions => - $base.as((v, t, t2) => _ContentOptionsCopyWithImpl(v, t, t2)); -} - -abstract class ContentOptionsCopyWith<$R, $In extends ContentOptions, $Out> - implements ClassCopyWith<$R, $In, $Out> { - $R call({int? flex, ContentAlignment? align}); - ContentOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _ContentOptionsCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, ContentOptions, $Out> - implements ContentOptionsCopyWith<$R, ContentOptions, $Out> { - _ContentOptionsCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - ContentOptionsMapper.ensureInitialized(); - @override - $R call({Object? flex = $none, Object? align = $none}) => - $apply(FieldCopyWithData( - {if (flex != $none) #flex: flex, if (align != $none) #align: align})); - @override - ContentOptions $make(CopyWithData data) => ContentOptions( - flex: data.get(#flex, or: $value.flex), - align: data.get(#align, or: $value.align)); - - @override - ContentOptionsCopyWith<$R2, ContentOptions, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _ContentOptionsCopyWithImpl($value, $cast, t); -} - -class ImageOptionsMapper extends SubClassMapperBase { - ImageOptionsMapper._(); - - static ImageOptionsMapper? _instance; - static ImageOptionsMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ImageOptionsMapper._()); - ContentOptionsMapper.ensureInitialized().addSubMapper(_instance!); - ImageFitMapper.ensureInitialized(); - ContentAlignmentMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'ImageOptions'; - - static String _$src(ImageOptions v) => v.src; - static const Field _f$src = Field('src', _$src); - static ImageFit? _$fit(ImageOptions v) => v.fit; - static const Field _f$fit = - Field('fit', _$fit, opt: true); - static int? _$flex(ImageOptions v) => v.flex; - static const Field _f$flex = - Field('flex', _$flex, opt: true); - static ContentAlignment? _$align(ImageOptions v) => v.align; - static const Field _f$align = - Field('align', _$align, opt: true); - - @override - final MappableFields fields = const { - #src: _f$src, - #fit: _f$fit, - #flex: _f$flex, - #align: _f$align, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'ImageOptions'; - @override - late final ClassMapperBase superMapper = - ContentOptionsMapper.ensureInitialized(); - - static ImageOptions _instantiate(DecodingData data) { - return ImageOptions( - src: data.dec(_f$src), - fit: data.dec(_f$fit), - flex: data.dec(_f$flex), - align: data.dec(_f$align)); - } - - @override - final Function instantiate = _instantiate; - - static ImageOptions fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static ImageOptions fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin ImageOptionsMappable { - String toJson() { - return ImageOptionsMapper.ensureInitialized() - .encodeJson(this as ImageOptions); - } - - Map toMap() { - return ImageOptionsMapper.ensureInitialized() - .encodeMap(this as ImageOptions); - } - - ImageOptionsCopyWith get copyWith => - _ImageOptionsCopyWithImpl(this as ImageOptions, $identity, $identity); - @override - String toString() { - return ImageOptionsMapper.ensureInitialized() - .stringifyValue(this as ImageOptions); - } - - @override - bool operator ==(Object other) { - return ImageOptionsMapper.ensureInitialized() - .equalsValue(this as ImageOptions, other); - } - - @override - int get hashCode { - return ImageOptionsMapper.ensureInitialized() - .hashValue(this as ImageOptions); - } -} - -extension ImageOptionsValueCopy<$R, $Out> - on ObjectCopyWith<$R, ImageOptions, $Out> { - ImageOptionsCopyWith<$R, ImageOptions, $Out> get $asImageOptions => - $base.as((v, t, t2) => _ImageOptionsCopyWithImpl(v, t, t2)); -} - -abstract class ImageOptionsCopyWith<$R, $In extends ImageOptions, $Out> - implements ContentOptionsCopyWith<$R, $In, $Out> { - @override - $R call({String? src, ImageFit? fit, int? flex, ContentAlignment? align}); - ImageOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _ImageOptionsCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, ImageOptions, $Out> - implements ImageOptionsCopyWith<$R, ImageOptions, $Out> { - _ImageOptionsCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - ImageOptionsMapper.ensureInitialized(); - @override - $R call( - {String? src, - Object? fit = $none, - Object? flex = $none, - Object? align = $none}) => - $apply(FieldCopyWithData({ - if (src != null) #src: src, - if (fit != $none) #fit: fit, - if (flex != $none) #flex: flex, - if (align != $none) #align: align - })); - @override - ImageOptions $make(CopyWithData data) => ImageOptions( - src: data.get(#src, or: $value.src), - fit: data.get(#fit, or: $value.fit), - flex: data.get(#flex, or: $value.flex), - align: data.get(#align, or: $value.align)); - - @override - ImageOptionsCopyWith<$R2, ImageOptions, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _ImageOptionsCopyWithImpl($value, $cast, t); -} - -class WidgetOptionsMapper extends SubClassMapperBase { - WidgetOptionsMapper._(); - - static WidgetOptionsMapper? _instance; - static WidgetOptionsMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = WidgetOptionsMapper._()); - ContentOptionsMapper.ensureInitialized().addSubMapper(_instance!); - ContentAlignmentMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'WidgetOptions'; - - static String _$name(WidgetOptions v) => v.name; - static const Field _f$name = Field('name', _$name); - static Map _$args(WidgetOptions v) => v.args; - static const Field> _f$args = - Field('args', _$args, opt: true, def: const {}); - static int? _$flex(WidgetOptions v) => v.flex; - static const Field _f$flex = - Field('flex', _$flex, opt: true); - static ContentAlignment? _$align(WidgetOptions v) => v.align; - static const Field _f$align = - Field('align', _$align, opt: true); - - @override - final MappableFields fields = const { - #name: _f$name, - #args: _f$args, - #flex: _f$flex, - #align: _f$align, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'WidgetOptions'; - @override - late final ClassMapperBase superMapper = - ContentOptionsMapper.ensureInitialized(); - - @override - final MappingHook hook = const UnmappedPropertiesHook('args'); - static WidgetOptions _instantiate(DecodingData data) { - return WidgetOptions( - name: data.dec(_f$name), - args: data.dec(_f$args), - flex: data.dec(_f$flex), - align: data.dec(_f$align)); - } - - @override - final Function instantiate = _instantiate; - - static WidgetOptions fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static WidgetOptions fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin WidgetOptionsMappable { - String toJson() { - return WidgetOptionsMapper.ensureInitialized() - .encodeJson(this as WidgetOptions); - } - - Map toMap() { - return WidgetOptionsMapper.ensureInitialized() - .encodeMap(this as WidgetOptions); - } - - WidgetOptionsCopyWith - get copyWith => _WidgetOptionsCopyWithImpl( - this as WidgetOptions, $identity, $identity); - @override - String toString() { - return WidgetOptionsMapper.ensureInitialized() - .stringifyValue(this as WidgetOptions); - } - - @override - bool operator ==(Object other) { - return WidgetOptionsMapper.ensureInitialized() - .equalsValue(this as WidgetOptions, other); - } - - @override - int get hashCode { - return WidgetOptionsMapper.ensureInitialized() - .hashValue(this as WidgetOptions); - } -} - -extension WidgetOptionsValueCopy<$R, $Out> - on ObjectCopyWith<$R, WidgetOptions, $Out> { - WidgetOptionsCopyWith<$R, WidgetOptions, $Out> get $asWidgetOptions => - $base.as((v, t, t2) => _WidgetOptionsCopyWithImpl(v, t, t2)); -} - -abstract class WidgetOptionsCopyWith<$R, $In extends WidgetOptions, $Out> - implements ContentOptionsCopyWith<$R, $In, $Out> { - MapCopyWith<$R, String, dynamic, ObjectCopyWith<$R, dynamic, dynamic>> - get args; - @override - $R call( - {String? name, - Map? args, - int? flex, - ContentAlignment? align}); - WidgetOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _WidgetOptionsCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, WidgetOptions, $Out> - implements WidgetOptionsCopyWith<$R, WidgetOptions, $Out> { - _WidgetOptionsCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - WidgetOptionsMapper.ensureInitialized(); - @override - MapCopyWith<$R, String, dynamic, ObjectCopyWith<$R, dynamic, dynamic>> - get args => MapCopyWith($value.args, - (v, t) => ObjectCopyWith(v, $identity, t), (v) => call(args: v)); - @override - $R call( - {String? name, - Map? args, - Object? flex = $none, - Object? align = $none}) => - $apply(FieldCopyWithData({ - if (name != null) #name: name, - if (args != null) #args: args, - if (flex != $none) #flex: flex, - if (align != $none) #align: align - })); - @override - WidgetOptions $make(CopyWithData data) => WidgetOptions( - name: data.get(#name, or: $value.name), - args: data.get(#args, or: $value.args), - flex: data.get(#flex, or: $value.flex), - align: data.get(#align, or: $value.align)); - - @override - WidgetOptionsCopyWith<$R2, WidgetOptions, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _WidgetOptionsCopyWithImpl($value, $cast, t); -} - -class TransitionOptionsMapper extends ClassMapperBase { - TransitionOptionsMapper._(); - - static TransitionOptionsMapper? _instance; - static TransitionOptionsMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = TransitionOptionsMapper._()); - MapperContainer.globals.useAll([DurationMapper()]); - TransitionTypeMapper.ensureInitialized(); - CurveTypeMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'TransitionOptions'; - - static TransitionType _$type(TransitionOptions v) => v.type; - static const Field _f$type = - Field('type', _$type); - static Duration? _$duration(TransitionOptions v) => v.duration; - static const Field _f$duration = - Field('duration', _$duration, opt: true); - static Duration? _$delay(TransitionOptions v) => v.delay; - static const Field _f$delay = - Field('delay', _$delay, opt: true); - static CurveType? _$curve(TransitionOptions v) => v.curve; - static const Field _f$curve = - Field('curve', _$curve, opt: true); - - @override - final MappableFields fields = const { - #type: _f$type, - #duration: _f$duration, - #delay: _f$delay, - #curve: _f$curve, - }; - @override - final bool ignoreNull = true; - - static TransitionOptions _instantiate(DecodingData data) { - return TransitionOptions( - type: data.dec(_f$type), - duration: data.dec(_f$duration), - delay: data.dec(_f$delay), - curve: data.dec(_f$curve)); - } - - @override - final Function instantiate = _instantiate; - - static TransitionOptions fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static TransitionOptions fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin TransitionOptionsMappable { - String toJson() { - return TransitionOptionsMapper.ensureInitialized() - .encodeJson(this as TransitionOptions); - } - - Map toMap() { - return TransitionOptionsMapper.ensureInitialized() - .encodeMap(this as TransitionOptions); - } - - TransitionOptionsCopyWith - get copyWith => _TransitionOptionsCopyWithImpl( - this as TransitionOptions, $identity, $identity); - @override - String toString() { - return TransitionOptionsMapper.ensureInitialized() - .stringifyValue(this as TransitionOptions); - } - - @override - bool operator ==(Object other) { - return TransitionOptionsMapper.ensureInitialized() - .equalsValue(this as TransitionOptions, other); - } - - @override - int get hashCode { - return TransitionOptionsMapper.ensureInitialized() - .hashValue(this as TransitionOptions); - } -} - -extension TransitionOptionsValueCopy<$R, $Out> - on ObjectCopyWith<$R, TransitionOptions, $Out> { - TransitionOptionsCopyWith<$R, TransitionOptions, $Out> - get $asTransitionOptions => - $base.as((v, t, t2) => _TransitionOptionsCopyWithImpl(v, t, t2)); -} - -abstract class TransitionOptionsCopyWith<$R, $In extends TransitionOptions, - $Out> implements ClassCopyWith<$R, $In, $Out> { - $R call( - {TransitionType? type, - Duration? duration, - Duration? delay, - CurveType? curve}); - TransitionOptionsCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _TransitionOptionsCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, TransitionOptions, $Out> - implements TransitionOptionsCopyWith<$R, TransitionOptions, $Out> { - _TransitionOptionsCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - TransitionOptionsMapper.ensureInitialized(); - @override - $R call( - {TransitionType? type, - Object? duration = $none, - Object? delay = $none, - Object? curve = $none}) => - $apply(FieldCopyWithData({ - if (type != null) #type: type, - if (duration != $none) #duration: duration, - if (delay != $none) #delay: delay, - if (curve != $none) #curve: curve - })); - @override - TransitionOptions $make(CopyWithData data) => TransitionOptions( - type: data.get(#type, or: $value.type), - duration: data.get(#duration, or: $value.duration), - delay: data.get(#delay, or: $value.delay), - curve: data.get(#curve, or: $value.curve)); - - @override - TransitionOptionsCopyWith<$R2, TransitionOptions, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _TransitionOptionsCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck_core/lib/src/models/reference_model.dart b/packages/superdeck_core/lib/src/models/reference_model.dart index 82cce744..8d317f76 100644 --- a/packages/superdeck_core/lib/src/models/reference_model.dart +++ b/packages/superdeck_core/lib/src/models/reference_model.dart @@ -1,12 +1,4 @@ -import 'dart:io'; - -import 'package:dart_mappable/dart_mappable.dart'; - -import 'asset_model.dart'; -import 'config_model.dart'; -import 'slide_model.dart'; - -part 'reference_model.mapper.dart'; +part of 'models.dart'; @MappableClass() class SuperDeckReference with SuperDeckReferenceMappable { diff --git a/packages/superdeck_core/lib/src/models/reference_model.mapper.dart b/packages/superdeck_core/lib/src/models/reference_model.mapper.dart deleted file mode 100644 index 4983e382..00000000 --- a/packages/superdeck_core/lib/src/models/reference_model.mapper.dart +++ /dev/null @@ -1,152 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'reference_model.dart'; - -class SuperDeckReferenceMapper extends ClassMapperBase { - SuperDeckReferenceMapper._(); - - static SuperDeckReferenceMapper? _instance; - static SuperDeckReferenceMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SuperDeckReferenceMapper._()); - ConfigMapper.ensureInitialized(); - SlideMapper.ensureInitialized(); - SlideAssetMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SuperDeckReference'; - - static Config _$config(SuperDeckReference v) => v.config; - static const Field _f$config = - Field('config', _$config); - static List _$slides(SuperDeckReference v) => v.slides; - static const Field> _f$slides = - Field('slides', _$slides); - static List _$assets(SuperDeckReference v) => v.assets; - static const Field> _f$assets = - Field('assets', _$assets); - - @override - final MappableFields fields = const { - #config: _f$config, - #slides: _f$slides, - #assets: _f$assets, - }; - @override - final bool ignoreNull = true; - - static SuperDeckReference _instantiate(DecodingData data) { - return SuperDeckReference( - config: data.dec(_f$config), - slides: data.dec(_f$slides), - assets: data.dec(_f$assets)); - } - - @override - final Function instantiate = _instantiate; - - static SuperDeckReference fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SuperDeckReference fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SuperDeckReferenceMappable { - String toJson() { - return SuperDeckReferenceMapper.ensureInitialized() - .encodeJson(this as SuperDeckReference); - } - - Map toMap() { - return SuperDeckReferenceMapper.ensureInitialized() - .encodeMap(this as SuperDeckReference); - } - - SuperDeckReferenceCopyWith - get copyWith => _SuperDeckReferenceCopyWithImpl( - this as SuperDeckReference, $identity, $identity); - @override - String toString() { - return SuperDeckReferenceMapper.ensureInitialized() - .stringifyValue(this as SuperDeckReference); - } - - @override - bool operator ==(Object other) { - return SuperDeckReferenceMapper.ensureInitialized() - .equalsValue(this as SuperDeckReference, other); - } - - @override - int get hashCode { - return SuperDeckReferenceMapper.ensureInitialized() - .hashValue(this as SuperDeckReference); - } -} - -extension SuperDeckReferenceValueCopy<$R, $Out> - on ObjectCopyWith<$R, SuperDeckReference, $Out> { - SuperDeckReferenceCopyWith<$R, SuperDeckReference, $Out> - get $asSuperDeckReference => - $base.as((v, t, t2) => _SuperDeckReferenceCopyWithImpl(v, t, t2)); -} - -abstract class SuperDeckReferenceCopyWith<$R, $In extends SuperDeckReference, - $Out> implements ClassCopyWith<$R, $In, $Out> { - ConfigCopyWith<$R, Config, Config> get config; - ListCopyWith<$R, Slide, SlideCopyWith<$R, Slide, Slide>> get slides; - ListCopyWith<$R, SlideAsset, SlideAssetCopyWith<$R, SlideAsset, SlideAsset>> - get assets; - $R call({Config? config, List? slides, List? assets}); - SuperDeckReferenceCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _SuperDeckReferenceCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SuperDeckReference, $Out> - implements SuperDeckReferenceCopyWith<$R, SuperDeckReference, $Out> { - _SuperDeckReferenceCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SuperDeckReferenceMapper.ensureInitialized(); - @override - ConfigCopyWith<$R, Config, Config> get config => - $value.config.copyWith.$chain((v) => call(config: v)); - @override - ListCopyWith<$R, Slide, SlideCopyWith<$R, Slide, Slide>> get slides => - ListCopyWith($value.slides, (v, t) => v.copyWith.$chain(t), - (v) => call(slides: v)); - @override - ListCopyWith<$R, SlideAsset, SlideAssetCopyWith<$R, SlideAsset, SlideAsset>> - get assets => ListCopyWith($value.assets, (v, t) => v.copyWith.$chain(t), - (v) => call(assets: v)); - @override - $R call({Config? config, List? slides, List? assets}) => - $apply(FieldCopyWithData({ - if (config != null) #config: config, - if (slides != null) #slides: slides, - if (assets != null) #assets: assets - })); - @override - SuperDeckReference $make(CopyWithData data) => SuperDeckReference( - config: data.get(#config, or: $value.config), - slides: data.get(#slides, or: $value.slides), - assets: data.get(#assets, or: $value.assets)); - - @override - SuperDeckReferenceCopyWith<$R2, SuperDeckReference, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _SuperDeckReferenceCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck_core/lib/src/models/slide_model.dart b/packages/superdeck_core/lib/src/models/slide_model.dart index c03b60b3..77d2c980 100644 --- a/packages/superdeck_core/lib/src/models/slide_model.dart +++ b/packages/superdeck_core/lib/src/models/slide_model.dart @@ -1,14 +1,11 @@ -import 'package:dart_mappable/dart_mappable.dart'; -import 'package:superdeck_core/superdeck_core.dart'; - -part 'slide_model.mapper.dart'; +part of 'models.dart'; @MappableClass() class Slide with SlideMappable { final int index; final String content; final String key; - final List sections; + final List sections; final SlideOptions? options; Slide({ diff --git a/packages/superdeck_core/lib/src/models/slide_model.mapper.dart b/packages/superdeck_core/lib/src/models/slide_model.mapper.dart deleted file mode 100644 index 693e0de8..00000000 --- a/packages/superdeck_core/lib/src/models/slide_model.mapper.dart +++ /dev/null @@ -1,252 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'slide_model.dart'; - -class SlideMapper extends ClassMapperBase { - SlideMapper._(); - - static SlideMapper? _instance; - static SlideMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SlideMapper._()); - SlideOptionsMapper.ensureInitialized(); - SectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'Slide'; - - static int _$index(Slide v) => v.index; - static const Field _f$index = Field('index', _$index); - static String _$content(Slide v) => v.content; - static const Field _f$content = Field('content', _$content); - static String _$key(Slide v) => v.key; - static const Field _f$key = Field('key', _$key); - static SlideOptions? _$options(Slide v) => v.options; - static const Field _f$options = - Field('options', _$options, opt: true); - static List _$sections(Slide v) => v.sections; - static const Field> _f$sections = - Field('sections', _$sections, opt: true, def: const []); - - @override - final MappableFields fields = const { - #index: _f$index, - #content: _f$content, - #key: _f$key, - #options: _f$options, - #sections: _f$sections, - }; - @override - final bool ignoreNull = true; - - static Slide _instantiate(DecodingData data) { - return Slide( - index: data.dec(_f$index), - content: data.dec(_f$content), - key: data.dec(_f$key), - options: data.dec(_f$options), - sections: data.dec(_f$sections)); - } - - @override - final Function instantiate = _instantiate; - - static Slide fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static Slide fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SlideMappable { - String toJson() { - return SlideMapper.ensureInitialized().encodeJson(this as Slide); - } - - Map toMap() { - return SlideMapper.ensureInitialized().encodeMap(this as Slide); - } - - SlideCopyWith get copyWith => - _SlideCopyWithImpl(this as Slide, $identity, $identity); - @override - String toString() { - return SlideMapper.ensureInitialized().stringifyValue(this as Slide); - } - - @override - bool operator ==(Object other) { - return SlideMapper.ensureInitialized().equalsValue(this as Slide, other); - } - - @override - int get hashCode { - return SlideMapper.ensureInitialized().hashValue(this as Slide); - } -} - -extension SlideValueCopy<$R, $Out> on ObjectCopyWith<$R, Slide, $Out> { - SlideCopyWith<$R, Slide, $Out> get $asSlide => - $base.as((v, t, t2) => _SlideCopyWithImpl(v, t, t2)); -} - -abstract class SlideCopyWith<$R, $In extends Slide, $Out> - implements ClassCopyWith<$R, $In, $Out> { - SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options; - ListCopyWith<$R, SectionPart, ObjectCopyWith<$R, SectionPart, SectionPart>> - get sections; - $R call( - {int? index, - String? content, - String? key, - SlideOptions? options, - List? sections}); - SlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _SlideCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Slide, $Out> - implements SlideCopyWith<$R, Slide, $Out> { - _SlideCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = SlideMapper.ensureInitialized(); - @override - SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options => - $value.options?.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith<$R, SectionPart, ObjectCopyWith<$R, SectionPart, SectionPart>> - get sections => ListCopyWith($value.sections, - (v, t) => ObjectCopyWith(v, $identity, t), (v) => call(sections: v)); - @override - $R call( - {int? index, - String? content, - String? key, - Object? options = $none, - List? sections}) => - $apply(FieldCopyWithData({ - if (index != null) #index: index, - if (content != null) #content: content, - if (key != null) #key: key, - if (options != $none) #options: options, - if (sections != null) #sections: sections - })); - @override - Slide $make(CopyWithData data) => Slide( - index: data.get(#index, or: $value.index), - content: data.get(#content, or: $value.content), - key: data.get(#key, or: $value.key), - options: data.get(#options, or: $value.options), - sections: data.get(#sections, or: $value.sections)); - - @override - SlideCopyWith<$R2, Slide, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t) => - _SlideCopyWithImpl($value, $cast, t); -} - -class SectionDataMapper extends RecordMapperBase { - static SectionDataMapper? _instance; - SectionDataMapper._(); - - static SectionDataMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SectionDataMapper._()); - MapperBase.addType((f) => f<({A content, B options})>()); - } - return _instance!; - } - - static String _$content(SectionData v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ContentOptions? _$options(SectionData v) => v.options; - static const Field _f$options = - Field('options', _$options); - - @override - final MappableFields fields = const { - #content: _f$content, - #options: _f$options, - }; - - @override - Function get typeFactory => (f) => f(); - - @override - List apply(MappingContext context) { - return []; - } - - static SectionData _instantiate(DecodingData data) { - return (content: data.dec(_f$content), options: data.dec(_f$options)); - } - - @override - final Function instantiate = _instantiate; - - static SectionData fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SectionData fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -extension SectionDataMappable on SectionData { - Map toMap() { - return SectionDataMapper.ensureInitialized().encodeMap(this); - } - - String toJson() { - return SectionDataMapper.ensureInitialized().encodeJson(this); - } - - SectionDataCopyWith get copyWith => - _SectionDataCopyWithImpl(this, $identity, $identity); -} - -extension SectionDataValueCopy<$R> - on ObjectCopyWith<$R, SectionData, SectionData> { - SectionDataCopyWith<$R> get $asSectionData => - $base.as((v, t, t2) => _SectionDataCopyWithImpl(v, t, t2)); -} - -abstract class SectionDataCopyWith<$R> - implements RecordCopyWith<$R, SectionData> { - $R call({String? content, ContentOptions? options}); - SectionDataCopyWith<$R2> $chain<$R2>(Then t); -} - -class _SectionDataCopyWithImpl<$R> extends RecordCopyWithBase<$R, SectionData> - implements SectionDataCopyWith<$R> { - _SectionDataCopyWithImpl(super.value, super.then, super.then2); - - @override - late final RecordMapperBase $mapper = - SectionDataMapper.ensureInitialized(); - @override - $R call({String? content, Object? options = $none}) => - $apply(FieldCopyWithData({ - if (content != null) #content: content, - if (options != $none) #options: options - })); - @override - SectionData $make(CopyWithData data) => ( - content: data.get(#content, or: $value.content), - options: data.get(#options, or: $value.options) - ); - - @override - SectionDataCopyWith<$R2> $chain<$R2>(Then t) => - _SectionDataCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart b/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart deleted file mode 100644 index dbb38733..00000000 --- a/packages/superdeck_core/lib/src/models/slide_parts.mapper.dart +++ /dev/null @@ -1,1360 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'slide_parts.dart'; - -class SectionPartTypeMapper extends EnumMapper { - SectionPartTypeMapper._(); - - static SectionPartTypeMapper? _instance; - static SectionPartTypeMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SectionPartTypeMapper._()); - } - return _instance!; - } - - static SectionPartType fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - SectionPartType decode(dynamic value) { - switch (value) { - case 'root': - return SectionPartType.root; - case 'header': - return SectionPartType.header; - case 'body': - return SectionPartType.body; - case 'footer': - return SectionPartType.footer; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(SectionPartType self) { - switch (self) { - case SectionPartType.root: - return 'root'; - case SectionPartType.header: - return 'header'; - case SectionPartType.body: - return 'body'; - case SectionPartType.footer: - return 'footer'; - } - } -} - -extension SectionPartTypeMapperExtension on SectionPartType { - String toValue() { - SectionPartTypeMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class SubSectionPartTypeMapper extends EnumMapper { - SubSectionPartTypeMapper._(); - - static SubSectionPartTypeMapper? _instance; - static SubSectionPartTypeMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SubSectionPartTypeMapper._()); - } - return _instance!; - } - - static SubSectionPartType fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } - - @override - SubSectionPartType decode(dynamic value) { - switch (value) { - case 'content': - return SubSectionPartType.content; - case 'image': - return SubSectionPartType.image; - case 'widget': - return SubSectionPartType.widget; - default: - throw MapperException.unknownEnumValue(value); - } - } - - @override - dynamic encode(SubSectionPartType self) { - switch (self) { - case SubSectionPartType.content: - return 'content'; - case SubSectionPartType.image: - return 'image'; - case SubSectionPartType.widget: - return 'widget'; - } - } -} - -extension SubSectionPartTypeMapperExtension on SubSectionPartType { - String toValue() { - SubSectionPartTypeMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class SectionPartMapper extends ClassMapperBase { - SectionPartMapper._(); - - static SectionPartMapper? _instance; - static SectionPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SectionPartMapper._()); - RootLayoutPartMapper.ensureInitialized(); - HeaderLayoutPartMapper.ensureInitialized(); - BodyLayoutPartMapper.ensureInitialized(); - FooterLayoutPartMapper.ensureInitialized(); - SectionPartTypeMapper.ensureInitialized(); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SectionPart'; - - static SectionPartType _$type(SectionPart v) => v.type; - static const Field _f$type = - Field('type', _$type); - static ContentOptions _$options(SectionPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - SectionPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - - @override - final MappableFields fields = const { - #type: _f$type, - #options: _f$options, - #contentSections: _f$contentSections, - }; - @override - final bool ignoreNull = true; - - static SectionPart _instantiate(DecodingData data) { - throw MapperException.missingSubclass( - 'SectionPart', 'type', '${data.value['type']}'); - } - - @override - final Function instantiate = _instantiate; - - static SectionPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SectionPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SectionPartMappable { - String toJson(); - Map toMap(); - SectionPartCopyWith get copyWith; -} - -abstract class SectionPartCopyWith<$R, $In extends SectionPart, $Out> - implements ClassCopyWith<$R, $In, $Out> { - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - $R call( - {ContentOptions? options, - List>? contentSections}); - SectionPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class ContentSectionPartMapper extends ClassMapperBase { - ContentSectionPartMapper._(); - - static ContentSectionPartMapper? _instance; - static ContentSectionPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ContentSectionPartMapper._()); - ContentPartMapper.ensureInitialized(); - WidgetPartMapper.ensureInitialized(); - ImagePartMapper.ensureInitialized(); - SubSectionPartTypeMapper.ensureInitialized(); - ContentOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'ContentSectionPart'; - @override - Function get typeFactory => - (f) => f>(); - - static SubSectionPartType _$type(ContentSectionPart v) => v.type; - static const Field _f$type = - Field('type', _$type); - static String _$content(ContentSectionPart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ContentOptions _$options(ContentSectionPart v) => v.options; - static dynamic _arg$options(f) => f(); - static const Field _f$options = - Field('options', _$options, arg: _arg$options); - - @override - final MappableFields fields = const { - #type: _f$type, - #content: _f$content, - #options: _f$options, - }; - @override - final bool ignoreNull = true; - - static ContentSectionPart _instantiate( - DecodingData data) { - throw MapperException.missingSubclass( - 'ContentSectionPart', 'type', '${data.value['type']}'); - } - - @override - final Function instantiate = _instantiate; - - static ContentSectionPart fromMap( - Map map) { - return ensureInitialized().decodeMap>(map); - } - - static ContentSectionPart fromJson(String json) { - return ensureInitialized().decodeJson>(json); - } -} - -mixin ContentSectionPartMappable { - String toJson(); - Map toMap(); - ContentSectionPartCopyWith, ContentSectionPart, - ContentSectionPart, T> get copyWith; -} - -abstract class ContentSectionPartCopyWith<$R, $In extends ContentSectionPart, - $Out, T extends ContentOptions> implements ClassCopyWith<$R, $In, $Out> { - ContentOptionsCopyWith<$R, ContentOptions, T> get options; - $R call({String? content, T? options}); - ContentSectionPartCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class ContentPartMapper extends SubClassMapperBase { - ContentPartMapper._(); - - static ContentPartMapper? _instance; - static ContentPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ContentPartMapper._()); - ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'ContentPart'; - - static String _$content(ContentPart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ContentOptions _$options(ContentPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static SubSectionPartType _$type(ContentPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #content: _f$content, - #options: _f$options, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'content'; - @override - late final ClassMapperBase superMapper = - ContentSectionPartMapper.ensureInitialized(); - - @override - DecodingContext inherit(DecodingContext context) { - return context.inherit(args: () => []); - } - - static ContentPart _instantiate(DecodingData data) { - return ContentPart( - content: data.dec(_f$content), options: data.dec(_f$options)); - } - - @override - final Function instantiate = _instantiate; - - static ContentPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static ContentPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin ContentPartMappable { - String toJson() { - return ContentPartMapper.ensureInitialized() - .encodeJson(this as ContentPart); - } - - Map toMap() { - return ContentPartMapper.ensureInitialized() - .encodeMap(this as ContentPart); - } - - ContentPartCopyWith get copyWith => - _ContentPartCopyWithImpl(this as ContentPart, $identity, $identity); - @override - String toString() { - return ContentPartMapper.ensureInitialized() - .stringifyValue(this as ContentPart); - } - - @override - bool operator ==(Object other) { - return ContentPartMapper.ensureInitialized() - .equalsValue(this as ContentPart, other); - } - - @override - int get hashCode { - return ContentPartMapper.ensureInitialized().hashValue(this as ContentPart); - } -} - -extension ContentPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, ContentPart, $Out> { - ContentPartCopyWith<$R, ContentPart, $Out> get $asContentPart => - $base.as((v, t, t2) => _ContentPartCopyWithImpl(v, t, t2)); -} - -abstract class ContentPartCopyWith<$R, $In extends ContentPart, $Out> - implements ContentSectionPartCopyWith<$R, $In, $Out, ContentOptions> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - $R call({String? content, ContentOptions? options}); - ContentPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _ContentPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, ContentPart, $Out> - implements ContentPartCopyWith<$R, ContentPart, $Out> { - _ContentPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - ContentPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - ($value.options as ContentOptions) - .copyWith - .$chain((v) => call(options: v)); - @override - $R call({String? content, ContentOptions? options}) => - $apply(FieldCopyWithData({ - if (content != null) #content: content, - if (options != null) #options: options - })); - @override - ContentPart $make(CopyWithData data) => ContentPart( - content: data.get(#content, or: $value.content), - options: data.get(#options, or: $value.options)); - - @override - ContentPartCopyWith<$R2, ContentPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _ContentPartCopyWithImpl($value, $cast, t); -} - -class WidgetPartMapper extends SubClassMapperBase { - WidgetPartMapper._(); - - static WidgetPartMapper? _instance; - static WidgetPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = WidgetPartMapper._()); - ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); - WidgetOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'WidgetPart'; - - static WidgetOptions _$options(WidgetPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static String _$content(WidgetPart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static SubSectionPartType _$type(WidgetPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #content: _f$content, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'widget'; - @override - late final ClassMapperBase superMapper = - ContentSectionPartMapper.ensureInitialized(); - - @override - DecodingContext inherit(DecodingContext context) { - return context.inherit(args: () => []); - } - - static WidgetPart _instantiate(DecodingData data) { - return WidgetPart( - options: data.dec(_f$options), content: data.dec(_f$content)); - } - - @override - final Function instantiate = _instantiate; - - static WidgetPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static WidgetPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin WidgetPartMappable { - String toJson() { - return WidgetPartMapper.ensureInitialized() - .encodeJson(this as WidgetPart); - } - - Map toMap() { - return WidgetPartMapper.ensureInitialized() - .encodeMap(this as WidgetPart); - } - - WidgetPartCopyWith get copyWith => - _WidgetPartCopyWithImpl(this as WidgetPart, $identity, $identity); - @override - String toString() { - return WidgetPartMapper.ensureInitialized() - .stringifyValue(this as WidgetPart); - } - - @override - bool operator ==(Object other) { - return WidgetPartMapper.ensureInitialized() - .equalsValue(this as WidgetPart, other); - } - - @override - int get hashCode { - return WidgetPartMapper.ensureInitialized().hashValue(this as WidgetPart); - } -} - -extension WidgetPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, WidgetPart, $Out> { - WidgetPartCopyWith<$R, WidgetPart, $Out> get $asWidgetPart => - $base.as((v, t, t2) => _WidgetPartCopyWithImpl(v, t, t2)); -} - -abstract class WidgetPartCopyWith<$R, $In extends WidgetPart, $Out> - implements ContentSectionPartCopyWith<$R, $In, $Out, WidgetOptions> { - @override - WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options; - @override - $R call({WidgetOptions? options, String? content}); - WidgetPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _WidgetPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, WidgetPart, $Out> - implements WidgetPartCopyWith<$R, WidgetPart, $Out> { - _WidgetPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - WidgetPartMapper.ensureInitialized(); - @override - WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options => - ($value.options as WidgetOptions) - .copyWith - .$chain((v) => call(options: v)); - @override - $R call({WidgetOptions? options, String? content}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (content != null) #content: content - })); - @override - WidgetPart $make(CopyWithData data) => WidgetPart( - options: data.get(#options, or: $value.options), - content: data.get(#content, or: $value.content)); - - @override - WidgetPartCopyWith<$R2, WidgetPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _WidgetPartCopyWithImpl($value, $cast, t); -} - -class ImagePartMapper extends SubClassMapperBase { - ImagePartMapper._(); - - static ImagePartMapper? _instance; - static ImagePartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = ImagePartMapper._()); - ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); - ImageOptionsMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'ImagePart'; - - static ImageOptions _$options(ImagePart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static String _$content(ImagePart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static SubSectionPartType _$type(ImagePart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #content: _f$content, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'image'; - @override - late final ClassMapperBase superMapper = - ContentSectionPartMapper.ensureInitialized(); - - @override - DecodingContext inherit(DecodingContext context) { - return context.inherit(args: () => []); - } - - static ImagePart _instantiate(DecodingData data) { - return ImagePart( - options: data.dec(_f$options), content: data.dec(_f$content)); - } - - @override - final Function instantiate = _instantiate; - - static ImagePart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static ImagePart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin ImagePartMappable { - String toJson() { - return ImagePartMapper.ensureInitialized() - .encodeJson(this as ImagePart); - } - - Map toMap() { - return ImagePartMapper.ensureInitialized() - .encodeMap(this as ImagePart); - } - - ImagePartCopyWith get copyWith => - _ImagePartCopyWithImpl(this as ImagePart, $identity, $identity); - @override - String toString() { - return ImagePartMapper.ensureInitialized() - .stringifyValue(this as ImagePart); - } - - @override - bool operator ==(Object other) { - return ImagePartMapper.ensureInitialized() - .equalsValue(this as ImagePart, other); - } - - @override - int get hashCode { - return ImagePartMapper.ensureInitialized().hashValue(this as ImagePart); - } -} - -extension ImagePartValueCopy<$R, $Out> on ObjectCopyWith<$R, ImagePart, $Out> { - ImagePartCopyWith<$R, ImagePart, $Out> get $asImagePart => - $base.as((v, t, t2) => _ImagePartCopyWithImpl(v, t, t2)); -} - -abstract class ImagePartCopyWith<$R, $In extends ImagePart, $Out> - implements ContentSectionPartCopyWith<$R, $In, $Out, ImageOptions> { - @override - ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options; - @override - $R call({ImageOptions? options, String? content}); - ImagePartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _ImagePartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, ImagePart, $Out> - implements ImagePartCopyWith<$R, ImagePart, $Out> { - _ImagePartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - ImagePartMapper.ensureInitialized(); - @override - ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options => - ($value.options as ImageOptions).copyWith.$chain((v) => call(options: v)); - @override - $R call({ImageOptions? options, String? content}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (content != null) #content: content - })); - @override - ImagePart $make(CopyWithData data) => ImagePart( - options: data.get(#options, or: $value.options), - content: data.get(#content, or: $value.content)); - - @override - ImagePartCopyWith<$R2, ImagePart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _ImagePartCopyWithImpl($value, $cast, t); -} - -class RootLayoutPartMapper extends SubClassMapperBase { - RootLayoutPartMapper._(); - - static RootLayoutPartMapper? _instance; - static RootLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = RootLayoutPartMapper._()); - SectionPartMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'RootLayoutPart'; - - static ContentOptions _$options(RootLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - RootLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionPartType _$type(RootLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'root'; - @override - late final ClassMapperBase superMapper = - SectionPartMapper.ensureInitialized(); - - static RootLayoutPart _instantiate(DecodingData data) { - return RootLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static RootLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static RootLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin RootLayoutPartMappable { - String toJson() { - return RootLayoutPartMapper.ensureInitialized() - .encodeJson(this as RootLayoutPart); - } - - Map toMap() { - return RootLayoutPartMapper.ensureInitialized() - .encodeMap(this as RootLayoutPart); - } - - RootLayoutPartCopyWith - get copyWith => _RootLayoutPartCopyWithImpl( - this as RootLayoutPart, $identity, $identity); - @override - String toString() { - return RootLayoutPartMapper.ensureInitialized() - .stringifyValue(this as RootLayoutPart); - } - - @override - bool operator ==(Object other) { - return RootLayoutPartMapper.ensureInitialized() - .equalsValue(this as RootLayoutPart, other); - } - - @override - int get hashCode { - return RootLayoutPartMapper.ensureInitialized() - .hashValue(this as RootLayoutPart); - } -} - -extension RootLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, RootLayoutPart, $Out> { - RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> get $asRootLayoutPart => - $base.as((v, t, t2) => _RootLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class RootLayoutPartCopyWith<$R, $In extends RootLayoutPart, $Out> - implements SectionPartCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - RootLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _RootLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, RootLayoutPart, $Out> - implements RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> { - _RootLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - RootLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - RootLayoutPart $make(CopyWithData data) => RootLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - RootLayoutPartCopyWith<$R2, RootLayoutPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _RootLayoutPartCopyWithImpl($value, $cast, t); -} - -class HeaderLayoutPartMapper extends SubClassMapperBase { - HeaderLayoutPartMapper._(); - - static HeaderLayoutPartMapper? _instance; - static HeaderLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = HeaderLayoutPartMapper._()); - SectionPartMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'HeaderLayoutPart'; - - static ContentOptions _$options(HeaderLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - HeaderLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionPartType _$type(HeaderLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'header'; - @override - late final ClassMapperBase superMapper = - SectionPartMapper.ensureInitialized(); - - static HeaderLayoutPart _instantiate(DecodingData data) { - return HeaderLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static HeaderLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static HeaderLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin HeaderLayoutPartMappable { - String toJson() { - return HeaderLayoutPartMapper.ensureInitialized() - .encodeJson(this as HeaderLayoutPart); - } - - Map toMap() { - return HeaderLayoutPartMapper.ensureInitialized() - .encodeMap(this as HeaderLayoutPart); - } - - HeaderLayoutPartCopyWith - get copyWith => _HeaderLayoutPartCopyWithImpl( - this as HeaderLayoutPart, $identity, $identity); - @override - String toString() { - return HeaderLayoutPartMapper.ensureInitialized() - .stringifyValue(this as HeaderLayoutPart); - } - - @override - bool operator ==(Object other) { - return HeaderLayoutPartMapper.ensureInitialized() - .equalsValue(this as HeaderLayoutPart, other); - } - - @override - int get hashCode { - return HeaderLayoutPartMapper.ensureInitialized() - .hashValue(this as HeaderLayoutPart); - } -} - -extension HeaderLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, HeaderLayoutPart, $Out> { - HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> - get $asHeaderLayoutPart => - $base.as((v, t, t2) => _HeaderLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class HeaderLayoutPartCopyWith<$R, $In extends HeaderLayoutPart, $Out> - implements SectionPartCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - HeaderLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _HeaderLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, HeaderLayoutPart, $Out> - implements HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> { - _HeaderLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - HeaderLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - HeaderLayoutPart $make(CopyWithData data) => HeaderLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - HeaderLayoutPartCopyWith<$R2, HeaderLayoutPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _HeaderLayoutPartCopyWithImpl($value, $cast, t); -} - -class BodyLayoutPartMapper extends SubClassMapperBase { - BodyLayoutPartMapper._(); - - static BodyLayoutPartMapper? _instance; - static BodyLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = BodyLayoutPartMapper._()); - SectionPartMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'BodyLayoutPart'; - - static ContentOptions _$options(BodyLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - BodyLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionPartType _$type(BodyLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'body'; - @override - late final ClassMapperBase superMapper = - SectionPartMapper.ensureInitialized(); - - static BodyLayoutPart _instantiate(DecodingData data) { - return BodyLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static BodyLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static BodyLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin BodyLayoutPartMappable { - String toJson() { - return BodyLayoutPartMapper.ensureInitialized() - .encodeJson(this as BodyLayoutPart); - } - - Map toMap() { - return BodyLayoutPartMapper.ensureInitialized() - .encodeMap(this as BodyLayoutPart); - } - - BodyLayoutPartCopyWith - get copyWith => _BodyLayoutPartCopyWithImpl( - this as BodyLayoutPart, $identity, $identity); - @override - String toString() { - return BodyLayoutPartMapper.ensureInitialized() - .stringifyValue(this as BodyLayoutPart); - } - - @override - bool operator ==(Object other) { - return BodyLayoutPartMapper.ensureInitialized() - .equalsValue(this as BodyLayoutPart, other); - } - - @override - int get hashCode { - return BodyLayoutPartMapper.ensureInitialized() - .hashValue(this as BodyLayoutPart); - } -} - -extension BodyLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, BodyLayoutPart, $Out> { - BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> get $asBodyLayoutPart => - $base.as((v, t, t2) => _BodyLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class BodyLayoutPartCopyWith<$R, $In extends BodyLayoutPart, $Out> - implements SectionPartCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - BodyLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _BodyLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, BodyLayoutPart, $Out> - implements BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> { - _BodyLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - BodyLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - BodyLayoutPart $make(CopyWithData data) => BodyLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - BodyLayoutPartCopyWith<$R2, BodyLayoutPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _BodyLayoutPartCopyWithImpl($value, $cast, t); -} - -class FooterLayoutPartMapper extends SubClassMapperBase { - FooterLayoutPartMapper._(); - - static FooterLayoutPartMapper? _instance; - static FooterLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = FooterLayoutPartMapper._()); - SectionPartMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'FooterLayoutPart'; - - static ContentOptions _$options(FooterLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - FooterLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionPartType _$type(FooterLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'footer'; - @override - late final ClassMapperBase superMapper = - SectionPartMapper.ensureInitialized(); - - static FooterLayoutPart _instantiate(DecodingData data) { - return FooterLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static FooterLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static FooterLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin FooterLayoutPartMappable { - String toJson() { - return FooterLayoutPartMapper.ensureInitialized() - .encodeJson(this as FooterLayoutPart); - } - - Map toMap() { - return FooterLayoutPartMapper.ensureInitialized() - .encodeMap(this as FooterLayoutPart); - } - - FooterLayoutPartCopyWith - get copyWith => _FooterLayoutPartCopyWithImpl( - this as FooterLayoutPart, $identity, $identity); - @override - String toString() { - return FooterLayoutPartMapper.ensureInitialized() - .stringifyValue(this as FooterLayoutPart); - } - - @override - bool operator ==(Object other) { - return FooterLayoutPartMapper.ensureInitialized() - .equalsValue(this as FooterLayoutPart, other); - } - - @override - int get hashCode { - return FooterLayoutPartMapper.ensureInitialized() - .hashValue(this as FooterLayoutPart); - } -} - -extension FooterLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, FooterLayoutPart, $Out> { - FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> - get $asFooterLayoutPart => - $base.as((v, t, t2) => _FooterLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class FooterLayoutPartCopyWith<$R, $In extends FooterLayoutPart, $Out> - implements SectionPartCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - FooterLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _FooterLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, FooterLayoutPart, $Out> - implements FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> { - _FooterLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - FooterLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - FooterLayoutPart $make(CopyWithData data) => FooterLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - FooterLayoutPartCopyWith<$R2, FooterLayoutPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _FooterLayoutPartCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck_core/lib/src/models/slide_parts.dart b/packages/superdeck_core/lib/src/models/slide_sections_model.dart similarity index 64% rename from packages/superdeck_core/lib/src/models/slide_parts.dart rename to packages/superdeck_core/lib/src/models/slide_sections_model.dart index f8fa62e5..5f34d742 100644 --- a/packages/superdeck_core/lib/src/models/slide_parts.dart +++ b/packages/superdeck_core/lib/src/models/slide_sections_model.dart @@ -1,10 +1,7 @@ -import 'package:dart_mappable/dart_mappable.dart'; -import 'package:superdeck_core/superdeck_core.dart'; - -part 'slide_parts.mapper.dart'; +part of 'models.dart'; @MappableEnum() -enum SectionPartType { +enum SectionType { root, header, body, @@ -12,46 +9,46 @@ enum SectionPartType { } @MappableEnum() -enum SubSectionPartType { +enum SubSectionType { content, image, widget, } -interface class SlidePart { - const SlidePart(); +interface class PartDto { + const PartDto(); } @MappableClass() -abstract class SectionPart extends SlidePart with SectionPartMappable { - final SectionPartType type; +abstract class SectionDto extends PartDto with SectionDtoMappable { + final SectionType type; final ContentOptions options; final List contentSections; - SectionPart({ + SectionDto({ required this.type, required this.options, this.contentSections = const [], }); - factory SectionPart.build( - SectionPartType type, { + factory SectionDto.build( + SectionType type, { ContentOptions? options, }) { options ??= ContentOptions(); return switch (type) { - SectionPartType.header => HeaderLayoutPart(options: options), - SectionPartType.body => BodyLayoutPart(options: options), - SectionPartType.footer => FooterLayoutPart(options: options), - SectionPartType.root => RootLayoutPart(options: options), + SectionType.header => HeaderLayoutPart(options: options), + SectionType.body => BodyLayoutPart(options: options), + SectionType.footer => FooterLayoutPart(options: options), + SectionType.root => RootLayoutPart(options: options), }; } String get name => type.name; - SectionPart addLine(String content) { + SectionDto addLine(String content) { final lastPart = contentSections.lastOrNull; final subSectionsCopy = [...contentSections]; @@ -69,17 +66,17 @@ abstract class SectionPart extends SlidePart with SectionPartMappable { return copyWith(contentSections: subSectionsCopy); } - SectionPart addSubSection(ContentSectionPart part) { + SectionDto addSubSection(ContentSectionPart part) { return copyWith(contentSections: [...contentSections, part]); } } @MappableClass(discriminatorKey: 'type') -sealed class ContentSectionPart extends SlidePart +sealed class ContentSectionPart extends PartDto with ContentSectionPartMappable { @MappableField() final String content; - final SubSectionPartType type; + final SubSectionType type; final T options; @@ -96,7 +93,7 @@ class ContentPart extends ContentSectionPart ContentPart({ required super.content, required super.options, - }) : super(type: SubSectionPartType.content); + }) : super(type: SubSectionType.content); } @MappableClass(discriminatorValue: 'widget') @@ -105,7 +102,7 @@ class WidgetPart extends ContentSectionPart WidgetPart({ required super.options, required super.content, - }) : super(type: SubSectionPartType.widget); + }) : super(type: SubSectionType.widget); } @MappableClass(discriminatorValue: 'image') @@ -114,45 +111,45 @@ class ImagePart extends ContentSectionPart ImagePart({ required super.options, required super.content, - }) : super(type: SubSectionPartType.image); + }) : super(type: SubSectionType.image); } @MappableClass(discriminatorValue: 'root') -class RootLayoutPart extends SectionPart with RootLayoutPartMappable { +class RootLayoutPart extends SectionDto with RootLayoutPartMappable { RootLayoutPart({ required super.options, super.contentSections = const [], }) : super( - type: SectionPartType.root, + type: SectionType.root, ); } @MappableClass(discriminatorValue: 'header') -class HeaderLayoutPart extends SectionPart with HeaderLayoutPartMappable { +class HeaderLayoutPart extends SectionDto with HeaderLayoutPartMappable { HeaderLayoutPart({ required super.options, super.contentSections = const [], }) : super( - type: SectionPartType.header, + type: SectionType.header, ); } @MappableClass(discriminatorValue: 'body') -class BodyLayoutPart extends SectionPart with BodyLayoutPartMappable { +class BodyLayoutPart extends SectionDto with BodyLayoutPartMappable { BodyLayoutPart({ required super.options, super.contentSections = const [], }) : super( - type: SectionPartType.body, + type: SectionType.body, ); } @MappableClass(discriminatorValue: 'footer') -class FooterLayoutPart extends SectionPart with FooterLayoutPartMappable { +class FooterLayoutPart extends SectionDto with FooterLayoutPartMappable { FooterLayoutPart({ required super.options, super.contentSections = const [], }) : super( - type: SectionPartType.footer, + type: SectionType.footer, ); } diff --git a/packages/superdeck_core/lib/src/schema/schema.dart b/packages/superdeck_core/lib/src/schema/schema.dart new file mode 100644 index 00000000..f104b15f --- /dev/null +++ b/packages/superdeck_core/lib/src/schema/schema.dart @@ -0,0 +1,6 @@ +library schema; + +part 'schema_model.dart'; +part 'schema_validation.dart'; +part 'schema_values.dart'; +part 'validators.dart'; diff --git a/packages/superdeck_core/lib/src/schema/schema_model.dart b/packages/superdeck_core/lib/src/schema/schema_model.dart index ff327a5c..ad42ca24 100644 --- a/packages/superdeck_core/lib/src/schema/schema_model.dart +++ b/packages/superdeck_core/lib/src/schema/schema_model.dart @@ -1,6 +1,4 @@ -import 'schema_validation.dart'; -import 'schema_values.dart'; -import 'validators.dart'; +part of 'schema.dart'; typedef JSON = Map; @@ -74,70 +72,63 @@ class SchemaMap extends SchemaValue> { } @override - SchemaValidationResult validate(List path, Object? value) { - if (value == null) { - return optionalValue - ? SchemaValidationResult.valid(path) - : SchemaValidationResult.requiredPropMissing(path); - } - - final parsedValue = tryParse(value); + ValidationResult validate(List path, Object? value) { + try { + if (value == null) { + return optionalValue + ? ValidationResult.valid(path) + : throw RequiredPropMissingValidationError(property: path.last); + } - if (parsedValue == null) { - return SchemaValidationResult.invalidType( - path, - value, - {}.toString(), - ); - } + final parsedValue = tryParse(value); - final keys = parsedValue.keys.toSet(); + if (parsedValue == null) { + throw InvalidTypeValidationError( + value: value.runtimeType, + expectedType: Map, + ); + } - final required = properties.entries - .where((entry) => !entry.value.optionalValue) - .map((entry) => entry.key); + final keys = parsedValue.keys.toSet(); - final requiredKeys = required.toSet(); + final required = properties.entries + .where((entry) => !entry.value.optionalValue) + .map((entry) => entry.key); - if (!keys.containsAll(requiredKeys)) { - return SchemaValidationResult( - key: path, - errors: requiredKeys - .difference(keys) - .map(SchemaError.requiredPropMissing) - .toList()); - } + final requiredKeys = required.toSet(); - if (additionalProperties == false) { - final extraKeys = keys.difference(properties.keys.toSet()); - if (extraKeys.isNotEmpty) { - return SchemaValidationResult( - key: path, - errors: - extraKeys.map(SchemaError.unallowedAdditionalProperty).toList(), - ); + for (final key in requiredKeys.difference(keys)) { + throw RequiredPropMissingValidationError(property: key); } - } - for (final entry in parsedValue.entries) { - final key = entry.key; - final prop = properties[key]; - - if (prop == null) { - return additionalProperties == false - ? SchemaValidationResult( - key: path, - errors: [SchemaError.unallowedAdditionalProperty(key)]) - : SchemaValidationResult.valid(path); + if (additionalProperties == false) { + final extraKeys = keys.difference(properties.keys.toSet()); + if (extraKeys.isNotEmpty) { + for (final key in extraKeys) { + throw UnalowedAdditionalPropertyValidationError(property: key); + } + } } - - final result = prop.validate([...path, key], entry.value); - if (!result.isValid) { - return result; + for (final entry in parsedValue.entries) { + final key = entry.key; + final prop = properties[key]; + + if (prop == null) { + if (additionalProperties == false) { + throw UnalowedAdditionalPropertyValidationError(property: key); + } + } else { + final result = prop.validate([...path, key], entry.value); + if (!result.isValid) { + return result; + } + } } - } - return SchemaValidationResult.valid(path); + return ValidationResult.valid(path); + } on ValidationError catch (e) { + return ValidationResult(path: path, errors: [e]); + } } } diff --git a/packages/superdeck_core/lib/src/schema/schema_validation.dart b/packages/superdeck_core/lib/src/schema/schema_validation.dart index cc09b0f7..0f6cfaf5 100644 --- a/packages/superdeck_core/lib/src/schema/schema_validation.dart +++ b/packages/superdeck_core/lib/src/schema/schema_validation.dart @@ -1,9 +1,7 @@ -import 'package:dart_mappable/dart_mappable.dart'; - -part 'schema_validation.mapper.dart'; +part of 'schema.dart'; class SchemaValidationException implements Exception { - final SchemaValidationResult result; + final ValidationResult result; const SchemaValidationException(this.result); } @@ -17,106 +15,80 @@ enum SchemaErrorType { unknown; } -@MappableClass() -class SchemaError with SchemaErrorMappable { - final SchemaErrorType type; - final String message; +sealed class ValidationError { + String get message; - const SchemaError.unknown() - : type = SchemaErrorType.unknown, - message = 'Unknown error'; + const ValidationError(); +} - const SchemaError.constraints(this.message) - : type = SchemaErrorType.constraints; +class UnalowedAdditionalPropertyValidationError extends ValidationError { + final String property; - const SchemaError.unallowedAdditionalProperty(String property) - : type = SchemaErrorType.unallowedAdditionalProperty, - message = 'Unallowed property: [$property]'; + const UnalowedAdditionalPropertyValidationError({ + required this.property, + }); - const SchemaError.enumViolated(String value, List possibleValues) - : type = SchemaErrorType.enumViolated, - message = 'Wrong value: [$value] \n\n Possible values: $possibleValues'; + String get message => 'Unallowed property: [$property]'; +} - const SchemaError.requiredPropMissing(String property) - : type = SchemaErrorType.requiredPropMissing, - message = 'Missing prop: [$property]'; +class EnumViolatedValidationError extends ValidationError { + final String value; + final List possibleValues; - const SchemaError.invalidType(Type value, String expectedType) - : type = SchemaErrorType.invalidType, - message = 'Invalid type: [$expectedType] got [$value]'; + const EnumViolatedValidationError({ + required this.value, + required this.possibleValues, + }); - @override - String toString() { - return 'SchemaValidationError{type: $type, message: $message}'; - } + String get message => + 'Wrong value: [$value] \n\n Possible values: $possibleValues'; } -@MappableClass() -class SchemaValidationResult with SchemaValidationResultMappable { - final List key; - final List errors; +class RequiredPropMissingValidationError extends ValidationError { + final String property; - const SchemaValidationResult({ - required this.key, - required this.errors, + const RequiredPropMissingValidationError({ + required this.property, + }); + + String get message => 'Missing prop: [$property]'; +} + +class InvalidTypeValidationError extends ValidationError { + final Type value; + final Type expectedType; + + const InvalidTypeValidationError({ + required this.value, + required this.expectedType, }); - const SchemaValidationResult.valid(this.key) : errors = const []; - - factory SchemaValidationResult.invalidType( - List path, - Object value, - String expectedType, - ) { - return SchemaValidationResult( - key: path, - errors: [ - SchemaError.invalidType( - value.runtimeType, - expectedType, - ) - ], - ); - } - - factory SchemaValidationResult.unallowedAdditionalProperty( - List path, String property) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.unallowedAdditionalProperty(property)], - ); - } - - factory SchemaValidationResult.enumViolated( - List path, String value, List possibleValues) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.enumViolated(value, possibleValues)], - ); - } - - factory SchemaValidationResult.requiredPropMissing(List path) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.requiredPropMissing(path.last)], - ); - } - - factory SchemaValidationResult.constraints( - List path, String message) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.constraints(message)], - ); - } - - @override - String toString() { - return '${errors.isEmpty ? 'VALID' : 'INVALID'}${errors.isEmpty ? ', Errors: $errors' : ''}'; - } + String get message => 'Invalid type: [$expectedType] got [$value]'; +} + +class ConstraintsValidationError extends ValidationError { + final String _message; + const ConstraintsValidationError(this._message); + + String get message => 'Constraints: $_message'; +} + +class UnknownValidationError extends ValidationError { + const UnknownValidationError(); + + String get message => 'Unknown Validation error'; +} + +class ValidationResult { + final List path; + final List errors; + + const ValidationResult({ + required this.path, + required this.errors, + }); bool get isValid => errors.isEmpty; - static const fromMap = SchemaValidationResultMapper.fromMap; - static const fromJson = SchemaValidationResultMapper.fromJson; + const ValidationResult.valid(this.path) : errors = const []; } diff --git a/packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart b/packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart deleted file mode 100644 index 1ea4d17a..00000000 --- a/packages/superdeck_core/lib/src/schema/schema_validation.mapper.dart +++ /dev/null @@ -1,248 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'schema_validation.dart'; - -class SchemaErrorMapper extends ClassMapperBase { - SchemaErrorMapper._(); - - static SchemaErrorMapper? _instance; - static SchemaErrorMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SchemaErrorMapper._()); - } - return _instance!; - } - - @override - final String id = 'SchemaError'; - - static SchemaErrorType _$type(SchemaError v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - static String _$message(SchemaError v) => v.message; - static const Field _f$message = - Field('message', _$message, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #type: _f$type, - #message: _f$message, - }; - @override - final bool ignoreNull = true; - - static SchemaError _instantiate(DecodingData data) { - return SchemaError.unknown(); - } - - @override - final Function instantiate = _instantiate; - - static SchemaError fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SchemaError fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SchemaErrorMappable { - String toJson() { - return SchemaErrorMapper.ensureInitialized() - .encodeJson(this as SchemaError); - } - - Map toMap() { - return SchemaErrorMapper.ensureInitialized() - .encodeMap(this as SchemaError); - } - - SchemaErrorCopyWith get copyWith => - _SchemaErrorCopyWithImpl(this as SchemaError, $identity, $identity); - @override - String toString() { - return SchemaErrorMapper.ensureInitialized() - .stringifyValue(this as SchemaError); - } - - @override - bool operator ==(Object other) { - return SchemaErrorMapper.ensureInitialized() - .equalsValue(this as SchemaError, other); - } - - @override - int get hashCode { - return SchemaErrorMapper.ensureInitialized().hashValue(this as SchemaError); - } -} - -extension SchemaErrorValueCopy<$R, $Out> - on ObjectCopyWith<$R, SchemaError, $Out> { - SchemaErrorCopyWith<$R, SchemaError, $Out> get $asSchemaError => - $base.as((v, t, t2) => _SchemaErrorCopyWithImpl(v, t, t2)); -} - -abstract class SchemaErrorCopyWith<$R, $In extends SchemaError, $Out> - implements ClassCopyWith<$R, $In, $Out> { - $R call(); - SchemaErrorCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _SchemaErrorCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SchemaError, $Out> - implements SchemaErrorCopyWith<$R, SchemaError, $Out> { - _SchemaErrorCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SchemaErrorMapper.ensureInitialized(); - @override - $R call() => $apply(FieldCopyWithData({})); - @override - SchemaError $make(CopyWithData data) => SchemaError.unknown(); - - @override - SchemaErrorCopyWith<$R2, SchemaError, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _SchemaErrorCopyWithImpl($value, $cast, t); -} - -class SchemaValidationResultMapper - extends ClassMapperBase { - SchemaValidationResultMapper._(); - - static SchemaValidationResultMapper? _instance; - static SchemaValidationResultMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SchemaValidationResultMapper._()); - SchemaErrorMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SchemaValidationResult'; - - static List _$key(SchemaValidationResult v) => v.key; - static const Field> _f$key = - Field('key', _$key); - static List _$errors(SchemaValidationResult v) => v.errors; - static const Field> _f$errors = - Field('errors', _$errors); - - @override - final MappableFields fields = const { - #key: _f$key, - #errors: _f$errors, - }; - @override - final bool ignoreNull = true; - - static SchemaValidationResult _instantiate(DecodingData data) { - return SchemaValidationResult( - key: data.dec(_f$key), errors: data.dec(_f$errors)); - } - - @override - final Function instantiate = _instantiate; - - static SchemaValidationResult fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SchemaValidationResult fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SchemaValidationResultMappable { - String toJson() { - return SchemaValidationResultMapper.ensureInitialized() - .encodeJson(this as SchemaValidationResult); - } - - Map toMap() { - return SchemaValidationResultMapper.ensureInitialized() - .encodeMap(this as SchemaValidationResult); - } - - SchemaValidationResultCopyWith - get copyWith => _SchemaValidationResultCopyWithImpl( - this as SchemaValidationResult, $identity, $identity); - @override - String toString() { - return SchemaValidationResultMapper.ensureInitialized() - .stringifyValue(this as SchemaValidationResult); - } - - @override - bool operator ==(Object other) { - return SchemaValidationResultMapper.ensureInitialized() - .equalsValue(this as SchemaValidationResult, other); - } - - @override - int get hashCode { - return SchemaValidationResultMapper.ensureInitialized() - .hashValue(this as SchemaValidationResult); - } -} - -extension SchemaValidationResultValueCopy<$R, $Out> - on ObjectCopyWith<$R, SchemaValidationResult, $Out> { - SchemaValidationResultCopyWith<$R, SchemaValidationResult, $Out> - get $asSchemaValidationResult => - $base.as((v, t, t2) => _SchemaValidationResultCopyWithImpl(v, t, t2)); -} - -abstract class SchemaValidationResultCopyWith< - $R, - $In extends SchemaValidationResult, - $Out> implements ClassCopyWith<$R, $In, $Out> { - ListCopyWith<$R, String, ObjectCopyWith<$R, String, String>> get key; - ListCopyWith<$R, SchemaError, - SchemaErrorCopyWith<$R, SchemaError, SchemaError>> get errors; - $R call({List? key, List? errors}); - SchemaValidationResultCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _SchemaValidationResultCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SchemaValidationResult, $Out> - implements - SchemaValidationResultCopyWith<$R, SchemaValidationResult, $Out> { - _SchemaValidationResultCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SchemaValidationResultMapper.ensureInitialized(); - @override - ListCopyWith<$R, String, ObjectCopyWith<$R, String, String>> get key => - ListCopyWith($value.key, (v, t) => ObjectCopyWith(v, $identity, t), - (v) => call(key: v)); - @override - ListCopyWith<$R, SchemaError, - SchemaErrorCopyWith<$R, SchemaError, SchemaError>> - get errors => ListCopyWith($value.errors, (v, t) => v.copyWith.$chain(t), - (v) => call(errors: v)); - @override - $R call({List? key, List? errors}) => - $apply(FieldCopyWithData( - {if (key != null) #key: key, if (errors != null) #errors: errors})); - @override - SchemaValidationResult $make(CopyWithData data) => SchemaValidationResult( - key: data.get(#key, or: $value.key), - errors: data.get(#errors, or: $value.errors)); - - @override - SchemaValidationResultCopyWith<$R2, SchemaValidationResult, $Out2> - $chain<$R2, $Out2>(Then<$Out2, $R2> t) => - _SchemaValidationResultCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck_core/lib/src/schema/schema_values.dart b/packages/superdeck_core/lib/src/schema/schema_values.dart index 1deb2193..747fd38d 100644 --- a/packages/superdeck_core/lib/src/schema/schema_values.dart +++ b/packages/superdeck_core/lib/src/schema/schema_values.dart @@ -1,5 +1,4 @@ -import 'schema_validation.dart'; -import 'validators.dart'; +part of 'schema.dart'; class SchemaValue { const SchemaValue({ @@ -57,27 +56,35 @@ class SchemaValue { } } - SchemaValidationResult validate(List path, Object? value) { - if (value == null) { - return optionalValue - ? SchemaValidationResult.valid(path) - : SchemaValidationResult.requiredPropMissing(path); - } + ValidationResult validate(List path, Object? value) { + try { + if (value == null) { + return optionalValue + ? ValidationResult.valid(path) + : throw RequiredPropMissingValidationError( + property: value.toString()); + } - final valueType = tryParse(value); + final valueType = tryParse(value); - if (valueType == null) { - return SchemaValidationResult.invalidType(path, value, V.toString()); - } + if (valueType == null) { + throw InvalidTypeValidationError( + value: value.runtimeType, + expectedType: V, + ); + } - for (final validator in validators) { - final error = validator.validate(valueType); - if (error != null) { - return SchemaValidationResult.constraints(path, error.message); + for (final validator in validators) { + final error = validator.validate(valueType); + if (error != null) { + throw ConstraintsValidationError(error.message); + } } - } - return SchemaValidationResult.valid(path); + return ValidationResult.valid(path); + } on ValidationError catch (e) { + return ValidationResult(path: path, errors: [e]); + } } } diff --git a/packages/superdeck_core/lib/src/schema/validators.dart b/packages/superdeck_core/lib/src/schema/validators.dart index 230e60c6..b30c5c1a 100644 --- a/packages/superdeck_core/lib/src/schema/validators.dart +++ b/packages/superdeck_core/lib/src/schema/validators.dart @@ -1,9 +1,9 @@ -import 'schema_validation.dart'; +part of 'schema.dart'; abstract class Validator { const Validator(); - SchemaError? validate(T value); + ValidationError? validate(T value); } class ArrayValidator extends Validator { @@ -11,16 +11,13 @@ class ArrayValidator extends Validator { const ArrayValidator(this.values); @override - SchemaError? validate(Object? value) { + ValidationError? validate(Object? value) { if (value is String) { if (values.contains(value)) { return null; } } - return SchemaError.enumViolated( - '$value', - values, - ); + return EnumViolatedValidationError(value: '$value', possibleValues: values); } } @@ -72,9 +69,9 @@ class RegexValidator extends Validator { }); @override - SchemaError? validate(String value) { + ValidationError? validate(String value) { if (!RegExp(pattern).hasMatch(value)) { - return SchemaError.constraints( + return ConstraintsValidationError( 'String does is not $name. Example: $example', ); } @@ -87,10 +84,10 @@ class IsEmptyValidator extends Validator { const IsEmptyValidator(); @override - SchemaError? validate(String value) { + ValidationError? validate(String value) { return value.isEmpty ? null - : const SchemaError.constraints('String is not empty'); + : const ConstraintsValidationError('String is not empty'); } } @@ -99,10 +96,10 @@ class MinLengthValidator extends Validator { const MinLengthValidator(this.min); @override - SchemaError? validate(String value) { + ValidationError? validate(String value) { return value.length >= min ? null - : SchemaError.constraints( + : ConstraintsValidationError( 'String length is less than the minimum required length: $min', ); } @@ -113,10 +110,10 @@ class MaxLengthValidator extends Validator { const MaxLengthValidator(this.max); @override - SchemaError? validate(String value) { + ValidationError? validate(String value) { return value.length <= max ? null - : SchemaError.constraints( + : ConstraintsValidationError( 'String length is greater than the maximum required length: $max', ); } @@ -127,10 +124,10 @@ class MinValueValidator extends Validator { const MinValueValidator(this.min); @override - SchemaError? validate(num value) { + ValidationError? validate(num value) { return value >= min ? null - : SchemaError.constraints( + : ConstraintsValidationError( 'Value is less than the minimum required value: $min', ); } @@ -141,10 +138,10 @@ class MaxValueValidator extends Validator { const MaxValueValidator(this.max); @override - SchemaError? validate(num value) { + ValidationError? validate(num value) { return value <= max ? null - : SchemaError.constraints( + : ConstraintsValidationError( 'Value is greater than the maximum required value: $max', ); } @@ -156,10 +153,10 @@ class RangeValidator extends Validator { const RangeValidator(this.min, this.max); @override - SchemaError? validate(num value) { + ValidationError? validate(num value) { return value >= min && value <= max ? null - : SchemaError.constraints( + : ConstraintsValidationError( 'Value is not within the required range: $min - $max', ); } @@ -169,8 +166,10 @@ class RequiredValidator extends Validator { const RequiredValidator(); @override - SchemaError? validate(value) { - return value != null ? null : const SchemaError.constraints('is required'); + ValidationError? validate(value) { + return value != null + ? null + : const ConstraintsValidationError('is required'); } } @@ -179,11 +178,11 @@ class UniqueItemsValidator extends Validator> { const UniqueItemsValidator(); @override - SchemaError? validate(List value) { + ValidationError? validate(List value) { final unique = value.toSet().toList(); return unique.length == value.length ? null - : const SchemaError.constraints('List items are not unique'); + : const ConstraintsValidationError('List items are not unique'); } } @@ -193,10 +192,10 @@ class MinItemsValidator extends Validator> { const MinItemsValidator(this.min); @override - SchemaError? validate(List value) { + ValidationError? validate(List value) { return value.length >= min ? null - : SchemaError.constraints( + : ConstraintsValidationError( 'List length is less than the minimum required length: $min', ); } @@ -208,10 +207,10 @@ class MaxItemsValidator extends Validator> { const MaxItemsValidator(this.max); @override - SchemaError? validate(List value) { + ValidationError? validate(List value) { return value.length <= max ? null - : SchemaError.constraints( + : ConstraintsValidationError( 'List length is greater than the maximum required length: $max', ); } diff --git a/packages/superdeck_core/lib/superdeck_core.dart b/packages/superdeck_core/lib/superdeck_core.dart index 2dc1c4c1..8911647f 100644 --- a/packages/superdeck_core/lib/superdeck_core.dart +++ b/packages/superdeck_core/lib/superdeck_core.dart @@ -1,15 +1,6 @@ -@MappableLib(generateInitializerForScope: InitializerScope.package) library; -import 'package:dart_mappable/dart_mappable.dart'; - export 'src/helpers/extensions.dart'; export 'src/helpers/yaml_to_map.dart'; -export 'src/models/asset_model.dart'; -export 'src/models/config_model.dart'; -export 'src/models/options_model.dart'; -export 'src/models/reference_model.dart'; -export 'src/models/slide_model.dart'; -export 'src/models/slide_parts.dart'; -export 'src/schema/schema_model.dart'; -export 'src/schema/schema_validation.dart'; +export 'src/models/models.dart'; +export 'src/schema/schema.dart'; From c77f61cde838bac66a780b5cb098b711ef040d67 Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Sun, 25 Aug 2024 16:59:46 -0400 Subject: [PATCH 14/27] wip --- .../superdeck/example/.superdeck/slides.json | 118 +- .../superdeck/example/.superdeck/slides.yaml | 239 +++ .../example/.superdeck/slides_copy.md | 108 ++ packages/superdeck/example/slides.md | 40 +- .../components/molecules/slide_content.dart | 3 + .../superdeck/lib/schema/schema_model.dart | 162 -- .../lib/schema/schema_validation.dart | 124 -- .../lib/schema/schema_validation.mapper.dart | 248 --- .../superdeck/lib/schema/schema_values.dart | 214 --- packages/superdeck/lib/schema/validators.dart | 218 --- .../lib/services/reference_service.dart | 8 +- .../lib/templates/slide_template.dart | 10 +- packages/superdeck/pubspec.yaml | 2 +- .../models/deck_reference_model_test.dart | 6 +- packages/superdeck_cli/bin/watch.dart | 6 +- packages/superdeck_cli/lib/src/constants.dart | 13 +- ...slides_loader.dart => deck_generator.dart} | 9 +- ..._pipeline.dart => generator_pipeline.dart} | 100 +- .../lib/src/helpers/exceptions.dart | 2 +- .../lib/src/helpers/section_parsing.dart | 243 --- .../lib/src/helpers/slide_parser.dart | 2 +- .../section_parser/section_parsing.dart | 174 ++ .../parsers/section_parser/section_regex.dart | 33 + .../lib/src/tasks/dart_formatter_task.dart | 2 +- .../lib/src/tasks/image_cache_task.dart | 4 +- .../lib/src/tasks/mermaid_task.dart | 2 +- .../lib/src/tasks/slide_thumbnail_task.dart | 4 +- packages/superdeck_cli/lib/superdeck_cli.dart | 2 +- packages/superdeck_cli/pubspec.yaml | 2 +- packages/superdeck_cli/slides.md | 0 .../src/helpers/section_parsing_test.dart | 524 ------ .../section_parser/section_parsing_test.dart | 382 ++++ .../section_parser/section_regex_test.dart | 52 + packages/superdeck_core/build.yaml | 1 - .../lib/src/helpers/mappers.dart | 27 - .../superdeck_core/lib/src/models/models.dart | 2 + .../lib/src/models/models.mapper.dart | 1570 +++++------------ .../lib/src/models/options_model.dart | 9 +- .../lib/src/models/reference_model.dart | 42 +- .../lib/src/models/slide_model.dart | 13 +- .../lib/src/models/slide_sections_model.dart | 216 ++- .../lib/src/schema/schema_validation.dart | 2 +- .../lib/src/schema/schema_values.dart | 21 +- superdeck.code-workspace | 4 - 44 files changed, 1734 insertions(+), 3229 deletions(-) create mode 100644 packages/superdeck/example/.superdeck/slides.yaml create mode 100644 packages/superdeck/example/.superdeck/slides_copy.md delete mode 100644 packages/superdeck/lib/schema/schema_model.dart delete mode 100644 packages/superdeck/lib/schema/schema_validation.dart delete mode 100644 packages/superdeck/lib/schema/schema_validation.mapper.dart delete mode 100644 packages/superdeck/lib/schema/schema_values.dart delete mode 100644 packages/superdeck/lib/schema/validators.dart rename packages/superdeck_cli/lib/src/{slides_loader.dart => deck_generator.dart} (91%) rename packages/superdeck_cli/lib/src/{slides_pipeline.dart => generator_pipeline.dart} (74%) delete mode 100644 packages/superdeck_cli/lib/src/helpers/section_parsing.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/section_parser/section_parsing.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/section_parser/section_regex.dart delete mode 100644 packages/superdeck_cli/slides.md delete mode 100644 packages/superdeck_cli/test/src/helpers/section_parsing_test.dart create mode 100644 packages/superdeck_cli/test/src/parsers/section_parser/section_parsing_test.dart create mode 100644 packages/superdeck_cli/test/src/parsers/section_parser/section_regex_test.dart diff --git a/packages/superdeck/example/.superdeck/slides.json b/packages/superdeck/example/.superdeck/slides.json index e0d46f33..f9a19efb 100644 --- a/packages/superdeck/example/.superdeck/slides.json +++ b/packages/superdeck/example/.superdeck/slides.json @@ -3,101 +3,90 @@ "transition": { "type": "fade_in", "duration": 0 - }, - "type": "Config" + } }, "slides": [ { - "content": "{@content blue: car}\n## This is an example of a widgets\n\n{@widget name: demo }\n\n{@content}\n\n```dart\nimport 'package:flutter/material.dart';\n\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n\n```", - "key": "TaIAWsPj", + "index": 0, + "key": "NYMpX0sJ", "options": { "style": "custom" }, + "content": "{@column}\n## This is an example of a widgets\n\n{@widget name: demo}\n\n{@column}\n\n```dart\nimport 'package:flutter/material.dart';\n\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n\n```", "sections": [ { - "options": {}, - "content_sections": [ + "sub_sections": [ { "content": "\n## This is an example of a widgets", - "options": {}, - "type": "content" + "type": "column" }, { "options": { "name": "demo", - "type": "WidgetOptions" + "type": "widget_options" }, "content": "", "type": "widget" }, { "content": "\n```dart\nimport 'package:flutter/material.dart';\nvoid main() {\n final style = Style(\n $box.padding.all(),\n $box.border.all(),\n );\n}\n```", - "options": {}, - "type": "content" + "type": "column" } - ], - "type": "root" + ] } ] }, { - "content": "![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png)\n\n{@content flex: 3}\n\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n\n\n", - "key": "BL6j0ocx", - "options": {}, + "index": 1, + "key": "rHLJMgwc", + "content": "![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png)\n\n{@column flex: 3}\n\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n\n\n", "sections": [ { - "options": {}, - "content_sections": [ + "sub_sections": [ { "content": "![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png)", - "options": {}, - "type": "content" + "type": "column" }, { "content": "\n![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png)\n", "options": { "flex": 3 }, - "type": "content" + "type": "column" } - ], - "type": "root" + ] } ] }, { - "content": "{@header}\n{@content align: bottom_right | flex: 3}\n# This presentation will be great\n\n{@content}\n\n{@body}\n\n\n{@content }\n{@content flex: 2 | align: top_right}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo", - "key": "N2t8AzgD", + "index": 2, + "key": "u0rRynPM", "options": { "style": "quote" }, + "content": "{@section}\n{@column align: bottom_right flex: 3}\n# This presentation will be great\n\n{@column}\n\n{@section}\n\n\n{@column }\n{@column flex: 2 align: top_right}\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo", "sections": [ { - "options": {}, - "content_sections": [ + "sub_sections": [ { "content": "\n# This presentation will be great", "options": { "flex": 3, "align": "bottom_right" }, - "type": "content" + "type": "column" }, { "content": "", - "options": {}, - "type": "content" + "type": "column" } - ], - "type": "header" + ] }, { - "options": {}, - "content_sections": [ + "sub_sections": [ { "content": "", - "options": {}, - "type": "content" + "type": "column" }, { "content": "\n> Create your Flutter presentations faster and easier than ever.\n> You can quote me on that\n> ### Leo", @@ -105,100 +94,91 @@ "flex": 2, "align": "top_right" }, - "type": "content" + "type": "column" } - ], - "type": "body" + ] } ] }, { - "content": "{@header}\n{@image src: https://picsum.photos/1200/1200?waves | align: top_left | fit: cover}\n\n{@body flex: 2}\n{@content flex: 2}\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n\n{@content}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", - "key": "oTEXuXXM", + "index": 3, + "key": "huRpyhFQ", "options": { "style": "show_sections" }, + "content": "{@section}\n{@image src: https://picsum.photos/1200/1200?waves align: top_left fit: cover}\n\n{@section flex: 2}\n{@column flex: 2}\n# Two Column HGoes here\n\nThis is a two-column layout. You can use it to compare two different concepts or ideas.\n\n\n{@column}\n\n### Section Options\n\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section", "sections": [ { - "options": {}, - "content_sections": [ + "sub_sections": [ { "options": { - "src": "//picsum.photos/1200/1200?waves", + "src": "https://picsum.photos/1200/1200?waves", "fit": "cover", "align": "top_left", - "type": "ImageOptions" + "type": "image" }, "content": "", "type": "image" } - ], - "type": "header" + ] }, { "options": { "flex": 2 }, - "content_sections": [ + "sub_sections": [ { "content": "\n# Two Column HGoes here\nThis is a two-column layout. You can use it to compare two different concepts or ideas.", "options": { "flex": 2 }, - "type": "content" + "type": "column" }, { "content": "\n### Section Options\nEasily customize the content of each section to suit your needs.\nUse front matter to define the layout of each section", - "options": {}, - "type": "content" + "type": "column" } - ], - "type": "body" + ] } ] }, { - "content": "{@header}\n{@content align: bottom_right}\n\n## First\n\n{@content} \n\n\n## Header\n\n{@body flex: 2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{@content}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", - "key": "aJflg4a6", + "index": 4, + "key": "twktEcis", "options": { "style": "show_sections" }, + "content": "{@section}\n{@column align: bottom_right}\n\n## First\n\n{@column} \n\n\n## Header\n\n{@section flex: 2}\n\n### Left Section\nEasily customize the content of each section to suit your needs.\n\nUse front matter to define the layout of each section\n\n{@column}\n\n#### Section Options\n\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", "sections": [ { - "options": {}, - "content_sections": [ + "sub_sections": [ { "content": "\n## First", "options": { "align": "bottom_right" }, - "type": "content" + "type": "column" }, { "content": "\n## Header", - "options": {}, - "type": "content" + "type": "column" } - ], - "type": "header" + ] }, { "options": { "flex": 2 }, - "content_sections": [ + "sub_sections": [ { "content": "### Left Section\nEasily customize the content of each section to suit your needs.\nUse front matter to define the layout of each section", - "options": {}, - "type": "content" + "type": "column" }, { "content": "\n#### Section Options\n```yaml\nsections:\n left:\n alignment: bottom_right\n flex: 2\n right:\n alignment: bottom_left\n header:\n alignment: bottom_left\n```", - "options": {}, - "type": "content" + "type": "column" } - ], - "type": "body" + ] } ] } diff --git a/packages/superdeck/example/.superdeck/slides.yaml b/packages/superdeck/example/.superdeck/slides.yaml new file mode 100644 index 00000000..8bdd417d --- /dev/null +++ b/packages/superdeck/example/.superdeck/slides.yaml @@ -0,0 +1,239 @@ +config: + transition: + type: 'fade_in' + duration: 0 +slides: + - index: 0 + key: 'NYMpX0sJ' + options: + style: 'custom' + content: |- + {@column} + ## This is an example of a widgets + + {@widget name: demo} + + {@column} + + ```dart + import 'package:flutter/material.dart'; + + void main() { + final style = Style( + $box.padding.all(), + $box.border.all(), + ); + } + + ``` + sections: + - sub_sections: + - content: |- + + ## This is an example of a widgets + type: 'column' + - options: + name: 'demo' + type: 'widget_options' + content: '' + type: 'widget' + - content: |- + + ```dart + import 'package:flutter/material.dart'; + void main() { + final style = Style( + $box.padding.all(), + $box.border.all(), + ); + } + ``` + type: 'column' + - index: 1 + key: 'rHLJMgwc' + content: |- + ![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png) + + {@column flex: 3} + + ![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png) + + + + sections: + - sub_sections: + - content: '![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png)' + type: 'column' + - content: |- + + ![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png) + + options: + flex: 3 + type: 'column' + - index: 2 + key: 'u0rRynPM' + options: + style: 'quote' + content: |- + {@section} + {@column align: bottom_right flex: 3} + # This presentation will be great + + {@column} + + {@section} + + + {@column } + {@column flex: 2 align: top_right} + > Create your Flutter presentations faster and easier than ever. + > You can quote me on that + > ### Leo + sections: + - sub_sections: + - content: |- + + # This presentation will be great + options: + flex: 3 + align: 'bottom_right' + type: 'column' + - content: '' + type: 'column' + - sub_sections: + - content: '' + type: 'column' + - content: |- + + > Create your Flutter presentations faster and easier than ever. + > You can quote me on that + > ### Leo + options: + flex: 2 + align: 'top_right' + type: 'column' + - index: 3 + key: 'huRpyhFQ' + options: + style: 'show_sections' + content: |- + {@section} + {@image src: https://picsum.photos/1200/1200?waves align: top_left fit: cover} + + {@section flex: 2} + {@column flex: 2} + # Two Column HGoes here + + This is a two-column layout. You can use it to compare two different concepts or ideas. + + + {@column} + + ### Section Options + + Easily customize the content of each section to suit your needs. + + Use front matter to define the layout of each section + sections: + - sub_sections: + - options: + src: 'https://picsum.photos/1200/1200?waves' + fit: 'cover' + align: 'top_left' + type: 'image' + content: '' + type: 'image' + - options: + flex: 2 + sub_sections: + - content: |- + + # Two Column HGoes here + This is a two-column layout. You can use it to compare two different concepts or ideas. + options: + flex: 2 + type: 'column' + - content: |- + + ### Section Options + Easily customize the content of each section to suit your needs. + Use front matter to define the layout of each section + type: 'column' + - index: 4 + key: 'twktEcis' + options: + style: 'show_sections' + content: |- + {@section} + {@column align: bottom_right} + + ## First + + {@column} + + + ## Header + + {@section flex: 2} + + ### Left Section + Easily customize the content of each section to suit your needs. + + Use front matter to define the layout of each section + + {@column} + + #### Section Options + + ```yaml + sections: + left: + alignment: bottom_right + flex: 2 + right: + alignment: bottom_left + header: + alignment: bottom_left + ``` + sections: + - sub_sections: + - content: |- + + ## First + options: + align: 'bottom_right' + type: 'column' + - content: |- + + ## Header + type: 'column' + - options: + flex: 2 + sub_sections: + - content: |- + ### Left Section + Easily customize the content of each section to suit your needs. + Use front matter to define the layout of each section + type: 'column' + - content: |- + + #### Section Options + ```yaml + sections: + left: + alignment: bottom_right + flex: 2 + right: + alignment: bottom_left + header: + alignment: bottom_left + ``` + type: 'column' +assets: + - path: '.superdeck/generated/mermaid_llAVsepR.png' + width: 313 + height: 449 + - path: '.superdeck/generated/mermaid_BTVEzSEg.png' + width: 650 + height: 171 diff --git a/packages/superdeck/example/.superdeck/slides_copy.md b/packages/superdeck/example/.superdeck/slides_copy.md new file mode 100644 index 00000000..2e9f9d2e --- /dev/null +++ b/packages/superdeck/example/.superdeck/slides_copy.md @@ -0,0 +1,108 @@ +--- +style: 'custom' +--- +{@column} +## This is an example of a widgets + +{@widget name: demo} + +{@column} + +```dart +import 'package:flutter/material.dart'; + +void main() { + final style = Style( + $box.padding.all(), + $box.border.all(), + ); +} + +``` + +--- +null +--- +![Mermaid Diagram](.superdeck/generated/mermaid_llAVsepR.png) + +{@column flex: 3} + +![Mermaid Diagram](.superdeck/generated/mermaid_BTVEzSEg.png) + + + + +--- +style: 'quote' +--- +{@section} +{@column align: bottom_right flex: 3} +# This presentation will be great + +{@column} + +{@section} + + +{@column } +{@column flex: 2 align: top_right} +> Create your Flutter presentations faster and easier than ever. +> You can quote me on that +> ### Leo + +--- +style: 'show_sections' +--- +{@section} +{@image src: https://picsum.photos/1200/1200?waves align: top_left fit: cover} + +{@section flex: 2} +{@column flex: 2} +# Two Column HGoes here + +This is a two-column layout. You can use it to compare two different concepts or ideas. + + +{@column} + +### Section Options + +Easily customize the content of each section to suit your needs. + +Use front matter to define the layout of each section + +--- +style: 'show_sections' +--- +{@section} +{@column align: bottom_right} + +## First + +{@column} + + +## Header + +{@section flex: 2} + +### Left Section +Easily customize the content of each section to suit your needs. + +Use front matter to define the layout of each section + +{@column} + +#### Section Options + +```yaml +sections: + left: + alignment: bottom_right + flex: 2 + right: + alignment: bottom_left + header: + alignment: bottom_left +``` + diff --git a/packages/superdeck/example/slides.md b/packages/superdeck/example/slides.md index f75cd799..408bf18b 100644 --- a/packages/superdeck/example/slides.md +++ b/packages/superdeck/example/slides.md @@ -2,12 +2,12 @@ style: custom --- -{@content blue: car} +{@column} ## This is an example of a widgets -{@widget name: demo } +{@widget name: demo} -{@content} +{@column} ```dart import 'package:flutter/material.dart'; @@ -35,7 +35,7 @@ graph TD F --> B ``` -{@content flex: 3} +{@column flex: 3} ```mermaid sequenceDiagram @@ -51,17 +51,17 @@ sequenceDiagram style: quote --- -{@header} -{@content align: bottom_right | flex: 3} +{@section} +{@column align: bottom_right flex: 3} # This presentation will be great -{@content} +{@column} -{@body} +{@section} -{@content } -{@content flex: 2 | align: top_right} +{@column } +{@column flex: 2 align: top_right} > Create your Flutter presentations faster and easier than ever. > You can quote me on that > ### Leo @@ -71,17 +71,17 @@ style: quote style: show_sections --- -{@header} -{@image src: https://picsum.photos/1200/1200?waves | align: top_left | fit: cover} +{@section} +{@image src: https://picsum.photos/1200/1200?waves align: top_left fit: cover} -{@body flex: 2} -{@content flex: 2} +{@section flex: 2} +{@column flex: 2} # Two Column HGoes here This is a two-column layout. You can use it to compare two different concepts or ideas. -{@content} +{@column} ### Section Options @@ -93,24 +93,24 @@ Use front matter to define the layout of each section style: show_sections --- -{@header} -{@content align: bottom_right} +{@section} +{@column align: bottom_right} ## First -{@content} +{@column} ## Header -{@body flex: 2} +{@section flex: 2} ### Left Section Easily customize the content of each section to suit your needs. Use front matter to define the layout of each section -{@content} +{@column} #### Section Options diff --git a/packages/superdeck/lib/components/molecules/slide_content.dart b/packages/superdeck/lib/components/molecules/slide_content.dart index a864a4f0..a1a51b42 100644 --- a/packages/superdeck/lib/components/molecules/slide_content.dart +++ b/packages/superdeck/lib/components/molecules/slide_content.dart @@ -108,6 +108,9 @@ class WidgetBlock extends StatelessWidget { if (widgetBuilder == null) { return Container( color: Colors.red, + child: Center( + child: Text('Widget not found: ${options.name}'), + ), ); } diff --git a/packages/superdeck/lib/schema/schema_model.dart b/packages/superdeck/lib/schema/schema_model.dart deleted file mode 100644 index ff327a5c..00000000 --- a/packages/superdeck/lib/schema/schema_model.dart +++ /dev/null @@ -1,162 +0,0 @@ -import 'schema_validation.dart'; -import 'schema_values.dart'; -import 'validators.dart'; - -typedef JSON = Map; - -class SchemaMap extends SchemaValue> { - final Map properties; - final bool additionalProperties; - const SchemaMap( - this.properties, { - super.optional = true, - this.additionalProperties = false, - super.validators = const [], - }); - - @override - SchemaMap copyWith({ - bool? optional, - bool? additionalProperties, - Map? properties, - List>>? validators, - }) { - return SchemaMap( - properties ?? this.properties, - additionalProperties: additionalProperties ?? this.additionalProperties, - optional: optional ?? optionalValue, - validators: validators ?? this.validators, - ); - } - - @override - Map? tryParse(Object? value) { - return value is Map ? value : null; - } - - SchemaMap mergeSchema(SchemaMap schema) { - return merge( - schema.properties, - additionalProperties: schema.additionalProperties, - ); - } - - T? getSchemaValue(String key) { - return properties[key] as T?; - } - - SchemaMap merge( - Map properties, { - bool? additionalProperties, - bool? optional, - }) { - // if property SchemaValue is of SchemaMap, we need to merge them - final mergedProperties = {...this.properties}; - - for (final entry in properties.entries) { - final key = entry.key; - final prop = entry.value; - - final existingProp = mergedProperties[key]; - - if (existingProp is SchemaMap && prop is SchemaMap) { - mergedProperties[key] = existingProp.merge(prop.properties); - } else { - mergedProperties[key] = prop; - } - } - - return copyWith( - properties: mergedProperties, - optional: optional, - additionalProperties: additionalProperties, - ); - } - - @override - SchemaValidationResult validate(List path, Object? value) { - if (value == null) { - return optionalValue - ? SchemaValidationResult.valid(path) - : SchemaValidationResult.requiredPropMissing(path); - } - - final parsedValue = tryParse(value); - - if (parsedValue == null) { - return SchemaValidationResult.invalidType( - path, - value, - {}.toString(), - ); - } - - final keys = parsedValue.keys.toSet(); - - final required = properties.entries - .where((entry) => !entry.value.optionalValue) - .map((entry) => entry.key); - - final requiredKeys = required.toSet(); - - if (!keys.containsAll(requiredKeys)) { - return SchemaValidationResult( - key: path, - errors: requiredKeys - .difference(keys) - .map(SchemaError.requiredPropMissing) - .toList()); - } - - if (additionalProperties == false) { - final extraKeys = keys.difference(properties.keys.toSet()); - if (extraKeys.isNotEmpty) { - return SchemaValidationResult( - key: path, - errors: - extraKeys.map(SchemaError.unallowedAdditionalProperty).toList(), - ); - } - } - - for (final entry in parsedValue.entries) { - final key = entry.key; - final prop = properties[key]; - - if (prop == null) { - return additionalProperties == false - ? SchemaValidationResult( - key: path, - errors: [SchemaError.unallowedAdditionalProperty(key)]) - : SchemaValidationResult.valid(path); - } - - final result = prop.validate([...path, key], entry.value); - if (!result.isValid) { - return result; - } - } - - return SchemaValidationResult.valid(path); - } -} - -class SchemaShape extends SchemaMap { - const SchemaShape( - super.properties, { - super.additionalProperties = false, - }); -} - -typedef _DoubleType = double; - -class Schema { - const Schema._(); - - static const string = SchemaValue(); - static const map = SchemaShape.new; - static const double = SchemaValue<_DoubleType>(); - static const integer = SchemaValue(); - static const boolean = SchemaValue(); - static const any = SchemaShape({}, additionalProperties: true); -} diff --git a/packages/superdeck/lib/schema/schema_validation.dart b/packages/superdeck/lib/schema/schema_validation.dart deleted file mode 100644 index b37f1428..00000000 --- a/packages/superdeck/lib/schema/schema_validation.dart +++ /dev/null @@ -1,124 +0,0 @@ -import 'package:dart_mappable/dart_mappable.dart'; - -part 'schema_validation.mapper.dart'; - -typedef JSON = Map; - -class SchemaValidationException implements Exception { - final SchemaValidationResult result; - - const SchemaValidationException(this.result); -} - -enum SchemaErrorType { - unallowedAdditionalProperty, - enumViolated, - requiredPropMissing, - invalidType, - constraints, - unknown; -} - -@MappableClass() -class SchemaError with SchemaErrorMappable { - final SchemaErrorType type; - final String message; - - const SchemaError.unknown() - : type = SchemaErrorType.unknown, - message = 'Unknown error'; - - const SchemaError.constraints(this.message) - : type = SchemaErrorType.constraints; - - const SchemaError.unallowedAdditionalProperty(String property) - : type = SchemaErrorType.unallowedAdditionalProperty, - message = 'Unallowed property: [$property]'; - - const SchemaError.enumViolated(String value, List possibleValues) - : type = SchemaErrorType.enumViolated, - message = 'Wrong value: [$value] \n\n Possible values: $possibleValues'; - - const SchemaError.requiredPropMissing(String property) - : type = SchemaErrorType.requiredPropMissing, - message = 'Missing prop: [$property]'; - - const SchemaError.invalidType(Type value, String expectedType) - : type = SchemaErrorType.invalidType, - message = 'Invalid type: [$expectedType] got [$value]'; - - @override - String toString() { - return 'SchemaValidationError{type: $type, message: $message}'; - } -} - -@MappableClass() -class SchemaValidationResult with SchemaValidationResultMappable { - final List key; - final List errors; - - const SchemaValidationResult({ - required this.key, - required this.errors, - }); - - const SchemaValidationResult.valid(this.key) : errors = const []; - - factory SchemaValidationResult.invalidType( - List path, - Object value, - String expectedType, - ) { - return SchemaValidationResult( - key: path, - errors: [ - SchemaError.invalidType( - value.runtimeType, - expectedType, - ) - ], - ); - } - - factory SchemaValidationResult.unallowedAdditionalProperty( - List path, String property) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.unallowedAdditionalProperty(property)], - ); - } - - factory SchemaValidationResult.enumViolated( - List path, String value, List possibleValues) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.enumViolated(value, possibleValues)], - ); - } - - factory SchemaValidationResult.requiredPropMissing(List path) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.requiredPropMissing(path.last)], - ); - } - - factory SchemaValidationResult.constraints( - List path, String message) { - return SchemaValidationResult( - key: path, - errors: [SchemaError.constraints(message)], - ); - } - - @override - String toString() { - return '${errors.isEmpty ? 'VALID' : 'INVALID'}${errors.isEmpty ? ', Errors: $errors' : ''}'; - } - - bool get isValid => errors.isEmpty; - - static const fromMap = SchemaValidationResultMapper.fromMap; - static const fromJson = SchemaValidationResultMapper.fromJson; -} diff --git a/packages/superdeck/lib/schema/schema_validation.mapper.dart b/packages/superdeck/lib/schema/schema_validation.mapper.dart deleted file mode 100644 index 1ea4d17a..00000000 --- a/packages/superdeck/lib/schema/schema_validation.mapper.dart +++ /dev/null @@ -1,248 +0,0 @@ -// coverage:ignore-file -// GENERATED CODE - DO NOT MODIFY BY HAND -// ignore_for_file: type=lint -// ignore_for_file: unused_element, unnecessary_cast, override_on_non_overriding_member -// ignore_for_file: strict_raw_type, inference_failure_on_untyped_parameter - -part of 'schema_validation.dart'; - -class SchemaErrorMapper extends ClassMapperBase { - SchemaErrorMapper._(); - - static SchemaErrorMapper? _instance; - static SchemaErrorMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SchemaErrorMapper._()); - } - return _instance!; - } - - @override - final String id = 'SchemaError'; - - static SchemaErrorType _$type(SchemaError v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - static String _$message(SchemaError v) => v.message; - static const Field _f$message = - Field('message', _$message, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #type: _f$type, - #message: _f$message, - }; - @override - final bool ignoreNull = true; - - static SchemaError _instantiate(DecodingData data) { - return SchemaError.unknown(); - } - - @override - final Function instantiate = _instantiate; - - static SchemaError fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SchemaError fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SchemaErrorMappable { - String toJson() { - return SchemaErrorMapper.ensureInitialized() - .encodeJson(this as SchemaError); - } - - Map toMap() { - return SchemaErrorMapper.ensureInitialized() - .encodeMap(this as SchemaError); - } - - SchemaErrorCopyWith get copyWith => - _SchemaErrorCopyWithImpl(this as SchemaError, $identity, $identity); - @override - String toString() { - return SchemaErrorMapper.ensureInitialized() - .stringifyValue(this as SchemaError); - } - - @override - bool operator ==(Object other) { - return SchemaErrorMapper.ensureInitialized() - .equalsValue(this as SchemaError, other); - } - - @override - int get hashCode { - return SchemaErrorMapper.ensureInitialized().hashValue(this as SchemaError); - } -} - -extension SchemaErrorValueCopy<$R, $Out> - on ObjectCopyWith<$R, SchemaError, $Out> { - SchemaErrorCopyWith<$R, SchemaError, $Out> get $asSchemaError => - $base.as((v, t, t2) => _SchemaErrorCopyWithImpl(v, t, t2)); -} - -abstract class SchemaErrorCopyWith<$R, $In extends SchemaError, $Out> - implements ClassCopyWith<$R, $In, $Out> { - $R call(); - SchemaErrorCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); -} - -class _SchemaErrorCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SchemaError, $Out> - implements SchemaErrorCopyWith<$R, SchemaError, $Out> { - _SchemaErrorCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SchemaErrorMapper.ensureInitialized(); - @override - $R call() => $apply(FieldCopyWithData({})); - @override - SchemaError $make(CopyWithData data) => SchemaError.unknown(); - - @override - SchemaErrorCopyWith<$R2, SchemaError, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _SchemaErrorCopyWithImpl($value, $cast, t); -} - -class SchemaValidationResultMapper - extends ClassMapperBase { - SchemaValidationResultMapper._(); - - static SchemaValidationResultMapper? _instance; - static SchemaValidationResultMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SchemaValidationResultMapper._()); - SchemaErrorMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'SchemaValidationResult'; - - static List _$key(SchemaValidationResult v) => v.key; - static const Field> _f$key = - Field('key', _$key); - static List _$errors(SchemaValidationResult v) => v.errors; - static const Field> _f$errors = - Field('errors', _$errors); - - @override - final MappableFields fields = const { - #key: _f$key, - #errors: _f$errors, - }; - @override - final bool ignoreNull = true; - - static SchemaValidationResult _instantiate(DecodingData data) { - return SchemaValidationResult( - key: data.dec(_f$key), errors: data.dec(_f$errors)); - } - - @override - final Function instantiate = _instantiate; - - static SchemaValidationResult fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SchemaValidationResult fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin SchemaValidationResultMappable { - String toJson() { - return SchemaValidationResultMapper.ensureInitialized() - .encodeJson(this as SchemaValidationResult); - } - - Map toMap() { - return SchemaValidationResultMapper.ensureInitialized() - .encodeMap(this as SchemaValidationResult); - } - - SchemaValidationResultCopyWith - get copyWith => _SchemaValidationResultCopyWithImpl( - this as SchemaValidationResult, $identity, $identity); - @override - String toString() { - return SchemaValidationResultMapper.ensureInitialized() - .stringifyValue(this as SchemaValidationResult); - } - - @override - bool operator ==(Object other) { - return SchemaValidationResultMapper.ensureInitialized() - .equalsValue(this as SchemaValidationResult, other); - } - - @override - int get hashCode { - return SchemaValidationResultMapper.ensureInitialized() - .hashValue(this as SchemaValidationResult); - } -} - -extension SchemaValidationResultValueCopy<$R, $Out> - on ObjectCopyWith<$R, SchemaValidationResult, $Out> { - SchemaValidationResultCopyWith<$R, SchemaValidationResult, $Out> - get $asSchemaValidationResult => - $base.as((v, t, t2) => _SchemaValidationResultCopyWithImpl(v, t, t2)); -} - -abstract class SchemaValidationResultCopyWith< - $R, - $In extends SchemaValidationResult, - $Out> implements ClassCopyWith<$R, $In, $Out> { - ListCopyWith<$R, String, ObjectCopyWith<$R, String, String>> get key; - ListCopyWith<$R, SchemaError, - SchemaErrorCopyWith<$R, SchemaError, SchemaError>> get errors; - $R call({List? key, List? errors}); - SchemaValidationResultCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _SchemaValidationResultCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SchemaValidationResult, $Out> - implements - SchemaValidationResultCopyWith<$R, SchemaValidationResult, $Out> { - _SchemaValidationResultCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - SchemaValidationResultMapper.ensureInitialized(); - @override - ListCopyWith<$R, String, ObjectCopyWith<$R, String, String>> get key => - ListCopyWith($value.key, (v, t) => ObjectCopyWith(v, $identity, t), - (v) => call(key: v)); - @override - ListCopyWith<$R, SchemaError, - SchemaErrorCopyWith<$R, SchemaError, SchemaError>> - get errors => ListCopyWith($value.errors, (v, t) => v.copyWith.$chain(t), - (v) => call(errors: v)); - @override - $R call({List? key, List? errors}) => - $apply(FieldCopyWithData( - {if (key != null) #key: key, if (errors != null) #errors: errors})); - @override - SchemaValidationResult $make(CopyWithData data) => SchemaValidationResult( - key: data.get(#key, or: $value.key), - errors: data.get(#errors, or: $value.errors)); - - @override - SchemaValidationResultCopyWith<$R2, SchemaValidationResult, $Out2> - $chain<$R2, $Out2>(Then<$Out2, $R2> t) => - _SchemaValidationResultCopyWithImpl($value, $cast, t); -} diff --git a/packages/superdeck/lib/schema/schema_values.dart b/packages/superdeck/lib/schema/schema_values.dart deleted file mode 100644 index bf05c956..00000000 --- a/packages/superdeck/lib/schema/schema_values.dart +++ /dev/null @@ -1,214 +0,0 @@ -import 'package:flutter/material.dart'; - -import 'schema_validation.dart'; -import 'validators.dart'; - -class SchemaValue { - const SchemaValue({ - bool optional = true, - this.validators = const [], - }) : optionalValue = optional; - - SchemaValue copyWith({ - bool? optional, - List>? validators, - }) { - return SchemaValue( - optional: optional ?? this.optionalValue, - validators: validators ?? this.validators, - ); - } - - SchemaValue required() { - return copyWith(optional: false); - } - - SchemaValue optional() { - return copyWith(optional: true); - } - - @protected - final bool optionalValue; - - final List> validators; - - bool get requiredValue => !optionalValue; - - V? tryParse(Object? value) { - if (value is V) { - return value; - } - if (V is int) { - return _tryParseInt(value) as V?; - } - - if (V is double) { - return _tryParseDouble(value) as V?; - } - - if (V is bool) { - return _tryParseBool(value) as V?; - } - - return null; - } - - void validateOrThrow(Object value) { - final result = validate([], value); - if (!result.isValid) { - throw SchemaValidationException(result); - } - } - - SchemaValidationResult validate(List path, Object? value) { - if (value == null) { - return optionalValue - ? SchemaValidationResult.valid(path) - : SchemaValidationResult.requiredPropMissing(path); - } - - final valueType = tryParse(value); - - if (valueType == null) { - return SchemaValidationResult.invalidType(path, value, V.toString()); - } - - for (final validator in validators) { - final error = validator.validate(valueType); - if (error != null) { - return SchemaValidationResult.constraints(path, error.message); - } - } - - return SchemaValidationResult.valid(path); - } -} - -/// Used to remove value from SchemaMap - -double? _tryParseDouble(Object? value) { - if (value is double) { - return value; - } - - if (value is int) { - return value.toDouble(); - } - - if (value is String) { - return double.tryParse(value); - } - - return null; -} - -bool? _tryParseBool(Object? value) { - if (value is bool) { - return value; - } - - if (value is String) { - if (value.toLowerCase() == 'true') { - return true; - } else if (value.toLowerCase() == 'false') { - return false; - } - } - - return null; -} - -int? _tryParseInt(Object? value) { - if (value is int) { - return value; - } - - if (value is String) { - return int.tryParse(value); - } - - return null; -} - -class BooleanSchema extends SchemaValue { - const BooleanSchema({super.optional = false, super.validators = const []}); - - @override - BooleanSchema copyWith({ - bool? optional, - List>? validators, - }) { - return BooleanSchema( - optional: optional ?? optionalValue, - validators: validators ?? this.validators, - ); - } - - @override - bool? tryParse(Object? value) { - if (value is bool) { - return value; - } - - if (value is String) { - if (value.toLowerCase() == 'true') { - return true; - } else if (value.toLowerCase() == 'false') { - return false; - } - } - - return null; - } -} - -extension StringSchemaExt on SchemaValue { - SchemaValue isPosixPath() { - return copyWith(validators: [ - ...validators, - const PosixPathValidator(), - ]); - } - - SchemaValue isEmail() { - return copyWith(validators: [ - ...validators, - const EmailValidator(), - ]); - } - - SchemaValue isHexColor() { - return copyWith(validators: [ - ...validators, - const HexColorValidator(), - ]); - } - - SchemaValue isArray(List values) { - return copyWith(validators: [ - ...validators, - ArrayValidator(values), - ]); - } - - SchemaValue isEmpty() { - return copyWith(validators: [ - ...validators, - const IsEmptyValidator(), - ]); - } - - SchemaValue minLength(int min) { - return copyWith(validators: [ - ...validators, - MinLengthValidator(min), - ]); - } - - SchemaValue maxLength(int max) { - return copyWith(validators: [ - ...validators, - MaxLengthValidator(max), - ]); - } -} diff --git a/packages/superdeck/lib/schema/validators.dart b/packages/superdeck/lib/schema/validators.dart deleted file mode 100644 index 230e60c6..00000000 --- a/packages/superdeck/lib/schema/validators.dart +++ /dev/null @@ -1,218 +0,0 @@ -import 'schema_validation.dart'; - -abstract class Validator { - const Validator(); - - SchemaError? validate(T value); -} - -class ArrayValidator extends Validator { - final List values; - const ArrayValidator(this.values); - - @override - SchemaError? validate(Object? value) { - if (value is String) { - if (values.contains(value)) { - return null; - } - } - return SchemaError.enumViolated( - '$value', - values, - ); - } -} - -class EmailValidator extends RegexValidator { - const EmailValidator() - : super( - name: 'email', - pattern: r'^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}$', - example: 'example@domain.com', - ); -} - -class UrlValidator extends RegexValidator { - const UrlValidator() - : super( - name: 'url', - pattern: - r'^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$', - example: 'https://example.com', - ); -} - -class PosixPathValidator extends RegexValidator { - const PosixPathValidator() - : super( - name: 'posix path', - example: '/path/to/file', - pattern: r'^(/[^/ ]*)+/?$', - ); -} - -class HexColorValidator extends RegexValidator { - const HexColorValidator() - : super( - name: 'hex color', - example: '#ff0000', - pattern: r'^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$', - ); -} - -class RegexValidator extends Validator { - final String name; - final String pattern; - final String example; - const RegexValidator({ - required this.name, - required this.pattern, - required this.example, - }); - - @override - SchemaError? validate(String value) { - if (!RegExp(pattern).hasMatch(value)) { - return SchemaError.constraints( - 'String does is not $name. Example: $example', - ); - } - - return null; - } -} - -class IsEmptyValidator extends Validator { - const IsEmptyValidator(); - - @override - SchemaError? validate(String value) { - return value.isEmpty - ? null - : const SchemaError.constraints('String is not empty'); - } -} - -class MinLengthValidator extends Validator { - final int min; - const MinLengthValidator(this.min); - - @override - SchemaError? validate(String value) { - return value.length >= min - ? null - : SchemaError.constraints( - 'String length is less than the minimum required length: $min', - ); - } -} - -class MaxLengthValidator extends Validator { - final int max; - const MaxLengthValidator(this.max); - - @override - SchemaError? validate(String value) { - return value.length <= max - ? null - : SchemaError.constraints( - 'String length is greater than the maximum required length: $max', - ); - } -} - -class MinValueValidator extends Validator { - final num min; - const MinValueValidator(this.min); - - @override - SchemaError? validate(num value) { - return value >= min - ? null - : SchemaError.constraints( - 'Value is less than the minimum required value: $min', - ); - } -} - -class MaxValueValidator extends Validator { - final num max; - const MaxValueValidator(this.max); - - @override - SchemaError? validate(num value) { - return value <= max - ? null - : SchemaError.constraints( - 'Value is greater than the maximum required value: $max', - ); - } -} - -class RangeValidator extends Validator { - final num min; - final num max; - const RangeValidator(this.min, this.max); - - @override - SchemaError? validate(num value) { - return value >= min && value <= max - ? null - : SchemaError.constraints( - 'Value is not within the required range: $min - $max', - ); - } -} - -class RequiredValidator extends Validator { - const RequiredValidator(); - - @override - SchemaError? validate(value) { - return value != null ? null : const SchemaError.constraints('is required'); - } -} - -// unique item list validator -class UniqueItemsValidator extends Validator> { - const UniqueItemsValidator(); - - @override - SchemaError? validate(List value) { - final unique = value.toSet().toList(); - return unique.length == value.length - ? null - : const SchemaError.constraints('List items are not unique'); - } -} - -// min length of list validator -class MinItemsValidator extends Validator> { - final int min; - const MinItemsValidator(this.min); - - @override - SchemaError? validate(List value) { - return value.length >= min - ? null - : SchemaError.constraints( - 'List length is less than the minimum required length: $min', - ); - } -} - -// max length of list validator -class MaxItemsValidator extends Validator> { - final int max; - const MaxItemsValidator(this.max); - - @override - SchemaError? validate(List value) { - return value.length <= max - ? null - : SchemaError.constraints( - 'List length is greater than the maximum required length: $max', - ); - } -} diff --git a/packages/superdeck/lib/services/reference_service.dart b/packages/superdeck/lib/services/reference_service.dart index 20aa3bb2..116de60f 100644 --- a/packages/superdeck/lib/services/reference_service.dart +++ b/packages/superdeck/lib/services/reference_service.dart @@ -58,17 +58,17 @@ class ReferenceService { } } - Future loadReference() async { + Future loadReference() async { final slidesJson = await loadString(_slideRef.path); try { if (kCanRunProcess) { - return compute(SuperDeckReference.fromJson, slidesJson); + return compute(ReferenceDto.fromJson, slidesJson); } else { - return SuperDeckReference.fromJson(slidesJson); + return ReferenceDto.fromJson(slidesJson); } } catch (e) { log('Error loading deck: $e'); - return const SuperDeckReference.empty(); + return const ReferenceDto.empty(); } } } diff --git a/packages/superdeck/lib/templates/slide_template.dart b/packages/superdeck/lib/templates/slide_template.dart index 06dadb94..39594fba 100644 --- a/packages/superdeck/lib/templates/slide_template.dart +++ b/packages/superdeck/lib/templates/slide_template.dart @@ -14,23 +14,23 @@ class SlideTemplate extends StatelessWidget { Widget build(BuildContext context) { return Column( children: config.sections.map((section) { - final sectionFlex = section.options.flex ?? 1; + final sectionFlex = section.options?.flex ?? 1; return Expanded( flex: sectionFlex, child: Row( - children: section.contentSections.map((part) { + children: section.subSections.map((part) { return Expanded( flex: part.options.flex ?? 1, child: switch (part) { - (ImagePart p) => ImageBlock( + (ImageBlockDto p) => ImageBlock( options: p.options, ), - (ContentPart p) => ContentBlock( + (ColumnBlockDto p) => ContentBlock( content: p.content, options: p.options, ), - (WidgetPart p) => WidgetBlock( + (WidgetBlockDto p) => WidgetBlock( options: p.options, ), }, diff --git a/packages/superdeck/pubspec.yaml b/packages/superdeck/pubspec.yaml index dc952337..f587049c 100644 --- a/packages/superdeck/pubspec.yaml +++ b/packages/superdeck/pubspec.yaml @@ -25,7 +25,7 @@ dependencies: path_provider: ^2.1.4 url_launcher: ^6.2.6 mix: ^1.4.4 - mix_annotations: ^0.2.1 + mix_annotations: ^0.3.0 flutter_markdown: ^0.7.3 superdeck_core: ^0.0.1 markdown: ^7.2.2 diff --git a/packages/superdeck/test/models/deck_reference_model_test.dart b/packages/superdeck/test/models/deck_reference_model_test.dart index 86de1e3b..53be3c42 100644 --- a/packages/superdeck/test/models/deck_reference_model_test.dart +++ b/packages/superdeck/test/models/deck_reference_model_test.dart @@ -12,7 +12,7 @@ void main() { final contents = await fixture.readAsString(); final stopwatch = Stopwatch()..start(); - SuperDeckReference.fromJson(contents); + ReferenceDto.fromJson(contents); stopwatch.stop(); // Use Isolate.compute to run the parsing in a separate isolate @@ -20,7 +20,7 @@ void main() { final stopwatch2 = Stopwatch()..start(); - await compute(SuperDeckReference.fromJson, contents); + await compute(ReferenceDto.fromJson, contents); stopwatch2.stop(); @@ -32,7 +32,7 @@ void main() { test('parses a json deck reference', () async { final fixture = File('test/fixtures/deck_reference.json'); final contents = await fixture.readAsString(); - final deckReference = SuperDeckReference.fromJson(contents); + final deckReference = ReferenceDto.fromJson(contents); expect(deckReference, isNotNull); expect(deckReference.config, isNotNull); diff --git a/packages/superdeck_cli/bin/watch.dart b/packages/superdeck_cli/bin/watch.dart index c8181632..d02c7086 100644 --- a/packages/superdeck_cli/bin/watch.dart +++ b/packages/superdeck_cli/bin/watch.dart @@ -1,13 +1,11 @@ import 'dart:io'; import 'package:args/command_runner.dart'; -import 'package:superdeck_cli/src/slides_loader.dart'; +import 'package:superdeck_cli/src/deck_generator.dart'; void main(List arguments) async { try { - final loader = SlidesLoader(); - await loader.generate(); - await loader.watch(); + await SlidesLoader().watch(); } on UsageException catch (e) { print(e); exit(64); diff --git a/packages/superdeck_cli/lib/src/constants.dart b/packages/superdeck_cli/lib/src/constants.dart index b6b72157..04b38ba9 100644 --- a/packages/superdeck_cli/lib/src/constants.dart +++ b/packages/superdeck_cli/lib/src/constants.dart @@ -2,12 +2,13 @@ import 'dart:io'; import 'package:path/path.dart' as p; -final File kMarkdownFile = File('slides.md'); +final kMarkdownFile = File('slides.md'); -final Directory kAssetsDir = Directory(p.join('.superdeck')); +final kAssetsDir = Directory(p.join('.superdeck')); -final Directory kGeneratedAssetsDir = - Directory(p.join(kAssetsDir.path, 'generated')); -final File kProjectConfigFile = File('superdeck.yaml'); +final kGeneratedAssetsDir = Directory(p.join(kAssetsDir.path, 'generated')); +final kProjectConfigFile = File('superdeck.yaml'); -final File kReferenceFile = File(p.join(kAssetsDir.path, 'slides.json')); +final kReferenceFile = File(p.join(kAssetsDir.path, 'slides.json')); +final kReferenceFileYaml = File(p.join(kAssetsDir.path, 'slides.yaml')); +final kReferenceMarkdownCopy = File(p.join(kAssetsDir.path, 'slides_copy.md')); diff --git a/packages/superdeck_cli/lib/src/slides_loader.dart b/packages/superdeck_cli/lib/src/deck_generator.dart similarity index 91% rename from packages/superdeck_cli/lib/src/slides_loader.dart rename to packages/superdeck_cli/lib/src/deck_generator.dart index 7b6e3e18..08bd1957 100644 --- a/packages/superdeck_cli/lib/src/slides_loader.dart +++ b/packages/superdeck_cli/lib/src/deck_generator.dart @@ -9,14 +9,15 @@ import 'package:superdeck_cli/src/tasks/mermaid_task.dart'; import 'package:superdeck_cli/src/tasks/slide_thumbnail_task.dart'; import 'package:watcher/watcher.dart'; -import 'slides_pipeline.dart'; +import 'generator_pipeline.dart'; -String _markdownContents = ''; +String _previousMarkdownContents = ''; class SlidesLoader { SlidesLoader(); Future watch() async { + await generate(); final watchingLabel = 'Watching for changes...'; logger ..newLine() @@ -25,8 +26,8 @@ class SlidesLoader { await for (final event in watcher.events) { if (event.type == ChangeType.MODIFY) { final newContents = await kMarkdownFile.readAsString(); - if (newContents != _markdownContents) { - _markdownContents = newContents; + if (newContents != _previousMarkdownContents) { + _previousMarkdownContents = newContents; try { await generate(); } finally { diff --git a/packages/superdeck_cli/lib/src/slides_pipeline.dart b/packages/superdeck_cli/lib/src/generator_pipeline.dart similarity index 74% rename from packages/superdeck_cli/lib/src/slides_pipeline.dart rename to packages/superdeck_cli/lib/src/generator_pipeline.dart index b90a384d..a7422080 100644 --- a/packages/superdeck_cli/lib/src/slides_pipeline.dart +++ b/packages/superdeck_cli/lib/src/generator_pipeline.dart @@ -9,10 +9,11 @@ import 'package:puppeteer/puppeteer.dart'; import 'package:superdeck_cli/src/constants.dart'; import 'package:superdeck_cli/src/helpers/exceptions.dart'; import 'package:superdeck_cli/src/helpers/extensions.dart'; -import 'package:superdeck_cli/src/helpers/section_parsing.dart'; import 'package:superdeck_cli/src/helpers/short_hash_id.dart'; import 'package:superdeck_cli/src/helpers/slide_parser.dart'; +import 'package:superdeck_cli/src/parsers/section_parser/section_parsing.dart'; import 'package:superdeck_core/superdeck_core.dart'; +import 'package:yaml_writer/yaml_writer.dart'; typedef MarkdownReplacement = ({ Pattern pattern, @@ -118,9 +119,7 @@ class TaskPipeline { ); Future getBrowser() async { - if (_browser == null) { - _browser = await puppeteer.launch(); - } + _browser ??= await puppeteer.launch(); return _browser!; } @@ -133,13 +132,14 @@ class TaskPipeline { return controller; } - Future run() async { + Future run() async { await kMarkdownFile.ensureExists(); await kGeneratedAssetsDir.ensureExists(); await kReferenceFile.ensureExists(); final markdownRaw = kMarkdownFile.readAsStringSync(); - final loadedReference = SuperDeckReference.loadFile(kReferenceFile); + // final loadedReference = SuperDeckReference.loadYaml(kReferenceFileYaml); + final loadedReference = ReferenceDto.loadFile(kReferenceFile); final slides = SlideParser.run(markdownRaw); @@ -166,17 +166,22 @@ class TaskPipeline { await _cleanupGeneratedFiles(result.neededAssets); - builders.forEach((builder) async => await builder.dispose()); + for (var builder in builders) { + await builder.dispose(); + } _browser?.close(); - final reference = SuperDeckReference( + final reference = ReferenceDto( config: Config.loadFile(kProjectConfigFile), slides: result.slides, assets: result.neededAssets, ); await kReferenceFile.writeAsString(prettyJson(reference.toMap())); + await kReferenceFileYaml + .writeAsString(YamlWriter().write(reference.toMap())); + await kReferenceMarkdownCopy.writeAsString(reference.toMarkdown()); return reference; } @@ -206,12 +211,6 @@ Future _applyMarkdownReplacements( await kMarkdownFile.writeAsString(markdownRaw); } -enum AssetExtension { - png, - - svg, -} - abstract class Task { final String taskName; const Task(this.taskName); @@ -281,3 +280,76 @@ Future> _loadGeneratedFiles() async { return files; } + +extension on Slide { + String toMarkdown() { + final buffer = StringBuffer(); + + buffer.writeln('---'); + buffer.write(YamlWriter().write(options?.toMap())); + buffer.writeln('---'); + + buffer.writeln(content); + + // for (var section in sections) { + // buffer.writeln(section.toMarkdown()); + // } + + return buffer.toString(); + } +} + +extension on ReferenceDto { + String toMarkdown() { + final buffer = StringBuffer(); + + for (var slide in slides) { + buffer.writeln(slide.toMarkdown()); + } + + return buffer.toString(); + } +} + +extension on SectionBlockDto { + String toMarkdown() { + final options = this.options?.toMap() ?? {}; + + final slideBuffer = StringBuffer(); + + final optionsBuffer = _optionsToString(options); + + slideBuffer.writeln('{@section$optionsBuffer}'); + + for (var section in subSections) { + final options = section.options?.toMap() ?? {}; + final optionsBuffer = _optionsToString(options); + + final type = section.toMap()['type']; + + slideBuffer.writeln('{@$type$optionsBuffer}'); + if (section is ColumnBlockDto) { + final contents = section.content.split('\n'); + for (var content in contents) { + slideBuffer.writeln(content); + } + } + slideBuffer.writeln(''); + } + + return slideBuffer.toString(); + } + + String _optionsToString(Map map) { + final buffer = StringBuffer(); + final cleanMap = {...map}..remove('type'); + for (var key in cleanMap.keys) { + final value = cleanMap[key]; + if (value != null) { + buffer.write(' $key: $value'); + } + } + + return buffer.toString(); + } +} diff --git a/packages/superdeck_cli/lib/src/helpers/exceptions.dart b/packages/superdeck_cli/lib/src/helpers/exceptions.dart index 4b428e00..6a4fcb58 100644 --- a/packages/superdeck_cli/lib/src/helpers/exceptions.dart +++ b/packages/superdeck_cli/lib/src/helpers/exceptions.dart @@ -1,4 +1,4 @@ -import 'package:superdeck_cli/src/slides_pipeline.dart'; +import 'package:superdeck_cli/src/generator_pipeline.dart'; import 'package:superdeck_core/superdeck_core.dart'; class SDMarkdownParsingException implements Exception { diff --git a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart b/packages/superdeck_cli/lib/src/helpers/section_parsing.dart deleted file mode 100644 index c0a20875..00000000 --- a/packages/superdeck_cli/lib/src/helpers/section_parsing.dart +++ /dev/null @@ -1,243 +0,0 @@ -import 'package:collection/collection.dart'; -import 'package:superdeck_cli/src/helpers/exceptions.dart'; -import 'package:superdeck_core/superdeck_core.dart'; - -const _tagMarker = '@'; - -const _startAsTag = '{' + _tagMarker; - -final _regexMatchTagContents = RegExp('{$_tagMarker(.*?)}'); - -T? _findEnumValue( - List values, - String value, -) { - return values.firstWhereOrNull( - (element) => element.name == value, - ); -} - -PartDto? parseBlock(String line) { - if (!_isSyntax(line)) { - return null; - } - - final (:tag, :options) = getTagContents(line); - - final sectionName = _findEnumValue( - SectionType.values, - tag, - ); - - if (sectionName != null) { - ContentOptions.schema.validateOrThrow(options); - return SectionDto.build( - sectionName, - options: ContentOptionsMapper.fromMap(options), - ); - } - - final subSectionName = _findEnumValue( - SubSectionType.values, - tag, - ); - - if (subSectionName != null) { - switch (subSectionName) { - case SubSectionType.content: - ContentOptions.schema.validateOrThrow(options); - return ContentPart( - content: '', - options: ContentOptionsMapper.fromMap(options), - ); - case SubSectionType.image: - ImageOptions.schema.validateOrThrow(options); - return ImagePart( - content: '', - options: ImageOptionsMapper.fromMap(options), - ); - case SubSectionType.widget: - WidgetOptions.schema.validateOrThrow(options); - return WidgetPart( - content: '', - options: WidgetOptionsMapper.fromMap(options), - ); - } - } - return null; -} - -List parseSections(String slideMarkdown) { - final lines = slideMarkdown.split('\n'); - - final rootSection = SectionDto.build(SectionType.root); - - final layoutParts = {rootSection}; - - // Start with the header - SectionDto currentSection = rootSection; - - int lineIndex = 0; - - for (final line in lines) { - lineIndex++; - final trimmedLine = line.trim(); - // Skip empty lines - if (trimmedLine.isEmpty) { - continue; - } - - if (trimmedLine.startsWith(_startAsTag) && - _regexMatchTagContents.firstMatch(trimmedLine) == null) { - throw Exception( - 'Invalid syntax on line ${lineIndex}. Missing closing tag', - ); - } - - if (!_isSyntax(trimmedLine)) { - currentSection = currentSection.addLine(line); - continue; - } - - PartDto? part; - try { - part = parseBlock(line); - } on SchemaValidationException catch (e) { - final message = e.result.errors.map((e) => e.message).join('\n'); - // get all lines before this one - final previousLines = lines.sublist(0, lineIndex); - final getOffset = previousLines.join('\n').length; - throw SDFormatException(message, slideMarkdown, getOffset); - } - - if (part == null) { - continue; - } - - if (part is SectionDto) { - if (part.type.index <= currentSection.type.index) { - throw Exception( - 'Invalid location tag on line ${lineIndex}. ${part.type.name} cannot be before ${currentSection.type.name}', - ); - } - - if (currentSection is RootLayoutPart) { - if (currentSection.contentSections.isNotEmpty) { - // throw error that says if to use any section wrapping all the content of the markdown - throw Exception( - 'Invalid location tag on line ${lineIndex}. ${part.type.name} cannot be before ${currentSection.type.name}', - ); - } - } - // Save current section before setting as current - layoutParts.add(currentSection); - currentSection = part; - } else if (part is ContentSectionPart) { - currentSection = currentSection.addSubSection(part); - } - } - - layoutParts.add(currentSection); - - // Return the parsed sections - // remove all sections that have empty parts - return layoutParts.where((part) { - return part.contentSections.isNotEmpty; - }).toList(); -} - -bool _isSyntax(String line) { - return _regexMatchTagContents.hasMatch(line.trim()); -} - -Map getOptionsMapFromLine( - String contents, -) { - if (contents.isEmpty) { - return {}; - } - try { - final params = contents.split('|').map((e) { - if (e.isEmpty) { - return ''; - } - final isKeyValue = e.contains(':'); - final parts = e.split(':').map((e) => e.trim()).toList(); - - Object? tryBooleanValue(String value) { - final lowercase = value.toLowerCase(); - if (lowercase == 'true') { - return true; - } else if (lowercase == 'false') { - return false; - } - return value; - } - - final key = parts.first; - // Treat as a boolean if no value is provided - final value = isKeyValue ? tryBooleanValue(parts.last) : true; - - return '$key: $value'; - }); - - // Join the formatted pairs back into a string - final formattedString = params.join('\n'); - return convertYamlToMap(formattedString); - } on Exception catch (e) { - throw FormatException('Error parsing tags: ${e}'); - } -} - -/// The separator used to split the tag from its options. -const _TAG_OPTION_SEPARATOR = ' '; - -/// Parses a line containing a tag and its options. -({String tag, Map options}) getTagContents(String line) { - // Remove any leading or trailing whitespace from the input line - line = line.trim(); - - // Check if the line matches the expected syntax - if (!_isSyntax(line)) { - // If not, throw an exception with a descriptive error message - throw FormatException('Invalid tag syntax: $line'); - } - - // Use a regular expression to match the contents of the tag - final match = _regexMatchTagContents.firstMatch(line); - - // If no match is found, throw an exception - if (match == null) { - throw FormatException('Failed to extract tag contents: $line'); - } - - // Extract the first capturing group from the regex match and trim any whitespace - // If the group is null or empty, use an empty string - final result = match.group(1)?.trim() ?? ''; - - // Split the result into parts using the defined separator - final parts = result.split(_TAG_OPTION_SEPARATOR); - - // Extract the tag (first part of the split result) - // If parts is empty, use an empty string - final tag = parts.isNotEmpty ? parts.first : ''; - - // Join the remaining parts (if any) back into a string for options parsing - // If there's only one part (just the tag), use an empty string - final optionsPart = - parts.length > 1 ? parts.sublist(1).join(_TAG_OPTION_SEPARATOR) : ''; - - // Parse the options string into a Map using a helper function - final options = getOptionsMapFromLine(optionsPart); - - // If the extracted tag is empty, throw an exception - if (tag.isEmpty) { - throw FormatException('Empty tag extracted: $line'); - } - - // Return a record containing the tag and options - return ( - tag: tag, - options: options, - ); -} diff --git a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart index 4481655c..32f732be 100644 --- a/packages/superdeck_cli/lib/src/helpers/slide_parser.dart +++ b/packages/superdeck_cli/lib/src/helpers/slide_parser.dart @@ -50,7 +50,7 @@ class SlideParser { return { 'index': index, 'content': e.content, - 'options': e.options, + if (e.options.isNotEmpty) 'options': e.options, 'key': e.key, }; }); diff --git a/packages/superdeck_cli/lib/src/parsers/section_parser/section_parsing.dart b/packages/superdeck_cli/lib/src/parsers/section_parser/section_parsing.dart new file mode 100644 index 00000000..ff2e1ebd --- /dev/null +++ b/packages/superdeck_cli/lib/src/parsers/section_parser/section_parsing.dart @@ -0,0 +1,174 @@ +import 'package:collection/collection.dart'; +import 'package:superdeck_cli/src/helpers/exceptions.dart'; +import 'package:superdeck_cli/src/parsers/section_parser/section_regex.dart'; +import 'package:superdeck_core/superdeck_core.dart'; + +BlockDto? _decodeBlock(String line) { + if (!isValidTag(line)) return null; + + final (:blockType, :options) = extractTagData(line); + + final hasOptions = options.isNotEmpty; + + switch (blockType) { + case BlockType.column: + ContentOptions.schema.validateOrThrow(options); + return ColumnBlockDto( + options: hasOptions ? ContentOptionsMapper.fromMap(options) : null, + ); + case BlockType.image: + ImageOptions.schema.validateOrThrow(options); + return ImageBlockDto( + options: hasOptions ? ImageOptionsMapper.fromMap(options) : null, + ); + case BlockType.widget: + WidgetOptions.schema.validateOrThrow(options); + return WidgetBlockDto( + options: hasOptions ? WidgetOptionsMapper.fromMap(options) : null, + ); + case BlockType.section: + ContentOptions.schema.validateOrThrow(options); + return SectionBlockDto( + options: hasOptions ? ContentOptionsMapper.fromMap(options) : null, + ); + } +} + +List parseSections(String slideMarkdown) { + final lines = slideMarkdown.split('\n'); + + final rootSection = SectionBlockDto(); + + final layoutParts = {rootSection}; + + // Start with the header + SectionBlockDto currentSection = rootSection; + + int lineIndex = 0; + + for (final line in lines) { + lineIndex++; + final trimmedLine = line.trim(); + // Skip empty lines + if (trimmedLine.isEmpty) { + continue; + } + + if (!isValidTag(line)) { + currentSection = currentSection.addLine(line); + continue; + } + + BlockDto? part; + try { + part = _decodeBlock(line); + } on SchemaValidationException catch (e) { + final message = e.result.errors.map((e) => e.message).join('\n'); + // get all lines before this one + final previousLines = lines.sublist(0, lineIndex); + final getOffset = previousLines.join('\n').length; + throw SDFormatException(message, slideMarkdown, getOffset); + } on FormatException catch (e) { + final getOffset = slideMarkdown.indexOf(line); + throw SDFormatException(e.message, slideMarkdown, getOffset); + } + + if (part == null) { + continue; + } + + if (part is SectionBlockDto) { + // Save current section before setting as current + layoutParts.add(currentSection); + currentSection = part; + } else if (part is SubSectionBlockDto) { + currentSection = currentSection.addSubSection(part); + } + } + + layoutParts.add(currentSection); + + // Return the parsed sections + // remove all sections that have empty parts + return layoutParts.where((part) { + return part.subSections.isNotEmpty; + }).toList(); +} + +Map _getOptionsMapFromLine(List params) { + final friendlyParams = params.join(' '); + + if (params.length % 2 != 0) { + throw FormatException('Invalid options format: $friendlyParams'); + } + + final options = {}; + + for (var i = 0; i < params.length; i++) { + // if value is 0 or even, it's a key + final isKey = i % 2 == 0; + + if (isKey) { + continue; + } else { + final value = params[i]; + final key = params[i - 1].replaceAll(':', ''); + if (value.isEmpty || key.isEmpty) { + throw FormatException('Empty value found in options: $friendlyParams'); + } + options[key] = value; + } + } + + return options; +} + +typedef SyntaxTagData = ({ + BlockType blockType, + Map options, +}); + +/// Parses a line containing a tag and its options. +SyntaxTagData extractTagData(String line) { + // Remove any leading or trailing whitespace from the input line + line = line.trim(); + + // Check if the line matches the expected syntax + if (!isValidTag(line)) { + // If not, throw an exception with a descriptive error message + throw FormatException('Invalid tag syntax: $line'); + } + + // Use a regular expression to match the contents of the tag + final result = getTagContents(line); + + // Split the result into parts using the defined separator + final parts = result.split(' ').where((e) => e.isNotEmpty).toList(); + + final [tag, ...params] = parts; + + final blockType = BlockType.values.firstWhereOrNull( + (type) => type.name == tag, + ); + + if (blockType == null) { + throw FormatException('Invalid tag: $tag'); + } + + // Join the remaining parts (if any) back into a string for options parsing + // If there's only one part (just the tag), use an empty string + + // Parse the options string into a Map using a helper function + final options = _getOptionsMapFromLine(params); + + // If the extracted tag is empty, throw an exception + if (tag.isEmpty) { + throw FormatException('Empty tag extracted: $line'); + } + + // Return a record containing the tag and options + return ( + blockType: blockType, + options: options, + ); +} diff --git a/packages/superdeck_cli/lib/src/parsers/section_parser/section_regex.dart b/packages/superdeck_cli/lib/src/parsers/section_parser/section_regex.dart new file mode 100644 index 00000000..2f3c5da0 --- /dev/null +++ b/packages/superdeck_cli/lib/src/parsers/section_parser/section_regex.dart @@ -0,0 +1,33 @@ +const _tagMarker = '@'; + +const _startAsTag = '{$_tagMarker'; + +final _regexMatchTagContents = RegExp('{$_tagMarker(.*?)}'); + +bool isValidTag(String line) { + final trimmedLine = line.trim(); + if (trimmedLine.startsWith(_startAsTag)) { + if (_regexMatchTagContents.firstMatch(trimmedLine) == null) { + throw FormatException( + 'Invalid tag format on $line \nTags must be in the format {@tag_name key: value key2: value2}', + ); + } + return true; + } + return false; +} + +RegExpMatch _getTagContentsMatch(String line) { + final match = _regexMatchTagContents.firstMatch(line); + if (match == null) { + throw FormatException( + 'Invalid tag format on $line \nTags must be in the format {@tag_name key: value key2: value2}', + ); + } + return match; +} + +String getTagContents(String line) { + final match = _getTagContentsMatch(line); + return match.group(1)?.trim() ?? ''; +} diff --git a/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart b/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart index d214f323..df254edf 100644 --- a/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/dart_formatter_task.dart @@ -1,7 +1,7 @@ import 'dart:async'; +import 'package:superdeck_cli/src/generator_pipeline.dart'; import 'package:superdeck_cli/src/helpers/dart_process.dart'; -import 'package:superdeck_cli/src/slides_pipeline.dart'; class DartFormatterTask extends Task { const DartFormatterTask() : super('dart_formatter'); diff --git a/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart b/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart index d1747f7e..3a0dc565 100644 --- a/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/image_cache_task.dart @@ -1,7 +1,7 @@ import 'dart:io'; import 'package:http/http.dart' as http; -import 'package:superdeck_cli/src/slides_pipeline.dart'; +import 'package:superdeck_cli/src/generator_pipeline.dart'; class ImageCachingTask extends Task { const ImageCachingTask() : super('image_caching'); @@ -78,7 +78,7 @@ class ImageCachingTask extends Task { // Write the image data to the file await file.writeAsBytes(response.bodyBytes); - print('Image saved to: ${url}'); + print('Image saved to: $url'); await controller.markFileAsNeeded(file, url); } else {} diff --git a/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart b/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart index 2b79b26a..5bbc665e 100644 --- a/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/mermaid_task.dart @@ -2,7 +2,7 @@ import 'dart:async'; import 'package:puppeteer/puppeteer.dart'; import 'package:superdeck_cli/src/helpers/logger.dart'; -import 'package:superdeck_cli/src/slides_pipeline.dart'; +import 'package:superdeck_cli/src/generator_pipeline.dart'; // --- // title: Hello Title diff --git a/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart b/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart index 7747b279..8cac93d5 100644 --- a/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart +++ b/packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart @@ -1,6 +1,6 @@ import 'dart:async'; -import 'package:superdeck_cli/src/slides_pipeline.dart'; +import 'package:superdeck_cli/src/generator_pipeline.dart'; /// This task marks the thumbnail file as needed if it exists. /// The goal is to ensure that any generated thumbnails are kept. @@ -9,7 +9,7 @@ class SlideThumbnailTask extends Task { @override FutureOr run(controller) async { - final file = buildAssetFile('thumbnail_' + controller.slide.key, 'png'); + final file = buildAssetFile('thumbnail_${controller.slide.key}', 'png'); if (await file.exists()) { await controller.markFileAsNeeded(file); diff --git a/packages/superdeck_cli/lib/superdeck_cli.dart b/packages/superdeck_cli/lib/superdeck_cli.dart index fb22aa63..bc50aabb 100644 --- a/packages/superdeck_cli/lib/superdeck_cli.dart +++ b/packages/superdeck_cli/lib/superdeck_cli.dart @@ -1 +1 @@ -export 'package:superdeck_cli/src/slides_loader.dart' show SlidesLoader; +export 'package:superdeck_cli/src/deck_generator.dart' show SlidesLoader; diff --git a/packages/superdeck_cli/pubspec.yaml b/packages/superdeck_cli/pubspec.yaml index 0b1965dd..3735204b 100644 --- a/packages/superdeck_cli/pubspec.yaml +++ b/packages/superdeck_cli/pubspec.yaml @@ -19,7 +19,7 @@ dependencies: puppeteer: ^3.12.0 superdeck_core: ^0.0.1 mason_logger: ^0.3.0 - + yaml_edit: ^2.2.1 dev_dependencies: lints: ^4.0.0 diff --git a/packages/superdeck_cli/slides.md b/packages/superdeck_cli/slides.md deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart b/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart deleted file mode 100644 index a7f1f03c..00000000 --- a/packages/superdeck_cli/test/src/helpers/section_parsing_test.dart +++ /dev/null @@ -1,524 +0,0 @@ -import 'package:collection/collection.dart'; -import 'package:superdeck_cli/src/helpers/section_parsing.dart'; -import 'package:superdeck_core/superdeck_core.dart'; -import 'package:test/test.dart'; - -void main() { - group('LayoutSection', () { - group('Successful cases', () { - test('Header with columns', () { - const markdown = ''' -{@header} -# Header Title - -{@content} -Header content column 1. - -{@content} -Header content column 2. - -'''; - - final sections = parseSections(markdown); - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, equals(3)); - expect(sections.body?.contentSections.length, isNull); - expect(sections.footer?.contentSections.length, isNull); - expect(sections.header?.contentSections[0].content.trim(), - '# Header Title'); - expect(sections.header?.contentSections[1].content.trim(), - 'Header content column 1.'); - expect(sections.header?.contentSections[2].content.trim(), - 'Header content column 2.'); - }); - - test('Body with columns', () { - const markdown = ''' -{@body} -{@content} -Body content column 1. - -{@content} -Body content column 2. - -'''; - - final sections = parseSections(markdown); - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, isNull); - expect(sections.body?.contentSections.length, equals(2)); - expect(sections.footer?.contentSections.length, isNull); - expect(sections.body?.contentSections[0].content.trim(), - 'Body content column 1.'); - expect(sections.body?.contentSections[1].content.trim(), - 'Body content column 2.'); - }); - - test('Footer with columns', () { - const markdown = ''' -{@footer} -{@content} -Footer content column 1. - -{@content} -Footer content column 2. - -'''; - - final sections = parseSections(markdown); - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, isNull); - expect(sections.body?.contentSections.length, isNull); - expect(sections.footer?.contentSections.length, equals(2)); - expect(sections.footer?.contentSections[0].content.trim(), - 'Footer content column 1.'); - expect(sections.footer?.contentSections[1].content.trim(), - 'Footer content column 2.'); - }); - - test('Only columns without header, body, or footer', () { - const markdown = ''' -{@content} -Content column 1. - -{@content} -Content column 2. - -'''; - - final sections = parseSections(markdown); - expect(sections.root?.contentSections.length, equals(2)); - expect(sections.header?.contentSections.length, isNull); - expect(sections.body?.contentSections.length, isNull); - expect(sections.footer?.contentSections.length, isNull); - expect(sections.root?.contentSections[0].content.trim(), - 'Content column 1.'); - expect(sections.root?.contentSections[1].content.trim(), - 'Content column 2.'); - }); - - test('Header, body, and footer with columns', () { - const markdown = ''' -{@header} -# Header Title - -{@content} -Header content column. - -{@body} -{@content} -Body content column 1. - -{@content} -Body content column 2. - -{@footer} -{@content} -Footer content column. - -'''; - - final sections = parseSections(markdown); - - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, equals(2)); - expect(sections.body?.contentSections.length, equals(2)); - expect(sections.footer?.contentSections.length, equals(1)); - expect(sections.header?.contentSections[0].content.trim(), - '# Header Title'); - expect(sections.header?.contentSections[1].content.trim(), - 'Header content column.'); - expect(sections.body?.contentSections[0].content.trim(), - 'Body content column 1.'); - expect(sections.body?.contentSections[1].content.trim(), - 'Body content column 2.'); - expect(sections.footer?.contentSections[0].content.trim(), - 'Footer content column.'); - }); - }); - group('Fail cases', () { - test('Fail case - Column tag appears outside header, body, or footer', - () { - const markdown = ''' -# Regular Markdown - -{@content} -This is some regular markdown content. - -{@header} -## Header Title - -{@content} -Content inside the header. - -'''; - - expect(() => parseSections(markdown), throwsException); - }); - - test('Fail case - Header appears after body', () { - const markdown = ''' -{@body} -# Body Title - -{@content} -Content in the body. - -{@header} -## Header Title - -{@content} -Content in the header. - -'''; - - expect(() => parseSections(markdown), throwsException); - }); - - test('Fail case - Body appears after footer', () { - const markdown = ''' -{@footer} -# Footer Title - -{@content} -Content in the footer. - -{@body} -## Body Title - -{@content} -Content in the body. - -'''; - - expect(() => parseSections(markdown), throwsException); - }); - }); - }); - - group('ContentPart - Attribute Testing', () { - test('Header with columns and flex attribute', () { - const markdown = ''' -{@header} -{@content flex: 1 } -Header content column 1. - -{@content flex: 2} -Header content column 2. - -'''; - - final sections = parseSections(markdown); - - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, equals(2)); - expect(sections.body?.contentSections.length, isNull); - expect(sections.footer?.contentSections.length, isNull); - - expect(sections.header?.contentSections[0].content.trim(), - 'Header content column 1.'); - expect(sections.header?.contentSections[1].content.trim(), - 'Header content column 2.'); - - expect( - sections.header?.contentSections[0].contentOptions.flex, equals(1)); - expect( - sections.header?.contentSections[1].contentOptions.flex, equals(2)); - }); - - test('Body with columns and alignment attribute in snake case', () { - const markdown = ''' -{@body} -{@content align:center} -Body content column 1. - -{@content align:bottom_right} -Body content column 2. - -'''; - - final sections = parseSections(markdown); - - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, isNull); - expect(sections.body?.contentSections.length, equals(2)); - expect(sections.footer?.contentSections.length, isNull); - - expect(sections.body?.contentSections[0].content.trim(), - 'Body content column 1.'); - expect(sections.body?.contentSections[1].content.trim(), - 'Body content column 2.'); - - expect(sections.body?.contentSections[0].contentOptions.align, - equals(ContentAlignment.center)); - expect(sections.body?.contentSections[1].contentOptions.align, - equals(ContentAlignment.bottomRight)); - }); - - test('Footer with columns, flex, and alignment attributes in snake case', - () { - const markdown = ''' -{@footer} -{@content flex:3 | align:top_left} -Footer content column 1. - -{@content flex:1 | align:center_right} -Footer content column 2. - -'''; - - final sections = parseSections(markdown); - - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, isNull); - expect(sections.body?.contentSections.length, isNull); - expect(sections.footer?.contentSections.length, equals(2)); - - expect(sections.footer?.contentSections[0].content.trim(), - 'Footer content column 1.'); - expect(sections.footer?.contentSections[1].content.trim(), - 'Footer content column 2.'); - - expect( - sections.footer?.contentSections[0].contentOptions.flex, equals(3)); - expect(sections.footer?.contentSections[0].contentOptions.align, - equals(ContentAlignment.topLeft)); - - expect( - sections.footer?.contentSections[1].contentOptions.flex, equals(1)); - expect(sections.footer?.contentSections[1].contentOptions.align, - equals(ContentAlignment.centerRight)); - }); - - test('Mixed header, body, and footer with columns and attributes', () { - const markdown = ''' -{@header} -{@content flex:1 | align:center} -Header content. - -{@body} -{@content flex:2 | align:center_left} -Body content column 1. - -{@content flex:1 | align:center_right} -Body content column 2. - -{@footer} -{@content flex:1 | align:bottom_center} -Footer content. - -'''; - - final sections = parseSections(markdown); - - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, equals(1)); - expect(sections.body?.contentSections.length, equals(2)); - expect(sections.footer?.contentSections.length, equals(1)); - - expect(sections.header?.contentSections[0].content.trim(), - 'Header content.'); - expect( - sections.header?.contentSections[0].contentOptions.flex, equals(1)); - expect(sections.header?.contentSections[0].contentOptions.align, - equals(ContentAlignment.center)); - - expect(sections.body?.contentSections[0].content.trim(), - 'Body content column 1.'); - expect(sections.body?.contentSections[0].contentOptions.flex, equals(2)); - expect(sections.body?.contentSections[0].contentOptions.align, - equals(ContentAlignment.centerLeft)); - - expect(sections.body?.contentSections[1].content.trim(), - 'Body content column 2.'); - expect(sections.body?.contentSections[1].contentOptions.flex, equals(1)); - expect(sections.body?.contentSections[1].contentOptions.align, - equals(ContentAlignment.centerRight)); - - expect(sections.footer?.contentSections[0].content.trim(), - 'Footer content.'); - expect( - sections.footer?.contentSections[0].contentOptions.flex, equals(1)); - expect(sections.footer?.contentSections[0].contentOptions.align, - equals(ContentAlignment.bottomCenter)); - }); - }); - - group('ContentPart - Fail Cases', () { - test('Fail case - Column tag appears outside header, body, or footer', () { - const markdown = ''' -# Regular Markdown - -{@content flex:1} -This is some regular markdown content. - -{@header} -## Header Title - -{@content} -Content inside the header. - -'''; - - expect(() => parseSections(markdown), throwsException); - }); - - test('Fail case - Invalid flex attribute format', () { - const markdown = ''' -{@header} -{@content flex:invalid} -Header content. - -'''; - - expect(() => parseSections(markdown), throwsException); - }); - - test('Fail case - Invalid alignment attribute value', () { - const markdown = ''' -{@header} -{@content align:invalid_alignment} -Header content. - -'''; - - expect(() => parseSections(markdown), throwsException); - }); - }); - - // Group that checks if columns inherit options from the parent - group('ContentPart - Inheritance', () { - test('Columns inherit options from the parent', () { - const markdown = ''' -{@header align:center} -{@content} -Header content. - -{@body align:top_left | flex:2} -{@content flex:3} -Body content. - -{@footer align:bottom_right | flex:1} -{@content align:bottom_right} -Footer content. - -'''; - - final sections = parseSections(markdown); - - expect(sections.root?.contentSections.length, isNull); - expect(sections.header?.contentSections.length, equals(1)); - expect(sections.body?.contentSections.length, equals(1)); - expect(sections.footer?.contentSections.length, equals(1)); - - expect(sections.header?.contentSections[0].content.trim(), - 'Header content.'); - expect(sections.header?.options.align, equals(ContentAlignment.center)); - - expect(sections.body?.contentSections[0].content.trim(), 'Body content.'); - expect(sections.body?.options.align, equals(ContentAlignment.topLeft)); - expect(sections.body?.contentSections[0].contentOptions.flex, equals(3)); - - expect(sections.footer?.contentSections[0].content.trim(), - 'Footer content.'); - expect( - sections.footer?.options.align, equals(ContentAlignment.bottomRight)); - expect(sections.footer?.options.flex, equals(1)); - }); - }); - - group( - 'getTagContents', - () { - test('Empty string', () { - final result = getTagContents('{@tag}'); - expect(result.tag, equals('tag')); - expect(result.options, isEmpty); - }); - - test('Single key-value pair', () { - final result = getTagContents('{@tag key1: value1}'); - expect(result.tag, equals('tag')); - expect(result.options, equals({'key1': 'value1'})); - }); - - test('Multiple key-value pairs', () { - final result = getTagContents('{@tag key1: value1 | key2: value2}'); - expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); - }); - - test('Extra spaces', () { - final result = getTagContents('{@tag key1: value1 | key2: value2}'); - expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); - }); - - test('Empty value', () { - final result = getTagContents('{@tag key1:}'); - expect(result.options, equals({'key1': null})); - }); - - test('Missing value', () { - final result = getTagContents('{@tag key1}'); - expect(result.options, equals({'key1': true})); - }); - - test('Invalid tag format', () { - expect(() => getTagContents('{@tag key1:'), throwsException); - }); - - test('Returns contents of the first tag when multiple tags are present', - () { - final result = getTagContents('{@first firstTag} {@second tag}'); - expect(result.tag, equals('first')); - expect(result.options, equals({'firstTag': true})); - }); - - test('Mixed valid and invalid pairs', () { - final result = - getTagContents('{@tag key1: value1 | single | key2: value2}'); - expect( - result.tag, - equals('tag'), - ); - - expect(result.options, - equals({'key1': 'value1', 'single': true, 'key2': 'value2'})); - }); - - // Test falsy value - test('Falsy value', () { - final result = getTagContents('{@tag key1: false}'); - final result2 = getTagContents('{@tag key1: "false" | key2: true}'); - expect(result.options, equals({'key1': false})); - expect(result2.options, equals({'key1': 'false', 'key2': true})); - }); - - test('Returns contents of the first tag when multiple tags are present', - () { - final result = getTagContents('{@first firstTag} {@second tag}'); - expect(result.tag, equals('first')); - expect(result.options, equals({'firstTag': true})); - }); - - test('Trims leading and trailing whitespace from tag contents', () { - final result = getTagContents('{@tag key1: value1 | key2: value2 }'); - expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); - }); - }, - ); -} - -extension on List { - SectionDto? get root => firstWhereOrNull((part) => part.type.name == 'root'); - SectionDto? get header => - firstWhereOrNull((part) => part.type.name == 'header'); - SectionDto? get body => firstWhereOrNull((part) => part.type.name == 'body'); - SectionDto? get footer => - firstWhereOrNull((part) => part.type.name == 'footer'); -} - -extension on ContentSectionPart { - String get content => (this as ContentPart).content; - ContentOptions get contentOptions => (this as ContentPart).options; - ImageOptions get imageOptions => (this as ImagePart).options; -} diff --git a/packages/superdeck_cli/test/src/parsers/section_parser/section_parsing_test.dart b/packages/superdeck_cli/test/src/parsers/section_parser/section_parsing_test.dart new file mode 100644 index 00000000..4d113313 --- /dev/null +++ b/packages/superdeck_cli/test/src/parsers/section_parser/section_parsing_test.dart @@ -0,0 +1,382 @@ +import 'package:superdeck_cli/src/parsers/section_parser/section_parsing.dart'; +import 'package:superdeck_core/superdeck_core.dart'; +import 'package:test/test.dart'; + +void main() { + group('LayoutSection', () { + group('Successful cases', () { + test('Section with columns', () { + const markdown = ''' +{@section} +# Title + +{@column} +content column 1. + +{@column} +content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.length, equals(1)); + expect(sections[0].subSections.length, equals(3)); + + expect(sections[0].subSections[0].content.trim(), '# Title'); + expect(sections[0].subSections[1].content.trim(), 'content column 1.'); + expect(sections[0].subSections[2].content.trim(), 'content column 2.'); + }); + + test('Only columns without sections', () { + const markdown = ''' +{@column} +Content column 1. + +{@column} +Content column 2. + +'''; + + final sections = parseSections(markdown); + expect(sections.length, equals(1)); + expect(sections[0].subSections.length, equals(2)); + expect(sections[0].subSections[0].content.trim(), 'Content column 1.'); + expect(sections[0].subSections[1].content.trim(), 'Content column 2.'); + }); + + test('Columns then sections', () { + const markdown = ''' +# Regular Markdown + +This is some regular markdown content. + +{@section} +## Header Title + +{@column} +Content inside the header. +'''; + + final sections = parseSections(markdown); + expect(sections.length, equals(2)); + expect(sections[0].subSections.length, equals(1)); + expect(sections[1].subSections.length, equals(2)); + + expect(sections[0].subSections[0].content.trim(), + '# Regular Markdown\nThis is some regular markdown content.'); + expect(sections[1].subSections[0].content.trim(), '## Header Title'); + expect(sections[1].subSections[1].content.trim(), + 'Content inside the header.'); + }); + + test('Header, body, and footer with columns', () { + const markdown = ''' +{@section} +# Header Title + +{@column} +Header content column. + +{@section} +{@column} +Body content column 1. + +{@column} +Body content column 2. + +{@section} +{@column} +Footer content column. + +'''; + + final sections = parseSections(markdown); + + expect(sections.length, equals(3)); + expect(sections[0].subSections.length, equals(2)); + expect(sections[1].subSections.length, equals(2)); + expect(sections[2].subSections.length, equals(1)); + expect(sections[0].subSections[0].content.trim(), '# Header Title'); + expect(sections[0].subSections[1].content.trim(), + 'Header content column.'); + expect(sections[1].subSections[0].content.trim(), + 'Body content column 1.'); + expect(sections[1].subSections[1].content.trim(), + 'Body content column 2.'); + expect(sections[2].subSections[0].content.trim(), + 'Footer content column.'); + }); + }); + }); + + group('ColumnBlockDto - Attribute Testing', () { + test('Header with columns and flex attribute', () { + const markdown = ''' +{@section} +{@column flex: 1 } +Header content column 1. + +{@column flex: 2} +Header content column 2. + +'''; + + final sections = parseSections(markdown); + + expect(sections.length, equals(1)); + expect(sections[0].subSections.length, equals(2)); + + expect(sections[0].subSections[0].content.trim(), + 'Header content column 1.'); + expect(sections[0].subSections[1].content.trim(), + 'Header content column 2.'); + + expect(sections[0].subSections[0].columnOptiouns?.flex, equals(1)); + expect(sections[0].subSections[1].columnOptiouns?.flex, equals(2)); + }); + + test('Section with columns and alignment attribute in snake case', () { + const markdown = ''' +{@section} +{@column align: center} +Body content column 1. + +{@column align: bottom_right} +Body content column 2. + +'''; + + final sections = parseSections(markdown); + + expect(sections.length, equals(1)); + expect(sections[0].subSections.length, equals(2)); + + expect( + sections[0].subSections[0].content.trim(), 'Body content column 1.'); + expect( + sections[0].subSections[1].content.trim(), 'Body content column 2.'); + + expect(sections[0].subSections[0].columnOptiouns?.align, + equals(ContentAlignment.center)); + expect(sections[0].subSections[1].columnOptiouns?.align, + equals(ContentAlignment.bottomRight)); + }); + + test('Section with columns, flex, and alignment attributes in snake case', + () { + const markdown = ''' +{@section} +{@column flex: 3 align: top_left} +Footer content column 1. + +{@column flex: 1 align: center_right} +Footer content column 2. + +'''; + + final sections = parseSections(markdown); + + expect(sections.length, equals(1)); + expect(sections[0].subSections.length, equals(2)); + + expect(sections[0].subSections[0].content.trim(), + 'Footer content column 1.'); + expect(sections[0].subSections[1].content.trim(), + 'Footer content column 2.'); + + expect(sections[0].subSections[0].columnOptiouns?.flex, equals(3)); + expect(sections[0].subSections[0].columnOptiouns?.align, + equals(ContentAlignment.topLeft)); + + expect(sections[0].subSections[1].columnOptiouns?.flex, equals(1)); + expect(sections[0].subSections[1].columnOptiouns?.align, + equals(ContentAlignment.centerRight)); + }); + + test('Sections with columns and attributes', () { + const markdown = ''' +{@section} +{@column flex: 1 align: center} +Header content. + +{@section} +{@column flex: 2 align: center_left} +Body content column 1. + +{@column flex: 1 align: center_right} +Body content column 2. + +{@section} +{@column flex: 1 align: bottom_center} +Footer content. + +'''; + + final sections = parseSections(markdown); + + expect(sections.length, equals(3)); + expect(sections[0].subSections.length, equals(1)); + expect(sections[1].subSections.length, equals(2)); + expect(sections[2].subSections.length, equals(1)); + + expect(sections[0].subSections[0].content.trim(), 'Header content.'); + expect(sections[0].subSections[0].columnOptiouns?.flex, equals(1)); + expect(sections[0].subSections[0].columnOptiouns?.align, + equals(ContentAlignment.center)); + + expect( + sections[1].subSections[0].content.trim(), 'Body content column 1.'); + expect(sections[1].subSections[0].columnOptiouns?.flex, equals(2)); + expect(sections[1].subSections[0].columnOptiouns?.align, + equals(ContentAlignment.centerLeft)); + + expect( + sections[1].subSections[1].content.trim(), 'Body content column 2.'); + expect(sections[1].subSections[1].columnOptiouns?.flex, equals(1)); + expect(sections[1].subSections[1].columnOptiouns?.align, + equals(ContentAlignment.centerRight)); + + expect(sections[2].subSections[0].content.trim(), 'Footer content.'); + expect(sections[2].subSections[0].columnOptiouns?.flex, equals(1)); + expect(sections[2].subSections[0].columnOptiouns?.align, + equals(ContentAlignment.bottomCenter)); + }); + }); + + group('ColumnBlockDto - Fail Cases', () { + test('Fail case - Invalid flex attribute format', () { + const markdown = ''' +{@section} +{@column flex:invalid} +Header content. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + + test('Fail case - Invalid alignment attribute value', () { + const markdown = ''' +{@section} +{@column align:invalid_alignment} +Header content. + +'''; + + expect(() => parseSections(markdown), throwsException); + }); + }); + + // Group that checks if columns inherit options from the parent + group('ColumnBlockDto - Inheritance', () { + test('Columns inherit options from the parent', () { + const markdown = ''' +{@section align: center} +{@column} +Header content. + +{@section align: top_left flex: 2} +{@column flex: 3} +Body content. + +{@section align: bottom_right flex: 1} +{@column align: bottom_right} +Footer content. + +'''; + + final sections = parseSections(markdown); + + expect(sections.length, equals(3)); + expect(sections[0].subSections.length, equals(1)); + expect(sections[1].subSections.length, equals(1)); + expect(sections[2].subSections.length, equals(1)); + + expect(sections[0].subSections[0].content.trim(), 'Header content.'); + expect(sections[0].options?.align, equals(ContentAlignment.center)); + + expect(sections[1].subSections[0].content.trim(), 'Body content.'); + expect(sections[1].options?.align, equals(ContentAlignment.topLeft)); + expect(sections[1].subSections[0].columnOptiouns?.flex, equals(3)); + + expect(sections[2].subSections[0].content.trim(), 'Footer content.'); + expect(sections[2].options?.align, equals(ContentAlignment.bottomRight)); + expect(sections[2].options?.flex, equals(1)); + }); + }); + + group( + 'getTagContents', + () { + test('Empty string', () { + final result = extractTagData('{@section}'); + expect(result.blockType, equals(BlockType.section)); + expect(result.options, isEmpty); + }); + + test('Single key-value pair', () { + final result = extractTagData('{@section key1: value1}'); + expect(result.blockType, equals(BlockType.section)); + expect(result.options, equals({'key1': 'value1'})); + }); + + test('Multiple key-value pairs', () { + final result = extractTagData('{@section key1: value1 key2: value2}'); + expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); + }); + + test('Extra spaces', () { + final result = + extractTagData('{@section key1: value1 key2: value2}'); + expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); + }); + + test('Empty value', () { + expect(() => extractTagData('{@section key1:}'), throwsException); + }); + + test('Missing value', () { + expect(() => extractTagData('{@section key1}'), throwsException); + }); + + test('Invalid tag format', () { + expect(() => extractTagData('{@section key1:'), throwsException); + }); + + test('Returns contents of the first tag when multiple tags are present', + () { + final result = + extractTagData('{@column firstTag: true} {@block secondTag:false}'); + expect(result.blockType, equals(BlockType.column)); + expect(result.options, equals({'firstTag': 'true'})); + }); + + test('Mixed valid and invalid pairs', () { + final result = extractTagData('{@column key1: value1 key2: value2}'); + expect( + result.blockType, + equals(BlockType.column), + ); + + expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); + }); + + // Test falsy value + test('Falsy value', () { + final result = extractTagData('{@column key1: false}'); + final result2 = extractTagData('{@column key1: false key2: true}'); + expect(result.options, equals({'key1': 'false'})); + expect(result2.options, equals({'key1': 'false', 'key2': 'true'})); + }); + + test('Trims leading and trailing whitespace from tag contents', () { + final result = extractTagData('{@column key1: value1 key2: value2 }'); + expect(result.options, equals({'key1': 'value1', 'key2': 'value2'})); + }); + }, + ); +} + +extension on SubSectionBlockDto { + ContentOptions? get columnOptiouns => (this as ColumnBlockDto).options; +} diff --git a/packages/superdeck_cli/test/src/parsers/section_parser/section_regex_test.dart b/packages/superdeck_cli/test/src/parsers/section_parser/section_regex_test.dart new file mode 100644 index 00000000..248b36d1 --- /dev/null +++ b/packages/superdeck_cli/test/src/parsers/section_parser/section_regex_test.dart @@ -0,0 +1,52 @@ +import 'package:superdeck_cli/src/parsers/section_parser/section_regex.dart'; +import 'package:test/test.dart'; + +void main() { + group('Tag parsing tests', () { + test('Parse tag with both parts', () { + final input = '{@column blue: car}'; + final expectedOutput = 'column blue: car'; + expect(getTagContents(input), equals(expectedOutput)); + }); + + test('Parse tag with only first part', () { + final input = '{@column:demo}'; + final expectedOutput = 'column:demo'; + expect(getTagContents(input), equals(expectedOutput)); + }); + + test('Parse tag with extra whitespace', () { + final input = '{@column red : bike }'; + final expectedOutput = 'column red : bike'; + expect(getTagContents(input), equals(expectedOutput)); + }); + + test('Parse tag with underscore in part names', () { + final input = '{@column my_color: my_vehicle}'; + final expectedOutput = 'column my_color: my_vehicle'; + expect(getTagContents(input), equals(expectedOutput)); + }); + + test('Parse tag with numbers in part names', () { + final input = '{@column color123: vehicle456 blabla: 10}'; + final expectedOutput = 'column color123: vehicle456 blabla: 10'; + expect(getTagContents(input), equals(expectedOutput)); + }); + + test('Return null for input without tag', () { + final input = 'This is a regular text without a tag.'; + expect(getTagContents(input), isNull); + }); + + test('Return null for input with incomplete tag', () { + final input = '{@column'; + expect(getTagContents(input), isNull); + }); + + test('Return null for input with incorrect tag format', () { + final input = '{@column: blue car}'; + final expected = 'column: blue car'; + expect(getTagContents(input), equals(expected)); + }); + }); +} diff --git a/packages/superdeck_core/build.yaml b/packages/superdeck_core/build.yaml index c64b4287..2fc0149b 100644 --- a/packages/superdeck_core/build.yaml +++ b/packages/superdeck_core/build.yaml @@ -10,6 +10,5 @@ global_options: options: caseStyle: snakeCase enumCaseStyle: snakeCase - discriminatorKey: type ignoreNull: true generateMethods: [decode, encode, copy, stringify, equals] \ No newline at end of file diff --git a/packages/superdeck_core/lib/src/helpers/mappers.dart b/packages/superdeck_core/lib/src/helpers/mappers.dart index 0efbf596..136ca95b 100644 --- a/packages/superdeck_core/lib/src/helpers/mappers.dart +++ b/packages/superdeck_core/lib/src/helpers/mappers.dart @@ -29,30 +29,3 @@ class DurationMapper extends SimpleMapper { return self.inMilliseconds; } } - -class EmptyIterableToNullHook extends MappingHook { - const EmptyIterableToNullHook(); - dynamic afterEncode(Object? value) { - if (value is Iterable && value.isEmpty) { - return null; - } - - if (value is Map && value.isEmpty) { - return null; - } - - if (value is String && value.isEmpty) { - return null; - } - - if (value is List && value.isEmpty) { - return null; - } - - if (value is Set && value.isEmpty) { - return null; - } - - return value; - } -} diff --git a/packages/superdeck_core/lib/src/models/models.dart b/packages/superdeck_core/lib/src/models/models.dart index e1f4a802..8609d140 100644 --- a/packages/superdeck_core/lib/src/models/models.dart +++ b/packages/superdeck_core/lib/src/models/models.dart @@ -1,5 +1,6 @@ library models; +import 'dart:convert'; import 'dart:io'; import 'package:collection/collection.dart'; @@ -7,6 +8,7 @@ import 'package:dart_mappable/dart_mappable.dart'; import 'package:path/path.dart' as p; import 'package:superdeck_core/src/helpers/mappers.dart'; import 'package:superdeck_core/superdeck_core.dart'; +import 'package:yaml/yaml.dart' as yaml; part 'asset_model.dart'; part 'config_model.dart'; diff --git a/packages/superdeck_core/lib/src/models/models.mapper.dart b/packages/superdeck_core/lib/src/models/models.mapper.dart index 2ff9d9e3..4f9d2e57 100644 --- a/packages/superdeck_core/lib/src/models/models.mapper.dart +++ b/packages/superdeck_core/lib/src/models/models.mapper.dart @@ -795,14 +795,14 @@ extension CurveTypeMapperExtension on CurveType { } } -class ConfigMapper extends SubClassMapperBase { +class ConfigMapper extends ClassMapperBase { ConfigMapper._(); static ConfigMapper? _instance; static ConfigMapper ensureInitialized() { if (_instance == null) { MapperContainer.globals.use(_instance = ConfigMapper._()); - SlideOptionsMapper.ensureInitialized().addSubMapper(_instance!); + SlideOptionsMapper.ensureInitialized(); TransitionOptionsMapper.ensureInitialized(); } return _instance!; @@ -838,14 +838,6 @@ class ConfigMapper extends SubClassMapperBase { @override final bool ignoreNull = true; - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'Config'; - @override - late final ClassMapperBase superMapper = - SlideOptionsMapper.ensureInitialized(); - static Config _instantiate(DecodingData data) { return Config( background: data.dec(_f$background), @@ -1300,7 +1292,7 @@ class ImageOptionsMapper extends SubClassMapperBase { @override final String discriminatorKey = 'type'; @override - final dynamic discriminatorValue = 'ImageOptions'; + final dynamic discriminatorValue = 'image'; @override late final ClassMapperBase superMapper = ContentOptionsMapper.ensureInitialized(); @@ -1444,7 +1436,7 @@ class WidgetOptionsMapper extends SubClassMapperBase { @override final String discriminatorKey = 'type'; @override - final dynamic discriminatorValue = 'WidgetOptions'; + final dynamic discriminatorValue = 'widget_options'; @override late final ClassMapperBase superMapper = ContentOptionsMapper.ensureInitialized(); @@ -1560,13 +1552,13 @@ class _WidgetOptionsCopyWithImpl<$R, $Out> _WidgetOptionsCopyWithImpl($value, $cast, t); } -class SuperDeckReferenceMapper extends ClassMapperBase { - SuperDeckReferenceMapper._(); +class ReferenceDtoMapper extends ClassMapperBase { + ReferenceDtoMapper._(); - static SuperDeckReferenceMapper? _instance; - static SuperDeckReferenceMapper ensureInitialized() { + static ReferenceDtoMapper? _instance; + static ReferenceDtoMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = SuperDeckReferenceMapper._()); + MapperContainer.globals.use(_instance = ReferenceDtoMapper._()); ConfigMapper.ensureInitialized(); SlideMapper.ensureInitialized(); SlideAssetMapper.ensureInitialized(); @@ -1575,20 +1567,20 @@ class SuperDeckReferenceMapper extends ClassMapperBase { } @override - final String id = 'SuperDeckReference'; + final String id = 'ReferenceDto'; - static Config _$config(SuperDeckReference v) => v.config; - static const Field _f$config = + static Config _$config(ReferenceDto v) => v.config; + static const Field _f$config = Field('config', _$config); - static List _$slides(SuperDeckReference v) => v.slides; - static const Field> _f$slides = + static List _$slides(ReferenceDto v) => v.slides; + static const Field> _f$slides = Field('slides', _$slides); - static List _$assets(SuperDeckReference v) => v.assets; - static const Field> _f$assets = + static List _$assets(ReferenceDto v) => v.assets; + static const Field> _f$assets = Field('assets', _$assets); @override - final MappableFields fields = const { + final MappableFields fields = const { #config: _f$config, #slides: _f$slides, #assets: _f$assets, @@ -1596,8 +1588,8 @@ class SuperDeckReferenceMapper extends ClassMapperBase { @override final bool ignoreNull = true; - static SuperDeckReference _instantiate(DecodingData data) { - return SuperDeckReference( + static ReferenceDto _instantiate(DecodingData data) { + return ReferenceDto( config: data.dec(_f$config), slides: data.dec(_f$slides), assets: data.dec(_f$assets)); @@ -1606,75 +1598,71 @@ class SuperDeckReferenceMapper extends ClassMapperBase { @override final Function instantiate = _instantiate; - static SuperDeckReference fromMap(Map map) { - return ensureInitialized().decodeMap(map); + static ReferenceDto fromMap(Map map) { + return ensureInitialized().decodeMap(map); } - static SuperDeckReference fromJson(String json) { - return ensureInitialized().decodeJson(json); + static ReferenceDto fromJson(String json) { + return ensureInitialized().decodeJson(json); } } -mixin SuperDeckReferenceMappable { +mixin ReferenceDtoMappable { String toJson() { - return SuperDeckReferenceMapper.ensureInitialized() - .encodeJson(this as SuperDeckReference); + return ReferenceDtoMapper.ensureInitialized() + .encodeJson(this as ReferenceDto); } Map toMap() { - return SuperDeckReferenceMapper.ensureInitialized() - .encodeMap(this as SuperDeckReference); + return ReferenceDtoMapper.ensureInitialized() + .encodeMap(this as ReferenceDto); } - SuperDeckReferenceCopyWith - get copyWith => _SuperDeckReferenceCopyWithImpl( - this as SuperDeckReference, $identity, $identity); + ReferenceDtoCopyWith get copyWith => + _ReferenceDtoCopyWithImpl(this as ReferenceDto, $identity, $identity); @override String toString() { - return SuperDeckReferenceMapper.ensureInitialized() - .stringifyValue(this as SuperDeckReference); + return ReferenceDtoMapper.ensureInitialized() + .stringifyValue(this as ReferenceDto); } @override bool operator ==(Object other) { - return SuperDeckReferenceMapper.ensureInitialized() - .equalsValue(this as SuperDeckReference, other); + return ReferenceDtoMapper.ensureInitialized() + .equalsValue(this as ReferenceDto, other); } @override int get hashCode { - return SuperDeckReferenceMapper.ensureInitialized() - .hashValue(this as SuperDeckReference); + return ReferenceDtoMapper.ensureInitialized() + .hashValue(this as ReferenceDto); } } -extension SuperDeckReferenceValueCopy<$R, $Out> - on ObjectCopyWith<$R, SuperDeckReference, $Out> { - SuperDeckReferenceCopyWith<$R, SuperDeckReference, $Out> - get $asSuperDeckReference => - $base.as((v, t, t2) => _SuperDeckReferenceCopyWithImpl(v, t, t2)); +extension ReferenceDtoValueCopy<$R, $Out> + on ObjectCopyWith<$R, ReferenceDto, $Out> { + ReferenceDtoCopyWith<$R, ReferenceDto, $Out> get $asReferenceDto => + $base.as((v, t, t2) => _ReferenceDtoCopyWithImpl(v, t, t2)); } -abstract class SuperDeckReferenceCopyWith<$R, $In extends SuperDeckReference, - $Out> implements ClassCopyWith<$R, $In, $Out> { +abstract class ReferenceDtoCopyWith<$R, $In extends ReferenceDto, $Out> + implements ClassCopyWith<$R, $In, $Out> { ConfigCopyWith<$R, Config, Config> get config; ListCopyWith<$R, Slide, SlideCopyWith<$R, Slide, Slide>> get slides; ListCopyWith<$R, SlideAsset, SlideAssetCopyWith<$R, SlideAsset, SlideAsset>> get assets; $R call({Config? config, List? slides, List? assets}); - SuperDeckReferenceCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); + ReferenceDtoCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } -class _SuperDeckReferenceCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, SuperDeckReference, $Out> - implements SuperDeckReferenceCopyWith<$R, SuperDeckReference, $Out> { - _SuperDeckReferenceCopyWithImpl(super.value, super.then, super.then2); +class _ReferenceDtoCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ReferenceDto, $Out> + implements ReferenceDtoCopyWith<$R, ReferenceDto, $Out> { + _ReferenceDtoCopyWithImpl(super.value, super.then, super.then2); @override - late final ClassMapperBase $mapper = - SuperDeckReferenceMapper.ensureInitialized(); + late final ClassMapperBase $mapper = + ReferenceDtoMapper.ensureInitialized(); @override ConfigCopyWith<$R, Config, Config> get config => $value.config.copyWith.$chain((v) => call(config: v)); @@ -1694,15 +1682,15 @@ class _SuperDeckReferenceCopyWithImpl<$R, $Out> if (assets != null) #assets: assets })); @override - SuperDeckReference $make(CopyWithData data) => SuperDeckReference( + ReferenceDto $make(CopyWithData data) => ReferenceDto( config: data.get(#config, or: $value.config), slides: data.get(#slides, or: $value.slides), assets: data.get(#assets, or: $value.assets)); @override - SuperDeckReferenceCopyWith<$R2, SuperDeckReference, $Out2> $chain<$R2, $Out2>( + ReferenceDtoCopyWith<$R2, ReferenceDto, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t) => - _SuperDeckReferenceCopyWithImpl($value, $cast, t); + _ReferenceDtoCopyWithImpl($value, $cast, t); } class SlideMapper extends ClassMapperBase { @@ -1713,7 +1701,7 @@ class SlideMapper extends ClassMapperBase { if (_instance == null) { MapperContainer.globals.use(_instance = SlideMapper._()); SlideOptionsMapper.ensureInitialized(); - SectionDtoMapper.ensureInitialized(); + SectionBlockDtoMapper.ensureInitialized(); } return _instance!; } @@ -1723,23 +1711,23 @@ class SlideMapper extends ClassMapperBase { static int _$index(Slide v) => v.index; static const Field _f$index = Field('index', _$index); - static String _$content(Slide v) => v.content; - static const Field _f$content = Field('content', _$content); static String _$key(Slide v) => v.key; static const Field _f$key = Field('key', _$key); static SlideOptions? _$options(Slide v) => v.options; static const Field _f$options = Field('options', _$options, opt: true); - static List _$sections(Slide v) => v.sections; - static const Field> _f$sections = + static String _$content(Slide v) => v.content; + static const Field _f$content = Field('content', _$content); + static List _$sections(Slide v) => v.sections; + static const Field> _f$sections = Field('sections', _$sections, opt: true, def: const []); @override final MappableFields fields = const { #index: _f$index, - #content: _f$content, #key: _f$key, #options: _f$options, + #content: _f$content, #sections: _f$sections, }; @override @@ -1748,9 +1736,9 @@ class SlideMapper extends ClassMapperBase { static Slide _instantiate(DecodingData data) { return Slide( index: data.dec(_f$index), - content: data.dec(_f$content), key: data.dec(_f$key), options: data.dec(_f$options), + content: data.dec(_f$content), sections: data.dec(_f$sections)); } @@ -1801,14 +1789,15 @@ extension SlideValueCopy<$R, $Out> on ObjectCopyWith<$R, Slide, $Out> { abstract class SlideCopyWith<$R, $In extends Slide, $Out> implements ClassCopyWith<$R, $In, $Out> { SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options; - ListCopyWith<$R, SectionDto, SectionDtoCopyWith<$R, SectionDto, SectionDto>> + ListCopyWith<$R, SectionBlockDto, + SectionBlockDtoCopyWith<$R, SectionBlockDto, SectionBlockDto>> get sections; $R call( {int? index, - String? content, String? key, SlideOptions? options, - List? sections}); + String? content, + List? sections}); SlideCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } @@ -1822,29 +1811,30 @@ class _SlideCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Slide, $Out> SlideOptionsCopyWith<$R, SlideOptions, SlideOptions>? get options => $value.options?.copyWith.$chain((v) => call(options: v)); @override - ListCopyWith<$R, SectionDto, SectionDtoCopyWith<$R, SectionDto, SectionDto>> + ListCopyWith<$R, SectionBlockDto, + SectionBlockDtoCopyWith<$R, SectionBlockDto, SectionBlockDto>> get sections => ListCopyWith($value.sections, (v, t) => v.copyWith.$chain(t), (v) => call(sections: v)); @override $R call( {int? index, - String? content, String? key, Object? options = $none, - List? sections}) => + String? content, + List? sections}) => $apply(FieldCopyWithData({ if (index != null) #index: index, - if (content != null) #content: content, if (key != null) #key: key, if (options != $none) #options: options, + if (content != null) #content: content, if (sections != null) #sections: sections })); @override Slide $make(CopyWithData data) => Slide( index: data.get(#index, or: $value.index), - content: data.get(#content, or: $value.content), key: data.get(#key, or: $value.key), options: data.get(#options, or: $value.options), + content: data.get(#content, or: $value.content), sections: data.get(#sections, or: $value.sections)); @override @@ -1852,397 +1842,299 @@ class _SlideCopyWithImpl<$R, $Out> extends ClassCopyWithBase<$R, Slide, $Out> _SlideCopyWithImpl($value, $cast, t); } -class SectionDtoMapper extends ClassMapperBase { - SectionDtoMapper._(); +class SectionBlockDtoMapper extends ClassMapperBase { + SectionBlockDtoMapper._(); - static SectionDtoMapper? _instance; - static SectionDtoMapper ensureInitialized() { + static SectionBlockDtoMapper? _instance; + static SectionBlockDtoMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = SectionDtoMapper._()); - RootLayoutPartMapper.ensureInitialized(); - HeaderLayoutPartMapper.ensureInitialized(); - BodyLayoutPartMapper.ensureInitialized(); - FooterLayoutPartMapper.ensureInitialized(); - SectionTypeMapper.ensureInitialized(); + MapperContainer.globals.use(_instance = SectionBlockDtoMapper._()); + MapperContainer.globals.useAll([OptionsMapper()]); ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); + SubSectionBlockDtoMapper.ensureInitialized(); } return _instance!; } @override - final String id = 'SectionDto'; + final String id = 'SectionBlockDto'; - static SectionType _$type(SectionDto v) => v.type; - static const Field _f$type = Field('type', _$type); - static ContentOptions _$options(SectionDto v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - SectionDto v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); + static ContentOptions? _$options(SectionBlockDto v) => v.options; + static const Field _f$options = + Field('options', _$options, opt: true); + static List> _$subSections( + SectionBlockDto v) => + v.subSections; + static const Field>> + _f$subSections = Field('subSections', _$subSections, + key: 'sub_sections', opt: true, def: const []); @override - final MappableFields fields = const { - #type: _f$type, + final MappableFields fields = const { #options: _f$options, - #contentSections: _f$contentSections, + #subSections: _f$subSections, }; @override final bool ignoreNull = true; - static SectionDto _instantiate(DecodingData data) { - throw MapperException.missingSubclass( - 'SectionDto', 'type', '${data.value['type']}'); + static SectionBlockDto _instantiate(DecodingData data) { + return SectionBlockDto( + options: data.dec(_f$options), subSections: data.dec(_f$subSections)); } @override final Function instantiate = _instantiate; - static SectionDto fromMap(Map map) { - return ensureInitialized().decodeMap(map); + static SectionBlockDto fromMap(Map map) { + return ensureInitialized().decodeMap(map); } - static SectionDto fromJson(String json) { - return ensureInitialized().decodeJson(json); + static SectionBlockDto fromJson(String json) { + return ensureInitialized().decodeJson(json); } } -mixin SectionDtoMappable { - String toJson(); - Map toMap(); - SectionDtoCopyWith get copyWith; +mixin SectionBlockDtoMappable { + String toJson() { + return SectionBlockDtoMapper.ensureInitialized() + .encodeJson(this as SectionBlockDto); + } + + Map toMap() { + return SectionBlockDtoMapper.ensureInitialized() + .encodeMap(this as SectionBlockDto); + } + + SectionBlockDtoCopyWith + get copyWith => _SectionBlockDtoCopyWithImpl( + this as SectionBlockDto, $identity, $identity); + @override + String toString() { + return SectionBlockDtoMapper.ensureInitialized() + .stringifyValue(this as SectionBlockDto); + } + + @override + bool operator ==(Object other) { + return SectionBlockDtoMapper.ensureInitialized() + .equalsValue(this as SectionBlockDto, other); + } + + @override + int get hashCode { + return SectionBlockDtoMapper.ensureInitialized() + .hashValue(this as SectionBlockDto); + } +} + +extension SectionBlockDtoValueCopy<$R, $Out> + on ObjectCopyWith<$R, SectionBlockDto, $Out> { + SectionBlockDtoCopyWith<$R, SectionBlockDto, $Out> get $asSectionBlockDto => + $base.as((v, t, t2) => _SectionBlockDtoCopyWithImpl(v, t, t2)); } -abstract class SectionDtoCopyWith<$R, $In extends SectionDto, $Out> +abstract class SectionBlockDtoCopyWith<$R, $In extends SectionBlockDto, $Out> implements ClassCopyWith<$R, $In, $Out> { - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? get options; ListCopyWith< $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; + SubSectionBlockDto, + SubSectionBlockDtoCopyWith<$R, SubSectionBlockDto, + SubSectionBlockDto, ContentOptions>> get subSections; $R call( {ContentOptions? options, - List>? contentSections}); - SectionDtoCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); + List>? subSections}); + SectionBlockDtoCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); } -class SectionTypeMapper extends EnumMapper { - SectionTypeMapper._(); - - static SectionTypeMapper? _instance; - static SectionTypeMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SectionTypeMapper._()); - } - return _instance!; - } - - static SectionType fromValue(dynamic value) { - ensureInitialized(); - return MapperContainer.globals.fromValue(value); - } +class _SectionBlockDtoCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, SectionBlockDto, $Out> + implements SectionBlockDtoCopyWith<$R, SectionBlockDto, $Out> { + _SectionBlockDtoCopyWithImpl(super.value, super.then, super.then2); @override - SectionType decode(dynamic value) { - switch (value) { - case 'root': - return SectionType.root; - case 'header': - return SectionType.header; - case 'body': - return SectionType.body; - case 'footer': - return SectionType.footer; - default: - throw MapperException.unknownEnumValue(value); - } - } - + late final ClassMapperBase $mapper = + SectionBlockDtoMapper.ensureInitialized(); @override - dynamic encode(SectionType self) { - switch (self) { - case SectionType.root: - return 'root'; - case SectionType.header: - return 'header'; - case SectionType.body: - return 'body'; - case SectionType.footer: - return 'footer'; - } - } -} + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? get options => + $value.options?.copyWith.$chain((v) => call(options: v)); + @override + ListCopyWith< + $R, + SubSectionBlockDto, + SubSectionBlockDtoCopyWith< + $R, + SubSectionBlockDto, + SubSectionBlockDto, + ContentOptions>> get subSections => ListCopyWith($value.subSections, + (v, t) => v.copyWith.$chain(t), (v) => call(subSections: v)); + @override + $R call( + {Object? options = $none, + List>? subSections}) => + $apply(FieldCopyWithData({ + if (options != $none) #options: options, + if (subSections != null) #subSections: subSections + })); + @override + SectionBlockDto $make(CopyWithData data) => SectionBlockDto( + options: data.get(#options, or: $value.options), + subSections: data.get(#subSections, or: $value.subSections)); -extension SectionTypeMapperExtension on SectionType { - String toValue() { - SectionTypeMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } + @override + SectionBlockDtoCopyWith<$R2, SectionBlockDto, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t) => + _SectionBlockDtoCopyWithImpl($value, $cast, t); } -class ContentSectionPartMapper extends ClassMapperBase { - ContentSectionPartMapper._(); +class SubSectionBlockDtoMapper extends ClassMapperBase { + SubSectionBlockDtoMapper._(); - static ContentSectionPartMapper? _instance; - static ContentSectionPartMapper ensureInitialized() { + static SubSectionBlockDtoMapper? _instance; + static SubSectionBlockDtoMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = ContentSectionPartMapper._()); - ContentPartMapper.ensureInitialized(); - WidgetPartMapper.ensureInitialized(); - ImagePartMapper.ensureInitialized(); - SubSectionTypeMapper.ensureInitialized(); + MapperContainer.globals.use(_instance = SubSectionBlockDtoMapper._()); + MapperContainer.globals.useAll([OptionsMapper()]); + ColumnBlockDtoMapper.ensureInitialized(); + WidgetBlockDtoMapper.ensureInitialized(); + ImageBlockDtoMapper.ensureInitialized(); ContentOptionsMapper.ensureInitialized(); } return _instance!; } @override - final String id = 'ContentSectionPart'; + final String id = 'SubSectionBlockDto'; @override Function get typeFactory => - (f) => f>(); + (f) => f>(); - static SubSectionType _$type(ContentSectionPart v) => v.type; - static const Field _f$type = - Field('type', _$type); - static String _$content(ContentSectionPart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ContentOptions _$options(ContentSectionPart v) => v.options; - static dynamic _arg$options(f) => f(); - static const Field _f$options = - Field('options', _$options, arg: _arg$options); + static String _$content(SubSectionBlockDto v) => v.content; + static const Field _f$content = + Field('content', _$content, opt: true, def: ''); @override - final MappableFields fields = const { - #type: _f$type, + final MappableFields fields = const { #content: _f$content, - #options: _f$options, }; @override final bool ignoreNull = true; - static ContentSectionPart _instantiate( + static SubSectionBlockDto _instantiate( DecodingData data) { throw MapperException.missingSubclass( - 'ContentSectionPart', 'type', '${data.value['type']}'); + 'SubSectionBlockDto', 'type', '${data.value['type']}'); } @override final Function instantiate = _instantiate; - static ContentSectionPart fromMap( + static SubSectionBlockDto fromMap( Map map) { - return ensureInitialized().decodeMap>(map); + return ensureInitialized().decodeMap>(map); } - static ContentSectionPart fromJson(String json) { - return ensureInitialized().decodeJson>(json); + static SubSectionBlockDto fromJson(String json) { + return ensureInitialized().decodeJson>(json); } } -mixin ContentSectionPartMappable { +mixin SubSectionBlockDtoMappable { String toJson(); Map toMap(); - ContentSectionPartCopyWith, ContentSectionPart, - ContentSectionPart, T> get copyWith; + SubSectionBlockDtoCopyWith, SubSectionBlockDto, + SubSectionBlockDto, T> get copyWith; } -abstract class ContentSectionPartCopyWith<$R, $In extends ContentSectionPart, +abstract class SubSectionBlockDtoCopyWith<$R, $In extends SubSectionBlockDto, $Out, T extends ContentOptions> implements ClassCopyWith<$R, $In, $Out> { - ContentOptionsCopyWith<$R, ContentOptions, T> get options; - $R call({String? content, T? options}); - ContentSectionPartCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>( + $R call({String? content}); + SubSectionBlockDtoCopyWith<$R2, $In, $Out2, T> $chain<$R2, $Out2>( Then<$Out2, $R2> t); } -class SubSectionTypeMapper extends EnumMapper { - SubSectionTypeMapper._(); +class BlockTypeMapper extends EnumMapper { + BlockTypeMapper._(); - static SubSectionTypeMapper? _instance; - static SubSectionTypeMapper ensureInitialized() { + static BlockTypeMapper? _instance; + static BlockTypeMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = SubSectionTypeMapper._()); + MapperContainer.globals.use(_instance = BlockTypeMapper._()); } return _instance!; } - static SubSectionType fromValue(dynamic value) { + static BlockType fromValue(dynamic value) { ensureInitialized(); return MapperContainer.globals.fromValue(value); } @override - SubSectionType decode(dynamic value) { + BlockType decode(dynamic value) { switch (value) { - case 'content': - return SubSectionType.content; + case 'section': + return BlockType.section; + case 'column': + return BlockType.column; case 'image': - return SubSectionType.image; + return BlockType.image; case 'widget': - return SubSectionType.widget; + return BlockType.widget; default: throw MapperException.unknownEnumValue(value); } } @override - dynamic encode(SubSectionType self) { + dynamic encode(BlockType self) { switch (self) { - case SubSectionType.content: - return 'content'; - case SubSectionType.image: + case BlockType.section: + return 'section'; + case BlockType.column: + return 'column'; + case BlockType.image: return 'image'; - case SubSectionType.widget: + case BlockType.widget: return 'widget'; } } } -extension SubSectionTypeMapperExtension on SubSectionType { +extension BlockTypeMapperExtension on BlockType { String toValue() { - SubSectionTypeMapper.ensureInitialized(); - return MapperContainer.globals.toValue(this) as String; - } -} - -class SectionDataMapper extends RecordMapperBase { - static SectionDataMapper? _instance; - SectionDataMapper._(); - - static SectionDataMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = SectionDataMapper._()); - MapperBase.addType((f) => f<({A content, B options})>()); - } - return _instance!; - } - - static String _$content(SectionData v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ContentOptions? _$options(SectionData v) => v.options; - static const Field _f$options = - Field('options', _$options); - - @override - final MappableFields fields = const { - #content: _f$content, - #options: _f$options, - }; - - @override - Function get typeFactory => (f) => f(); - - @override - List apply(MappingContext context) { - return []; - } - - static SectionData _instantiate(DecodingData data) { - return (content: data.dec(_f$content), options: data.dec(_f$options)); - } - - @override - final Function instantiate = _instantiate; - - static SectionData fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static SectionData fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -extension SectionDataMappable on SectionData { - Map toMap() { - return SectionDataMapper.ensureInitialized().encodeMap(this); - } - - String toJson() { - return SectionDataMapper.ensureInitialized().encodeJson(this); + BlockTypeMapper.ensureInitialized(); + return MapperContainer.globals.toValue(this) as String; } - - SectionDataCopyWith get copyWith => - _SectionDataCopyWithImpl(this, $identity, $identity); -} - -extension SectionDataValueCopy<$R> - on ObjectCopyWith<$R, SectionData, SectionData> { - SectionDataCopyWith<$R> get $asSectionData => - $base.as((v, t, t2) => _SectionDataCopyWithImpl(v, t, t2)); -} - -abstract class SectionDataCopyWith<$R> - implements RecordCopyWith<$R, SectionData> { - $R call({String? content, ContentOptions? options}); - SectionDataCopyWith<$R2> $chain<$R2>(Then t); } -class _SectionDataCopyWithImpl<$R> extends RecordCopyWithBase<$R, SectionData> - implements SectionDataCopyWith<$R> { - _SectionDataCopyWithImpl(super.value, super.then, super.then2); +class ColumnBlockDtoMapper extends SubClassMapperBase { + ColumnBlockDtoMapper._(); - @override - late final RecordMapperBase $mapper = - SectionDataMapper.ensureInitialized(); - @override - $R call({String? content, Object? options = $none}) => - $apply(FieldCopyWithData({ - if (content != null) #content: content, - if (options != $none) #options: options - })); - @override - SectionData $make(CopyWithData data) => ( - content: data.get(#content, or: $value.content), - options: data.get(#options, or: $value.options) - ); - - @override - SectionDataCopyWith<$R2> $chain<$R2>(Then t) => - _SectionDataCopyWithImpl($value, $cast, t); -} - -class ContentPartMapper extends SubClassMapperBase { - ContentPartMapper._(); - - static ContentPartMapper? _instance; - static ContentPartMapper ensureInitialized() { + static ColumnBlockDtoMapper? _instance; + static ColumnBlockDtoMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = ContentPartMapper._()); - ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + MapperContainer.globals.use(_instance = ColumnBlockDtoMapper._()); + SubSectionBlockDtoMapper.ensureInitialized().addSubMapper(_instance!); ContentOptionsMapper.ensureInitialized(); } return _instance!; } @override - final String id = 'ContentPart'; + final String id = 'ColumnBlockDto'; - static String _$content(ContentPart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static ContentOptions _$options(ContentPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static SubSectionType _$type(ContentPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); + static String _$content(ColumnBlockDto v) => v.content; + static const Field _f$content = + Field('content', _$content, opt: true, def: ''); + static ContentOptions? _$options(ColumnBlockDto v) => v.options; + static const Field _f$options = + Field('options', _$options, opt: true); @override - final MappableFields fields = const { + final MappableFields fields = const { #content: _f$content, #options: _f$options, - #type: _f$type, }; @override final bool ignoreNull = true; @@ -2250,140 +2142,136 @@ class ContentPartMapper extends SubClassMapperBase { @override final String discriminatorKey = 'type'; @override - final dynamic discriminatorValue = 'content'; + final dynamic discriminatorValue = 'column'; @override late final ClassMapperBase superMapper = - ContentSectionPartMapper.ensureInitialized(); + SubSectionBlockDtoMapper.ensureInitialized(); @override DecodingContext inherit(DecodingContext context) { return context.inherit(args: () => []); } - static ContentPart _instantiate(DecodingData data) { - return ContentPart( + static ColumnBlockDto _instantiate(DecodingData data) { + return ColumnBlockDto( content: data.dec(_f$content), options: data.dec(_f$options)); } @override final Function instantiate = _instantiate; - static ContentPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); + static ColumnBlockDto fromMap(Map map) { + return ensureInitialized().decodeMap(map); } - static ContentPart fromJson(String json) { - return ensureInitialized().decodeJson(json); + static ColumnBlockDto fromJson(String json) { + return ensureInitialized().decodeJson(json); } } -mixin ContentPartMappable { +mixin ColumnBlockDtoMappable { String toJson() { - return ContentPartMapper.ensureInitialized() - .encodeJson(this as ContentPart); + return ColumnBlockDtoMapper.ensureInitialized() + .encodeJson(this as ColumnBlockDto); } Map toMap() { - return ContentPartMapper.ensureInitialized() - .encodeMap(this as ContentPart); + return ColumnBlockDtoMapper.ensureInitialized() + .encodeMap(this as ColumnBlockDto); } - ContentPartCopyWith get copyWith => - _ContentPartCopyWithImpl(this as ContentPart, $identity, $identity); + ColumnBlockDtoCopyWith + get copyWith => _ColumnBlockDtoCopyWithImpl( + this as ColumnBlockDto, $identity, $identity); @override String toString() { - return ContentPartMapper.ensureInitialized() - .stringifyValue(this as ContentPart); + return ColumnBlockDtoMapper.ensureInitialized() + .stringifyValue(this as ColumnBlockDto); } @override bool operator ==(Object other) { - return ContentPartMapper.ensureInitialized() - .equalsValue(this as ContentPart, other); + return ColumnBlockDtoMapper.ensureInitialized() + .equalsValue(this as ColumnBlockDto, other); } @override int get hashCode { - return ContentPartMapper.ensureInitialized().hashValue(this as ContentPart); + return ColumnBlockDtoMapper.ensureInitialized() + .hashValue(this as ColumnBlockDto); } } -extension ContentPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, ContentPart, $Out> { - ContentPartCopyWith<$R, ContentPart, $Out> get $asContentPart => - $base.as((v, t, t2) => _ContentPartCopyWithImpl(v, t, t2)); +extension ColumnBlockDtoValueCopy<$R, $Out> + on ObjectCopyWith<$R, ColumnBlockDto, $Out> { + ColumnBlockDtoCopyWith<$R, ColumnBlockDto, $Out> get $asColumnBlockDto => + $base.as((v, t, t2) => _ColumnBlockDtoCopyWithImpl(v, t, t2)); } -abstract class ContentPartCopyWith<$R, $In extends ContentPart, $Out> - implements ContentSectionPartCopyWith<$R, $In, $Out, ContentOptions> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; +abstract class ColumnBlockDtoCopyWith<$R, $In extends ColumnBlockDto, $Out> + implements SubSectionBlockDtoCopyWith<$R, $In, $Out, ContentOptions> { + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? get options; @override $R call({String? content, ContentOptions? options}); - ContentPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); + ColumnBlockDtoCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); } -class _ContentPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, ContentPart, $Out> - implements ContentPartCopyWith<$R, ContentPart, $Out> { - _ContentPartCopyWithImpl(super.value, super.then, super.then2); +class _ColumnBlockDtoCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ColumnBlockDto, $Out> + implements ColumnBlockDtoCopyWith<$R, ColumnBlockDto, $Out> { + _ColumnBlockDtoCopyWithImpl(super.value, super.then, super.then2); @override - late final ClassMapperBase $mapper = - ContentPartMapper.ensureInitialized(); + late final ClassMapperBase $mapper = + ColumnBlockDtoMapper.ensureInitialized(); @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - ($value.options as ContentOptions) - .copyWith - .$chain((v) => call(options: v)); + ContentOptionsCopyWith<$R, ContentOptions, ContentOptions>? get options => + $value.options?.copyWith.$chain((v) => call(options: v)); @override - $R call({String? content, ContentOptions? options}) => + $R call({String? content, Object? options = $none}) => $apply(FieldCopyWithData({ if (content != null) #content: content, - if (options != null) #options: options + if (options != $none) #options: options })); @override - ContentPart $make(CopyWithData data) => ContentPart( + ColumnBlockDto $make(CopyWithData data) => ColumnBlockDto( content: data.get(#content, or: $value.content), options: data.get(#options, or: $value.options)); @override - ContentPartCopyWith<$R2, ContentPart, $Out2> $chain<$R2, $Out2>( + ColumnBlockDtoCopyWith<$R2, ColumnBlockDto, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t) => - _ContentPartCopyWithImpl($value, $cast, t); + _ColumnBlockDtoCopyWithImpl($value, $cast, t); } -class WidgetPartMapper extends SubClassMapperBase { - WidgetPartMapper._(); +class WidgetBlockDtoMapper extends SubClassMapperBase { + WidgetBlockDtoMapper._(); - static WidgetPartMapper? _instance; - static WidgetPartMapper ensureInitialized() { + static WidgetBlockDtoMapper? _instance; + static WidgetBlockDtoMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = WidgetPartMapper._()); - ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + MapperContainer.globals.use(_instance = WidgetBlockDtoMapper._()); + SubSectionBlockDtoMapper.ensureInitialized().addSubMapper(_instance!); WidgetOptionsMapper.ensureInitialized(); } return _instance!; } @override - final String id = 'WidgetPart'; + final String id = 'WidgetBlockDto'; - static WidgetOptions _$options(WidgetPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static String _$content(WidgetPart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static SubSectionType _$type(WidgetPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); + static WidgetOptions? _$options(WidgetBlockDto v) => v.options; + static const Field _f$options = + Field('options', _$options, opt: true); + static String _$content(WidgetBlockDto v) => v.content; + static const Field _f$content = + Field('content', _$content, opt: true, def: ''); @override - final MappableFields fields = const { + final MappableFields fields = const { #options: _f$options, #content: _f$content, - #type: _f$type, }; @override final bool ignoreNull = true; @@ -2394,137 +2282,133 @@ class WidgetPartMapper extends SubClassMapperBase { final dynamic discriminatorValue = 'widget'; @override late final ClassMapperBase superMapper = - ContentSectionPartMapper.ensureInitialized(); + SubSectionBlockDtoMapper.ensureInitialized(); @override DecodingContext inherit(DecodingContext context) { return context.inherit(args: () => []); } - static WidgetPart _instantiate(DecodingData data) { - return WidgetPart( + static WidgetBlockDto _instantiate(DecodingData data) { + return WidgetBlockDto( options: data.dec(_f$options), content: data.dec(_f$content)); } @override final Function instantiate = _instantiate; - static WidgetPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); + static WidgetBlockDto fromMap(Map map) { + return ensureInitialized().decodeMap(map); } - static WidgetPart fromJson(String json) { - return ensureInitialized().decodeJson(json); + static WidgetBlockDto fromJson(String json) { + return ensureInitialized().decodeJson(json); } } -mixin WidgetPartMappable { +mixin WidgetBlockDtoMappable { String toJson() { - return WidgetPartMapper.ensureInitialized() - .encodeJson(this as WidgetPart); + return WidgetBlockDtoMapper.ensureInitialized() + .encodeJson(this as WidgetBlockDto); } Map toMap() { - return WidgetPartMapper.ensureInitialized() - .encodeMap(this as WidgetPart); + return WidgetBlockDtoMapper.ensureInitialized() + .encodeMap(this as WidgetBlockDto); } - WidgetPartCopyWith get copyWith => - _WidgetPartCopyWithImpl(this as WidgetPart, $identity, $identity); + WidgetBlockDtoCopyWith + get copyWith => _WidgetBlockDtoCopyWithImpl( + this as WidgetBlockDto, $identity, $identity); @override String toString() { - return WidgetPartMapper.ensureInitialized() - .stringifyValue(this as WidgetPart); + return WidgetBlockDtoMapper.ensureInitialized() + .stringifyValue(this as WidgetBlockDto); } @override bool operator ==(Object other) { - return WidgetPartMapper.ensureInitialized() - .equalsValue(this as WidgetPart, other); + return WidgetBlockDtoMapper.ensureInitialized() + .equalsValue(this as WidgetBlockDto, other); } @override int get hashCode { - return WidgetPartMapper.ensureInitialized().hashValue(this as WidgetPart); + return WidgetBlockDtoMapper.ensureInitialized() + .hashValue(this as WidgetBlockDto); } } -extension WidgetPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, WidgetPart, $Out> { - WidgetPartCopyWith<$R, WidgetPart, $Out> get $asWidgetPart => - $base.as((v, t, t2) => _WidgetPartCopyWithImpl(v, t, t2)); +extension WidgetBlockDtoValueCopy<$R, $Out> + on ObjectCopyWith<$R, WidgetBlockDto, $Out> { + WidgetBlockDtoCopyWith<$R, WidgetBlockDto, $Out> get $asWidgetBlockDto => + $base.as((v, t, t2) => _WidgetBlockDtoCopyWithImpl(v, t, t2)); } -abstract class WidgetPartCopyWith<$R, $In extends WidgetPart, $Out> - implements ContentSectionPartCopyWith<$R, $In, $Out, WidgetOptions> { - @override - WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options; +abstract class WidgetBlockDtoCopyWith<$R, $In extends WidgetBlockDto, $Out> + implements SubSectionBlockDtoCopyWith<$R, $In, $Out, WidgetOptions> { + WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions>? get options; @override $R call({WidgetOptions? options, String? content}); - WidgetPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); + WidgetBlockDtoCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( + Then<$Out2, $R2> t); } -class _WidgetPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, WidgetPart, $Out> - implements WidgetPartCopyWith<$R, WidgetPart, $Out> { - _WidgetPartCopyWithImpl(super.value, super.then, super.then2); +class _WidgetBlockDtoCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, WidgetBlockDto, $Out> + implements WidgetBlockDtoCopyWith<$R, WidgetBlockDto, $Out> { + _WidgetBlockDtoCopyWithImpl(super.value, super.then, super.then2); @override - late final ClassMapperBase $mapper = - WidgetPartMapper.ensureInitialized(); + late final ClassMapperBase $mapper = + WidgetBlockDtoMapper.ensureInitialized(); @override - WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions> get options => - ($value.options as WidgetOptions) - .copyWith - .$chain((v) => call(options: v)); + WidgetOptionsCopyWith<$R, WidgetOptions, WidgetOptions>? get options => + $value.options?.copyWith.$chain((v) => call(options: v)); @override - $R call({WidgetOptions? options, String? content}) => + $R call({Object? options = $none, String? content}) => $apply(FieldCopyWithData({ - if (options != null) #options: options, + if (options != $none) #options: options, if (content != null) #content: content })); @override - WidgetPart $make(CopyWithData data) => WidgetPart( + WidgetBlockDto $make(CopyWithData data) => WidgetBlockDto( options: data.get(#options, or: $value.options), content: data.get(#content, or: $value.content)); @override - WidgetPartCopyWith<$R2, WidgetPart, $Out2> $chain<$R2, $Out2>( + WidgetBlockDtoCopyWith<$R2, WidgetBlockDto, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t) => - _WidgetPartCopyWithImpl($value, $cast, t); + _WidgetBlockDtoCopyWithImpl($value, $cast, t); } -class ImagePartMapper extends SubClassMapperBase { - ImagePartMapper._(); +class ImageBlockDtoMapper extends SubClassMapperBase { + ImageBlockDtoMapper._(); - static ImagePartMapper? _instance; - static ImagePartMapper ensureInitialized() { + static ImageBlockDtoMapper? _instance; + static ImageBlockDtoMapper ensureInitialized() { if (_instance == null) { - MapperContainer.globals.use(_instance = ImagePartMapper._()); - ContentSectionPartMapper.ensureInitialized().addSubMapper(_instance!); + MapperContainer.globals.use(_instance = ImageBlockDtoMapper._()); + SubSectionBlockDtoMapper.ensureInitialized().addSubMapper(_instance!); ImageOptionsMapper.ensureInitialized(); } return _instance!; } @override - final String id = 'ImagePart'; + final String id = 'ImageBlockDto'; - static ImageOptions _$options(ImagePart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static String _$content(ImagePart v) => v.content; - static const Field _f$content = - Field('content', _$content); - static SubSectionType _$type(ImagePart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); + static ImageOptions? _$options(ImageBlockDto v) => v.options; + static const Field _f$options = + Field('options', _$options, opt: true); + static String _$content(ImageBlockDto v) => v.content; + static const Field _f$content = + Field('content', _$content, opt: true, def: ''); @override - final MappableFields fields = const { + final MappableFields fields = const { #options: _f$options, #content: _f$content, - #type: _f$type, }; @override final bool ignoreNull = true; @@ -2535,765 +2419,101 @@ class ImagePartMapper extends SubClassMapperBase { final dynamic discriminatorValue = 'image'; @override late final ClassMapperBase superMapper = - ContentSectionPartMapper.ensureInitialized(); + SubSectionBlockDtoMapper.ensureInitialized(); @override DecodingContext inherit(DecodingContext context) { return context.inherit(args: () => []); } - static ImagePart _instantiate(DecodingData data) { - return ImagePart( + static ImageBlockDto _instantiate(DecodingData data) { + return ImageBlockDto( options: data.dec(_f$options), content: data.dec(_f$content)); } @override final Function instantiate = _instantiate; - static ImagePart fromMap(Map map) { - return ensureInitialized().decodeMap(map); + static ImageBlockDto fromMap(Map map) { + return ensureInitialized().decodeMap(map); } - static ImagePart fromJson(String json) { - return ensureInitialized().decodeJson(json); + static ImageBlockDto fromJson(String json) { + return ensureInitialized().decodeJson(json); } } -mixin ImagePartMappable { +mixin ImageBlockDtoMappable { String toJson() { - return ImagePartMapper.ensureInitialized() - .encodeJson(this as ImagePart); + return ImageBlockDtoMapper.ensureInitialized() + .encodeJson(this as ImageBlockDto); } Map toMap() { - return ImagePartMapper.ensureInitialized() - .encodeMap(this as ImagePart); + return ImageBlockDtoMapper.ensureInitialized() + .encodeMap(this as ImageBlockDto); } - ImagePartCopyWith get copyWith => - _ImagePartCopyWithImpl(this as ImagePart, $identity, $identity); + ImageBlockDtoCopyWith + get copyWith => _ImageBlockDtoCopyWithImpl( + this as ImageBlockDto, $identity, $identity); @override String toString() { - return ImagePartMapper.ensureInitialized() - .stringifyValue(this as ImagePart); + return ImageBlockDtoMapper.ensureInitialized() + .stringifyValue(this as ImageBlockDto); } @override bool operator ==(Object other) { - return ImagePartMapper.ensureInitialized() - .equalsValue(this as ImagePart, other); + return ImageBlockDtoMapper.ensureInitialized() + .equalsValue(this as ImageBlockDto, other); } @override int get hashCode { - return ImagePartMapper.ensureInitialized().hashValue(this as ImagePart); + return ImageBlockDtoMapper.ensureInitialized() + .hashValue(this as ImageBlockDto); } } -extension ImagePartValueCopy<$R, $Out> on ObjectCopyWith<$R, ImagePart, $Out> { - ImagePartCopyWith<$R, ImagePart, $Out> get $asImagePart => - $base.as((v, t, t2) => _ImagePartCopyWithImpl(v, t, t2)); +extension ImageBlockDtoValueCopy<$R, $Out> + on ObjectCopyWith<$R, ImageBlockDto, $Out> { + ImageBlockDtoCopyWith<$R, ImageBlockDto, $Out> get $asImageBlockDto => + $base.as((v, t, t2) => _ImageBlockDtoCopyWithImpl(v, t, t2)); } -abstract class ImagePartCopyWith<$R, $In extends ImagePart, $Out> - implements ContentSectionPartCopyWith<$R, $In, $Out, ImageOptions> { - @override - ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options; +abstract class ImageBlockDtoCopyWith<$R, $In extends ImageBlockDto, $Out> + implements SubSectionBlockDtoCopyWith<$R, $In, $Out, ImageOptions> { + ImageOptionsCopyWith<$R, ImageOptions, ImageOptions>? get options; @override $R call({ImageOptions? options, String? content}); - ImagePartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); + ImageBlockDtoCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>(Then<$Out2, $R2> t); } -class _ImagePartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, ImagePart, $Out> - implements ImagePartCopyWith<$R, ImagePart, $Out> { - _ImagePartCopyWithImpl(super.value, super.then, super.then2); +class _ImageBlockDtoCopyWithImpl<$R, $Out> + extends ClassCopyWithBase<$R, ImageBlockDto, $Out> + implements ImageBlockDtoCopyWith<$R, ImageBlockDto, $Out> { + _ImageBlockDtoCopyWithImpl(super.value, super.then, super.then2); @override - late final ClassMapperBase $mapper = - ImagePartMapper.ensureInitialized(); + late final ClassMapperBase $mapper = + ImageBlockDtoMapper.ensureInitialized(); @override - ImageOptionsCopyWith<$R, ImageOptions, ImageOptions> get options => - ($value.options as ImageOptions).copyWith.$chain((v) => call(options: v)); + ImageOptionsCopyWith<$R, ImageOptions, ImageOptions>? get options => + $value.options?.copyWith.$chain((v) => call(options: v)); @override - $R call({ImageOptions? options, String? content}) => + $R call({Object? options = $none, String? content}) => $apply(FieldCopyWithData({ - if (options != null) #options: options, + if (options != $none) #options: options, if (content != null) #content: content })); @override - ImagePart $make(CopyWithData data) => ImagePart( + ImageBlockDto $make(CopyWithData data) => ImageBlockDto( options: data.get(#options, or: $value.options), content: data.get(#content, or: $value.content)); @override - ImagePartCopyWith<$R2, ImagePart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _ImagePartCopyWithImpl($value, $cast, t); -} - -class RootLayoutPartMapper extends SubClassMapperBase { - RootLayoutPartMapper._(); - - static RootLayoutPartMapper? _instance; - static RootLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = RootLayoutPartMapper._()); - SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'RootLayoutPart'; - - static ContentOptions _$options(RootLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - RootLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionType _$type(RootLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'root'; - @override - late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); - - static RootLayoutPart _instantiate(DecodingData data) { - return RootLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static RootLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static RootLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin RootLayoutPartMappable { - String toJson() { - return RootLayoutPartMapper.ensureInitialized() - .encodeJson(this as RootLayoutPart); - } - - Map toMap() { - return RootLayoutPartMapper.ensureInitialized() - .encodeMap(this as RootLayoutPart); - } - - RootLayoutPartCopyWith - get copyWith => _RootLayoutPartCopyWithImpl( - this as RootLayoutPart, $identity, $identity); - @override - String toString() { - return RootLayoutPartMapper.ensureInitialized() - .stringifyValue(this as RootLayoutPart); - } - - @override - bool operator ==(Object other) { - return RootLayoutPartMapper.ensureInitialized() - .equalsValue(this as RootLayoutPart, other); - } - - @override - int get hashCode { - return RootLayoutPartMapper.ensureInitialized() - .hashValue(this as RootLayoutPart); - } -} - -extension RootLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, RootLayoutPart, $Out> { - RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> get $asRootLayoutPart => - $base.as((v, t, t2) => _RootLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class RootLayoutPartCopyWith<$R, $In extends RootLayoutPart, $Out> - implements SectionDtoCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - RootLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _RootLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, RootLayoutPart, $Out> - implements RootLayoutPartCopyWith<$R, RootLayoutPart, $Out> { - _RootLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - RootLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - RootLayoutPart $make(CopyWithData data) => RootLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - RootLayoutPartCopyWith<$R2, RootLayoutPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _RootLayoutPartCopyWithImpl($value, $cast, t); -} - -class HeaderLayoutPartMapper extends SubClassMapperBase { - HeaderLayoutPartMapper._(); - - static HeaderLayoutPartMapper? _instance; - static HeaderLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = HeaderLayoutPartMapper._()); - SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'HeaderLayoutPart'; - - static ContentOptions _$options(HeaderLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - HeaderLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionType _$type(HeaderLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'header'; - @override - late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); - - static HeaderLayoutPart _instantiate(DecodingData data) { - return HeaderLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static HeaderLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static HeaderLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin HeaderLayoutPartMappable { - String toJson() { - return HeaderLayoutPartMapper.ensureInitialized() - .encodeJson(this as HeaderLayoutPart); - } - - Map toMap() { - return HeaderLayoutPartMapper.ensureInitialized() - .encodeMap(this as HeaderLayoutPart); - } - - HeaderLayoutPartCopyWith - get copyWith => _HeaderLayoutPartCopyWithImpl( - this as HeaderLayoutPart, $identity, $identity); - @override - String toString() { - return HeaderLayoutPartMapper.ensureInitialized() - .stringifyValue(this as HeaderLayoutPart); - } - - @override - bool operator ==(Object other) { - return HeaderLayoutPartMapper.ensureInitialized() - .equalsValue(this as HeaderLayoutPart, other); - } - - @override - int get hashCode { - return HeaderLayoutPartMapper.ensureInitialized() - .hashValue(this as HeaderLayoutPart); - } -} - -extension HeaderLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, HeaderLayoutPart, $Out> { - HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> - get $asHeaderLayoutPart => - $base.as((v, t, t2) => _HeaderLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class HeaderLayoutPartCopyWith<$R, $In extends HeaderLayoutPart, $Out> - implements SectionDtoCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - HeaderLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _HeaderLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, HeaderLayoutPart, $Out> - implements HeaderLayoutPartCopyWith<$R, HeaderLayoutPart, $Out> { - _HeaderLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - HeaderLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - HeaderLayoutPart $make(CopyWithData data) => HeaderLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - HeaderLayoutPartCopyWith<$R2, HeaderLayoutPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _HeaderLayoutPartCopyWithImpl($value, $cast, t); -} - -class BodyLayoutPartMapper extends SubClassMapperBase { - BodyLayoutPartMapper._(); - - static BodyLayoutPartMapper? _instance; - static BodyLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = BodyLayoutPartMapper._()); - SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'BodyLayoutPart'; - - static ContentOptions _$options(BodyLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - BodyLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionType _$type(BodyLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'body'; - @override - late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); - - static BodyLayoutPart _instantiate(DecodingData data) { - return BodyLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static BodyLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static BodyLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin BodyLayoutPartMappable { - String toJson() { - return BodyLayoutPartMapper.ensureInitialized() - .encodeJson(this as BodyLayoutPart); - } - - Map toMap() { - return BodyLayoutPartMapper.ensureInitialized() - .encodeMap(this as BodyLayoutPart); - } - - BodyLayoutPartCopyWith - get copyWith => _BodyLayoutPartCopyWithImpl( - this as BodyLayoutPart, $identity, $identity); - @override - String toString() { - return BodyLayoutPartMapper.ensureInitialized() - .stringifyValue(this as BodyLayoutPart); - } - - @override - bool operator ==(Object other) { - return BodyLayoutPartMapper.ensureInitialized() - .equalsValue(this as BodyLayoutPart, other); - } - - @override - int get hashCode { - return BodyLayoutPartMapper.ensureInitialized() - .hashValue(this as BodyLayoutPart); - } -} - -extension BodyLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, BodyLayoutPart, $Out> { - BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> get $asBodyLayoutPart => - $base.as((v, t, t2) => _BodyLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class BodyLayoutPartCopyWith<$R, $In extends BodyLayoutPart, $Out> - implements SectionDtoCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - BodyLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _BodyLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, BodyLayoutPart, $Out> - implements BodyLayoutPartCopyWith<$R, BodyLayoutPart, $Out> { - _BodyLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - BodyLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - BodyLayoutPart $make(CopyWithData data) => BodyLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - BodyLayoutPartCopyWith<$R2, BodyLayoutPart, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t) => - _BodyLayoutPartCopyWithImpl($value, $cast, t); -} - -class FooterLayoutPartMapper extends SubClassMapperBase { - FooterLayoutPartMapper._(); - - static FooterLayoutPartMapper? _instance; - static FooterLayoutPartMapper ensureInitialized() { - if (_instance == null) { - MapperContainer.globals.use(_instance = FooterLayoutPartMapper._()); - SectionDtoMapper.ensureInitialized().addSubMapper(_instance!); - ContentOptionsMapper.ensureInitialized(); - ContentSectionPartMapper.ensureInitialized(); - } - return _instance!; - } - - @override - final String id = 'FooterLayoutPart'; - - static ContentOptions _$options(FooterLayoutPart v) => v.options; - static const Field _f$options = - Field('options', _$options); - static List> _$contentSections( - FooterLayoutPart v) => - v.contentSections; - static const Field>> - _f$contentSections = Field('contentSections', _$contentSections, - key: 'content_sections', opt: true, def: const []); - static SectionType _$type(FooterLayoutPart v) => v.type; - static const Field _f$type = - Field('type', _$type, mode: FieldMode.member); - - @override - final MappableFields fields = const { - #options: _f$options, - #contentSections: _f$contentSections, - #type: _f$type, - }; - @override - final bool ignoreNull = true; - - @override - final String discriminatorKey = 'type'; - @override - final dynamic discriminatorValue = 'footer'; - @override - late final ClassMapperBase superMapper = SectionDtoMapper.ensureInitialized(); - - static FooterLayoutPart _instantiate(DecodingData data) { - return FooterLayoutPart( - options: data.dec(_f$options), - contentSections: data.dec(_f$contentSections)); - } - - @override - final Function instantiate = _instantiate; - - static FooterLayoutPart fromMap(Map map) { - return ensureInitialized().decodeMap(map); - } - - static FooterLayoutPart fromJson(String json) { - return ensureInitialized().decodeJson(json); - } -} - -mixin FooterLayoutPartMappable { - String toJson() { - return FooterLayoutPartMapper.ensureInitialized() - .encodeJson(this as FooterLayoutPart); - } - - Map toMap() { - return FooterLayoutPartMapper.ensureInitialized() - .encodeMap(this as FooterLayoutPart); - } - - FooterLayoutPartCopyWith - get copyWith => _FooterLayoutPartCopyWithImpl( - this as FooterLayoutPart, $identity, $identity); - @override - String toString() { - return FooterLayoutPartMapper.ensureInitialized() - .stringifyValue(this as FooterLayoutPart); - } - - @override - bool operator ==(Object other) { - return FooterLayoutPartMapper.ensureInitialized() - .equalsValue(this as FooterLayoutPart, other); - } - - @override - int get hashCode { - return FooterLayoutPartMapper.ensureInitialized() - .hashValue(this as FooterLayoutPart); - } -} - -extension FooterLayoutPartValueCopy<$R, $Out> - on ObjectCopyWith<$R, FooterLayoutPart, $Out> { - FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> - get $asFooterLayoutPart => - $base.as((v, t, t2) => _FooterLayoutPartCopyWithImpl(v, t, t2)); -} - -abstract class FooterLayoutPartCopyWith<$R, $In extends FooterLayoutPart, $Out> - implements SectionDtoCopyWith<$R, $In, $Out> { - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options; - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections; - @override - $R call( - {ContentOptions? options, - List>? contentSections}); - FooterLayoutPartCopyWith<$R2, $In, $Out2> $chain<$R2, $Out2>( - Then<$Out2, $R2> t); -} - -class _FooterLayoutPartCopyWithImpl<$R, $Out> - extends ClassCopyWithBase<$R, FooterLayoutPart, $Out> - implements FooterLayoutPartCopyWith<$R, FooterLayoutPart, $Out> { - _FooterLayoutPartCopyWithImpl(super.value, super.then, super.then2); - - @override - late final ClassMapperBase $mapper = - FooterLayoutPartMapper.ensureInitialized(); - @override - ContentOptionsCopyWith<$R, ContentOptions, ContentOptions> get options => - $value.options.copyWith.$chain((v) => call(options: v)); - @override - ListCopyWith< - $R, - ContentSectionPart, - ContentSectionPartCopyWith< - $R, - ContentSectionPart, - ContentSectionPart, - ContentOptions>> get contentSections => ListCopyWith( - $value.contentSections, - (v, t) => v.copyWith.$chain(t), - (v) => call(contentSections: v)); - @override - $R call( - {ContentOptions? options, - List>? contentSections}) => - $apply(FieldCopyWithData({ - if (options != null) #options: options, - if (contentSections != null) #contentSections: contentSections - })); - @override - FooterLayoutPart $make(CopyWithData data) => FooterLayoutPart( - options: data.get(#options, or: $value.options), - contentSections: data.get(#contentSections, or: $value.contentSections)); - - @override - FooterLayoutPartCopyWith<$R2, FooterLayoutPart, $Out2> $chain<$R2, $Out2>( + ImageBlockDtoCopyWith<$R2, ImageBlockDto, $Out2> $chain<$R2, $Out2>( Then<$Out2, $R2> t) => - _FooterLayoutPartCopyWithImpl($value, $cast, t); + _ImageBlockDtoCopyWithImpl($value, $cast, t); } diff --git a/packages/superdeck_core/lib/src/models/options_model.dart b/packages/superdeck_core/lib/src/models/options_model.dart index c66c6bd9..7de16f5b 100644 --- a/packages/superdeck_core/lib/src/models/options_model.dart +++ b/packages/superdeck_core/lib/src/models/options_model.dart @@ -1,6 +1,6 @@ part of 'models.dart'; -@MappableClass() +@MappableClass(discriminatorValue: 'content') class ContentOptions with ContentOptionsMappable { final ContentAlignment? align; final int? flex; @@ -25,7 +25,7 @@ class ContentOptions with ContentOptionsMappable { bool get isEmpty => flex == null && align == null; } -@MappableClass() +@MappableClass(discriminatorValue: 'image') class ImageOptions extends ContentOptions with ImageOptionsMappable { final String src; final ImageFit? fit; @@ -45,7 +45,10 @@ class ImageOptions extends ContentOptions with ImageOptionsMappable { ); } -@MappableClass(hook: UnmappedPropertiesHook('args')) +@MappableClass( + discriminatorValue: 'widget_options', + hook: UnmappedPropertiesHook('args'), +) class WidgetOptions extends ContentOptions with WidgetOptionsMappable { final String name; final Map args; diff --git a/packages/superdeck_core/lib/src/models/reference_model.dart b/packages/superdeck_core/lib/src/models/reference_model.dart index 8d317f76..263231b1 100644 --- a/packages/superdeck_core/lib/src/models/reference_model.dart +++ b/packages/superdeck_core/lib/src/models/reference_model.dart @@ -1,30 +1,58 @@ part of 'models.dart'; @MappableClass() -class SuperDeckReference with SuperDeckReferenceMappable { +class ReferenceDto with ReferenceDtoMappable { final Config config; final List slides; final List assets; - SuperDeckReference({ + ReferenceDto({ required this.config, required this.slides, required this.assets, }); - static SuperDeckReference loadFile(File file) { + static ReferenceDto loadFile(File file) { try { return fromJson(file.readAsStringSync()); } catch (e) { - return SuperDeckReference(assets: [], slides: [], config: Config.empty()); + return ReferenceDto(assets: [], slides: [], config: Config.empty()); } } - const SuperDeckReference.empty() + static ReferenceDto loadYaml(File file) { + try { + final yamlString = yaml.loadYaml(file.readAsStringSync()); + return ReferenceDto.fromJson(jsonEncode(yamlString)); + } catch (e) { + rethrow; + return ReferenceDto(assets: [], slides: [], config: Config.empty()); + } + } + + const ReferenceDto.empty() : config = const Config.empty(), slides = const [], assets = const []; - static const fromMap = SuperDeckReferenceMapper.fromMap; - static const fromJson = SuperDeckReferenceMapper.fromJson; + static const fromMap = ReferenceDtoMapper.fromMap; + static const fromJson = ReferenceDtoMapper.fromJson; +} + +class ContentOptionsSectionMapper extends SimpleMapper { + const ContentOptionsSectionMapper(); + + @override + ContentOptions decode(dynamic value) { + return ContentOptionsMapper.fromMap(value); + } + + @override + dynamic encode(ContentOptions self) { + final map = self.toMap(); + if (map.isEmpty) { + return null; + } + return map; + } } diff --git a/packages/superdeck_core/lib/src/models/slide_model.dart b/packages/superdeck_core/lib/src/models/slide_model.dart index 77d2c980..00dd5c15 100644 --- a/packages/superdeck_core/lib/src/models/slide_model.dart +++ b/packages/superdeck_core/lib/src/models/slide_model.dart @@ -3,23 +3,19 @@ part of 'models.dart'; @MappableClass() class Slide with SlideMappable { final int index; - final String content; final String key; - final List sections; final SlideOptions? options; + final String content; + final List sections; Slide({ required this.index, - required this.content, required this.key, this.options, + required this.content, this.sections = const [], }); - static Slide parse(Map map) { - return Slide.fromMap(map); - } - static Slide fromMap(Map map) { Slide.schema.validateOrThrow(map); return SlideMapper.fromMap(map); @@ -38,6 +34,3 @@ class Slide with SlideMappable { additionalProperties: false, ); } - -@MappableRecord() -typedef SectionData = ({String content, ContentOptions? options}); diff --git a/packages/superdeck_core/lib/src/models/slide_sections_model.dart b/packages/superdeck_core/lib/src/models/slide_sections_model.dart index 5f34d742..2cb3c165 100644 --- a/packages/superdeck_core/lib/src/models/slide_sections_model.dart +++ b/packages/superdeck_core/lib/src/models/slide_sections_model.dart @@ -1,155 +1,141 @@ part of 'models.dart'; @MappableEnum() -enum SectionType { - root, - header, - body, - footer, -} - -@MappableEnum() -enum SubSectionType { - content, +enum BlockType { + section, + column, image, widget, } -interface class PartDto { - const PartDto(); +abstract class BlockDto { + const BlockDto(); } -@MappableClass() -abstract class SectionDto extends PartDto with SectionDtoMappable { - final SectionType type; - - final ContentOptions options; - - final List contentSections; - - SectionDto({ - required this.type, - required this.options, - this.contentSections = const [], +@MappableClass( + includeCustomMappers: [OptionsMapper()], + // hook: BlockMappingHook(), +) +class SectionBlockDto extends BlockDto with SectionBlockDtoMappable { + final ContentOptions? options; + final List subSections; + + SectionBlockDto({ + this.options, + this.subSections = const [], }); - factory SectionDto.build( - SectionType type, { - ContentOptions? options, - }) { - options ??= ContentOptions(); - return switch (type) { - SectionType.header => HeaderLayoutPart(options: options), - SectionType.body => BodyLayoutPart(options: options), - SectionType.footer => FooterLayoutPart(options: options), - SectionType.root => RootLayoutPart(options: options), - }; - } - - String get name => type.name; - - SectionDto addLine(String content) { - final lastPart = contentSections.lastOrNull; - final subSectionsCopy = [...contentSections]; + SectionBlockDto addLine(String content) { + final lastPart = subSections.lastOrNull; + final subSectionsCopy = [...subSections]; - if (lastPart is ContentPart) { + if (lastPart is ColumnBlockDto) { subSectionsCopy.last = lastPart.copyWith( - content: lastPart.content + '\n' + content, + content: '${lastPart.content}\n$content', ); } else { - subSectionsCopy.add(ContentPart( + subSectionsCopy.add(ColumnBlockDto( content: content, - options: ContentOptions(), )); } - return copyWith(contentSections: subSectionsCopy); + return copyWith(subSections: subSectionsCopy); } - SectionDto addSubSection(ContentSectionPart part) { - return copyWith(contentSections: [...contentSections, part]); + SectionBlockDto addSubSection(SubSectionBlockDto part) { + return copyWith(subSections: [...subSections, part]); } } -@MappableClass(discriminatorKey: 'type') -sealed class ContentSectionPart extends PartDto - with ContentSectionPartMappable { - @MappableField() +@MappableClass( + discriminatorKey: 'type', + includeCustomMappers: [OptionsMapper()], + // hook: BlockMappingHook(), +) +sealed class SubSectionBlockDto extends BlockDto + with SubSectionBlockDtoMappable { final String content; - final SubSectionType type; - final T options; + T? get options; - ContentSectionPart({ - required this.type, - required this.content, - required this.options, + SubSectionBlockDto({ + this.content = '', }); } -@MappableClass(discriminatorValue: 'content') -class ContentPart extends ContentSectionPart - with ContentPartMappable { - ContentPart({ - required super.content, - required super.options, - }) : super(type: SubSectionType.content); +@MappableClass(discriminatorValue: 'column') +class ColumnBlockDto extends SubSectionBlockDto + with ColumnBlockDtoMappable { + @override + final ContentOptions? options; + + ColumnBlockDto({ + super.content, + this.options, + }); } @MappableClass(discriminatorValue: 'widget') -class WidgetPart extends ContentSectionPart - with WidgetPartMappable { - WidgetPart({ - required super.options, - required super.content, - }) : super(type: SubSectionType.widget); +class WidgetBlockDto extends SubSectionBlockDto + with WidgetBlockDtoMappable { + @override + final WidgetOptions? options; + + WidgetBlockDto({ + this.options, + super.content, + }); } @MappableClass(discriminatorValue: 'image') -class ImagePart extends ContentSectionPart - with ImagePartMappable { - ImagePart({ - required super.options, - required super.content, - }) : super(type: SubSectionType.image); -} - -@MappableClass(discriminatorValue: 'root') -class RootLayoutPart extends SectionDto with RootLayoutPartMappable { - RootLayoutPart({ - required super.options, - super.contentSections = const [], - }) : super( - type: SectionType.root, - ); -} - -@MappableClass(discriminatorValue: 'header') -class HeaderLayoutPart extends SectionDto with HeaderLayoutPartMappable { - HeaderLayoutPart({ - required super.options, - super.contentSections = const [], - }) : super( - type: SectionType.header, - ); +class ImageBlockDto extends SubSectionBlockDto + with ImageBlockDtoMappable { + @override + final ImageOptions? options; + + ImageBlockDto({ + this.options, + super.content, + }); } -@MappableClass(discriminatorValue: 'body') -class BodyLayoutPart extends SectionDto with BodyLayoutPartMappable { - BodyLayoutPart({ - required super.options, - super.contentSections = const [], - }) : super( - type: SectionType.body, - ); -} +// class BlockMappingHook extends MappingHook { +// const BlockMappingHook(); + +// @override +// Object? afterEncode(Object? value) { +// if (value is Map) { +// if (value.isEmpty) { +// return null; +// } else { +// final valueCopy = {...value}; +// for (var key in value.keys) { +// if (value[key] == null) { +// valueCopy.remove(key); +// } +// } +// return valueCopy; +// } +// } + +// return value; +// } +// } + +class OptionsMapper extends SimpleMapper { + const OptionsMapper(); + + @override + ContentOptions decode(dynamic value) { + return ContentOptionsMapper.fromMap(value); + } -@MappableClass(discriminatorValue: 'footer') -class FooterLayoutPart extends SectionDto with FooterLayoutPartMappable { - FooterLayoutPart({ - required super.options, - super.contentSections = const [], - }) : super( - type: SectionType.footer, - ); + @override + dynamic encode(ContentOptions self) { + final map = self.toMap(); + if (map.isEmpty) { + return null; + } + return map; + } } diff --git a/packages/superdeck_core/lib/src/schema/schema_validation.dart b/packages/superdeck_core/lib/src/schema/schema_validation.dart index 0f6cfaf5..c51edea9 100644 --- a/packages/superdeck_core/lib/src/schema/schema_validation.dart +++ b/packages/superdeck_core/lib/src/schema/schema_validation.dart @@ -63,7 +63,7 @@ class InvalidTypeValidationError extends ValidationError { required this.expectedType, }); - String get message => 'Invalid type: [$expectedType] got [$value]'; + String get message => 'Invalid type: expected [$expectedType] got [$value]'; } class ConstraintsValidationError extends ValidationError { diff --git a/packages/superdeck_core/lib/src/schema/schema_values.dart b/packages/superdeck_core/lib/src/schema/schema_values.dart index 747fd38d..9f7b5cee 100644 --- a/packages/superdeck_core/lib/src/schema/schema_values.dart +++ b/packages/superdeck_core/lib/src/schema/schema_values.dart @@ -34,19 +34,14 @@ class SchemaValue { if (value is V) { return value; } - if (V is int) { - return _tryParseInt(value) as V?; - } - - if (V is double) { - return _tryParseDouble(value) as V?; - } - - if (V is bool) { - return _tryParseBool(value) as V?; - } - - return null; + final type = V.toString(); + + return switch (type) { + 'int' => _tryParseInt(value) as V?, + 'double' => _tryParseDouble(value) as V?, + 'bool' => _tryParseBool(value) as V?, + _ => null, + }; } void validateOrThrow(Object value) { diff --git a/superdeck.code-workspace b/superdeck.code-workspace index f43e834d..e33e514e 100644 --- a/superdeck.code-workspace +++ b/superdeck.code-workspace @@ -1,9 +1,5 @@ { "folders": [ - { - "name": "root", - "path": "." - }, { "name": "superdeck", "path": "packages/superdeck" From e870fc78c463a745633fd2428da729bac6ec4c0e Mon Sep 17 00:00:00 2001 From: Leo Farias Date: Mon, 10 Feb 2025 20:04:44 -0500 Subject: [PATCH 15/27] 1.0 prep --- packages/superdeck/.cursorignore | 11 + packages/superdeck/.gitignore | 48 + packages/superdeck/analysis_options.yaml | 19 +- .../{ => assets}/grammars/markdown.json | 0 .../{ => assets}/grammars/mermaid.json | 0 .../{ => assets}/grammars/python.json | 0 .../superdeck/assets/iframe_template.html | 104 + packages/superdeck/build.yaml | 5 +- packages/superdeck/example/.metadata | 30 +- .../.superdeck/assets/mermaid_srHRIuii.png | Bin 0 -> 10102 bytes .../.superdeck/assets/thumbnail_0zqy1l5c.png | Bin 0 -> 26909 bytes .../.superdeck/assets/thumbnail_14RbmSW5.png | Bin 0 -> 42118 bytes .../.superdeck/assets/thumbnail_3sLdrfsM.png | Bin 0 -> 48445 bytes .../.superdeck/assets/thumbnail_9BmK4SPw.png | Bin 0 -> 32108 bytes .../.superdeck/assets/thumbnail_9mHDFwa9.png | Bin 0 -> 28423 bytes .../.superdeck/assets/thumbnail_9y5hBeTm.png | Bin 0 -> 52680 bytes .../.superdeck/assets/thumbnail_CwxHOCpO.png | Bin 0 -> 42654 bytes .../.superdeck/assets/thumbnail_F2fTbXOG.png | Bin 0 -> 76013 bytes .../.superdeck/assets/thumbnail_H2GzZVSx.png | Bin 0 -> 38645 bytes .../.superdeck/assets/thumbnail_RiDZbaFZ.png | Bin 0 -> 27632 bytes .../.superdeck/assets/thumbnail_SJncL4H2.png | Bin 0 -> 34529 bytes .../.superdeck/assets/thumbnail_WyJ8NjmF.png | Bin 0 -> 55826 bytes .../.superdeck/assets/thumbnail_XeDZiCNk.png | Bin 0 -> 23956 bytes .../.superdeck/assets/thumbnail_Z40wIUYP.png | Bin 0 -> 37815 bytes .../.superdeck/assets/thumbnail_aTAXFyQ7.png | Bin 0 -> 51613 bytes .../.superdeck/assets/thumbnail_cS8UY7ii.png | Bin 0 -> 43843 bytes .../.superdeck/assets/thumbnail_nPPBLQ6k.png | Bin 0 -> 22773 bytes .../.superdeck/assets/thumbnail_oglBIjM0.png | Bin 0 -> 37400 bytes .../.superdeck/assets/thumbnail_pukXIjvK.png | Bin 0 -> 44261 bytes .../.superdeck/assets/thumbnail_ybLDY8oi.png | Bin 0 -> 38687 bytes .../.superdeck/assets/thumbnail_z34aal1W.png | Bin 0 -> 82260 bytes .../.superdeck/generated/mermaid_BTVEzSEg.png | Bin 17207 -> 0 bytes .../.superdeck/generated/mermaid_llAVsepR.png | Bin 24345 -> 0 bytes .../example/.superdeck/generated_assets.json | 32 + .../superdeck/example/.superdeck/slides.json | 198 -- .../superdeck/example/.superdeck/slides.yaml | 239 -- .../example/.superdeck/slides_copy.md | 108 - .../example/.superdeck/superdeck.json | 556 ++++ .../example/assets/llm_interaction.png | Bin 0 -> 202127 bytes .../superdeck/example/assets/llm_tools.png | Bin 0 -> 274265 bytes .../example/assets/structured_output.png | Bin 0 -> 210035 bytes .../example/assets/widget_response.png | Bin 0 -> 307394 bytes packages/superdeck/example/lib/main.dart | 54 +- .../example/lib/src/parts/background.dart | 108 + .../example/lib/src/parts/footer.dart | 23 + .../example/lib/src/parts/header.dart | 29 + packages/superdeck/example/lib/src/style.dart | 211 +- .../example/lib/src/widget/mix_demo.dart | 116 - .../flutter/generated_plugin_registrant.cc | 8 +- .../linux/flutter/generated_plugins.cmake | 2 +- .../Flutter/GeneratedPluginRegistrant.swift | 6 +- packages/superdeck/example/macos/Podfile.lock | 31 +- .../macos/Runner.xcodeproj/project.pbxproj | 74 +- .../example/macos/Runner/Release.entitlements | 6 +- packages/superdeck/example/pubspec.yaml | 27 +- .../superdeck/example/pubspec_overrides.yaml | 10 +- packages/superdeck/example/slides.md | 356 ++- packages/superdeck/example/superdeck.yaml | 4 - .../flutter/generated_plugin_registrant.cc | 6 +- .../windows/flutter/generated_plugins.cmake | 2 +- packages/superdeck/lib/chat/chat_theme.dart | 113 - .../lib/chat/components/typing_indicator.dart | 66 - packages/superdeck/lib/chat/prompt.dart | 64 - .../components/atoms/cache_image_widget.dart | 104 - .../linear_progresss_indicator_widget.dart | 37 - .../lib/components/atoms/markdown_viewer.dart | 258 -- .../lib/components/atoms/slide_thumbnail.dart | 211 -- .../lib/components/atoms/slide_view.dart | 63 - .../components/atoms/transition_widget.dart | 175 -- .../molecules/exception_widget.dart | 27 - .../molecules/floating_bottom_bar.dart | 78 - .../components/molecules/slide_content.dart | 154 - .../lib/components/molecules/split_view.dart | 97 - .../lib/components/organisms/app_shell.dart | 67 - .../lib/components/organisms/chat_panel.dart | 356 --- .../lib/components/organisms/drawer.dart | 23 - .../organisms/slide_thumbnail_list.dart | 85 - .../lib/components/remix/button.dart | 103 - .../lib/components/superdeck_app.dart | 108 - .../lib/helpers/cache_memory_image.dart | 34 - .../lib/helpers/dependency_injection.dart | 9 - .../superdeck/lib/helpers/dialog_page.dart | 57 - .../superdeck/lib/helpers/extensions.dart | 28 - packages/superdeck/lib/helpers/hooks.dart | 139 - .../superdeck/lib/helpers/measure_size.dart | 88 - packages/superdeck/lib/helpers/routes.dart | 186 -- .../superdeck/lib/helpers/signal_hook.dart | 58 - packages/superdeck/lib/helpers/universal.dart | 285 -- .../lib/helpers/value_notifiers.dart | 55 - packages/superdeck/lib/helpers/watcher.dart | 51 - .../lib/providers/assets_provider.dart | 31 - .../superdeck/lib/providers/controller.dart | 103 - .../lib/providers/examples_provider.dart | 35 - .../lib/providers/slide_provider.dart | 55 - .../lib/providers/snapshot_provider.dart | 42 - .../lib/providers/style_provider.dart | 46 - .../superdeck/lib/screens/export_screen.dart | 135 - .../lib/screens/presentation_screen.dart | 45 - .../lib/services/export_service.dart | 256 -- .../lib/services/reference_service.dart | 74 - .../atoms/async_snapshot_widget.dart | 35 + .../components/atoms/cache_image_widget.dart | 68 + .../linear_progresss_indicator_widget.dart | 53 + .../components/atoms/loading_indicator.dart | 62 +- .../src/components/atoms/markdown_viewer.dart | 71 + .../src/components/atoms/slide_thumbnail.dart | 184 ++ .../lib/src/components/atoms/slide_view.dart | 145 + .../components/molecules/block_provider.dart | 67 + .../components/molecules/block_widget.dart | 322 +++ .../src/components/molecules/bottom_bar.dart | 85 + .../components/molecules/scaled_app.dart | 26 +- .../components/molecules/slide_screen.dart} | 17 +- .../src/components/organisms/app_shell.dart | 164 ++ .../components/organisms/comments_panel.dart | 33 + .../organisms/keyboard_shortcuts.dart | 67 + .../components/organisms/thumbnail_panel.dart | 128 + .../components/organisms/webview_wrapper.dart | 100 + .../lib/src/components/superdeck_app.dart | 44 + .../modules/common}/helpers/constants.dart | 0 .../modules/common/helpers/converters.dart | 77 + .../modules/common}/helpers/deep_merge.dart | 0 .../modules/common/helpers/extensions.dart | 7 + .../modules/common/helpers/measure_size.dart | 48 + .../src/modules/common/helpers/provider.dart | 53 + .../helpers/root_bundle_data_store.dart | 9 + .../modules/common/helpers/slide_parts.dart | 13 + .../common}/helpers/syntax_highlighter.dart | 49 +- .../modules/common}/helpers/theme.dart | 0 .../modules/common}/helpers/utils.dart | 33 +- .../modules/common/initializer_provider.dart | 45 + .../builders/alert_element_builder.dart | 90 + .../builders/code_element_builder.dart | 187 ++ .../builders/element_data_provider.dart | 119 + .../builders/image_element_builder.dart | 127 + .../builders/text_element_builder.dart | 90 + .../builders/zero_padding_builder.dart | 7 + .../markdown/markdown_element_builders.dart | 111 + .../common/markdown/markdown_helpers.dart | 111 + .../lib/src/modules/common/styles/style.dart | 259 ++ .../src/modules/common/styles/style_spec.dart | 312 ++ .../modules/common/styles/style_spec.g.dart | 2517 ++++++++++++++++ .../lib/src/modules/deck/deck_controller.dart | 129 + .../lib/src/modules/deck/deck_options.dart | 81 + .../src/modules/deck/deck_options.mapper.dart | 177 ++ .../lib/src/modules/deck/deck_provider.dart | 116 + .../src/modules/deck/slide_configuration.dart | 48 + .../deck/slide_configuration.mapper.dart | 198 ++ .../src/modules/export/export_controller.dart | 230 ++ .../export/slide_capture_service.dart} | 89 +- .../navigation/navigation_controller.dart | 171 ++ .../navigation/navigation_provider.dart | 66 + .../lib/src/modules/navigation/routes.dart | 27 + .../lib/src/screens/export_screen.dart | 167 ++ packages/superdeck/lib/styles/style_spec.dart | 305 -- .../superdeck/lib/styles/style_spec.g.dart | 2156 -------------- packages/superdeck/lib/styles/style_util.dart | 84 - packages/superdeck/lib/superdeck.dart | 17 +- .../lib/templates/slide_template.dart | 44 - packages/superdeck/pubspec.yaml | 53 +- .../test/fixtures/deck_reference.json | 270 +- .../test/helpers/deep_merge_test.dart | 2 +- .../test/helpers/measure_size_test.dart | 2 +- .../helpers/memory_image_provider_test.dart | 49 - .../test/helpers/syntax_highlighter_test.dart | 2 +- .../test/models/asset_model_test.dart | 72 - .../test/models/config_model_test.dart | 36 - .../models/deck_reference_model_test.dart | 43 - .../superdeck/test/options_model_test.dart | 83 - .../test/templates/slide_template_test.dart | 20 +- packages/superdeck/test/test_helpers.dart | 36 +- packages/superdeck_cli/analysis_options.yaml | 33 +- packages/superdeck_cli/bin/build.dart | 13 - packages/superdeck_cli/bin/export.dart | 211 ++ packages/superdeck_cli/bin/main.dart | 27 + packages/superdeck_cli/bin/watch.dart | 13 - .../lib/src/commands/build_command.dart | 110 + packages/superdeck_cli/lib/src/constants.dart | 14 - .../superdeck_cli/lib/src/deck_generator.dart | 88 - .../lib/src/generator_pipeline.dart | 406 +-- .../lib/src/helpers/context.dart | 9 + .../lib/src/helpers/dart_process.dart | 67 +- .../lib/src/helpers/exceptions.dart | 78 +- .../lib/src/helpers/extensions.dart | 59 + .../superdeck_cli/lib/src/helpers/logger.dart | 38 +- .../lib/src/helpers/pretty_json.dart | 8 - .../lib/src/helpers/slide_parser.dart | 80 - .../lib/src/helpers/update_pubspec.dart | 77 +- .../lib/src/helpers/yaml_to_map.dart | 22 - .../lib/src/parsers/markdown_parser.dart | 91 + .../lib/src/parsers/parsers/base_parser.dart | 5 + .../lib/src/parsers/parsers/block_parser.dart | 72 + .../src/parsers/parsers/comment_parser.dart | 25 + .../parsers/parsers/fenced_code_parser.dart | 77 + .../parsers/parsers/front_matter_parser.dart | 37 + .../parsers/parsers/grammar_definitions.dart | 158 ++ .../src/parsers/parsers/section_parser.dart | 94 + .../section_parser/section_parsing.dart | 174 -- .../parsers/section_parser/section_regex.dart | 33 - packages/superdeck_cli/lib/src/runner.dart | 25 + .../lib/src/tasks/dart_formatter_task.dart | 54 +- .../lib/src/tasks/image_cache_task.dart | 114 - .../lib/src/tasks/image_caching_task.dart | 79 + .../superdeck_cli/lib/src/tasks/mermaid.html | 35 - .../lib/src/tasks/mermaid_task.dart | 307 +- .../lib/src/tasks/slide_thumbnail_task.dart | 20 - packages/superdeck_cli/lib/superdeck_cli.dart | 2 +- packages/superdeck_cli/pubspec.yaml | 22 +- .../test/src/helpers/update_pubspec_test.dart | 78 + .../test/src/parsers/block_parser_test.dart | 393 +++ .../src/parsers/grammar_definitions_test.dart | 246 ++ .../section_parser/section_parsing_test.dart | 382 --- .../section_parser/section_regex_test.dart | 52 - .../test/src/parsers/section_parser_test.dart | 422 +++ .../test/src/parsers/slide_parser_test.dart | 282 ++ packages/superdeck_core/analysis_options.yaml | 30 +- .../lib/src/helpers/data_store.dart | 149 + .../lib/src/helpers/extensions.dart | 6 +- .../lib/src/helpers/generate_hash.dart} | 2 +- .../lib/src/helpers/mappers.dart | 34 + .../lib/src/helpers/uuid_v4.dart | 19 + .../lib/src/helpers/watcher.dart | 59 + .../lib/src/helpers/yaml_to_map.dart | 11 - .../lib/src/helpers/yaml_utils.dart | 25 + .../lib/src/models/asset_model.dart | 111 +- .../lib/src/models/asset_model.mapper.dart | 319 +++ .../lib/src/models/block_model.dart | 248 ++ .../lib/src/models/block_model.mapper.dart | 1098 +++++++ .../lib/src/models/config_model.dart | 74 - .../lib/src/models/deck_configuration.dart | 43 + .../src/models/deck_configuration.mapper.dart | 142 + .../lib/src/models/deck_reference.dart | 15 + .../lib/src/models/deck_reference.mapper.dart | 135 + .../superdeck_core/lib/src/models/models.dart | 19 - .../lib/src/models/models.mapper.dart | 2519 ----------------- .../lib/src/models/options_model.dart | 276 -- .../lib/src/models/reference_model.dart | 58 - .../lib/src/models/slide_model.dart | 62 +- .../lib/src/models/slide_model.mapper.dart | 287 ++ .../lib/src/models/slide_sections_model.dart | 141 - .../superdeck_core/lib/src/schema/schema.dart | 4 +- .../lib/src/schema/schema_model.dart | 153 - .../lib/src/schema/schema_validation.dart | 88 +- .../lib/src/schema/schema_values.dart | 490 +++- .../superdeck_core/lib/superdeck_core.dart | 13 +- packages/superdeck_core/pubspec.yaml | 3 +- .../test/src/helpers/generate_hash_test.dart} | 20 +- pubspec.lock | 3 +- pubspec.yaml | 3 +- shared_analysis_options.yaml | 61 + superdeck.code-workspace | 7 +- 250 files changed, 15169 insertions(+), 13322 deletions(-) create mode 100644 packages/superdeck/.cursorignore create mode 100644 packages/superdeck/.gitignore rename packages/superdeck/{ => assets}/grammars/markdown.json (100%) rename packages/superdeck/{ => assets}/grammars/mermaid.json (100%) rename packages/superdeck/{ => assets}/grammars/python.json (100%) create mode 100644 packages/superdeck/assets/iframe_template.html create mode 100644 packages/superdeck/example/.superdeck/assets/mermaid_srHRIuii.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_0zqy1l5c.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_14RbmSW5.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_3sLdrfsM.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_9BmK4SPw.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_9mHDFwa9.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_9y5hBeTm.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_CwxHOCpO.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_F2fTbXOG.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_H2GzZVSx.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_RiDZbaFZ.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_SJncL4H2.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_WyJ8NjmF.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_XeDZiCNk.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_Z40wIUYP.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_aTAXFyQ7.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_cS8UY7ii.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_nPPBLQ6k.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_oglBIjM0.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_pukXIjvK.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_ybLDY8oi.png create mode 100644 packages/superdeck/example/.superdeck/assets/thumbnail_z34aal1W.png delete mode 100644 packages/superdeck/example/.superdeck/generated/mermaid_BTVEzSEg.png delete mode 100644 packages/superdeck/example/.superdeck/generated/mermaid_llAVsepR.png create mode 100644 packages/superdeck/example/.superdeck/generated_assets.json delete mode 100644 packages/superdeck/example/.superdeck/slides.json delete mode 100644 packages/superdeck/example/.superdeck/slides.yaml delete mode 100644 packages/superdeck/example/.superdeck/slides_copy.md create mode 100644 packages/superdeck/example/.superdeck/superdeck.json create mode 100644 packages/superdeck/example/assets/llm_interaction.png create mode 100644 packages/superdeck/example/assets/llm_tools.png create mode 100644 packages/superdeck/example/assets/structured_output.png create mode 100644 packages/superdeck/example/assets/widget_response.png create mode 100644 packages/superdeck/example/lib/src/parts/background.dart create mode 100644 packages/superdeck/example/lib/src/parts/footer.dart create mode 100644 packages/superdeck/example/lib/src/parts/header.dart delete mode 100644 packages/superdeck/example/lib/src/widget/mix_demo.dart delete mode 100644 packages/superdeck/lib/chat/chat_theme.dart delete mode 100644 packages/superdeck/lib/chat/components/typing_indicator.dart delete mode 100644 packages/superdeck/lib/chat/prompt.dart delete mode 100644 packages/superdeck/lib/components/atoms/cache_image_widget.dart delete mode 100644 packages/superdeck/lib/components/atoms/linear_progresss_indicator_widget.dart delete mode 100644 packages/superdeck/lib/components/atoms/markdown_viewer.dart delete mode 100644 packages/superdeck/lib/components/atoms/slide_thumbnail.dart delete mode 100644 packages/superdeck/lib/components/atoms/slide_view.dart delete mode 100644 packages/superdeck/lib/components/atoms/transition_widget.dart delete mode 100644 packages/superdeck/lib/components/molecules/exception_widget.dart delete mode 100644 packages/superdeck/lib/components/molecules/floating_bottom_bar.dart delete mode 100644 packages/superdeck/lib/components/molecules/slide_content.dart delete mode 100644 packages/superdeck/lib/components/molecules/split_view.dart delete mode 100644 packages/superdeck/lib/components/organisms/app_shell.dart delete mode 100644 packages/superdeck/lib/components/organisms/chat_panel.dart delete mode 100644 packages/superdeck/lib/components/organisms/drawer.dart delete mode 100644 packages/superdeck/lib/components/organisms/slide_thumbnail_list.dart delete mode 100644 packages/superdeck/lib/components/remix/button.dart delete mode 100644 packages/superdeck/lib/components/superdeck_app.dart delete mode 100644 packages/superdeck/lib/helpers/cache_memory_image.dart delete mode 100644 packages/superdeck/lib/helpers/dependency_injection.dart delete mode 100644 packages/superdeck/lib/helpers/dialog_page.dart delete mode 100644 packages/superdeck/lib/helpers/extensions.dart delete mode 100644 packages/superdeck/lib/helpers/hooks.dart delete mode 100644 packages/superdeck/lib/helpers/measure_size.dart delete mode 100644 packages/superdeck/lib/helpers/routes.dart delete mode 100644 packages/superdeck/lib/helpers/signal_hook.dart delete mode 100644 packages/superdeck/lib/helpers/universal.dart delete mode 100644 packages/superdeck/lib/helpers/value_notifiers.dart delete mode 100644 packages/superdeck/lib/helpers/watcher.dart delete mode 100644 packages/superdeck/lib/providers/assets_provider.dart delete mode 100644 packages/superdeck/lib/providers/controller.dart delete mode 100644 packages/superdeck/lib/providers/examples_provider.dart delete mode 100644 packages/superdeck/lib/providers/slide_provider.dart delete mode 100644 packages/superdeck/lib/providers/snapshot_provider.dart delete mode 100644 packages/superdeck/lib/providers/style_provider.dart delete mode 100644 packages/superdeck/lib/screens/export_screen.dart delete mode 100644 packages/superdeck/lib/screens/presentation_screen.dart delete mode 100644 packages/superdeck/lib/services/export_service.dart delete mode 100644 packages/superdeck/lib/services/reference_service.dart create mode 100644 packages/superdeck/lib/src/components/atoms/async_snapshot_widget.dart create mode 100644 packages/superdeck/lib/src/components/atoms/cache_image_widget.dart create mode 100644 packages/superdeck/lib/src/components/atoms/linear_progresss_indicator_widget.dart rename packages/superdeck/lib/{ => src}/components/atoms/loading_indicator.dart (85%) create mode 100644 packages/superdeck/lib/src/components/atoms/markdown_viewer.dart create mode 100644 packages/superdeck/lib/src/components/atoms/slide_thumbnail.dart create mode 100644 packages/superdeck/lib/src/components/atoms/slide_view.dart create mode 100644 packages/superdeck/lib/src/components/molecules/block_provider.dart create mode 100644 packages/superdeck/lib/src/components/molecules/block_widget.dart create mode 100644 packages/superdeck/lib/src/components/molecules/bottom_bar.dart rename packages/superdeck/lib/{ => src}/components/molecules/scaled_app.dart (73%) rename packages/superdeck/lib/{components/molecules/slide_preview.dart => src/components/molecules/slide_screen.dart} (59%) create mode 100644 packages/superdeck/lib/src/components/organisms/app_shell.dart create mode 100644 packages/superdeck/lib/src/components/organisms/comments_panel.dart create mode 100644 packages/superdeck/lib/src/components/organisms/keyboard_shortcuts.dart create mode 100644 packages/superdeck/lib/src/components/organisms/thumbnail_panel.dart create mode 100644 packages/superdeck/lib/src/components/organisms/webview_wrapper.dart create mode 100644 packages/superdeck/lib/src/components/superdeck_app.dart rename packages/superdeck/lib/{ => src/modules/common}/helpers/constants.dart (100%) create mode 100644 packages/superdeck/lib/src/modules/common/helpers/converters.dart rename packages/superdeck/lib/{ => src/modules/common}/helpers/deep_merge.dart (100%) create mode 100644 packages/superdeck/lib/src/modules/common/helpers/extensions.dart create mode 100644 packages/superdeck/lib/src/modules/common/helpers/measure_size.dart create mode 100644 packages/superdeck/lib/src/modules/common/helpers/provider.dart create mode 100644 packages/superdeck/lib/src/modules/common/helpers/root_bundle_data_store.dart create mode 100644 packages/superdeck/lib/src/modules/common/helpers/slide_parts.dart rename packages/superdeck/lib/{ => src/modules/common}/helpers/syntax_highlighter.dart (69%) rename packages/superdeck/lib/{ => src/modules/common}/helpers/theme.dart (100%) rename packages/superdeck/lib/{ => src/modules/common}/helpers/utils.dart (72%) create mode 100644 packages/superdeck/lib/src/modules/common/initializer_provider.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/builders/alert_element_builder.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/builders/code_element_builder.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/builders/element_data_provider.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/builders/image_element_builder.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/builders/text_element_builder.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/builders/zero_padding_builder.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/markdown_element_builders.dart create mode 100644 packages/superdeck/lib/src/modules/common/markdown/markdown_helpers.dart create mode 100644 packages/superdeck/lib/src/modules/common/styles/style.dart create mode 100644 packages/superdeck/lib/src/modules/common/styles/style_spec.dart create mode 100644 packages/superdeck/lib/src/modules/common/styles/style_spec.g.dart create mode 100644 packages/superdeck/lib/src/modules/deck/deck_controller.dart create mode 100644 packages/superdeck/lib/src/modules/deck/deck_options.dart create mode 100644 packages/superdeck/lib/src/modules/deck/deck_options.mapper.dart create mode 100644 packages/superdeck/lib/src/modules/deck/deck_provider.dart create mode 100644 packages/superdeck/lib/src/modules/deck/slide_configuration.dart create mode 100644 packages/superdeck/lib/src/modules/deck/slide_configuration.mapper.dart create mode 100644 packages/superdeck/lib/src/modules/export/export_controller.dart rename packages/superdeck/lib/{services/snapshot_service.dart => src/modules/export/slide_capture_service.dart} (71%) create mode 100644 packages/superdeck/lib/src/modules/navigation/navigation_controller.dart create mode 100644 packages/superdeck/lib/src/modules/navigation/navigation_provider.dart create mode 100644 packages/superdeck/lib/src/modules/navigation/routes.dart create mode 100644 packages/superdeck/lib/src/screens/export_screen.dart delete mode 100644 packages/superdeck/lib/styles/style_spec.dart delete mode 100644 packages/superdeck/lib/styles/style_spec.g.dart delete mode 100644 packages/superdeck/lib/styles/style_util.dart delete mode 100644 packages/superdeck/lib/templates/slide_template.dart delete mode 100644 packages/superdeck/test/helpers/memory_image_provider_test.dart delete mode 100644 packages/superdeck/test/models/asset_model_test.dart delete mode 100644 packages/superdeck/test/models/config_model_test.dart delete mode 100644 packages/superdeck/test/models/deck_reference_model_test.dart delete mode 100644 packages/superdeck/test/options_model_test.dart delete mode 100644 packages/superdeck_cli/bin/build.dart create mode 100644 packages/superdeck_cli/bin/export.dart create mode 100644 packages/superdeck_cli/bin/main.dart delete mode 100644 packages/superdeck_cli/bin/watch.dart create mode 100644 packages/superdeck_cli/lib/src/commands/build_command.dart delete mode 100644 packages/superdeck_cli/lib/src/constants.dart delete mode 100644 packages/superdeck_cli/lib/src/deck_generator.dart create mode 100644 packages/superdeck_cli/lib/src/helpers/context.dart delete mode 100644 packages/superdeck_cli/lib/src/helpers/pretty_json.dart delete mode 100644 packages/superdeck_cli/lib/src/helpers/slide_parser.dart delete mode 100644 packages/superdeck_cli/lib/src/helpers/yaml_to_map.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/markdown_parser.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/parsers/base_parser.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/parsers/block_parser.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/parsers/comment_parser.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/parsers/fenced_code_parser.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/parsers/front_matter_parser.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/parsers/grammar_definitions.dart create mode 100644 packages/superdeck_cli/lib/src/parsers/parsers/section_parser.dart delete mode 100644 packages/superdeck_cli/lib/src/parsers/section_parser/section_parsing.dart delete mode 100644 packages/superdeck_cli/lib/src/parsers/section_parser/section_regex.dart create mode 100644 packages/superdeck_cli/lib/src/runner.dart delete mode 100644 packages/superdeck_cli/lib/src/tasks/image_cache_task.dart create mode 100644 packages/superdeck_cli/lib/src/tasks/image_caching_task.dart delete mode 100644 packages/superdeck_cli/lib/src/tasks/mermaid.html delete mode 100644 packages/superdeck_cli/lib/src/tasks/slide_thumbnail_task.dart create mode 100644 packages/superdeck_cli/test/src/helpers/update_pubspec_test.dart create mode 100644 packages/superdeck_cli/test/src/parsers/block_parser_test.dart create mode 100644 packages/superdeck_cli/test/src/parsers/grammar_definitions_test.dart delete mode 100644 packages/superdeck_cli/test/src/parsers/section_parser/section_parsing_test.dart delete mode 100644 packages/superdeck_cli/test/src/parsers/section_parser/section_regex_test.dart create mode 100644 packages/superdeck_cli/test/src/parsers/section_parser_test.dart create mode 100644 packages/superdeck_cli/test/src/parsers/slide_parser_test.dart create mode 100644 packages/superdeck_core/lib/src/helpers/data_store.dart rename packages/{superdeck_cli/lib/src/helpers/short_hash_id.dart => superdeck_core/lib/src/helpers/generate_hash.dart} (95%) create mode 100644 packages/superdeck_core/lib/src/helpers/uuid_v4.dart create mode 100644 packages/superdeck_core/lib/src/helpers/watcher.dart delete mode 100644 packages/superdeck_core/lib/src/helpers/yaml_to_map.dart create mode 100644 packages/superdeck_core/lib/src/helpers/yaml_utils.dart create mode 100644 packages/superdeck_core/lib/src/models/asset_model.mapper.dart create mode 100644 packages/superdeck_core/lib/src/models/block_model.dart create mode 100644 packages/superdeck_core/lib/src/models/block_model.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/config_model.dart create mode 100644 packages/superdeck_core/lib/src/models/deck_configuration.dart create mode 100644 packages/superdeck_core/lib/src/models/deck_configuration.mapper.dart create mode 100644 packages/superdeck_core/lib/src/models/deck_reference.dart create mode 100644 packages/superdeck_core/lib/src/models/deck_reference.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/models.dart delete mode 100644 packages/superdeck_core/lib/src/models/models.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/options_model.dart delete mode 100644 packages/superdeck_core/lib/src/models/reference_model.dart create mode 100644 packages/superdeck_core/lib/src/models/slide_model.mapper.dart delete mode 100644 packages/superdeck_core/lib/src/models/slide_sections_model.dart delete mode 100644 packages/superdeck_core/lib/src/schema/schema_model.dart rename packages/{superdeck_cli/test/src/helpers/short_hash_id_test.dart => superdeck_core/test/src/helpers/generate_hash_test.dart} (68%) create mode 100644 shared_analysis_options.yaml diff --git a/packages/superdeck/.cursorignore b/packages/superdeck/.cursorignore new file mode 100644 index 00000000..c177a801 --- /dev/null +++ b/packages/superdeck/.cursorignore @@ -0,0 +1,11 @@ +# Add directories or file patterns to ignore during indexing (e.g. foo/ or *.csv) +.dart_tool/ +.idea/ +.vscode/ +coverage/ +build/ +ios/ +macos/ +web/ +windows/ +linux/ diff --git a/packages/superdeck/.gitignore b/packages/superdeck/.gitignore new file mode 100644 index 00000000..773bfae4 --- /dev/null +++ b/packages/superdeck/.gitignore @@ -0,0 +1,48 @@ +# Flutter/Dart/Pub related +# Libraries should not include pubspec.lock, per https://dart.dev/guides/libraries/private-files#pubspeclock. +pubspec.lock + +# Miscellaneous +*.class +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ +migrate_working_dir/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# The .vscode folder contains launch configuration and tasks you configure in +# VS Code which you may wish to be included in version control, so this line +# is commented out by default. +#.vscode/ + +# Ignoring native folders of the example as they can be re-generated easily using: +# flutter create --platforms=android,ios,web,windows,macos . + + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +.packages +.pub-cache/ +.pub/ +build/ + +# FVM Version Cache +.fvm/ +.firebase + +# Node file for website +node_modules +.local-chrome diff --git a/packages/superdeck/analysis_options.yaml b/packages/superdeck/analysis_options.yaml index 0e5cf807..f3d426c5 100644 --- a/packages/superdeck/analysis_options.yaml +++ b/packages/superdeck/analysis_options.yaml @@ -1,19 +1,2 @@ include: package:flutter_lints/flutter.yaml - -# Additional information about this file can be found at -# https://dart.dev/guides/language/analysis-options -analyzer: - errors: - invalid_annotation_target: ignore - body_might_complete_normally_nullable: ignore - plugins: - - custom_lint - exclude: - - '**.mapper.dart' - - '**/generated_plugin_registrant.dart' -linter: - rules: - public_member_api_docs: false - always_use_package_imports: false - prefer_relative_imports: true - library_private_types_in_public_api: false \ No newline at end of file +extends: ../../shared_analysis_options.yaml diff --git a/packages/superdeck/grammars/markdown.json b/packages/superdeck/assets/grammars/markdown.json similarity index 100% rename from packages/superdeck/grammars/markdown.json rename to packages/superdeck/assets/grammars/markdown.json diff --git a/packages/superdeck/grammars/mermaid.json b/packages/superdeck/assets/grammars/mermaid.json similarity index 100% rename from packages/superdeck/grammars/mermaid.json rename to packages/superdeck/assets/grammars/mermaid.json diff --git a/packages/superdeck/grammars/python.json b/packages/superdeck/assets/grammars/python.json similarity index 100% rename from packages/superdeck/grammars/python.json rename to packages/superdeck/assets/grammars/python.json diff --git a/packages/superdeck/assets/iframe_template.html b/packages/superdeck/assets/iframe_template.html new file mode 100644 index 00000000..ffde02f7 --- /dev/null +++ b/packages/superdeck/assets/iframe_template.html @@ -0,0 +1,104 @@ + + + + + + iframe template + + + + + + + + \ No newline at end of file diff --git a/packages/superdeck/build.yaml b/packages/superdeck/build.yaml index 4fb68077..70ac09db 100644 --- a/packages/superdeck/build.yaml +++ b/packages/superdeck/build.yaml @@ -15,4 +15,7 @@ targets: - lib/**/*.dart mix_generator|class_utility: generate_for: - - lib/**/*.dart \ No newline at end of file + - lib/**/*.dart + mix_generator|tokens: + generate_for: + - lib/**/*.dart diff --git a/packages/superdeck/example/.metadata b/packages/superdeck/example/.metadata index 90eabcff..391c336b 100644 --- a/packages/superdeck/example/.metadata +++ b/packages/superdeck/example/.metadata @@ -4,7 +4,7 @@ # This file should be version controlled and should not be manually edited. version: - revision: "80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819" + revision: "5874a72aa4c779a02553007c47dacbefba2374dc" channel: "stable" project_type: app @@ -13,26 +13,26 @@ project_type: app migration: platforms: - platform: root - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc + base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc - platform: android - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc + base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc - platform: ios - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc + base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc - platform: linux - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc + base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc - platform: macos - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc + base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc - platform: web - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc + base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc - platform: windows - create_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 - base_revision: 80c2e84975bbd28ecf5f8d4bd4ca5a2490bfc819 + create_revision: 5874a72aa4c779a02553007c47dacbefba2374dc + base_revision: 5874a72aa4c779a02553007c47dacbefba2374dc # User provided section diff --git a/packages/superdeck/example/.superdeck/assets/mermaid_srHRIuii.png b/packages/superdeck/example/.superdeck/assets/mermaid_srHRIuii.png new file mode 100644 index 0000000000000000000000000000000000000000..ac745557dd56588f6aa506661c799983b66ed8da GIT binary patch literal 10102 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

    Az{U1`kCJ-(JhK7;#N&q{+hx3wy@H zPS^-1s3Hi~^yq@Hg^twy51-;vq=e5YsCUt6{*W^lgU_$W#3v?d=6@v5>%37Yd`OuFfM3k+tByaio8`%{_AZ+Y<2L z!OhKdvz+db;+D+$uFau7)LEvxs8DKZ`px1QG&%&%(uy?{%{AKpn(25Hn+HYA@M=u1 z{t&O0YTPJB9t7SF7W}PoFE;!`XjjH)SFR4w+9sz@K8k*m#o*X81*}K;0gow@2UCs# zo7o{VO&N+8n7w&;-#ojzBz?#46DbKL6+*`hCQpjCN5po~cGxq^Xi4mT>-K6k{<6he zCfNgt5)cO!AhXA3!%pkBONIgfyl4LG1>g|U&wPbSjkN42hAqoEHteb3pT<&1QZ4OE zxxI(q;m6iC1Ub#Rx&`;k@j?q_SFlLj-|x?=PD^26r|5HY{6S}0Fj^RkF`d1d6r>_fxvyETM$?Xq#B|XE0{TF@x zOHmVk-EWqpl4Y-nBP@#|5;caf$*yHT@xzF2dQP8@Ap|3qd)z8(eUsfWNqA zrVkx4G{BPVl{pttZf_wt>$IFaSKCp_!yM}mM*TOrf+382@ojc~AUDVSxqI{(=*{%a zAax}HAEId1dmZbK8Yrq$)TVZZquhw%Mw}}C2sfPO=LwH6AQoa{Z?Nx zRH5%eE%QaczSC&C*un9H0J+P?79}G6$!v~U^q4Q->_V>puA{oxA(2-}Q+N42sA5R` z4eqO4q8tgp{tvgvKfzoFvnpQmzv9ckM>F-#Ys3s4lF99nmSb@eF+(n7-M5x=W`s#uQD_HqYlM#+lC8Vd;&BZU~O|YEG%rIfSel1agktz z`sW;d0nA!5fx+Pv2FGmD-|epTdcr=ZEh0K{nd1p`N)+w0oeOPL3XM|=W>7%fNIA^Q zi@qJT3mP7Vm6}(hhs$2`8ZTDG9{k`26nog(;@Jn8`kuH2r!Tu=E6O#+HxP6{uK_84 zvRX#<9%ywUh#E{l^Nv(-_g?JCKMOjk<8nD_G91^qSi-9B6qbG?3u@eU=S$zK3Upg1 z2{9K9O#F+R##HCmCpc@Qqnj^|JIe!Sc+ZascKt$Psr25EZW=#8tgYhot*v6Yd9Kx zS5H1%NQU3mkk|SQBY+h)vuTkF2%)Cv`wvL()&*$`0rnaG)U|jiE#_G9#VFl}lG~qM z(hR>uz1_pmCT1Nm9Qew?i|e*(wpI^Zl7S6~Jrd3~;}vS?NIq$>>_?>F5zPFS>_8E4 zwyg9(skj)h+@3It2`#955qKCJk-;5DU42>rdwv4^J8mapHyB@myi+8_If>e(;PZ5W zVBQ_uR6oHF!Wk-|X?@xAHnKZn6t}Zop!O6~zcJ(F7Z~O2&lnmHa#LX!viC$BbV3_c zYyu{r30;n%c@lpf?9m=;E<;jV=#B0$1}>%NK8{#Ajj%I*5`L+&qSrxXWn9b?-;04S zlyR1lw72Qpb4Av*qp1|_)8V2kHgv%=C@6xQr|X6l;-cW!^atl0cyIdI^2E7o@2Bm1 zM)Y`cW>Hv4Zdc;GZdY?ew&_NHnb@2-R@LJ2K`Ehg=hl!X8n-k=L)WfpXn{5swjH17 zbJr!8PPF}#j^Y2XOE|+#S#N#z6J3s?a#$5IX`kyA->tRuc}O8FrT_gXnqcgwJZ|nN Ua*y!hY@`F28k-wcTy}~54}xArd;kCd literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_0zqy1l5c.png b/packages/superdeck/example/.superdeck/assets/thumbnail_0zqy1l5c.png new file mode 100644 index 0000000000000000000000000000000000000000..df178b75f9020c553ab4d9ec0dff581304e14cdb GIT binary patch literal 26909 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 P00000NkvXXu0mjf4+j8c literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_14RbmSW5.png b/packages/superdeck/example/.superdeck/assets/thumbnail_14RbmSW5.png new file mode 100644 index 0000000000000000000000000000000000000000..408fd44aaf209eb026dcbc88e6e2d792585260a3 GIT binary patch literal 42118 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%0A-jBGZLDJc4(I;({k; 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 literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_9BmK4SPw.png b/packages/superdeck/example/.superdeck/assets/thumbnail_9BmK4SPw.png new file mode 100644 index 0000000000000000000000000000000000000000..1df4df7c1c9c66188724327a4573aa2e43f8fc92 GIT binary patch literal 32108 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 G$NvKul@nh8 literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_9mHDFwa9.png b/packages/superdeck/example/.superdeck/assets/thumbnail_9mHDFwa9.png new file mode 100644 index 0000000000000000000000000000000000000000..d34e49a8ca2d319b0251346384fb6fdb9d735ba5 GIT binary patch literal 28423 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¨I00000NkvXXu0mjfL>iiY literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_CwxHOCpO.png b/packages/superdeck/example/.superdeck/assets/thumbnail_CwxHOCpO.png new file mode 100644 index 0000000000000000000000000000000000000000..d2c095ab8321d79fe3c0acaaa0b5d11a4e2c3f79 GIT binary patch literal 42654 zcmbTdb97wo8wEO1)3}YDer;^qX>2q`8{2l$pt0@7w(Z6ZCbn&B?n!@_|K6^w)iX2a zoR<&wv-caKASaH3h>r*YflwqRzAAx0(7+|sr}yuG|9W^w6yH8MD2WS$D#i&9fDf<^ z!jdZQfq$Ow4S#_^pFomdg;ZSAk2736F~PT8owaNWmhQs)xKh5K0zS*a!otRU{sb0} z`RtF9DIuq-CL+ zSChuM+!#XZ_~aTT+jcG*@y6Jt67z}rmz%xjxy;`sSVic(cfe>rQpkMzpd!xuw7TOD zb1v^qeKFJGk*S;MmEytv`-B>QvS%mMbbKku{uJsQvzL^Ebt6(+6x^%4xR({)9bzk_oV(d_s zjoU|#&^H#@KqK7Ph(OyU?iRMcSZvOgOgV<`i)Op_hcR_g6{lV`rw7psQXN8Nf0*@5 zJ6bel&5hce(m}3|D%kY8Xqz>~#DB61mky3s){qLFstk)e=3v zJ#)5bk*Q=kC`nQOZnt?7yTbh{orD3d`mb~-w3?UN?m^F1fe|sVGca0!!3Yf&-m4b{ZQ&L1aEx;)xz67yA+I^llb6I8Y~os}tcR5Z(KKA*f;f21Cfr&L@w)aVN-UjYfWvY)t~ zo!n{E>SwT3LZ|rK1PTl7$+=9I7+Dz0ctk4pichwxkr4Fqcpt-hFV;mENheM-w*6=G z;?eLe7#iN7dpU6SY}1`8L8`62J)=S6u40ADeI1tX^knEfSgh)@md$dtDKI)(A(*+O z248m&>O0}kA4uXv4k21cU2_kRfR)paVR;s@puWNc===RtY-g-km`Lv<~+SgWh6 zWjZ%l#&Idig^+BKr%2Mm}lnG6;kOzU-#@!5TKmhP$!21z6){$z`8XZQwk z*B?zWwtc+7*=#;n&(6-Ngb`59C1A(3Npz}*e z`|v3r6SDXDf2f4Z;&;}3`-}MmE3G%*_oFwE-E7~J*M>|N%1?H9iBC-_r7%8xlp&83 zS$XZa=UB6RCIO*EJ>zg#Yg7EU0X;OtK{(vhjMz11YJnv&^bzK&*cWN`CE0N&PD#Pf z^;h}%2euL-Fx91|owo8)+>!EYi&?#<3^~hKnke&Cy$?$ji(n9Lgcvh3OY-fu zBflnNQsfEG_TJK{X2)j;!m?Ijujy$0982o&kv)Ead&s zuIycX>F`^#p8WP0@0Nr&I_WH?clOd?B6DLTLGNOBwDJD%$ceq>(B70#BY86B93Oj-s%$!G40mg^{Vo{Jy~?PzE=!B$P;X7j`on;UA=L= zh-`&qszb=H7L^hIO;`WWrq^af>Pn!N2W1CMX zSD~&}r=4|#GiAj`e)p3tB9~(S_W|Ph%?%k1jkK6p>`Huk{6?8}pzsfH=Xzth?&t{PNt~B_z88Oue>eOiUeCgwDl+Mu@^T0SxP~tO$h{(k#Ys;Wwr6yxr<8IKfK<+{Awhj7~`6HQMp({L;yJqF?=ZsJx%oS zkL$$}IVoXT&%CHDNHn}trL0J>Z^gax;e?x0OURI`#ur5O=v5gz8%W@6&~+{u2T6ZZ zs*}kfK0=C@!$>$1>jb%EP3=Ur3W#a_1)sHOYb>YKDBo(^tSxnZ+1m9JldoyNrk3VG zvkajwG7D88CI=_j?dw0~{no13S0G-w z%Dn=EGe%X1reB`(^mruC=1Uc>iO}OLJ5rDhzJ%Vz{7CgUcx>*yK zsPIw0r$F^>t*u!}A)~)qGJ6?emTn`Z+KUu&TlF9LT}<)Crle%t_uJPYB_YEhsgfyy zg=dc-rV?b{T;0sc)!1dV{={#gy*q_!;7kuZ_^u3k=ecb{=anUJd)|&|#i4p;Mgi8O zfx=Bi0EN;+P(?Ty_A(tER^^R=6=fF-vf{&LO6?($Vqj3GQm9LgFCxoprc=krGd;-U z={QLC4n!ZDj4@+>!U>p$_r7I1daBfu&e?K0IZRawp?~Zp^;_c$c-Sli6syB!7R! z`cseXPlGTSCv;;eh5`|?p;0bo9s>3s*QBZ5xFx!ZmNoyYhIl^ZVUW#~&4{-M-YgrLEUvkH8lB~~(* z-B!-IuAFoaF&#No1v?d=X;tW*Lu82uNYbu*1%AmKX;Y0NA32k%vm+mTU_$AIi*k!f z;5Yc(vzG70yCBZ9O_yEdrr64(ho#kbD+leA9%z0Z%=vVsyqA}()Wd((GGP?eW7CWh z(^%FQ=;I7>&umTV3pH_lBul=QYqLD>WcqN0su){vF_d^Z*>Rx?nnl!>@Gq$zK6{(3)Iq2FnlaMx9JB`zQJEEX5pP)%@sV*zc2f9 zBg$!wrkiHkL1aeigh>V^%}@8&!%`6fRkGJrRWJ1=Q{;0Pe0?9Z{Im55y;grXdJ z@3u=el9u)kuQ{4??Q6&qG;R_6Ptj;FCpyc_VEsJ_SH2w6f6=1IQ|SnZ``=Xl{5O=hB;@^PbYO=W|0TI3iqk8(sizdNB;Ttp=nj|Oo~LvEZoCw z&w@tn;?&QAEdDe_Rc`nuJ-yJ8jNyqDYk@`av>kMcd2DOK#79f^i*u}2IG}{D=N^Zq zFg}<@rpZ#*l1mZGhQ%=hoe(q^UVZh_ACXTpuvV?S?ppMlRQXtULhu0qTT0IMJ$sX1|xqlmj#uc4tNz9P{+H(eNtXHjoiJE{M^ zm4GBWPXncbx3QI_;EZYu(ukC4BBwKm;Z#ZPl56g3Lg3>Trq>?sgI7#KqtcD$vd#gCN zpbZyV4Po!bNl$zZ;4NPK-=6e(3_JSEkCA~iNu7G*Wgps4P+?M?(tQNuj!g*sMH1b- z{#`~AaiEf z_n4rdDqC4+O$|%H1O{qoV8zutk zSx0(%yMmQ%H%D{`tZB>xr!eO`=simCVu@;w@T8kXi6)$%;JN%)>WwXE#JLDBsM9>B za4{0W+|w^b;2Ii`cRj(h_p=uL2**Ba^sm*eb5vxSderXjZe$YvwwX&KAp%Unt!k0? zrmO0=O~c~irolysb6-AnCBYN#TQ&+%mmrKJw(r~XBL;rG+I5*fo}Me3$nFn*Z$8ta z?dX&+5J9lDx2N`%11=biWME{Zba`a4<5^MHqfEScj|LdbPHAlE-@|mou4tIhmtCrD%$nCCujih(2lhXX#EJ8%WL*Uhx(tw?KES7T>Z;vr>mB1@tsIQl(za`jUeJZeq%G1llgu2zjJd_IPE@zSWL!A+1V3i z)7WFu(?=8OwA4F1x#%?OzVD4^P+}r#)|m=9II0e*J)hGZ;a@@n>u--)gDBc_)&PD^@XA4C(_3$wci0zeSRm67`=Z+ZduRSv~r! zn50UWIt$z~6A5^t)K{XdvWYzG=uMkGotaz| zYhl!PG6bcWJ##z1s6V(X?eZf-7#c+{m9D& z6M^#~3I=q{?YHOKUT$&v`Upjja7H7p#6ig{Ca4(XGV8lzX_hN32}5xd7{IW>rE0|* zwd5-;P6mCyKJvcaZvm-0U>xETnS54;nXa1%^tx>lN=oRlq?0v9(zE4S;)QYQ%l$C~q>~^)QQ5p7o@BaDWs;{pvIyw1Iv2r0U zyCtroqGFk5eP~e;<*0G(@y*UwdH42u@|zpt&i5q9&X;+C>ZEfE8a+z7-+8%6pRe+b z@07b3fyc0%+Fl+0KGMSN z`Q575osPb~zUgXPvt=^@yXE(u00fz2Mn8^KR}uEH)k2d=)9X*}Wg5Q1rTNa4^yyE} z7T!d6gvBPCAPGK#iA<`>bsZK=-|X2KZ5~(Tu*t8sY1p82-ImmmrMvG;X-ovNee_SU zNAQs!T}=Wkn_=Lcf6Nqd+@JR{;4%HC03jf#HA7zUW{N(7x~>nd-0nAo+u>1Kf<=PI zqoZvTK7Mg$cHD0VCNJ>mG;N^TVDDE{XU}>!gWZ-G{@t3u&*bFXPggae-%3?K;^7VX zLcx6MwCGSSlxw>jrm3@-iwq|5POi{ty*wwY8n z`Vbs;er{VJlhX70@|41Eg%1Od3j2wfIW|5X)8cV+uW4NpQkdnvIYf~KyFOoSK!y+L zZr7|jnU*BvbyK`;`nQaT%~U?3V{Ip$mw4|P)56t9$w$RtuxlmRBd9ni7_6*O5%WWV zik{5wjdY$auLTh{5X~gW+Rz^A=X4DQ!ts#tm;)fsdjiQaxj+F9zH<)ScRz0Sy!-+ih+Y+-CI>7F?NMSLFv`p2! zbKY#E(A^t|5hz+Hhry1+lgtr}72Mg%C{*@NswZ1}pW@)q+yJ2*6u1xAj;nTd3u>?t z?F}Z`UhLjVc0h8nm@UIY6#c;?85^KfT!qguG!*c$cA+PekK%qi&PJo{-Ul#KQmRTK zFE1z59T~1h%LXh&IH`Pes?M(EW$me{DfJddDm~AOK-pC2mC#{eR7%Rq3r%)kUTO^uQXQTopMJRjct zt45t^j1K-~7V=Mj|713cL=l*3`yHvr+Y{-v4lgU@Z;CxF4TXb?fdS6pn~!G{O?6fr z5rfDDPbF@y!GVk9?0W~!TYn`_J*}DPvNCAXOvHMO>V%-a$`D$!xO@kk&h^1Gyl-X4 z;yB>1WYXBv!KFUX+14xgmTMipVK|iH?o z`5SEX1Xo(zu5fBbQk=4-Wi@pk{}?%TbnzKMhb_E^A(cKCf3K?AFT?z?S+I6-7Zx8gPH_ z`VNiQ(k0U4=CEI0;N>eYbS}G1SPD*8Hv@e}m13hK8!GOI6(D=Z$OgCGgp}xZG~sF8Z0S zj~61np5&MvcI}TYmbG(5@HD<*N@+%UNAzK|x|;QTvR-NFFVm=%vh=9ej2JTPv1DiQ zdG*x5%a9XSRZZMtxAoiHQ!iElny|X0TeY@tV|npzW2H78T~HzS0@AoH9ah~A`aJva zaG3Q~WiKOckpJ*Tj5zW7OfeE6uWQTlr6sroODs1A@HXFy!T~SvtX$;;GIWPYcl;pX zE_$SNy@eBM2rLf+{r}QL8Pm2GZHXOR9C$_=a%|tO+P_8CXTQAO(n-p`A=0iA6u9M9 zCze8%nH4hHuB4)KZtJ0$<3&H7Ab#IrE&f<-)4^HPs00f8$=mHI&$|_mSwVpc=9XRq z-s!D+W^+oQ760KvAjMtI--qrF-FXN;6^ZE_l`mDzQKJ59hV*5X3KRYD^W*`LpYUs< z@QY6Ex7VA_1WNb(?m1%qZNZafFBN)^J-b7n%Eymi`S;VQ`yQn1iS0GefI*goD3G1> z&j5l#QGAh?7brSjN`>17v!u<&f>`eJE!0dofqA*bg{g;BK6JUNte{{H{p+hcyXCKH zx$)_v_6s0c(=cps_w)3N`^#C!HD)1p@j6k-0~UYFt~31!{2)dO36_1O4Xu#P8%&G5 z`h0o*@Xm205(YX3pX!)8t%cDn-th2aLT`TeAjk>V@STl}Xt9bd8CL{Zn*RISs~=zI zoLx)5wKW{VqrRjF+Pjm7P?^m#r;B>VVIqz;i;Y*lV$))i=Epv ze7T5L0nny9m@~JhKRWt*Yk7__&&YNs$;(i$T`0~@Ve4d10;-T;8+9nH!>+DVdL;e1RVU{;T)Khxd$#+EHtYEK2bcWzB66BXH^J`0A zg}5H+>k&!$0c!j0e}zdE1TG+6^YJ=G$hrf@4)VexAv;#JYj>oI>h;7g zZD|R;(%NX;orBn7err%rzox;fr(Q=MUqBCjqM*RZ2av2gc?3Q zB4FQw(-P(lCoX$)Cc`K!68jBr^#zVBueANQb#@dmB~;gN(;CI-rGTbOG?|1CbqR$5 zY)cjb`-3*lRAN2)?cs5+yo|6x9@+p8wTWD3hKHn&I*(LAsVm&Jdk%5MlhuDpZLhwp z0YRH7FMoPFCg+~b`a2)5*P|mpdaZe~u~=e7imn!74*uYgyO+`>R;c)d)iv z0`m1%k{secEtVt%G+;lJT4GWF0jjTOO^G82_H^s0)L^FQiPPs5oyVE5#N6p0qLv!&hH9#n@p|fk`kybo zq;dpFar{>qU&&mnqC^VXqfC$@mrGZ#aO*hlK>|YN^v1>d`u8J4J~gAaH+-Vh8^(qg z+~7scUKW@TtenHZ#g%Y$taH)>;;|L^HQc**n`dV>E3@YH08~|Pe0hF;kBZu0edNfE zO2plFd$Lr15H@UDuUR0MF%0DQet<{A=tI>J~z+gZNABc#?LNF-qx1t1+Sr?7=T$q zLPEMnMn>ccq?72iJH0dFDCBD#50n-gtfZx+5CM4dd@)Ee%YD4u9QSnA*@>tr|7LDr z61CYgo`RVi-_k{)WB^l!;V=}qoUN)~7T!0SgF};(al^&Fygc1eeEQ@&Ix2%rul*+! ziw0M~n-{o~{PSmj;5V4)loUxIZJ2LyqPaPm+dFAoGrm1uU^fB)ap<2v67P_4yDoP| zQusXB(>QF%fwcPg*pes3-#(SyY8V(U)UU9xFTl4|Rg4xbK$=?vz-}pXrnlYkY!GvS zQtX-G^?zvrRLG=VtN{y_xHS-QyjUNm=kt<)Lcm^SG=jbAx`hHv zSy1|XM1~`O^!qnK`PpSQBhyr0=<*?~E<4}+u`bQ#Dl*8pxEAbzq;X_tB#F+~XfTp! z_JrH%P#v3A{d=?hPUy~X0!^aXbb$u9uJkKY;3H4v-3%+ z(dlw?;@cPY*ZYdCmyyJL<^X(pDlJ3l7x(M~{t6$xS^57ndX(Tc%IkM>>E<^}JaAm# zjb_ePEoDlPVYhpB;?B4!Chi&;L5dstYHeLH)&VR?(r~hX4}YWeivDbw2K@-;I&D|< zH0bL;Bjps_Qg+mDerkt81*)rF{(zZM|5Pp4{K1OP<#ed>t@QIhlf+%t|w6dMx&lP@iB@%wVp(I7{A+fPGZn+cAtODuD7$b?rEdRb<%F?0GxN!qfu5P+l>2jyy}P7=$)+?;sm$@aB%;O1bG8afQF zqM)Glo3*I2MoY7%+)sR=JnUxUk*!7dDg&BDan@|0J!@m*W+&N%uV#*6h?OGds_Z~N z_Qc%Db6ZwKOV7FM5G#9Aq$RIyd(h|qdICvl*x2^*DHlc728rO zrwg`QHA@9TlT`Aq0I=*BT89k5-|L1pog2EnarSZ1u)PsGLUSiEoaW|g&W&rPRZy-F z%xJaVKFdDu@W`tcJ6&exS%+_tNu3X!p!5SgreFOxPnA;S%-SlhQm#~}Tt#z4fs!aWAbgacR~OF7@k^{4N-qg?qU}A_%uPKe`RRFmB^Ncs{Cw__LU> zbBFqPwuni2Y3JqMr91@+D&%uApV9}tcSeWL<^->;;|!WIJ6yPjIz2tXP?+jgl2brh zMo*RZ%rpz%#kso}D-^0)3gC~_lzYtIKVqUQPeuDmBB?Iza8H($ zdOJkXaCiHB>#T6z{T|aoFa1w(z*kyz*PXC4SDT*i=IZHM3QS}h9!OOH2MPqYeD z5X&F^wy$LhnFlu+64X0=e410>l!Gu1D=8$-dPQoJVp6PHTXO796cTy)L#2l}%9${Y zkq?JnPExOWd^oBEZlQBq>J9q%tf18Idn;Lyk#_a&8YsxVgk=m))VL}mdvh}YX402> z*1K}1zrRv`F;(Q|)bGOkw*pR0Y3hE>M*RM9NBrPvK)=HJy zhHBvM_z8GdR%H5*gQ(VJ>!*By)0*jW*R*AD6TeLq!JjO(3OgV>zcT9 zgpL?4+jroT@o*$TUYs#OwF~-lk?suTvM;EaPhkjmPM`bq6ckg}qoCrG)`1(`##@2wmtEw%w4^h${aefXX#9I%thJ4!6VWX8vHP=z_HfU$&TE@B zXy5rTwG>7hvU=!e2^q<)>OhMo$1e#8SE}~3ujpvbmi@2uu7C$}(HPKpL3H$R9XBE5 zhj0L1t2VB=Q`UihsUgWk;Du!Od0oQBr#^5^ZctpA{1{jMg!wa8jB_&Se- zJ7&DdUNU%Xq!;JNk^zjQhJ82s_<@>!3(?P=s5FaY;&5*e1ACojDYF0Q?j|#rFsiff z0x78oZ{I|Xglpxs&2ud00{;HuPWkPZL=hiGn=Lt|TIjV;EtOp1k0dp{YD94 z7J{_n5fN(fl$dMgUC1+QlPVG^3x|EC65@(C&ZHx|CDeVh%48%>XQ)-A;EcoI0!eeC zNlO*mjTk}SsqF`qFc0?X)oGu->HUZXCt}kR4`Rb>AF)JZNf!tj7xaZ@HoNKI;Oyd5zzq1`UY4)HgQLln(~qSh5?wnuIz zzs(5Q+ty3sN{HT9xcj{)E%z3l=tL@X&Sas?G!}Sy_gK=r`j@IrUx=yMW&B1TVy96A zbCqJO{?y08C%^ppIfI0grxYPETfgbWKtwxp69|;$3dceIJ1(w`=SvU0QUU z#aAG<7)>TwdU_!?8?%__`yY&S?A9xyMZdkt?yHIl=H5gWjv^l%INpnpY3D~LGg$hI?Mt(6#M;UBxt((djY$H>?i?myavr>aU}wZ;pDvYtV2yzThP6Xtzvu`)^T#=fyGS zB8OR5%oUE&ky=~&8boFt5_G#880@Y!P58*-M`Fxx&DPUDk(53f9K~;#k+p%CZzkUS zh&fjdgaPLXH`Un`XwHW@EdJ%H48W_*>cW_uQNCD15Qxv_5^QucMhkvYaM^7zqgVu; zgTvwgPtqH0v3G6?yAkDq1YQ-XKrNOcuoRhC?a<^;*J4GQgl%lMIU&2t zOw2K|#8OpiCN0|JQDgF(Q<=!gzLsPWvR$pVWneM4`t*_>$bFET>RK=hS*^~>WJ9ld zM+fn)cPZFgnq$S?w4;Em1gKlGQ_1qQD3Q1G9t)_5fksw_17Xj$>M^{LZ4-|?ZJR-<2E-3(%zi|!j82d z_0RFKo&^u`juP;PCW-IgKY^&I^!2l|FBOk0_FgEBY}&SW8eqPs@h-VmIFkM2cRx|G znXfHcOU=6@l8thfuF^m`aud~>Ozf67uGXBU@q2Lt9}0f-2BGeVMG~5MeXA;Eu29O= z5dZ8RB~pG>&oi4nEeKrq@+f$Z>ijEwXh{jY%4fnT@S(J;mWq~w(b1Le*+~UD+wg9< zGf)A*(*6BAz!J=E0rkd>-r(tSEsnIdo*u-A)6os)p=(1w*CDZIJu`#d@S^lB8H~ya`1pxt97O@hf`ZM`Fe*OAYbxOkP$~YkaX|v=~lk2l}9ZMs9 ztxh94izKIcK&%$<8Bf4qN|qH9{&E_dpj=YFEW%<$^WhR`yRI8 z4-Xs}GL&m#bfA|F%V8>jf$xd8=+b95VBh_%VsXIw z;ANdIAm;ptLMr)#uJF7uC2I{|PE(1OPft5APeGp@U*d6#1GUmEj=;|Cr~=@#L&D>u zK2QLC^k2fm>!pA420i5E69SV~OBnE0XxQk1GoLLR+8uL)5(dC~Z@zTW8=eQPdEF76 zbwcH_pMna72Gg7+%?+iq!P z$L7o3nv0~ovNdW@cpB^39WIm;qQ}PyLP$abpdFqlL!ks~o_ZM3MYKeGq9OYjw$KM= zfj7IVR5N8c#3~)7sch?+mKV@LE&tbR^FV37m&jl^Qig8^IOR>AHI`cs%m;d_Kt0CZ zKD~23&)2{3Wm$WvDtG*H^1#v1$Vj7+4If1;7htV!e0dQQ@M{(Mm(8H0B5=q>HZ0T< z%;^f2h1?1g@|kE0W))Yif4F&Bw`mu*=`V}|+r(2` z3-8Y%OZ|n@=5IbeYr zRp+u4xPm!3bg3|B`v;}Zc?ofy)u{SOyM~Xj{xBQpg2>c)ku#+uOj!qp1CqpL&W-TC9ET$T`dWHHvt*-kLQ0v8cIQG z15!bGrgQ%#pwt*KY1sFOL!hbt{95kI%iw#NR_mmi=n{N3Tj zpLt)ifQocZM!npg0L#|uydIf@mVJ2}%SXIeUEgc)P4;B*zqaQ~b#9lA=@tfN=H=q$ z-=Y(Xf0~3_A2T#qFQwxVjfx$y-YRxH@!oKt@gykjTzwtiJ(3o*K$W7+wxQnl7t;pp zdkLigO1+rUjPfv>xi@8_#B@X1$OTtjhbaDIPuy~e6gQjz%$6a`<>%*z>h%7|9%qc0 zBtp&fgG>9B&+H4nkKWN)K~$tL0lMK9ETxLnOotm2GHE_~!Z<-7_1RKtaMr3B!Au#R znuy{c22J|V!`r9w?7`MwKk5A4~c4- zYebizUR!&;>VmIt&*S~$;e5l1%jPCMO!l-}&ScTW4OnA(-%;1J-u(Kp?U9m{O#aR_ zp|BG_V$#x4li{t*7S9n04Kw7Ua>|90uvG4G;f_dNi{~3fj6$~ftB0I-wDLQwmVsr?YQ4$i;bH;znz`RA5p=FW!sk7 zv_l?9N9?43vl_vawRij3@LepM&~MDn<5M8SdfnchI*LxScQ8$Vf4Tq73N zCt9HB6szx>ZQlsPIwe$Gi3%8=QuERdfYdv-o+%h~|1trK?F|WITQeApI#1P~N7q$jT#k1rn3 zwm*8YW98HT+xben`XeV@uQn!c4fO{*K7#dhPsQ@>Nm{N7HJ2l0;`zBIXt^apWUXTY zoghu{?zG(KW~GTK2ne7OmdAR_cH(pckrBI-;_x+AOVEzo3_)l<5%KY?r=33Uu6E07 zcX@2rA=MUhOy+Z_8zB_@>-&=q><@Bjw;!bwJ$u)?S8&;nbvqu-;SC19YDIZicmhtY z#a{ExTPXZ!T7_Bv^dWlh2Wtvb3LS1ZIRMcAFZ4B<$eZC1KJaXVK^=IMOTe8mzES-* zvb?$Fj!^(DRc4FnXLT~2#DmT`bym-*r@<_pOrt%(W73kd9PD98EP6$Mv7xUUQO;4F zrhnv8lFKBc-~w~UDOb)p3=+A3zB8vt%1`JoHT-P57$^j7@7|$rZ*Turp&l9@9+;R2 z&i*8DRK1CeHxz7C2#n3fbqLM(;L8$=T%Xm zqtR;g{@Us+8xrXqpQJ}@p>`UIC7@KQ`aX_Az?AN2x7^U*Q`i)9QAJhlpZ{S&jcB#t z1I3E1WFtpCV}U`*DpFzL%3iMARs0hHQ2jX8j8!NCC!@SOq7M`^sHLOHRa%TV z!4b_-T_Bn>WyKBMJ~}C{=g;90&Q&yE+~(%3n0AXvNYK$IK4tcLlt^VOm6wnJ^#-*g z`bLRO#NBm_iZ7YOSlE|E{hRYh>MD(tZRrirJb9%#02kPvkM!Dy#@MRuwkpsw(B3+# zf;>*-8%u$ZxDIOC#d#0^_8h>tQ%pcnzDNNl$qoccX%Ul0i;X^3Dsj7<%8aG5HG4iV zzdYXbnzGto?aHRH0!N(oy5UJk`S~;B_J% zOBU*3V&o%wX=npbN!s*R^l)ka`1hOs?q|WU+!_9*a>FL zKRBt|QI#X19K2hH4@<7ZhO>M%+S04&T|Q2AU= zj+X)$+r*ET(8DrXbcqtqf0|KxZ!6%yS)FG2O|oV=IV0nTa#ahy36HzeeoOXR>lN?6dBm4OHlv>)_{-~k=t~#DhdGrko{)6BHMC9x>93Ylm()NM&ThEH5 z!GKs^%+EpbY-M_!{s367yu!j-fbDuqVCyaB?yn{UigjAqoepO<{^p2WpRHxBwtGyM zsxchS6pOUG-@F}1Vq;7A_3J(V{W?s%6d54Q(Qb2%;aKyG6DM|qEms}+62;r|TQqEc zsj;$t86Yofzjs3eeB&S>7J83_^o5%{6;Kc6fX&~qHc-N$0I(IHF)>; zO(z5HZ_+{_?kpWBM|*IDkH%C%Gme15$64Mx4Ywf|oK`E)WN5)^;U|7H|XQ47IywbM!F* zRWeHRv6nmfot1Xt9$_-w+uI%(It#%_Q8@_bU(6=XYHp5h`-2JZJ6+CED#ceiR=Dmr zTiN%7%T)mph$ukZMU#dA>fA*gEfUXjD8QON0rNONuZ~Tp*#|%zSp|g;czAe#9v5IL zIRSxH1U}nm3W{JjB<#QcUzI6`&FVHFKMV*ARBUy&;(t13Iqiga4@8knJl-5}*{*}U zy}kDxxryDjKXyP~J%E;*ykEEhEoc$=(EfD<$n3$vhzPLT)ZcJezCYhzye&Qvk29m= zz5)o)l9^8ahNF;6U-yG2j!p=RjNAp3V}NKXE+ZoXC_Vt-Af4X}-`A$&Aqd!Q=zvDJ zF9btp%IJE3@=Z+%NKMIQQw_bKp8;j5>*Wwdcc8DxHs2OZG;vZijxFT|b7!On_8H^D z%}xE;QBU(k=Wf#Ebn)DsF35hG1yJH}G}SmTEM|jPUptmt-HF-GPWm3c5i|j@8)40c zg74Ml@H!?6>B9_ntOa}&VCnCzr~P3jI>*XOIWE(qE7|RK1uU8x&fX91dG-LyJv0n* zOn>5D>9~&u)R3`YaB@oj>7Xw8!#$qACR;5HeD=kDx8u{MNU8w;yV}XG$2APi-s`x2 zE@GhQIM2Aw&b4t8B!R&~Z!0B(iQ2u8IcZ)!J3Vi4Ac-*Jv=`J37}WoN7ZLu@3?^7u z0Euoow^QiWVAOP;B!)X6oO77q8(gS00nA+{g*gzQ%UP@zS>K@&z85q$CbwFw`vGV? zXDaowf{ERKc|F}OY`$lmz!At`nb+?(*OF}QG*W_x?6yVs*+=Ns1TD6 zl=+eJk0J9%0)i1WJ+FQ=foITn9sVR>v83`p^YEkr+K0DulTJs8mi&N7i2$fbHK4+I zLSF8^ii>05tJKx|Ov!sn#E;U3P%~if_+(;rGu`GVCWX2!R zfal8p(c6}UbKuC$%*JdbZHp~QK9If_jh2rUU5)VL%> zGEmj!lc&>-nIkVgcxHBQ`IfiW!ok(<$adiKh~+$}MLTQldbx$Ez2p-gFEDO@b)AJe zA>`+6&y3;+EUT>ht0x?Ue8agV^->Kj8M&F=4QuDQx(xOI)&eY^aos)4MGI7BZ}g(s z+n?I^h@;vTB@y)>CY`^qr^*ora?MFxUa&;3fr-)4djgSg7*k~O3JPif<*+w|kHJ~^ z!h+_@m!ALz5Ed4;Otiu_T5htdvtCIh@xJ$~HW*~KS>*+(l=KL+mX*6|%osqMr-<&OlDw^24&BCO^+Y>h8cs-16Otk0~Rk z4K1JDozUW|$2-N!?Hk)aLzv*Ns%m(lNy@Bo;Q=G2KcRmma}w6;^1Bih&WP9nwNdGLfKYmEJ&JpI}I7_}Pf`{~n_)=5*=(F~p>lT0_UhIG*|Y$hN@Kqcn= zGf3j2t-kkJF@e~19SR*C{mnGqYE#>K(vXJ*NJ1swDyBpOU1}%5$NPJ@gQgT*&l!b-J zpUc33kE3mVwTsJ3Y9@I@e|R@Hw;znSWjfD*z!?bTUOjPfF}be3{{>2gEOg6wxJ=FG zB_RlI%b+D)ItdNv=$u580(KBqjO+$#e{BrlQ`W21z*FFTA17B>%jILw$y4aw-m#oD z4Co`|f!Yi%v*G(6KYm=FuA~9smC1aj$es?6MY^(=WN)6u*d3$%!E=|?5rhBKh)4wT z%dP_?p_zR;@THm&N|OLBoXTp}lceV@siYL^G%hL1pbXSBG6Sji<64W{MjXik&W%EJ% z1jVr=%?_2*0hLA@t6SW@XIq`4rF*b)%4HY8VM)YviRI@2b^cHpbzcUcbTa&Zu=bWw zQH5>)=n&GOQqoE{NH>Z~cXvp4cZ-O0gS3dWLwARCcXx?&gVedlr{3p1|8qW^b=G3} zL73Tl_UwJ%*Y&IGdn!PCB&4v;*2CF(A*wA5|6849I){veH1}3<9Hz~}EiPgu3z5wm zclb5(qS|iRR#sm{3^-hX5@l;R({52+=hJO(@S|(|x7bWtEOHbG@PJLr@cSj)6ZIrI zF17#rQaWHFHi!ln=F3qp-*Sr{+7J)2^r-uO@`gL5!KVBvA63^A3g@S5=q$(@K|~Hk zdUt>Fh8+4SM?PHi5c)2=`j9i03gu$5!u~hP*^*ZL_5NY@{1z)_oTh zJ!|F~`@8w7S3E%IVzqc+H=ovh<5CsFs1+#&EiaNkcHEq6{#D1&6L@>!LZzIRe^ej- zYi`J}0Ts~EAH0oQEs2r8I&BYGFEu8Evg{v5}M&c=anrPS-v7RCX5M8&D~IHduaH4~uy20C?2P|wTA zU;x0lDsE>i2OXy8Vq^>h9-6g15>VcXuxbuD1yRgROQ~|exjZOl6W3a=OyKtrq z=rm^VlrgTWVF3quT6z-Y0ecTuR@0 zJnH|6>kTiyTMVAS#dy7;?v^~+r|;2Uco&?SqL69?YqI=D71L7K!rX z(O|L<@D29m`mMGQ*QTZQ8HG(99p^qvnS#DAvp|#Ih zR-0K1LK3!4#uvtQ*ekVJ7W+=N9HpU^^(+algC~V`uDbPgx`Vh}rwp~(A3|4=Z0Vl2 z|7a2M4=^+}cq}_`dd@+OvuU;MUcHe1G8mnh+-a8=CsFG?xOyiR zM;JHzVaXiCm>6*z?fVW#@qRJl+`6+9)sztqqafHJPohQ*ViJgujrXew78?|53OIBl zrMj?Yr~Ia+$TdO`*!#1tXgY*1rpL~Ve094;hZzJV6&{baAS`N{ic<~vnz2LpmBXEYS?f0GU9qkvYXL%k2rKF3 z8Pb8NK$O*U3M@3l&5)-Iw@+F6FJkWd)TNgRVXm=|$VgLA9#gyzHFv& zdS@5`DE0dQVGMHxj*gB}(a=1_$4A1VD1+)XrGPqg6cEX-2MegLT72&$BqR*LVhypL zEf3nx@QVES5iyt@R%wEM6|@iKzyg(ehQ2!wbj-uTH`WEG2YWkII+E|QRoI)&Xp!8^ zw>DV3lAn{aPRSB=UgK`hZ+2zKZsipi{aUQg>e%H&qKrkfTJ{Q>d-3|mqSu$sbtH}~ zGg@x^o$8_Or1g*=$-J@8_2nbeT7Irz4PM=>*nU(yqCD>7s_yC<&+=tn+QE5OG-t@N zX=Y_D$m(XZ@?(0{)^lfVy6ZcVrw$z|_GLVu<=NZgG`G2QmR;uplTb)i@r(%qQta?!Y-He}hQ56vzo zU#_6^14IIzx1h&)9e0{cbKg&D;xFWj(^(j;W+i8))|Xgv=bt|Z!oTM0UQK(o-GCs) zpt{N41!wPL_XipDVIb~j*1A-g(=#3JqQ#KTZe?x_7>8d~HR_FI)6_X{(=jK{D_>??Xkws`iF z<&GYChfN~yr`e+t-rl#_-0u`3M=d8N3UPlq3*HU;f99oo z9M6h-9}^TQ)qeAF&xZ<8#si4pJAH^}><(yYG;Lnu{tSY{7xWsg%gPG0Y1DG%MuTOaeAny>)q6sE~ z8~gOZA~C(2%x3uEynfXDyWMhgrQPxp4YXbQ6yRJ^8X8|FQSE7z>l{r|jnd_U0p3WM z(KcyuaT5F`LTr~wxJo=A+wf&7ip?zP@<=_mqwP{a_4UPBhXp4Q48cW7doO@`ROSK! zGPiRwq^H?1Zs4uK;bulo1aPPq9v2JLrdjQoSN$ zxzrE=U|)H_V&}@vkPtdCp#qaQfE^IJt^Py9kU->lrW7XsnD2rpXGXJ%)i`=WLu7S{ zpX5AG^G1-o>vKj`ss}p`Hx_CQ6DrNuHBmL=?>D;N%IcxNnlIBI-C{j;UyaLDted~2 zfL)LIZb#!DE5FwM9f)=ICHh(PYHUf54#7{gf zba@IEwdvlW2+J~v&r8*Cl-4he=*7hT^3m#_kip&ZTu3M#AQ4t1{!+ra`1uxz}Tvr;3h(%R?bjRuki z;}Ij6KNyovg-9zhWpL0*ymzQJgsN9f=+W|^b>>pi*#s58tWG2qBOCGg_l(;FaQ2R; z-Umc(`uh4n>$0m*0{cocICY{>t~9_+G+SnbOu(Y^oR{~@V5-xb`h)qJsQx5Y?KcO& z;2kxPA(RUAC_pkFnwd#Ho-6yNhVShKps( zDtvqD!l?Qs;?w&>#r#FK9d!7|^eRL$pWqunn=|xlG@H-uAg$l?uU_XW`^ZjVV*uv> zB4{y@ulPpg9vtBaQArJXMV<@sh>C*24|cyVU~f*rDbS~t6#UK5c%{JI2Ss2jALJFQ z@;OyZeF1w2+cIMvcOgvS$q^+}nO&+{!j{Ug`|i0r2Hj$OGx!zc*82}_ii*v7{@~w- zcI9Q;S~;acF{wY(oo=ONl(@~Ozf4FJA+-S9<{aG7B?=WEbFU`}KE9ZQL=R<^k%#!D>XciT*vk92~qe=$5dQt^w4VF$9m zUnImqR~$(-Oa#8aI-ny$Q6$cxfyrUw5knzO&Gw-O*0Ao)%2 zj4{%pi<5x{H5N)VAtWa!&-1XVutx&98>Zy)Z?(%ri^G)yr1BoM3XMc*b?8-+ZD${! z(=0Q_PFlv3X&L9hYwE6y4pLcSf8h#aC37;ZG)8ponz*#fFj4$MoS#8*PTk)1?&r3@uka6 zIBZ<1@r{pUJpN|Z&pm$RTjxxP88?g3Dk65ChH^y@(a9N`8o+G|~jSAYxtaP+QqNzfaHo4&?O}nRF+_1{UQ}%(#Kfcm=jJ@KABS7S+7#KnU zy}>t-`aQb0(LN;oPQM#OVUUuE^?Qu>)FpRK>b5wT-00m>?2g=4Tmn0GQ%SRU*zl70 z=1zc@{qqK-h@9i)<)7J(Yz%htXEo!qLdNi<>O-_QrbMPq0e5yXRpSD_-hRMZj?$XO zX9aP;-rRO@n=ZASL_Yg9p8gNS&=X1{{V?`GRIk~QpfWFQ!fm2SHBGYK#? zl!Szudkcj98@*u~RlgB#@0!3Z7hPub&~~wpe0++s(mq&$eFgo;b{n*7KApP7f(3W` zWZ%aN^a@LV?)L4boi?XP_3qw3(zglClFmkHUM$PJ&-9iCB|fA!6>9b~ZIeW{{%v6C z<1W@e0Tc6t7?~B}sxQj`Pn$4a7f(DOP;dQE}&kg;|TGiP`8*|FtpRWy+yH@IS=1=I3e>AZ1NylB2BY0miR#+)b7qc z*t4mz(%59P)OiPgs$_X^u1Y|&)Ig}gm2_*?j5a#X=v6EzQ<8t0WkSFD-u?DIpXA49 zD%JI^^Yy`4tZy3R7~a520wNqyl?mRpb#!>1Wag+Y2V6k#(h`Ud`gF%TVzp*FAVR`v zIA|&!HI07kweGSmdoKO7oJx~1g(Umsp&yRatgscI7$v_OCQ(9cjII`FK1f-jjpw~L zhlT9FZ`($aoiN;`61tJjG4`|D+S+23z^MQwy}o|xz+eY0s_imKSZ_F0zr<5Ip#?ZL z6Eg&Z-rYwpi7|9U>^~Z1`VK;I%=X4Gtnnq!1B7aQkDi$Zj(Q4HP{8w*2ns)V<8hcW zWl1M(4Sac`+q3lHmKa1;avYYu?{uAl&hL-h4-9yLsE`+UDc@K3_g~wWwwzyOv^mWF zeF~#~?vVK3tVX3gT1kVJ9XBo%JhECQ?fr8np1wo?o{h}h$Sk+rPu3#dDX-;u)|cbN zvQ&CN@lV~;9p(}z<{-S8t7`gCKn1Gn!Lt{Oq`%8*N6LLJ7u{wnE#k&^U+<@kI!t=Q zYjdu2Wv%Nhl_jOHp0Dj}I@x10u)kon8|oOG!I^m2rOWViitpg$h%5PeeEP!st$u19 zLXmn2%+?5LyxxKc|1rl%V0fgZz1!eMp6he-X>aBw5367G&QK~3!0c~Ev)&jbveuBR zLB5DQAWuPWP(bFQ5P{!09jl;feMlf|U$e)XHoXyeqf}HFUy!M0SF3@4%$^Oaxwn*h z^HrtJg0y;yzdPuAPFS9KHjVG1MGz@R?z?E_R9Z9sD(&>9BCPEvU+O^R58q#C;kj&G^bhWPHC&5B{dasqM)zJ zsc{1&V$-xsS75##$TTXB6ev1GYkhda1T<%z!!hz)-agw_vNd2!&e!JpVmtWT=}wM@ z@Uk5BXl%5`#)yjEjlNVWYo)U~0tLDvzLv17u;Iq^SWv?F5{+e<@x^TCG5vH5L|Qa& ze06uXADP_SKu8^w4ZGoP5Ku{ikW*+kNW=g{&~8~$62blbBaZ1REoOj{-rk-LPu-yR zgK!|RD6+wYIw$CMXdeXVoaV0f?w*+&-UO=WvkKepD3%8 zwB$uzXWwKwO@HmVY1%*@U`P{d_BCVge6q6H)_NfeJ_qm*XEpao5; zfg&VJ5j-p0qx@At#-WKm!Wjoc>Wh$Y-)2&pxMaiON@w$V{rajJveW_mdTwYpqplXt zO3pfY_8)+1v^A>VWbr)HWcNjZNYh}nnX?~{j*xwPbbY!Seef|DakNMkLGSm>LQ3B4 za@nh+SM;h6O?M0slVgtS{zLu)K$MkvoSK3-+#h)NAgKq?GZb`m05n4BiX`p-{Dczn zh2Mq2Y$(kT)b9L*L7Y~44d9I1as8-d)QXBP*H{U9LZnXor+ zjoq^8e6`Ijkgtc63gAQ4qyf$i`orotfRSMS51f0DXSvkx!56T9pzE0^N}9I;Ci@mP zhqbrBy1c~}B^H+~%`*n+X-w*vYYHa3a^|>iI%EUThs~~+Hr42bT zt$18)Vx$UHq^O~=Uk*0dHRA5iDaGSh=6k~bynj?g8@U4Q+)d{CMsVoe5Wtb7Y_nk% zjCj2H<$htH$9TI8v3aRH$z#+9^=xW2@AT{Cz&n;lDq12Ixb!s~`5W7VJs$ma&K=d~ zw+CUmykD*a9)!F@{aP;3nsOiFst%jl2hU{A#Bhw7wM_EBsacI3npBv|lYqm1y$pXx zohYd|zs9P!xxbWtJZiBsDj53($E>$8$%vAJq7ZMe<4pk>N$cool1BY01hYup^dO%g z#yI4OQzFOZBmsyoR~+pQYtCeuC=u8PaddqkI?^8`k#{dUJZD;22Jmc<=3x*)m%ki+Xar7Ps1ja&i71ly_U! z3zF#!ZD&@~h;9k7mq`zA!9paYEmnRoO?hT9{+YhtuRM+~#d&u1M)gaP#m?=`G`Keg z@sTR++M^=}NAp!=bjsnDX>hvu?NYoXwQaC=h;g_O3$Y{JajV!l9i^z}@e37( z60hZ|9oOWDjMdAzq?SM2^bJn@!0jn?6C1f5)SQyY3fdW6qyHVGW_((Bag(?0$-h!UoQLll$9iCf)jY;5|9sOwxZ!Mm7|HfDEbix?};e5};kQQGseD z5OSEpr2E9WpgGP1F*%JOF@Xs*Vu1TA2TvGit)*REtJ7tgGl2L9rXYe0Ws1myoCNR; zl`l=#IvC|8_z4d&9DA#E{$$@H@BcMci&e#_{;D9F58P)ig@^(P9*6oOCzH9)_<6!h zVTMPUtF2`w4=0p{NZL8odr11}2TIJ8rjO$UP9?#?Dh4Y*4nGUH#n5mS&Gho3D{sS~Y};hLH5e@So?F{J zPafCr&NTfEp?W@nR?OitQ5Qk>4Z=v%wQ?i7-=m6Yo0?{1WE?-U8IeTIU`^i{w~t1W zNqnxW>}}0@x1PTRMaX!EuH%UXr@t3>l#6(6){pm*8}w(nM^fvWTJ1@0S>FZ;XkPAF zpH5m_-$M<(AEwwocngBwq+XSgeJ?q2DyJ-#>UcGp0Oo}BkT#_~_rgz4MdB+#&jlqO zClt>Thcf#+Yza0f+h|Us_KweyuCz~hF!w?pFy;80pJ3qv0m%@=Jhnh{Ews1PlnVSp z6)wAKAVf_RDE>T~$TSmUOlJ9+q7xE`o87LCR^?oJ%fm&pO0Qq{cRB~844N8iip5eD z*<2oMMvkYVMKoDeX|Z!~^s8XGIh`5rV$vA{?B59w> z(FK*b9aT^F@s^lr1t9?DsgCR`NTs5wdbgrVsWzLfBHlye)z_fWGkRhPCk!UVaKa$%1w^C@j&5q_QM%sD$xrQBQY`kNfEVBI3 znQ|4_*#XS^)~_r!A};&om%)5o_H}~0)*FNjK&G@Bupf6U@n#g_i&Bf&1y@60kRu?K z6Rs~=-N))$9=Be{8-h+~AK_|SQRZvxYSg+wwKR|^k_m#saQ%12^I&YC=$kiu z-dAj}s1U#)07kmKy}k9dLM8}bgsGsws?`PfVz^(^CFH26s34sY&!1Vl`e?yvI3_xJ zMZt9R+dH6Dasn9`z}ICF=WFN#gh-npgOk~1DZNe)Rb6S6E+PDIHl&R-r7m7gkq|02 zI1!-hahz?J|8!;De!KIbD}8NKj#=Y;2*nEhwCB3t+Fc~&PZnN?KvDzy#%n|s{%HGv z6g&hzC%%N`lEwCA<$h4H%!m6COjYcxpn6t+-e_=OJ-%Z_)@8s^50t{A-g-+x-aL`s zi;z*nmzi1e#w^YQJkEBPk&Y>1=LUXi%^Yc|9tpOijwB0Ngnr};%yvqe#RvcZr5NTe z?l@_|a?+Gnbi@#&LY->9M5}u9L8IZ4ZQaXt!|pC48|(%p!qcDPdexI_jS)_>Z}{Wk zuJ#g^!uOZj3NpT((oP)+4Xil?CXZC$5c@enf5=nmZ{|b}?u^w&p6iU3muS*QH&rZE zhL~H#bsef-Ti*?*)umbPbJ=s&WV6ARjW5Of8kaSSz^eOUouC-3t^Qm%;<2C#Su)s| z=){Gc6Vy`O=pmVE>LA3ZbG{>4aK+=kY54f3agI{&SdO$}!B6hl56F^|4G%Mv789!d z6Y;~Nv<>#t9bhzoA$u|#L5k)NknRfggaF(eK)*b}o1l`?dk_&-EP zXJR%WHmu8VQ@3wCeBUY3U(M0^}dG9KB1gxhCcSpyP`aj)}J`kpBk%s%L zt#NmBP!nn3W>RQpZ;efYPgMUu@FXfFwjyQBnV^!LN5pb`*QLtvw(_~4B^?7aZ?S45 zaS=6&D73*Y`i&+G$VIWX=U*=Qjv8>;L~4I+4;L!-i;}gF+#{hyGz*ZX9ERn??t)S^GdEoj2sX9eCD>Au`n|<8fz)4y)=PIdVC>U5YzPE|}k~l&wPj+8% z#T>*{ifX%d^Hdf`q@~vEPqh-si==%@gh8rpI3MGZ?~5lNqU`8a03r_NKVX8S*mj_( zgOiYvK{V+2gb9?837}A({ZVnZ7RJi!v=x3nGdLK*s9s!Z)Qz>aw)SJ2$9kp}5R*Hz z6?y65K%xkg$b+doPPbPMyVt-UnU!GE6WF>jc3w4imDBEgz zAoD-z02(~=k*{!oYi?onXwn-7S~3|>-Mjq8{qd3v7(bPBWy(H1VUcNY-3KnrJ-``& zG|=5^n6_?8+m3I->D(Q|fl-)hb3@P7SMbXZZFRm1A5`_IZUb&YR1CY{3UXOv_5#~mA=eO=DAbsr^i-vdOxl2TG@fQGobzJ3YT@5;Fki))E2x_z(| z&o}5nCZL}R(}HdR9l9A%QmQ3$SxvEdU05gWaS}R?m@VbXO{*WH(*Jr_>uJpsfh?cf zUwICwAAWhQcM%tNJyOzb@3|fJ&t4N@ro7FDi~GS2qKnrefMpkw^Vb8~9d=`PhahqA z+w!t*h?TXg>HhKt$4?@jyI#-Ns>S~MEA=sYA_oPi8n74>>3Cmtuj zT%UpgbWK*c{Ejy02E^CMHY0(eISNK>JLFY_n`Hl>7M{DIuZ&5?&rAAK&W9VR%=3WX z!GNa6@zPXG?}T&0#+3J{UWvy%+~*erpc|R47oF!hBqU;M#{H#D{E)28uIB|%s>y+9 zG)?^udmi=b`b?g)VD9$|t0#ZaIfw7o4v+&UtXA?0PBv*j0_fa2_UK<6scl_$C(Ykc z02$J{Oc}jVNww>sq4Dg+ix*K7G=JBPK4dI6c*kTwDQLV;i4UPX;ji zWCgnaI8k&Gq^pVO1{Smz9O!FI+4wUbr zQh6U{iPV3DcejyO7vHvd%`H&NRL**smoQeG@pkvk=x~Hjz&jPC8$svV-)Cq10f7 zNc66+x;F@%!tFJ^MgQ^|z4G&~!GqdO0+iBqG@j-YOx`vS(5PFg9`po>CLY_5Ya9Yf zX2f!$$FVp zacS-YXE+T`c0+Z==z33ed-uCj@ui`U!otFG{n>-zmz?vviQ*>j5RBymV2|@#*4ut9JM8FJJ4hFxrc~cleFm{tbM5)_l0b?aW>? zFYhpc952W6D>j2>C{ClF;&_e<(c>q0WX7<5_NsMx7)vz*+2kdATI*aGT>eYvxtmRmP zB3|T@u`@Tny(+Kvd{i>XYLSu4twuEX?@A%cu2^4~7x-O6DLIIVFUxfN;3<8G zC~)=cjyjZIZYG5Tf#R5$L=)fjn%D}}Fuwu3J)Gzq_5UxTW@R5d@gGD4@PqYj9Q5@2 zqYAy2@&58OKDXb4Uu2Zu73+$AecpoVEj_XOo+nq)$X=em_)GAQQH7mkZYq}RfW<(eYBrSbo;&Wk~){QaNU%EL5c$5Qe<$MI;`2WhJjP= zd4JvFNv2A>gerEFl1TaFN;OisSkD0?rkJGJj>?q|9s#LiJ+oe@z} zgWT43Keg_K)NMiuwz3c3;yIDOUe!T1J+WRXz8|JJ9iMo4X1f^u-=q$lLJ{um?qC*Y z5nkV_QxfEA_d%%RcL=3>g*xs3l3VS}`d)DcX4rPM&_;+BL`&AjN<~Kz?9xQ6dH2Z{ z4cseB!kVg`H}wLQgKMJw7r?q;0svUK667i?v2N8FExKR}QyTr(>)UUxJ~wkaA*+?>$tJPrLflUW;k?gApE0PS zRaQ^=-CsZEFnxP^K7F{cIn2EX#K~-~)*}4Q<^w027aeF2Fg2~U-i3UY_vx{E)JeN? zPAZTvfs3+czxPZcBPGS;w-Z1`E7z-}g2G4R=jZM$en0c{z2Y(rn=KaY6Nibb(yFi0 zv()HE2`pa_Ozno+u{sS8PTf%ul}dB zv^3Ff1~6n!%xI?%$_s`W$ky0GLAfi`S zRVdL@hn{J9C5*yJ`2ECsWvKP;W7)$QIZm>Ig6n_NLMO28G$-o}%bz(mDOU{@>(y~m ze;fj=f`M;~`yi!$Ec_kK6HZ41>6i6@{=gLe-`e5$+t&jYS3-m1Oz|eH=LA8bZ2&4K zGf#o>M9O*m8MR0&hllc2mLR$Zb_2n;1$IuVLL$`>YD>{t`J(FoOz${f{rPhOT&o(x zs>M39_1>7R)6)cYc6PgEV%aaAKX3Ki+uRIl@oQt}1i-nqHIvB0ZN>S0J3F{60C?vB zR+rtnZ|o3;guawwrhZ^iBW}8`Mun9TN8JjcypT=9olFj`D$7owR|ICMsH*m5pdtof zAI%@ZoJ8@+K;g10CAtb#Xt6;WT${+{cVau+WoXXm5_8}sbfGmx^b?|V%RcAhD&i&Vd<_w zWoF~d48rI^d3Dl`&RPnv6VstIkj9c)075ioXJ=j6uRSfNi)De93j%_11%VcZnvSl= zQy++`K=#f&xypN39p}#OP)*S4GjJS7;(e3-GIbDmTH>X0CgIqKB4Cj+LS7dzZU0n> z{xFzmk<4y_2F!uK&OHGXmuRwE`btd=AJP$w?N%tA2nMDE$s#ticVI+X$C(gH#{Q@V z4HPy+Ijiad%ytiNF9f6ILG{iA@Ev+_C5E{WT(bLm& z?-c7b%{lH)G53Q*Gs9jDyg}2j|B$w{EHnX*V*FNsaNG9w^pt{#Ro-}uxyk}+X68Z1 zyFV`d+nIj0u>aTucZ};F(6PSv0ESy~O~TNqtIyzPc>PAvLxpZ!{KTcmhCZPqV1K`+ z0!NDS{uP)H0Rrm>f?Own;bclp$p5c;6E(2Sz==hG)znuKW>ErA6s!qKGC83qk}av6 z{@eE3f11mdKyjy%QqD@6gQJtus=h_wfMkvKR=I`OXBIF z&&lOwOr;BWB>M8e+W=~{`+b0w8++PPo=T74d@WYYq$sZo{UdB1%q1Em)fOdSa%H1}ezG03CI5sFU)21O$Ws>mhQmrU zN=XH-kt6}lV(fFtr<~~6@1QE*6zL1dwL&6eR>A3iRb;G7i0SmdkPX2=e*u{2@g(Kr zNsFEN>X)&I07uWqMbopM|2%@`OQi?kmhK*VE%A>IESpG3aUl@a^azYsK#c-2J2D#>6pMpL&eR1~W8jiGYW)-WDz zwoo6cMA09sOC%N-GO9ZdB=5>a)+e-l9`vAAu)7TTX0mTN)krXztw^ufQ$Bd!4g#Mn zRWZKH?|$Omb~zxLDEu(=BPr9O*GcyGd$!~sL#+Uj+shCib)@rbs&yP-4P47`kTf}z zz;69Ejl4N@^iqI4o$;WF?oVTn*Raq6nzhS$6J4Yx1)C>byf-+(32RG z-rR*yB_TS07R=ovrS2_&c!{}ML=4HkiEQ(4GpA_n4-D8(jRtRL#AfhPTZ7#Y1$^`< z&;&5`WMT(9(+X03)`JqkUg~V46{TKZNz*Fb4Rl*@rEze-mRY9Za8M4C*fHR42@Cz$ zfC;ER##HEj_#sj`Pl^rb<=dC8oF=deT6^-<&a4T0hsB3V&F6)=a$+s=|0ksj$BoYI%pMS31xq$V*p4M=8S0k)r{!5do=Db z;h;s|gl(y_9j5axXu%7h+_dhaYq@m2&1a3shy@pji5Ky*fSM zbN)`S%2ws<_}d|ESZ|}*JOkmA$&Y_?h(Jxbr2mH; zri7BDJXm-K(0@VQmc;V~@ErV_E=E0Ipgv@M2+6G~WH0qmKG^)F$bf5Xy3Ga%S27~5 z$v^~mmwU7Z=-2;61J7Pqg=}6~XD^8S0i46_<&j13;X6qa{WFiIDtA&R{r#}0p>$i> zU8j9lr0o;WT&Yt%TpztE233PLD}>tAxQ@g($4m?5d2i?S4kkW;208|qDPU$0M`etM zXOnp|m)~3^9y?|0Q{CBe3q(=dZ#fp~&JI7D3j};AfT_!vSu#4dS!R2{n{=-p7SNTM zv7Q|2M;Vl9=y)D3A1o#_z%{#DEY<-<2k<}`?R%Bja|q!yjs9F#x83?LVz+nndp{sz zLqSh7?$sr-Zw+o-VXqwQ%QH{WTOVFOuA1{^>I*6YyYGf&8Yst?tCm{)5BKLN5YviB zakB##9eD*S>ynFwcp>>DKS8U6f?e<`a|#o-){Lbi!&va;2y%FjAz#Df?-M`{oD-L* zSx-jMmWg3@vqX^lrBKVYs^Q`IGq$@QZ_&?FO+1|bQa`3_>2-b}a)Zke-2#NJE3=)t z$$%+3PV+U7^b$#X@p_1Bg2=1=KD=7{ef*C5vhYc-H3&HJ|FGFO(8c|`%fdNX!wbK* z#LFz6e|^3J5l9v~HnY$WLQMCv-TehZru+T)dYa?5Va^@buiZ}~ELB!plhNzgx%N!( zt(Q7V@?x*d_qp$z9V^Cf8!t=9uf6Z&GVHX5shfnf-a4+xJOx^r5vZn6^Xvs9Aepy{ z2ECp=43l4NYQO`5pP{t1AdH4Dx`pHC30;{dy&>fELd|2%t=EYxdjFpAl=vtUVi(Z z4yI{0jSIjmy|UE12So8)Z*AX*+#rmSY`hmmPRg840!*sI1}FIH{xZ7%VsR;`nbXy` zOIA(>1z?BImP~@vxLwu?@}MsYw? z6j=z;sk&>T#db8~$RjRay#(k+w$vBQ9ASX?0}eioSeZw5@{VU>AG{k$`celq8rEHG zt993a*=J~%tQyP!zCr7k@OU8pH~089D(GYXw0q0LskMMN8c^yEWC^+ZUHh49m*k#D zVR|fn$4CDk?BkYN{(o4;pR{?r%mg`s5UHTk>}YD-@(pLYw)gZsM!xsh|F#RgXHR|k zMdq0-O=_Q>YodYg3Jtw_UT|v4#5{G95i~S_T6jISf2oX2dg+0>7xz+6;g?4;GrqB; zXd=~s2bYv&^=4jPw285#<4zNp2bR|0nf?VQT!~mRr=s7a zNyW-o*~zm6d+bLrvJP+rxQvMzbW(+JVRpIwIaa+7g!2!PWxP9DlC?j4JRbg~1&9q5 zD=_vRmID;;Ku%?7AK1}yvG)4H$bH@G^cWzbV~=Mn=0}HA#a7f3k2ej1rIqz zl#yLF(}fkS!vr?jA^_=UL8_PzPU}deN($zWIu;T*sqr0Fd{J_)9$)K3;8E>Bn)u-I zrDOLYLZGuhU90qW`V+((&qZ}Ueot1N82Z9IDn9k)u=ZiA|7nnVP)xE$xN1?u)Hpqm za3v91AM+~X;?BT2w>k!=r8S9#Kx;z&AB88DNju}C;|{Nq8D7tK^wxKGf+hc9MzyzT zH=cz{JpJKwh-VqR@oA52HiruchMd2M0g643CHH7C^6tkhad+Ft<$ddp*L(5G1j-sW zON^C;x)FC~u^J7uk$864W+(pJ*O$#5x9%&vM)lQ3i_2nVfNl+DkA#iFuxmUPE4#)Q zw7?~omO!&FQqDEKi?HtY%YWE|$up5|)Y>`{0qrNJ9ehoPcj7Z#$r_e%)2nYN1eW&p zjm?J_)XYsP7eyeQ$23m5!?1X+-6wJVF1{^r?=yy%<8pa;WlpPB}COrpQPn;SH889*;8AEj zCgZ|QnDQ;xGVebCKCI3~p8NsNzwIod;+~F3*m%@lqpce=(^0l)_UPA9a}*RhjgGy| zgof{OMU&qY=te+t37DJVxd?2(AZB8&#?CHIO+n#xjsP&+1493YoIgi0!29P(z@(H3 z%kC$8kpHlYQ)GDmcSBZns*t(hoqfHS+~2N;z~LpXy96)=?r3uZF1w?kk36EH^z5N2P1!Vn}c83~EF9~r=g3j)|>&lmt2!Ab?j zfTsNz9IQQj31$z1NtgXu8Ni42S^M|}J?&-r>3W;-VtrrozI3gpAW}uIgn_$qup?T+ zr}^GI-lM^{5O^!D7hJv~iSLbJU*vQ9APTT=VWPx~bpO+#WxU%(TK53H5O#Jn*RVMB zcbOG1j}|uyP-bA4wA_OMsj$g`a|^KKt+uyl{h;3kgGD+37UHpAHT?tlHs-|S4S}7B zCXg&_Hhk9nRo2*u6wsThp7f=I?nlqZVt9RGI;^`LyR7B|o88 z(W%=`2=xFnQmV1l4gTv_dTuWU#t!!>Pab~xZE2y0vwBGNaYNudQ3Wx0iZ_xm3Iu5X!OS`6E@crVj zQ_kBhy84KFMxi5Ao!S*hJ8m-PiOYbQP7D1ecH?WDlLMww*1GElLx{-|M^Rr$6u-iww@M~@5w1NKO!FT02A_K7j7kE^7m#ET|l6I4ral7RKl zobx@)i^4AvwmE1OqYgTU-nf=LGJihY_2MyL(!2@KrTCKsAQHjk{6*43>U9RC(i>%J zUPz}tiyc;L+^5g?Fa}Sa#7C!iWB&%J{%CxonS|0oPut_QPLNr&_QLXS zxax{So91P+)eJL&Gt-}L*E<9ZyE~+ZKl_Yh<+c!D2zPLEGXv5>Y~7l_$Btqxo*Y#& zu?b|K+)65sOnkRs0;0;mqrL?M2Y#Q0|9-4K4$GSI!5C%y<(P*f?LWmpv+++>@wKqY zk8jeS5zYN3l_JvsEE=d)@Y>GVCkh$7@aj~#`cExx1KgGpCrfJwRiPnbkUBkZ88aq$ z7ky?!axoVR&a>1Uo4Sdb_XXG3fN{Q6qrd8V$0)&zA=(ms@X?3Ne zOM5q=K;38M!L>b?@r|a89YW51J8IQg22r_J*h^h~M=XKSH?j9QHkO-;X zd7p3Qnhiu+5k%M#DUV7pTdk{0jc-RjaB^Czpgn@nR3wA0P%%%cG=j{|<~8+xt{Q;8 zq3jUMc82j1T^wRUpccs6#F@yYe`18Rj{i%1JZh;dL!H1;@VET45T)HnDuOFdhID+* z^i&ZrVHA*&YFqbqvK`XfDy;rW1z$yjbmomUf$SR6eCPTUFpYExXbX#6;9qZVM;k>t zW838+W{NL&u{v#x!TItxSO4WAUn%gX4Z)QP-I&+k zu`Wt<#Md+(gl7q%98J9xsVARbTMH5LiUA*S#a0eW8>_RzzMsrh#xIZ~NvVM7S2sF2 z6J#atA$>*kw`_);Qq+;u>&AH=G;(ZaFS#w-Z!nTXry=fjQz4$k@s>5@f5@?!E!DF< z-048?&Fgvp)atU+f&H2RD0>a`y={pQ=6DPx0BEAZK*KWIT3xGL8Jcf97%ZB2?cm7i zR$kuw@)=Bix=R~DvFVDGaN9`8XUCUhyRfC!rK>bH26Y6JNDV;rGSJwyu5xz(GJ*RU z-{l=rsYWy|8h^<{%AOU^%gv3WUH#mz$LG17+lSdjS|R&Q-%$7Q-pz#RD%M(jPQAc( zR(+GtRf%mI;QQ;)_^981+Je(Y(2`YtArSuRy7T21Ofll7)m2rEx)TJj!OFg0qXzc< zNBVw3PeerI)u4a;2|4aNqhAbIu!COHGfx9YaJ4Jcg`Ec@U+XO^P4MB z`+Eum!k`xhnnaceiYwP{-#>mQ%!?_L2rGJ#0Wqh|F#R}M;o{@Y;%T6iw=pyPKntVz{F$X*Du&{jVrb7dPU7oQ z8+eNHvk@FA^DLyNN_jqhRD`(;0#0VJuQY~EZ(eU@+%#|d3@3A3PIwI+EEWQ^z_iaU zZMHV#fKlYDUQ2L@^<1KDS>Cb-yaUA z)|oz4uc<3Gtr6Y-=g$%_keUH72pcua7vn7th&Apfr|2GMqYfne@ofm$mD&0&UW9xn zviPj`UGzAn>~ZSOvM=wzreW`uZPKsr;+^(r#maJJi~O0f8!w2&(2Ok=2*sgKV0sp9 z(tGVOurS=)%SuJN>;*TQV0Ep+5&YDW{pk}|A9vxB($BY|==@2BPCmWc?G%iLFFHH6 zhcD`eJ@gZ)oXf+Ts9H#|f}I%JZM&~E8Lq9$X6fk4OC6?P$10Djj1v+O6?&F*E$;KS zm>?71MCBfj!13;3eUDvr_R%=DZ-(})-7@YNlVBke)ErXV%xaCP|F{fQ=6?2z?flR< zhb;H#L{*Bw@Ml-oQ#{qiEyK$LPOC_QQwV?7>`HY3KpjOG@8JgtC{* z{`8~5)HVZoCrMW3n@HUvsckO&F`8)#BfIG*e8_F-52MRk>+S)Feg&84lmaq+EtbBa zAL`n}_i=ErtpeBpin3xkZFAAGLCYOoHY4%Sa>c)DhwsgG!^2lvmL)##;Tqq;x-e(a z`u?|+rpO1bKW?+su?$yqk9eEA#gcaBM0+i2F{4`X45!Sal|^}f{7cF4Qar)8+nq%r zgXlgAMHI*NK0_`hnl;^ff)!dOia=oLSXny;6bHB^N4>d z-eoA24XwFvhuaUDS5M-Wi|q&N`~HH?$YT8>7uW-Iyf`z}l3-*pvHDoy@3Vtatygot z4hHp7Z$0UfHaw!Ww-__^vPu@*NZOzIy)WMu zN+G#VPA!vFou@(lZ&P-gj3pT1d2zF3ZEO|Ks_;dvrgroHsJ0qk{>57-3aHEbsGXZ< zAxiY2nrKc1g{G&AKIL;85*qsaMs8g;sdFWiP4n~fWdzTFjypCX zp&gV!31k|u2Lg`K$$)PuZad0H(0zk92%aH(t2aykV4Rn)&iP-+gU&4?0%nxJ#gzko zn2;YS;=usUL6DFFL_j-$+IsHPuCC2C$^uVlV4?YXecBt_NT8Sk1_v--ybpwZfW>_W z3QYy4f{x$_XhhIGnjY&-2$O1NbS6mepQ0er5x}l@r9V?WhD|;LJ6dfs5&}?Y#rlHa zTiie#3=GT(__H`}bwZIB$OJzEZRtqzgRb^E~%fZqUM z*w|(eqrdp|m4k2Vdo`c}5xPD=M0*T8Mu`}Kq83=eSOHZq1Xxsi$epa^0l!iM9cv)x z2UXhGq@+#|kWVjoRDyx$5x+tRID*oHM)``(nbK&fhh1LIh6s}c6Q%d9xEpA`cu`P} zq@lfjJ*dyB?fJKwxAZq&Ozm3(lgg#lRSCdY{OM9|0xk-`B&LV-Bsw+m!nqAA7|ErwWsMFmgBI26`!B{b@=|XSG5)G#Wd#P6 z|Fs$9a`t_XduU-m|7B^#F1lQ&WG%ogC`YSH-_>?9z{L={#8Ak7{)8ctL|$uVE>L!H z-wL@Mh9G$BX#-sllpeLZ^58y=EvV#D|)6~mXOHBJ zf5zz0GOhUiQqJ!cuam0JY+^MY%0&t5rPAgR0ppE=@ce{oxA$*YN(%4@hk%lhcs zh$EiS6$Zx0RwXSQJJhjVPbR@+h+E}IDM}Gz9`(Q9w2MmOri5jV+(Zae742sxuY{wc z3r%A3;;f_ng4W0+-0M$jjP=UBJt-xaGUsZOoSzGIdz&`BWu$tO7TJII0Rnnx-Bmg5 zz0zn@i#s^o<$~Rb1Zdd62N7={L|lO*6pl}tT+1|4y2DV&GbF#(s1HTyg7?M2A2yR0 zKp>Zy-p+q=nA~(ETk7CW`jXN+^3ykQ%C+I792&PzU=qoVlnV}Bvzld>CkxQ(qy__l z|B36eVSF;9PMYn|R!7-X8oc5|N2dG1uc^>8bZ@6b@tRrX1k?@hRk~3$cQ_12^|2Oc zj6HWv>-cG*8zZuhK~pJi!P;~4`-;;O?px_gT^F-GbnbZVyB>KyFQFeDv)a*q??)JW zb1!@8^5D9Q;|a`gWpljq)s8LoTLwXL_F^;l*7(sd$tQg*oz3eJs*_FuB7N9bBZi9n zfkmEIZWt9uX4EEt_L6u{?oim+9j1HUOlXn1qc>QGp|Dw2WAWedl|r|U;OBDw+@*43 z5#PTGv_A}yFq?dEo>>uWOp)G0Y z=vxA8*oRA>*r_Nu)1)7w_Xb3zhQ&U?C@xM&!PMp$wV20-7uk5gO{}8)E+LY_KGa4^ zhbn5i=BGl*gAtS8J`BXq+$^*0K8=pr+*`qQsmgi>mM51R);y#85EEnVufjvk(mwEX zC6Skvxpwnxal{R^zE>gPV4!H!HP#83N28ncTJ;&3IIgj_wlK<~*6j6&KPJgll->mr zJi&qZ55)%pylU>KvzazmM`n1=SZ5r2RoUVA49dOf!=W^FCJg?Ud2CJEP2qBVmAUq~ z`x{28hBAxB=brm#C9hX}^;`;!Yg4M6gFnqB^IDge9q%TaKz?mgW9G)IIC&Y5zso;_ zr*-!Wn++OAyf%NKSnXV@YjtbM3;W1pFB@%wS*&RJ8nfkWXJ`qeyMnLog#HF&{{+_v0F z%@t4Lv^uF4R~z9C0{#J3Zg$RRXO=1rn1n?B4qg$dsFH51wU8D31Ob!$f-Z=6;)qae zC{Hoc`K?`M+ETu!usSm~=K?QzA)1-+*QTPLlfi|a4xFN6%TDOj=2rUANAt=ln^H4) zcs=u&`DV^y2P~?=ZN)#mRg^Ru|Fe(_Wr{Dc^*YC|d(9f}aW=|UJ+6q4N8WEG75w9L z#8DU;`t2myvTy<% zazBqXvr_k%u*I{gbDBNJ1qoS?5ExwYvEXODdk=JYF@voI6TK7eOT?M!o%r6syyCgK zWbj<_tWZ|(@cB0z8m(&wPfmC9^`1H;VPt}6I^{m5DGW4RJl_*JWRdO5T110GwH8ea zCQejH+|(8H5BTqNoCK|nQDBQ##tr1*}Zj1 z@I0e?HJm(Y!>YRx@7(OE9V`viXE!av1;^j5e&ZFr2ni7%YutLhf=DO%<_K%zt2D2i z_%^|M!_dKRwK9sN(ZyEfUl==M7$`FxvLnB(9p_;!YHHcy!C$DLb2mc-aUH8D5mr0L zMMtmS0j=0EWUD;Wf5m^(76umg-3Xy220jeb1-AqRGo%pwPgpxML}~4fU=-SDN4~dM zrxXon4OCpgnqBR@-cDO*+-c)c&&E_+53F6A@z_7`>0u| z`mR_%+7h*p?(kXem34evjU~!p|4J$K`hQCAJJjJ(Ks*?il_es@LdTc;TPUEX;_pCI zn@e!^W9kpkP(gNvR0?a{PqIOY75!)aJl z^ul^5EHJdVXy>qkvMKAV82N}+b+$;y7OtN4`g#~El2Ccw>zRjl*Cllo{wIs@Ik)LN z#P-+4<@k&{UoU3OQ|dx5hKzhhu*i;Ry-#!c_h`00Wzb|A*e%#M#{cjhch32=S87eN zJ8e!=c(Q_9DYOjpWKFBLiiW#&Yf4c4y)c4wmp z^W^F_UJvKNX;eV^B$h+DXAG&d++wC}Dpqpkf(mj^&Ko&T*)R!2pl7emv+DD-bWxT z;Y5{!!oRQXrTHzsdjBfjKIw+#v;$w)7w);BM7+OL9)nN!l@C0^LCbr;Xld93=T{a6 z|7g7`%KpP}f8P6YjgPAxWdYK8NMg`0Z*kXq+OJli`2LvX2@Gp1`Foc9j=QWKyB}ulPcP9+4nxm%| zJ5faJi79V3>`cZNb-p-{!O4BP3%frf)Zaw~G@o=#TJ|_TDzca;@>)Qhk=N&6NnLt39*ICXd4~SEntY># zzr)L9=fvcmaewkmqs7xw$@axI-fFuYJ{dgN4df$ z5S94%G5P~5OZbtc)#WE8;8BfV{R}d_cdfgp@_jA@wJz2XBBnJzFp4H!oPXJxttxeN zEuKyGVsXcvF$hK1$Ob#ltuqIj7{#&BBEtz5by>~Mp(k?Zy6pWKa=q|!#btbpZ^3xB zh>jj->ffK2LSmR&?aa}8v+xnm)3GBNXR(>}yHgsJ>ESwiEfV zPQk#3#d71zW&5e8KCgSa7tyH~ns+MIsrL;qyT<2IXO>3O6O;kv=)0gVA<@NJWU$zc z4i)yH*)*h4_2;snYTOU>CW9C@^AQX5^=NNZ)o;6HkCV#m(I35G+I!g}~q72WZf*1Qvy?wJdi> zJktM+cfEWZi){Xxu>Gr8pTYlYhG??yGK&FL;wvvhMB-@XDKsmoWuF|2KMdmcsXn=2 z6w4Q-+22yx=wDDq8CBXT9i)xPc&x~g9JanUq*#U>XVza zQUeaRX?{c_S*S1W8V#2SEvA+>^+Rxp7d`xV)sR+?Qa^?_rFZl6%f3wQ>TL>m=USr0IVx zV9Jh*O?bbi^bCAS)A%|woIa6BWv^rY$QJ{WD>zK#TqcBjoFvc`@lkL&b>;qQ+SqDu za5zWvm7vEseP2%}L7gGLxx(W+;Dprz%vG0o3a-{a9Yjf!vIo)}m!WH&S>2zc`tX~! zPf>vb((*Cif+Q%H%4;_^|GcPIOB~?D?CP>4cF~zmGo!8&5-=$cW=KcEsyXV3e|-j} zZMcdFPfhiiAa~q=Iw9LL%|kp5q16>r`uUxHTue~wp^GwMPEaV_gY@K~3BMaGmn-;- YJ=cuO3Ga1lAmD{~r1|j61GAw20Vcn!P5=M^ literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_F2fTbXOG.png b/packages/superdeck/example/.superdeck/assets/thumbnail_F2fTbXOG.png new file mode 100644 index 0000000000000000000000000000000000000000..bb79864ae1e4320e1d6b96c5106c087e8c0671dc GIT binary patch literal 76013 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%0Dr0!eZdd&h(bJd*Oy@41k;yo3$3c_DCviSD~ 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 |tUHbU zSAPV|(hDr=qb$bfVm-V6UhC?3pP{I;7CjECyB({|L)g4}e&vJp@GoBw@&Dq=h7x+? zYrK&)-c9-xw&C+Z6ev2os{yeg{bb>s%H87K#t;qi>*_3DBwl%;@Z z>qhBjW4b%?mUujXB4=8tF7p?UE0e~LUS+-I;g_uFpE2WWg_tlp`*~*Z15<;Kirv9c z<_;57F|-YODQ?Zfi9N4IWZ8OD`D0igDXP#C2rUj>#&VzAZvT>gbibmx^-ZrJc7M6y zUlMIb*ODj7B-@JLxcB>^7+DNSygFLwN~MbPJ=pr-_Sz527&E{Y53X{AR#4^)bghMCK$6syc)*+lS!_2~XJkbIIPHp4>_ z{|P`odY1;cW^)k!Bi&1AY1ucEl-Zf<5$w8sL?^+6gF5Mato^JV+_bm5+mz{ThOc{B zW?UD~yDp}XF~21ECG7{~V4=FvZ%O-M-uwQwCF}A2+tc)RYQ)B^$Z}fP&0q5CBWS#Z zvY>9oPSNjgBF<0K_Zqc=JB^=g{^U?!&URg=q^tngi5N;WUTXaocEEy#b){mV=FUT9 zO0 zUU1T!ifz#Kop2*q-|seF5lmjLUdejSK9Lm4t|222BF)Yufna6(U`+(a8W{*HH3>Lz zbNkTSwjzzj*|p@uCl!Zi6??|dx&=S_T%%LD1w5U<$D9Z5=K3TTsCoO0el{MkdArQN z5KbrDxK>Zd%`~(0$)KJu+ilxnjW{gjB0&M1UKtgP=wxMNfEeNbiS~gEB}=`24kbg# zR>yHIZGr`ll7+c>(O?cVp7fzD30I~fqJbJK!HRu=_)N z@{sDLN#jY6#DpGq9NOpse2GvFQ2H2kxERvN{xzclbB-MO`@6B$adsc-54EPiI)i(R z>MzcEYfiS^%kKOZFsAVum-^ct@4k+>68BBMUQ-+4;-uwY;@cgE0{H&!w?<-Jkay%5 zw^bSoc|sQk=Z$e_G6F|D3xxY$+FZk;ebNX{jSQ|dr)oT_1n**Nkm%=m_{ec;9(;nm zu^e}!hO*y|bq~hl6+^|CZ>Xu)lNUp{D#^UKJ&zBsiY6I*rLAj!vW;KW&Efa<2_6PS z--A|N7jj?r>fYH)>m9?X$wWN~K5Mj@ojb7`x5-uSVj*KaC^f6wm_G|d^owKc z%3w9b6s^SJ&5lP#t6~EN2tKypIMy*>n-@=u&GLj&ZLYSv11fP03L!c6^x}E@=2;rR zK_!-l&Xo+vIG*J(+@MXS!oUs3Vg!d5+5_*j3j_mKQzlud`HKS$ zI5dEDSu1xz1)#8Gxlv<-P5wm{QdI>4fsp<&f{1XfoB4P`t4GEFOE%Y-up?3i8D=YZSnX$ zE`<^Wkf8y5ld81EQ4$)0nPeG)(;@V_37aEwE3h5LHzB9W_+21qj|^zhxRqot1bg4p zR8<#@k@JsZ!vNkpWUs7NfFaS4Z+93 z0S+{UQXHB%V7}_W7e=*{CTRR?st-#xfy~CNethZxD{mjWNnNl-IEO9`H(btE0As*e zjfkZDY-sfYd~S8{WB?onkgQ6Mx&1R|vMI`|wA~vuBPnWR0*})!ZmNa1vc%}hHKTtqSxgG2^fFn;>H@cgDAc&O% zhhx#)R&byd9kdr%N16d)E8x)xN*) zi8hHQ_@dtW#d>z|ZeXYOM?|2z{o}-h!{a{T2GEaF>l>`GKxh3Z&?Sfo&Z+VuA__i7 z)P2O!?vW~0H`{nSo|>OCQcB1F9`KupusT+^CEjYOqH5s9BW3ULdgluMPpxj)ma{h~2j!f=IqVIlZVCd+mV^dLhX{787+Tur{fw?)j_q~O{v{Do2s~rm!3wn{% zL+%4POT{opL7B&P%oiF+p77Af1qiqW2_)F^=x3B6R{+^oHQL4M#zjK@(3#=eki_fj z_dVF}>1jSgW9Jt4wXdspMgBhLD&5~O-{)m7x-zEwsWDF0AOiz12`eCM>{7!#4z%d) z45Lo3LOaKWPszi=BfD-qBelY%Z`}OX8 zBXM6KBTISBlZa`z{(JcSJEiEDVrl;@L>Z8?l>UAh!R$`We{RRTSme*A`5_pWitsUT z4=y$~cGc_IG2r!5)_2yRmvX_A!-EtXm5d?2FCAp3zpB_GR{Wo#6E_c6P8l-+Oi00! zgDYS>%{o@XqxvgRg6omBql{LXt63jC8HD$l4k!rihPAM(*Fu;^3&^40IT1rtz(_#Y z*5KRgGjeFKA^W$gD!}HCYK*I@s_ft^^``=HAgTea*ga-)&mGQjp+}}>cw_{r0krK8 zgwt*Lu$vKqS@6{T0|hG+YmZ0d0D!WpYU(crW6aDn*A#|GiJd+Kb*r!D-mBH=?~fTu zRny7t8_us^C?%omw92z_-xTio+`9=ZPHU9-H@=>dkWMo@L~=Tn?9ny-B{{}bF?f&b z;^gkzrPJBxVQ+r#)-K4|5NYD-@~fdc6~NG2p}z@;9F_r)U@GiiVBi}@gj}ie1neee z9QmA01QFz-!6-aw`O`m+qMj=)OsNWSD}2}2*8&OOutJaT&UPL~EdmaDUrbJxI#XhI z?VMJ7a{+8LX+pp2*y#LMqQ%|WQhcr5NPQm#yDD>P1>aGZ)wu!kAeLbEkZS3 zBM-)s#>U0P1&aIthb53|ON$1030KccEO-Jsrj(Qv;1zIia0EjU5E5z>7PATD2>Yk? z_xEGis%p(+hyXAOHUhO87M34{8kPi&SRpLvM{~{`D=vt!N@CEi`H~oG*e*x{2I83v zx-ejeg@t8wq_R0cloB7YNE9B9=LgKu{0{B)Zn0^98h5e;qkf-_ug~tCx4r#TbiGm9 zTnoAm+G6Fe{&)T-?q_ljAAhwmWD%)bY_@rMW7z*x&`8N;0@WYfvmNIxZTr#ZH|qVA zQ(Bo->E({6(Ye(3Mn}>G&&q}4a5FhPX+SWiTB9AkjU*4Yi}N;UG%M36u8#|ysyUq zit_n?gOqO^gBHbPqF-Ya*<&dqinm< za=?}sFl)nsaJn}(M(JMceppM~?*J?wi;nFyg~u9z9z^JBgqBP+kW3y-L`ezZP#WL> zp$#S&tTiwPd3bymNU&=r?gYtK@`)o2LmC*6_QVu9O&Hoz&pIGL2wy)7 zAk-ZGLI)hTsE`1Q=>t>fw4i4yBp`smeC36jlZR)np8zC31C6!ryPvyr{dlG$qZ0kq zZw;;V4qDuAOMrCw^TP6Xop%GKpf7|VZL70?zNIY92AQtTJ&6rF=Vg|?b?OM| zdt94+O)6x!Ot0fyPbo^+j~z?Sjh~l)#@&$Xe=}}#b&{gMm!N81Tagm%1~Su_+9q3~ ziz;wCMN&o!TEaF<>@R|Wlmc#HVI`tSxE@R~tdiuTxt3=G`V?vaWwb*W94ub-T=3p{ zAn{&*7Ouz|I)B;UuyAn+pPp6=*Z{sc8jN^8gQV+y(X-`?-QJi=lhTc7;bZURN&n9U zxXKX@SZQ%2a_qNqa>Ag7OBA}2i%D`0`W6xbz5cSt58%(?b|nWdGks8QG;N2Gq`<1W zwXa%NFlh+8?ff?%$9=v#9c=i4r&`XK+b0ZQJB%o@i4+lh#qrxj3!Z|#7J%jY+O<9# z7-R-G9p?s%sFU8bo^15CwJnO@eds(MZHU8yF`c|&4$sB0Oph{S=0FeWi-QAmjvfe)($9~O5>i089LBjE~=_!OiC=r82IP;Cq zobw**#xMM5iGC=4aF`WjIX$oY>NsP69XVl30Iwpbzd_T>rt zi}8-6I{XvZTe2u0v9w-ncW0QePAM#;4%kphe&VWVk*E56&=6WT*e;Hpqyh0#C1%f!Zbbk>F4qlzL}I)9*|+T zgleDbtiA9xC8vDhj|(dGuQsW3T-mVIYh`|V%X#RW)%>wB*-9cGtm_!>b$i<(jcZ8G z+Na;BSN6qBdjkjLIKkIWwjZ=4y2cTgz(&c0F8_r{X8$`Wgi{S{I)Z}2JUBQAn2D8? zC}6!Uq%ZJ_7g@oTKVypx2molop#PF2fQkbAZbq3j_!nT`$CZf|78bUs z%_lqoD*-JjkJSAW){B&q5}=)cr0LKGHT^jRrl7e{s8v^5o;k1$0oW0VdWt7Cpht{I zy6ZCDd1q%d1*nh-rIg7?;(r@#1=v`P${RFgS`^0vC_c*b(sk5&_hbVoNosdhnfswF z=JG;EZDUi@ocx^zbLvdEDEQaQ3)y2p&o)Zi_)pS!nXE^ZG{D}TT$MW5E;IO`;*n0z z36)l)!)eo(Vx`sjJVQbq7wW6^Q#Z#;DysBCu@OGjCYNWUmZLWAR4#{0WkYZ08($Uj zVpMk!OUv!q^UGf|<}Vz3&42w8Oj#b&TGC6&XS-&Uv&-GF-)w3&WBF$E{lHj=@ONz|qLdg<{Ez6>G~n=Z72A z5CEN@UK$fYY+KK_59U{H%r0^b;pgS@QG3-|z~V-x(GSXp!qrTuLJL8F^i>?Vm|F1Y zu8Tn>OL0k6c%UE2f>yko!t_f6tA-tK@`UE1-6MsCg#}!olvrqO^+T;>fqmEWb5O># zBj7M*u<^Ta#YsHb3PyAYg*BV_pFkOYS;di4djy|t>=)#F?`rIxgYM&U0f?todvZloeAF=s?fE~V>sZ~2lepu!7g z0gg%ey%pMpPN(;4e8+*OF~Yk!WfM0DzwC`sR2 z_l7q_hugeVs=qsl2`oOuwJIQ)N{a_OYnX}YzYeCU15)nBrJJ29MmV)_tV(oY;RyO% zD&CITa?V4o=Iy|ilc&~`tCj#iUd1p_47OSL3?HUI4NqxJRaK6VFZgt&wR|~Jz}z7K zO-XCT{t9hgA>#4THZ)G%tA^ZSp`yagzdUhRlyXnyrve^rKdq zDE2Pgc69KWuB|^&5joGm{Z#AI^S;-)HZgfMKKBW^{rzO4zi3p1YnUomE%JdGQKCOc6E&JIfj?G7#|=12{EVX<5KD zd2ejIbxEe~OIGAx?FfeGKA;wn5y~*0#`%52q&$O~kCc@a1N^*{no(TG`})MPj#}nv zvM2ueQcPHLzmHbx1B6p7{tHJ~9)+1mNW))6%Bm1MbA$nORavD3zarKS{ zSr>931sGtLvv6WG@=03g|BWs@;IjJeUCGl8*{$BjHtbwnlG4sC z4iFNKIRpeU%#j1~mooMK^}*)N@+c}Ro3HT26ak$YG|~Xnf-7K-Xy5#Im*g0sy$jh; zj1aVJ9aG~+>c<0pv)|M?(|t?qD4O~H{gL&+I$vCfz*jpy9=@IHs@f$hBxj=sk>o$O8m#dEse*=N04eOm0bx=;`Jxdp*4HJW zx(H}UTNCd~v~~m`|A>o@lEjmj(Xj-kvqKjySxq*OIlQXEV#XsYTfeaewPkUa+Lcz! z-KXPAn0(#P$YWsGKAOo_Rz-~`KBbUZWo9WRhlf%+_jdLPWHw-H2REUq)};B2-CBdhd-d#rx4~b#2(Z^L@&p^RKVF5ve+&GPg3|8nV@2dG!>6=KvSKy{dH^5=kxmW`6I`jH~Uxbm6r5R z-Er;x^-sgmy{UhmCX0JIG;g!nDW9Ve&mlZF-_@jmuvISLb`XuZDFfZq|5YBGG-`Pf z7G+)fdt{L)Z@-j^N6<6GK-mZIbjjPM8A7%vb+B31hRB*|&42G_pn*R;^kbN)nIRDQ z$0#vb!tD3~W0aVnDk*AbE-^6BugqNmBTN9E2*DW8f<1dVXfVi`dyIweQi>uL4pw z^5HaG5`YXq$V287YfTrlAw^&8F6a(FVxn)juY}~xm@0!oo)<8wr3jJ{I9Z_j;{^Y| zdK9nb4>K{8{0lbkPsu;>;DT$op&d@v_r_tqSfKF@MlIBK^1-gf=~>XV1o@JSRyE=f z+dIYgd`e$9?Zlc|aH>@kH^nW_sFq}z-0FS5`@qqBE)!!RIJI*V z4qO}L3RQtY8c81NX@&Qg>j|!9IAu}xSTGO%bb=?fygFhCg^!3kVL1~zCNPO;sPYgC z24Ip(ch7Bjl1S}p=@Ue9Zz%>j3p7hs(&;;?0`h@H=Z|QZn6nPNoF@*l5j|vavKlid zK2Bru#iR%#4WQ&!Zo8Qr5OvB#ft?**pCWxqB)Zc_a-Cr-(_+W$2Q#S*IVo4U;ijpu zD26(fbh+!o4l|Bt~RWwl7}1-m}(ml>S+u1iq~k<=8sMP z&|2B-wKmwLOaT?8xQio&Q2Kq3ltr>og#+dUCyJ2@r2{}?+sHi&R3;uRC&Vu}m3%|@ z$mWP^04WK9zxSXPKWzws6S{hSDVW7n<@G*98w-lBWBR5l&Ez;xG~@kffu%7ckn@Fw z&f`a5cV6(;gJ<418<KVeOANE9Z) zpbR2OD_b14>et*k({Qk6`^`#&`{&R+w9ZT^!U?ZNiW4tRxHoo+gWh@{nuFfIkOdAI zg(DRS9JQf-QjRG_dZohWdV!K$aLJ*!nar`=I1^@!L>{rTmXT!09{o2Yl0ccnf8Qyz5qQ9p<+vIy!3tM(E7AdXH#9!~&AaUL z2NLO&Z-MUH#SYfo>v3XJ2D!JXUEN&EPGjsfOP_lUWKAAp1`^+NA42{4$woZZ-V_`T zvq>$sYX#INYy6$-KZ5^KY8(x2Xir|osCi%eymxLa$=rS+zvnVq5Hzz?+fja6vf}4T z{w3F-KqM{K5GRKNkg@H!J>`=%p54Fatrk=5%tfc*UBg?#m02fAVW*iDv^w540F0M; zAWLfMT4Uo4w6)VXNre|yY1H}C-8WRA|JEqSI#%}=Afqa(k^_ep0ku^U$1<6!*XuKg=N*iyY3ZLbJShE-mo>ga5hw z8jlLQR=u=PJki?i_j@H(_HBmHwWFE)eUp)uJdDo@p(-hg51^P zhlhC{Y(vzzH}xYkb>XMPSvDKi?$tGO6ajwxiGbKQx7LBDqa9SDnOt{cnv4jq9P)B9oNvc+f@I;7067-NYcunfr5<`0-DAy3#ID& z(vk$n7&9E^dr#}`|W z<8=QCp9k`v``&jlr6~ZD7$*{dai8^B>yMHNRgC#g3+c}I%?-le*rq+JAn{Nk2Hl%@ z?K1~>Xj5)d`Cg)T`+I)t>-E)J{ieVb;~Uu544u~PH6M;K4cQqes{8KMvj(l+3V&mI+4P=G1Kz|h$x9{*Mt?4S=k;l5F0w|zo2$_ptM3udoHc0Y57FM# zc6M1CyK$alg`p_`(a1<@VIpC&gGHTCj9Q-OSP8hgHn8GSM}b4e zk*7_dcLYG%Z4uPS{`q1Q%8g)tpJGiZG)%K@j6U}Ra=U3prNkGJ>qr$~Ag&xrxU}ho z_)k%N$Dk$oZPMVGgj>v{WKA#!$U_)M?+6J;9BZ>3qr-`cE>tSHfLo4^~ zpNI5AhV`qji)jh$pI5J!bsB7*DbfhWzDFWVv7tiTkq482fd%UrlZJCS6kptphf(!> zlGT6o%9}7{sSe;X9*MR0QKyGTGB2!(Iae+e3@ROUkW#GPO|t8R`jjwe@;ceOqgD46 zUDAR!BQhR~i<2``5kVOHpdpSnB3yh9`h7_|fv3?G(9P|*wR`+ggDNSElN1$Gvkaw* z@9sURWeD%noRtz0$D+yxC@X0kibll3lgCuo>9lAw!!i%24pFHQ(n1g``vqk@+FK5N zzDl12AWBItnhFfZ1}W68yf|2(pvfL}Iq$y5iNtmVCjs|iTG5G@{ZBjY?Q@+pC|EFa zEqB&H8rm#G#ci`Mgl8|PKFM0;yQPPGzounEzCi!v%Z-YAQG1$SQ1h5bC|q5IY~RtV zLfUdH)X&UWSAHuN$Cqp#^eE5Yt($(kzRulHR9Fvcw++v)MX`h+uk$7yqV5eCF@9Qy zRH&a`+3{aIdL#{G*A|r)*xyzm?~y?dI}qx(_Z7i&0l`04>p|s{Oe-ZuqhQw2fq@po z9d?Un5}1r|0+@aThjH|wRj71xb^)=gb}`0iXS5JfDlv{duqsZBd{{LA}3}QqeZqNC)J|7BBLmAB%dp!2VDfAy%_)^?W zE_8`*&42nC@^+kipLj)X`Z1~GxgyLtW7eE8cBGwPwZy?vM`oCza`7Z1G?;@A8sB_Q z>SdP#?v^q>;zHb$1EzS%*-ZKx9lXv1bJC4&znz*SWGH(?|K{GnpArt63Wq*OMJ}lC zYF_SHd*lHJ<$N+Cd;XQw^U7znG!8)wyxFET4D?Mo<1To8wkCp77wr|WnizYAz z*N9t3w^QO*ovI>f{5z3luoc$~(3%Z&Z7I>2O;KU$TtQ0&833pWPQ-qL2fiWDF6 zWW>9A2q8D-_gEEsN=uefCtDC-@YtHJL%ck4B$ZBMQc`x^xex%5AEFWW1*7|mkpw_b zWiWhLp8w~m`B=Bri@fLDtQ`YTXMA@=9ULiS{*+buZ{BgdC`6EVwEy*)*#E9F*;iu0 zZL#HZH+u_5By^bJWIxYPLS%>p=g1sG@bkL=xz*q@E&w!%r44xvxwWHp05k)swA~R| zv01c$zABw*5Au!sO!ib&E%-6FWJAhPL>&|&s>#?QT#P+b=m$xWd>eZ|5+m-1Bf{SC z^R5SJhsB@Jleex$0B5&Sn??L2!oGyfm7H>xBgxtdod*rus$RQJ%9TiA*DmH!XzmzK zM!64+{%76Im2f6-ykV$;wm>OgU0JwvOslFnN2FKzrNN0P^er2qL;e2Q^$3zb_|F`w z;X`b>uN;@Mw_}4jei|dP72*r^D+Kmly5(!9J{`mHYVR$()8pB_z)xpNKV_@e(aC@0 z=Yb!9Ls6;8$x99aRvu*_dD2}R|Il}Bv)w=8vogQS7fmEm;9(P1Z zNlC@Du^j((ctfB5p^*@kv&{=E4Gj$%zThIH@{bUD8-kyXi5(gY<%ey}%vok!ddy}7 z;TGnVn&wL*M777oRW#A6M5I(6LUTOvS&q>h{SR1+=UOj}IQe#21JjuG!fJ3!)E9e% zoTvebAOFMwL+8P{elI4K^yzDHk?_8809K1B0{9sXpyfxLkp{d~{(cXls!%*z{3`t9 z>%Plhy|w$U2L(tTa7A^|(a0bpp$GginTmOP-L&}AWg(A^HMyS2_DNrg9R%M$Rv+xI zYHv_(8ojXM1f6WuQ$DEZv32Nues!Is)2ZPv9#6Z~#dH!GbP-a`5r*ns#m1^rvXSlI zsSW=;m#`eb!9*yIj68as{MChxR0mwK?KT{-?{fCIAH3^kS@lch{gol$wXXL!X`Mgm zQ0VAn(33l!#{TN{q%1O&KC=10>JAz&v6b;)dg=WKOFOs>{PcbD0Ri7TIrjtO#ipokwha{V3db}}1 z;zH|1pts?K+oG*g6Y=+%2; z@X#i|-<|!PZM6fKyaNOBWUx-CLe1~sPjC%VHQIyj!oO!{(eSQ?uE(h(V3oNUd7j0^amugB9wnJ-Q|KKV6Mi)4G6} z^h(kxl@Yv~QTd-^9(~kwh%-J`-Ei*$+Y|iGH|Egi%EDi}BoxYRp}UEgoE-IAbj@MF z8nM#sOMLGMHd;!<*FfOZ@RY|6Ra$RksO2M&oP};n3v2lDvj1;{y$7~|1~l81X#u%A z&Ee<(1M}GWAmcRXXumac+X}fFeE^@71ybBJls~3g6_0)NovjqelkGMh;!)h{(;);` zlS$FwRXM~S9@?S6!Xw1MoRF^olI#HKSczRfrwgr-h70na;j+CJv8Rze=fxE?1}2p} zLw$W5dB+;94j}0=>*tE9gda$b;_d3vYSQn@Kg0T~Rx+#s!u^GnXv68k@hzhW;C{~7 zFlBAq5VN~1Cr4Bk4H9o>cX;$&DWw3sECVPf?>RhDXj5b>wBS>?1Q=(C4bmbg9!R2c zQ8qQn&@>kBsa?$($JJ_Q=L%O$EJ4e?l&w6^M`+OF*%@ z+I<^G0nRTlGsG|rNq3EiQGofVf55EL>2babjL;2MTtZ77p^5x@m3BGBayrAe*(RtQ zr;?e4lo&84BNNCBm%mgDOKQkj{{f{}MU zz;bwV+z4dvc`#>Rbffm=PW&-KmX~2#byNr^_Vti19VG}>se}R}<^B5@K5zpAhK@v$ z)G(;e8y!!ux<@+Bf2Y*V3krzjCRmHIxEWTdnzNP1@h4j6(bP2#DWY z$Vid#wXmVXf!5{vhukiOlP`}_f6ih{6jha72hw*QAvAF}khEG6NUp_^mPxhFV9^PE z(iM(dv({7)Bhqejj!hwuZMldD0TB!$mgJx2*{To_7LKoC4hhSj(qxQ@n!plaFe1!E zw~{W?&UW?la4@iB@-PA!6&p5IF05fVk51DTjO_hC7hsbtqb!hi$P~&C+Wgf6C2pbi zIx_<1{;%V|ySvo7zHcIUK~mBog@ptWHS6v01KiLP@=zT?ihU<(JXUaN8No6Nh%c9E z1Am*Pu81i&Xk+dOhhH&i7bB|dw_ML;IiGp;w*JL_*lQSLADr^Y^W7uH5NXb*Tz5re zsMVXO%vLVv=mH%4+YgFjr#y`^Py>>oIhyiGBgFv%fTbneSOdWMu(7p`N={Bjx?uZU zvUUrr5mLmc*6~lFG}MfMhPNXoyezuLtD{V6Vb_m)fjrbHL-@n@EOJOR&V9IgE5!pD zl4IBuqfhN3bn@7)Djr>j4sh=tQe^^=a5s2*OcgF)sm1m3va%_UT;N#2k9kk?a~FM53q1m8iU6O!${cX2z=mp48Sm2C{~P!kjT@op?H*k=urXKc)F}HR1)Ih zkilJMO}xO@%>;sT36`X@8N;b2dlbsx+6rG$;!LQ6M&g3`#|Lnrzi-f1zp&oepVw8F z!PV{8=ZKOzMpGhFy`N^VC#%SLvRGmu=pkPf4I?L;f)mQ`Ui|9C+NScP9Fn;NePsTLK|37DdAQS%^Ae*_v*jX2PgewH?#}x z)zagNEZ|lxyGK9xn(bsi@dcL$Y;}2`#anRfGK9~;3C*H|a>0)#aBtZ5dgt>>ANs58 z!(JDKx_M#v+%NIQH7NoDk9{s!2siDN9`AB48eZM)&JHM|9~uDLQF1O35D{&Pj^L-y zJd6@s2IPZ}AKUWc9aqRQg$6dKu(ALgPW#dj&^Q&dIh!>J%Y$j>0ZLpjQqlIJPu}NJ z?V)SH_s3%*s$|*4V0~&+%yPqv>|21bz-|OI5J_IF$*jf$h&tetww<8^4(Lhe0QS z^lbZi^sCT4{G`p%1)N}usN&ZS_J3%aEUWJq9~OVQ!V(JY~c2Z-rx#4p92*eAUGZiRk2wp}Za>~F<8hkv6a$O?Xa)`(A< z_5sW&SH*C__ZhjwnV#q8=6 zP7I*_=D4C8Ob#_E=1OJHEo_9ZUhxG!@0Ba7j6+1^PebzVbl}6`6<+PJdR;Up9r@Lx zc#_qs*aW63>mC!H+e6Dx@+cGDT3>o!dI5)O+}#FCR!lOttB?xEYi;cDgQ5~e!Z=1@ zRiJ&9lt?}yS|lqq6Ha@fnPDeI1>&j8lEV?>NDi$AjR6{MymTJhWgWCiEBIn zI{GTP?QL>vVggW?cim>x_E` z(0*Qne%0bhdvV9BbRLJnZlh zPclS?q;TGesJnGk|BgsdbX@ROno!}oHplfxp~^_DI<@SKBDV^-s?d+RmX=FVNq@%h zfopwLttuIrl)B~-FR}b|#fn5{LB*#8#1UrCm4ttHf-R({g_yLvqd2Uj#QztvAx++< zT&*B08k(kH7$&YO;W?nFD!O4}St1l~=-j8NDz#c|j=f!IH)ebXLVtlU>R-;(@ExDR z=xUxlx|)+VogHaFw4A}fzyP_tfiFqewg-|zxmw4=7h5drwSf5&TN{PcpGR_B>ZZ-` z&@z!R(6&)cks!&hgQgqUmQAfzqgt&7bu4!8+?4|O(|~?Lz;CG`O-r5IrZNG<2j?X9 z`t2APN77$B3_-Ub;Lpa-Chx`9z6LknEHnU`27xB8Pn0d7M!j`>|7VSxc=&#p5v1V% z>A$#zqPZH?-oky8Q4^Er`&hP(Vrao0dl~RKa^wgrSFVIWvh{tRa=9#$<(Q@jyDNF1 zC`d9C)jXj$eHai&RfS0)1WIK$A7wBg&o&>x1 z?_o8302KNw`JO z^Sp?03N<6)yft6J)C6PT`9Ru6fXgLiN9orM*8>)gPOVq5Hpg@YM;oC0D28SYt zze=To?|HbM9i&yxp&*0nQ7u;lQ=urxKFEk24TlaLincPge{Y)krW_59fyvtSXd7VM zc8dl47n&i6+cNDO;!|Sp|3ywch3GlbZHiG+X&vG1~z-wb9en!>@y58?(43=c3hH6`v%U6?0AvqV0hPpIaPQ8!jU3EQ=$ z6z_eLCK>wx91Es^PIG8S+1<-y&k?K>6vu(;WLkjPN3?C31)GqfkFM}CJ~Pl;S_shZ za_lAxvIsV#MqdA+v>S%44S}y(t)gifxm+%?i;HY}Y6P;b>*8xZvLcbso};Y3PBrHRU<8f>$*6O6EOkOEcISwrw>9Chg}#uIo|QU7~d(B(Ej`eY7RXl+2RnFPOW>Cr$liuc8P1?^|IKuka; zH2-5?5CcFTDLdc~$u!M5cJ5lO7CF&{fE_vohAQt+nw4caNJ^8BKv7YIhCoq-j1@}b zVPBSIMUnkxC+d-98I)k_pXWzXxQKaQjsTv(3=l^53%4kSU>o)=Lgvn>|3h*DCL?5U zEXxY~6r5=PeRy56EYBqD2>>_T{~wMWUIzhV5jsVN_bin7Ln(ZIq{YxY5@`d1zeDZD z?B}AYDt?qNU`C?=;Cdd4s)n{WLj^kjOW)zk;bf^ne z{~-|8>mu7+2tKN!z%2FrObA^8_Vro~kfIEDA>)uQ6tII(yP;Mg+*;>(Vt%SGMOue& z4}J)?ilXrJ(@(Qv#fqqHwOXZIE;BkhI!99ws^dd2Rn-|4|9lBuRZVKO8ufY&!w~)k zA^3)7h1qctLQ@2R*(3z-kf{kZCm}Nx?iL`>GR)T;g#YGpxrnJy6eYU<;TU1+;TiME zjJY68>pU?rfoYnIjEo4zqF##_yG9#-x4@q<=*MCv(u_BkIxqm;EM!^O$FtH1#I4(F z>A#mfEj)D(eOa0T`q9h6^q!6uE1<`vY;2yb`l(a|$c8cP!!2$i(2W{N@V@V3C@OZX zj-qMUz88Uixb02XHO9xE!Z1t>Qw3ka^Ky}QyrRnZzK!SG?6~7L{^RbuQAS5tf70pf z-m{ZUr){J#m}A-482S7Veq91p!S@slNkP#x9N%U6^5rl~Dz_|);o;#qz!`#Ks09es z>meA2*O|-ZsMp1ozxmF5p{8JJYKnY5kLSDCP6f+z!FGap1Rl2Ih(toFhN2qyfaQ9~ z{*1~!WIhNOi`mYE;lIA`M~qHLv&{lC=V!Db;j{5QAIEXga2UuJaV4m`KCW9w4uS?n zb4UdINu~XS=Mw>bcHi;>#R2G4Z!tRuc7M)~S+DcCMtb23=WhASk`AN_5Hy?m4UC{!ahqEp{my)_&$TnS0d?o+8ba?AJUG8?hT}T2Sqk8Om$9XyV>D#L*TS+J5uY16sobss47Sb5+1VRiyRxikMGUw zpMUDnM=&)Fj1iQaN@1u-tz4n{)ImP|;XmR0=l>T@KmQ!|{Q5C|_RAk~$;+S1OJ9B! z#i6x${*1@GYdh2{ReVLEUaMg$8n)+B92&$l3}heb%p^7nxAU1==t$_}dTwMgm@RFG z_W#hI0MEy%*4gvKUNlW(;@}}PRX9d&*sz{GJ0Iu3-kn_X(pRAyI$jWzC}bvPn+ie- z%?Y880HKp&=xY%$P>$n7;h00m#83kg&R6Wha3~fFIBp%!70=PCl%wmp@VBq(@P1_M zAJDO%PW?4=Ywn)S_F%M%Ah^JUEP}YphwbmY@Fft<+_i-+B3K8QXXg-~Gmy7~fat+IL(Bd4uusasKnZ zZQS~uA5eK_f{o{%$>z%?8x&5DCqH{5rkO*QB;rdOnjUWDFp7)|x zV5lB7PcRM7JbjQOM~?8UlTQX&ina!Z=8DktGCRyL!4}K#DMq;nf-uFQd4pMIf_lA< zSttZdjEComcnZr#Mj{`9*6&6)z@G;68_zdtB$JSos7Vjw03>PKFLOZLy2-9N{T*5; zhsAEG9XR$2z>|!VY)&(fo#nMGnFQidR=}UEFW-}qfO@TtqDaV!Q1@4>)hH)@7)F;_ zc5+?UqJ%mG02QjWg#)37qDUaQLH-RJRTXuor>C)UgGiE&HTg70EQht5&Z0CmMaivm z;Z?6>^p|US{IOl!^8N2}(Is2B@~SuS;PxHt+`Ef)8#huc7P;)Q%Q)+-v#@J5ET_ic z;2;CTLpZ*N>wB28#?-_FpZn~msZ=XmdBv5iS-qMSwQjZ080b2d8>CJ?TtaeOasxT4b{X5NB4gm$HU%Tc(3$~oTxy;Z z?S=?HXM%oQzG zwPdTK=Ls9QuB&(+xUP+Di!En{A;RTOPftgl{sgvcknlV=+ARO-S5< zDqB_M$YyU@7GC9PWZxyXY?Oh*Ac}6HIp7#Y*32XL(7Md)#V~MWuRT~JdjnDrw$#YI(3BSU-}$u+h$oY$JSr{5`e?whmp`& zzHB)wPh5?s$?V;?k6bQ?VHgYz4KX%07BD|9)oPh1pFF@Rr*1@YJ=7r3j%C{@vWziM zpl(_CjzxKLT7(v58ryN0Do<0bR>|k{tlw}_;AH4iuL})>$iC7X6=m_$bzPWK z0<#N&*&}oslxD?C2u&BZWueFt8Zrl;dXhq+fG0_FodBD?CtU-7YtZlPjnt+r_UoMN zy_aNUiEN!xj%|S3p-G23%MZanL?_AdY3CDR?vZ~Wf{kiS3h3+LrV1}{;{zMgL z)ojzIp(q1S?Uq2%slC*qN(#rcSl5*nATwy!uQuJZ>(I9OS03ZpXQcs+l zG=qN<>J!~s?%ZYq~o+~6SJQdZT+Orqa)xa`3RCR25PeUF&3<*RkD!gdJX<*#*I_ApJSz= z;~j+J(hOkF{$#p$cGPLWD4xpa_lNpm*XaKrckmk&55&8nO+$6sc;CrmnjKthp1=i^v#+8u!r3Gl- zHX8^(p0oj31Ak+q_+7M;>SESSQm1F&p8#}@3h>VY$TQYRM2Fo<`|~v%o$ALa>#qJH zcLMBGCk2={y*C*#1+l9iKg`Cl2W`!-sC%uzv91m11@Mc8>6#v8;2#?_`T_nO+9d_@ z*vvwjHeE6pE!s5){-n}=x1itsHpF&83%KoOn8&&U8mv_t%^8V&3L?wU0JxGVhod z9`AKrOyJ*4YK+@Ymf+v)+Oh`!q(GjgO`G~X0e`8n%`EWuBdK3%-6lLIN%M+Yy~PR6 z&-oYs4m-O##1eUf8W4A zNqt(~gAT{3)cy14*sM;%^ReHdBz2lokDLGje8$F>bIlvBh|X-^{wP1b^=D1%cIvCU z@+56qpFi)sv(YpG><14%!>(O>n%4a7-+n<9ZR+m3@9n`{lJ=7gU4HosBJc}fPe0}MC$&I&phdK>n-5VZ=0bLU`R8I)9?TOOS$2OKZ%Z?IPer3H(op|3)EsW z3ACs0fB);OUb6~-zy88kdGCAwIAITqZQ)Kvd-v{}bNukbI}-O13ocW?-}8Epb-S|w z@ZK>g&6xse&e6hABUoi7TsIr5FI{8-{#}gGO+SeMdDgkEfIP;$G6nxdBK0>^i^DK9 z8^2TiPGxE8%}@#-fL7FK9ktF?O3I6lJuT|Z+;2#IXQh@j9o_La9-@lFV z@xv{zdiCm6tX;b%I^MeVK0ME3&6?GmbIxYgpR|r|e&gFrPEO4qv0)xtwp(;I1@Zkv_fBbQN{p)Qwj@|P5=F_TGt2pPJvpMm^6Y)Hc{rmTG&plh2n3w=y{rdHs zaKcIeT-W2?d+%*}tpsUNFSy_W)~{dBiWOr#{q#W|d+af`ZQBMxTG;c?pLq}V?%l(a zPd?dlZn~~>;e{8nX3ZK_u3X8XLx$c>ZtiC@?_6SLDK3N7?tG`RR`ZKblCG`m zuqvboWg{{0`}?z``AJKrmmjtq*7^`Pk;K; z{Ka2<3deDp%u&#$O`G_{CqBmS{%#}lS+Cdm>Q`^(lb`$~*IjoV*I)nspzjjPmyb1E ztD-2p^PT^l_q^vloOt4i4gGD~wvCT{?Bm>V#~nQV^b8aFu6MngFMs(<4fO{H2l>#4 zKEzw!`c?)92OG*KCMLM)rkl9oh8rlAN-eMP_@OS)yBk1_Td!%86bpG%0PECWm(qVn z@Q)+?#yHLd{O2Ec1OAO=?ZH3gy=pk@;`z2JPxW~;Hj?M6@tggU(UDW{yw|Ng5R_|cF4fw8gWE$7pU=7Uy9*Zx z*R*_OWSD>Xm+$hq&wsip_!CH>S6}@a?!MQQJI;0My?4w3|Fk5xS!gf2>{9N$ z>-MJL5Ac$gyqI6!{tGU-_&IFYuz@@7xQ(l?zN+bc92h9_(T{$FTWs?L3AHXmS-tmsNbN~JKvt`Sc7PA&(FI%>ZAO7%%+<4=SO~D`FoO90MmRr8h7ryZM zmi>fu`sp)yp_>2z2rEfMK~$%+b?a8%_rCWv1%H5%krA%H{(64(t6#BU!-f{~J6@<8 z@b6WFV+8y=QXJ_vMK_)LKkC3=>a1yK`FxwTZFfGLPct8cR(&-7nxVU-X=}SSiZ`E6 zFSf9CW7|)&BOuE_LH!6ulx3SN+QzRF?`=u)PNjXVv-A;J@;6CN-GYBFr2kIf->IJ_ zWvSG{t>&@Fr2p9UyU`RZH2Aj~t5uy==Q^D4_ie2uaHPZlvuo%b8?|=aul!=#5wNtN&rr4icWlDtv3XV5Q@7yXt48ys)Jz6X&#cS?r)Ir0aUV`B zNwzu_zl)?m8>4O0`f&hx?upi@(=GV-2l(5sCdnRJMhrmrK-#Q_`Hw5Rv3o%atvX&T z_n|v#510J{(SIIZC3@5wX#SklC2}qJscJRAcfPAscV=>Y~ zfPVt%ziriom2KKIJx;_VrBMCHnZumZ&FePTe)M{aW1DkLFCh!ykN>j7WB{^SxU!e5 zXZI*IDNoyP@9Fqe^T(xQ4>FIvE9#C?qFQYAaW`XTFa5Wd@-rGIaoZV_L45N-yD>Vn zPp$e-J7$Nng#iDiQh&F=pYA$nLMwVrCU60PovW%*#QIHr_ zRZ*1LWy+lPv+Dv34Gl)evMkLRCoaX0UXb-7ytJsdrtUuM{56TnGV=6bbkD= z|G>^&dnlJHjEyemP5vUvA< z|Ab%N_Cp?i_)$vJW$wIdE7x3o1&0qG;gQFF!{d+d=9;UoV9(xt-1wJ&%{5nF!Lv?U z$FgN3eDo7H^6qzB%iG^|J>UHLmw5jNKg#xpADK71&W?etH3MmB3FH@w=E}`SyA*x2 z&wl|aA)v+Rpv!u_Xx*Eh;`X2H?d-AipQNlg_tLsu+h~z7nSr)*$^!i3&aYEZ>-sIl zYtuB*HH|xdbq^o;*k3f1JGR4TKle9${LlW9%U|$Z0Peg00ejfx;OkGuYTQ|86Q84B+LBdN8jfY zH+-fE_$Q~iT7iB!|MjB3!%`5p;Bw-d7TKaF-XS*@t6eI)xn1i$j{?;ctQcDJ4XmF6fz4>#T zz4;9G?mfWYf9D_h_TPP(fBf$M;b%X;9mjU~^k=`we|_^idFttd0KE3f-{Z}Ha1{WL zJ@z?8lJ9-{X70W30RYZFcQe;qeI?J@a1z@de2BmQ#^3PI-~R?1 zPd(M(rPOUTviQPIY3Cq-iI%L@-&F85$g5;>aWfsZ2Fh zrCh0W=r%bh7K?dmwR+oZZ{3Fs?&M>c#ypU9tbty{F6hSWkwqY;?zVn5*6Q~Tie52! z#~bsQrRqO1V#Tc1sb2d)JB=#iIODefgjkx7w4gJe0cc*HE^tnhvX=LvUELUCG?o5m zujuXO9TU)F&8Nk2!=spgUz@dSb3XPv6_4670O=`dmstTscOipY-_BzhhjnNF=2FHCz|k)$EinO0)L%MYn2W5W|6Y#Wy56z% zl;U4a^O{KkDC@GgRl4lIW!*T^fAbTmRsXTdlGp8l1|TUdKFD2sGg_i%bZjlkOSGVr zR&YEfD1ljH(NQnvwovMuPTeJ8WaHJ%kO5eN%_Ul*B|5ffVW6*@QL~tFzg7DE=p;oS znVMnx(l~MZMW6v#oYXx#v&0ZBE?Ue|%o4??rRTV~X+co4OX~I5N!0&MoA!*3BL-jz wke6tQmZ%$AVm`W~jGYm)?_d#AZ?5hC18oBcKEXgFF#rGn07*qoM6N<$g5SIuo&W#< literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_H2GzZVSx.png b/packages/superdeck/example/.superdeck/assets/thumbnail_H2GzZVSx.png new file mode 100644 index 0000000000000000000000000000000000000000..96df828f86352eda4157bc3444ad77a273275079 GIT binary patch literal 38645 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 M07*qoM6N<$f=)-KTmS$7 literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_WyJ8NjmF.png b/packages/superdeck/example/.superdeck/assets/thumbnail_WyJ8NjmF.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5753eef27b2c478bb9ce4af29cd54002e9425c GIT binary patch literal 55826 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%0D<<|!~4Kwgi1!els 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�v9Z)1Nr|?LP1b!rI>4tk}@~ydx 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 A00000 literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_XeDZiCNk.png b/packages/superdeck/example/.superdeck/assets/thumbnail_XeDZiCNk.png new file mode 100644 index 0000000000000000000000000000000000000000..30c01bfe841e5bb3fad3cf74550ffec88dc5cd74 GIT binary patch literal 23956 zcmXtAbyQSew7xS8FmyLaNrQkQA~}?FcO#8-Hw@B98kDpkp-6X^bSOv--92;-@%X*B z-u~y_v)0Ld_x`?f*4g{UsH@81VN+uR0Dz|;FQW+n;Kx@G0~F)&(Iq;h@n6Y9Q%(x_ zHA=hlSb%s)DQH6?xS9n-jGX6b#v@g1(Oej~eXbS^wn>is-kA}>X7h&a8Z%8o-30drXsrtj^ z0ZD#F#)T};9FN_5x6#GscV$Z+Vx_wOOwGhqMostXgZK1w0?Ls-cT=UMo6DWewMmdX z=b8fn@67ng#d4SY+sNOVnkKRSW%0evP7bK4-oSq(cgh%-CfL*w@xSM{@x7M&^tt-E>Gk%9)%x6kxT*YH`zZO$IQBmmuMA<-#LQQe21E*f}{PJCf`-jeXd5#%U<@Q%h_Q z8moXsOxf;~VQecx;B__dHkkUKW6p=XzeA+z<(jg+l=AZ4bb4m)hm95b=A>k-w1@tS zshy4W5^}h2%g4kdKG-n+cKy?OSa}oJ$NQRM^mVZJm{p~nxq|~vT^&9EbcpdbG&7kN z7&C&&Kb*7sMj>+0Fk5C&?-{f(7^c;Ko+^<9Cp2iHGMVE?j?*|fu_1#vF)r;xbpuW& zm*1z`uuX60ZMzX64=S#yr-!%z53P706aetK$$zwi0DL;(h8t9e1*l%c9|D*^wDa7~ z5QvetZLXra^n!X9R-XB^O~j59?0>SJrT{v=nw>refQGYRicXxIJCdU&y%thupR=D| z9u7k&K43h#%|&(J9R~3F4ibn_KRJ(%>UlUt-El1+<=r29RrVUkhyH;CRS$kosj%e4nGlY&mo?HLpX(=LsSA3d z*WHb^=*vwpe;0VQO5qa9c6&9k@)5O2k&x*{etY=C6kkN7`RLCN34DU4Gl%6!nl`{k z=1F9Mkk9#|-V^ z{AD}#nBO1XZj-}6wyPUV3FzTjp-*^J(8P2%O~^yp(G?P<>N`h5kF#{&sumt{dnQd}+a*Zz<4Thg@8}!$L8%=hW}=|P`#-jwqleGjRWIMP>`9y&_@2_Y;{m`E*MXqr zfZ%niqp0?CuA}%=3BtvjE##X-_O&PQnx)0_xHh7{*PrhGu@g2a^KW^qGLQXno_d{0 zLHf~E;2&jkb~dMLu%!|6BqH$CD~flRPDCh>4R;U7giu9&vIJ{Bo9BVm}=v=AB?@m8(^6j{L z7RmK+A$`>JsvR8w>gwxPQb^cV6cPgjTF$0T@yt;0@<^I?SCV;D7mn^7?+b`rLMA!_ zA<{atcoyXnk$StY)>#`8A{L1B5eElfw%;=X!0nF6A|5gjY1Vx)D%f&TzX&|+jXi)5 zuXW5Sg?p+K>B3GQKaQ9gCO)_MAAzG+^fw|6n@wt6Iqh3Pt|MMK;Y$HS58*?HAz1Ui z6C{A@xD82ix>O6aDA-`SSlYQGoh+WW) zY0muV{$Jh*8Lqr5c^}o?*)mG9C*^o0e466fBGx(72y*e8%Ea!*txPnv;I6ght6AG_ zntK#|2kO@?Kr4ZAym~Z@@T@E`&BfW-(A3u5S1XThw6giN9h!5!FVS^)n2ki4xf9U} zxdQjsku)nAYJuSFt2@1)O+g2HOSoo1$3ZK*4!K1`*MXA~RrXX+!jCi^c^4!1pBX46Y&{P|s(CT>)<& zpWFi{u;YqJh#yPKNqfs%vZcp9DT8lH)ZkHp2ZiH6N8=W46lTy!uj}f%g73c1orv!e zrZ}{3OdLbc^gLOI=Hx=$CD9CrAY^;`(eh)oik8KY?XjW=l_nq1_|ZRR%%RqVymRR( zynn2E|528Te{;&UmE5nKK~`=L$}%+}j(c5}y0 zj!1~BgvZ!wpA*s*h3KYmZu66cN8!`GpC}shJ$Qu3alvs$#iM-!Zt{wSGGtHi_PC@_ zkbm>^#lB_V^7?>QmO=e(FdXee#0w?4gi5WNX(Sb3Xa2{&S)be7$0t?Dw2wZ_WArt~ ztA#)uhY4EItBrNSRB7DvJ$?uFv#YeR#Pc)g&nlPfdYnIxwB&hA$kZ&DZJG2f@6r1VD zB{=YflW#{tf$0$SWidbOqjaJ<-hO1PrHRUVr^LCl{ z2tbJtly{(I3sQ8}suXoO-&Xg$26a-9YtuY=lTL@ZEVKF$J)hXYalmG2aA&4aDn zlCG^`@he~RD!(`$-3aYg(MnUBH7#oXeo3m?M~ifcwXI}gHU#VpJdH=&Xr>k3kCmZhBxQ}xGH!CdnwnagLDCY6wCX%3UA;SuT}nqsG}X7z zoVLF>9+$0QPS=LSmj^O2{2HCpqb(CyWLu4yE5@j+f;n9N@$DPCq!7OwC9h#-+`px!eK9}4-NqZ# zUdAaWpRKFn>lxMO<=GlP&(*6|{tZ62{qb%BRr_rZIoa5`Z&*NG?X@Rxo=KM&tpexw zd>#&!H+jXHS0vF_!#?Bq5wZV`7uVA5HuhBcTeK!_dNbUK%@bM8BjQ+mnqH&<4CFn;3> zNTV-_KckwecK7bkK%kVRH3ZJ6TX2^(*(3Ku$8K=Cc_7C{W2FT1hzrzJp8pp7 zTcY4snxAylKz1K1v>zL5%>Me$GFF8HSHSwI!UcaO6gDVB)N$qX`l~);2az~NK^8mo z=PIlPkC2$*(K-gK=6O@52UT)m9nB!3*{(7#$gx(EHC=zOr82ocs? z%mhxl2uA6sVM6-by4dG6IPL1e@`P0S?RX6(K}i!RrwM+oI)k~N_XTs;*6V+PhRanS zIpSen-Kc*el@>=S1g?;MP&5(5ur!(s*tR&C~JI+VGx| z&okYR+=oxxia&Fs@^?llSZlfv1zO{R;8j|{&V~+*M(!YK-Gl{a4M zFB!`z$5NK9Y7Ta%vKZh4BVt$jyUkv)STv(*&2j0m2p1#|9snIXN!7e8>x!(}cwm`_ z*qM+`&80AaHNT*AC);x)9mCxC;t2a0VIDPQX}khx)qe$=)T}Xitbee-s8L}CS9lvr z@$@R_Gnq>7lgPC1sGtJm z%cnTzco1ftK?M#bzg>uYv4uW6-C=$4R{U?~2lT%Ul z1KzTRRD#3UWU|P9iJ*MrK$O|w7MmQ{ zp)GplUDDj;tUD4qgme97F`CpU>XPrz=3A8+N)KPTkjg z)0X)iPOY5$_=;45Ai+r9BK^;5m6uhu1Y_#64%3Qqq}mVcaL3);@PNtNKSz zR+d{+L41Hfk6zQ3-6h7oj6gcT^Kb8A9L3;d;=1*qvI}Z$&}iNAhoju=*#Y%gj#Jv= zM~)BoUB_mYO1cbvjyXSuUK*a-wzY@Vmm7BhjsgK^b z&Io(`sxYrca}F3yaAr2(N&#w0u;K|~)?d>kFv91BD*@o+n&JJn`YzH*t-gAJF6osBeAc3bFC#xH@9VOG@9Hot9b#mo z{WTs$DmBUtQx}^^m?z+?fi72JwL#(Aj&KJWCP=iqmu`pVbmehuZ9eQoh564D`1jK> z3wo_`m+Acp$2FPVl)YOA%gUa31Ht$Z=6rB$#&__GTLC;3`j9SD@RTqq0j{k7Dn2?kM$Fl!k2s*nV zIo?l7h!HQKk4IP^vX2xMRlA9pzs&jglGl`Ay!HXb@597 zVT{UJsOTzJ{tSfu;tibs+-OWy*gST;QP`=`agW%Qf=44;i}K2>M0>r6f?2Xv_T{tG zRi$_bUBUtW$oFMVwHMSP1FYZ03liAr--hMYzcQ!7G@tDyWL&<Sw1S^l*Q9ga@} zoDkwnslb(ixDziOEid?}yAM$~3ltv^kYLvlKvr zdpLbJtEzDcll;VoQ#S=)^e6>X)1B*n9bndXp;iOKH4I2OKE&G}Ybf}HF}T}b(TeKO z`hH=3*7u!~2!Q%U#R5l(f8>{UA^^>zL2SyPrgI*PzF6=mFNU90oIfEUo+0j8q5<`J z@=B}qE_je8vclRup@{xr?~^qA3^k~d<`)4h7O;rp#dFHnP(~Mz@b&a2nLj5Yv|^41 z5+?r-+9-#XOsP`%{0$?Y=<()u zuMXcXu;2f`oGcB2y=sC!WVy}ym7$uao@_g zk*{GaXNw2XLkiLlCeE*vTbF)?B#@@Va~;9YaJy28ud2RleK)h5CK)(sv1m*twIa>( z;uB(z5Lb$^tm_{|PI1Ev759vYL6zxX1qeJQ{F5zO6%;g_&8Zcu> z)qfN=HKR2VHqetB`3|}kHeb!vnp*Y_2-&qcah~ehla4d`L?!=H4T&nWjNgeE6fCCO zmvmJJ7p4+++b|2N5dIa9f+l4Y5Q0bqR0V;Gqj-n(?w>q+R4QbOgGI z7Yfq4hNNEtX|%0l249t@PW=XtZh_h;%*m>RB-->RuD?Bqv@tz!#FVX#dd zdY!*=k1>aqn_li-(~&I9K+LENX|UG+4d2Hk!5Fqb9?KOJeDd545qLuUOx0Y5$g@F; z3il-rpCHC4xF#ut1Mc{nsI;z~RtZd~Ja;Sw{6KDIW3~UVA+q9~0~oPkgcxZdI5!Ei zV!&I~g>-i7A(E!r1fz%4-q1GXhfQ%A(gqGj+qP%1xYASyi8v|bDmzzGW6?7#s!G9D z++3VsLMEo)#31SrY9c`D<_Wk8l%xjzSt?Zxeov`>jikaB{A|)^+V2{6 z-b`GFs8D|kAlhyU7D4PkX+B$#*+aR@f?j`h$$TE!03ji{t)^0q7yeskOO;;@(t$WW z(VnOJiq2>8&t!)Q@TKuqfbBBZ6T)`CRXvWfePi}AH6iN|r~cD^R-MA%qRs#S_WI|$ z?XDam3$HuVGA7`IWPnIc9YNql{CSI@XJBnh`OGjp@a36jV~Vc*b}dnPSr=$o#X2#s zFL~^A)7<<${(Js6oua0YjyXYnh@GQF6-eqXwt@sD_;^b750sKS>%3UIki8s0I3V6t z9x_{C<(8*EHCj~7I4<9#{;rZHbY%apHYUi}^_9(3D#Gv4Lv&cVWo7q0&^>1XBjZ19 zx~hSUIx)VHl-xLkOyF%nH>QqCmd581(C8723J|sTnp`yQmyjlcY6f$Zv}44*ms9Qb zCDHkFhMYJ_euSCffE9B3cmwb4&;;BlG6p=H6RGKIwyNCXV|Y9aixcV`tIOiFN6u4Z zkt^-Uz^K@{Gh_4k3ZM*M6(R2`Vg@miK;9WqMMu3i*&*=+gKrq2O?Q5WgXwo+&IG_> zQlu*GxCrX)ORL?jOwt{YyB{t@`E#RGH!I&QR7XZNbBeUuHH*L$UO0@=A6}BH-BUp9 zRwBztB1=L4_S@QA8Xq4&8PNVFf_LbzA(N6D)`( zy&W|^s=KL049XqCkii0V{(cH!a%?Ja%+A|`fb@2ImtR?;{-Rx~wd1EzvCypZ2J0Wh zV#XG5&Jm^PC7D%oW_YnJW-wE!!p>(Tqprl<_5#g09 z@`a>|WT1*VwniQ4VZ&xnL`SJV13$yX*3BoUo#Hfa=igFN(!nrEZcxM6K>dX>1o3O@ zTwqoUl2DsxvmV^&tULVaHQCEoEnoXH2XJfR@Up4Ku|eWLh%&4dl2w-d1!}!B$K{N{ zvZ=&<Z?a!k`NZ~VOb6SGRJ=MrVc;xtSJZ^#HYK&nIaS*7Ra_oE*P z>l7i{!}QG7Ab%Ap8Gy1HlmLZ&EgHsvVK8>g@C?k#4947?4gbuCO*q@Xr7Lvg8TJ7Q zn2u9}(cTCXO1o7%M_nMH;YnUDH}al6+)Ge}4`5-luFEnChE|Lj8GSgt1LfPuXY5zt zXBidM6>W?5WOV6yo9i60fI|rMPt~JAT#Yh9o`#fEft_m%$}QnKv5C zW_;C`2&H{)@mgqcxG^;`p$Dh)*zAfq6HsY;t-U8wNH~7;Vsu=VKlf~B*4_d(mlh8C z#};wKdz&KhZ5mTri+CaO8;^eoAe#)~cy-7fz=ON}x)3>J_AqUY(Gjo`UKYADBo1(>*)odyq2edvG9xEVULJF1zU>zP{|M;>jj!dJ#En@ITwQrRA>4p9H z>K9Tp8kBZ7H9h%Z&(YxMtcBEprQ=#yvZBF_9Op|6)wff3&yTBT3h{WJt|DM^firXa zlGzK$)Psj7h?J@|6tx*-yH|&Uohu_u)KFE;?c`e0N@(+a)g`lSMd zHiJ(6iVb16N<0@ZGEvyTlmZA;-?h@5v~If zy2E`2VUX7CFn1WmH@~mt*EqmEXx;qHAG-rK07Jh{Yn%p(65q=F1$VOIQ*XV9KAR|l zAKt%jMJmP`v?;xxaa-wIJm@}gH`}gFLA;EAK#W@ntv&}ae{|kJU0ZzShK0B5R3|yY zBYe{ZzhQ&=*)bpi+JtsD9XEgK*5;yas(eDNfChXPVowC>!f7nBNq*+%6mR`JVo6AF z?&U?T(0+}5s1<>esa24%<`np{JWFljcQwsnoDn)J)&}g(F>t1bvOF(S=OT_e?bV5N|IYJ&c4S<)?Qw zT2-2Ut$n5-k4rhDgQ3vT`^bw;`f}^Hz!-*nka|9DeUZ|68k3tE|K{~K1|op4@hPlc z%k!tF^#NOlDGvrf#msXNEBGfLzB?^Dh|HZ|;zT2y;&}$$_Tx`|wxjjXG~`cY$N)jN`dBp4|K_U|b^g;5mA}GFEsJ4X^6cL~48Ht6~HAbyrV! zL^RxVLcNsN1WJj3d;mE~(7sYo$*hy?f`15;y7key7KAyeI|#4tx_#WRy=&uhZRO)Q z7_}X#zWWCKnmt%87t>o)_s>dTowzYFW_p}m84{=5rU8n3a)+Co6sL81qn>qH1*%D` z3Wpb#Gxop{iIuzrv2~yMwqL3pN5s*4e0D)IHmdD6%M|k>rpZq*oxVIcMxB|6i1I8Y zCa}(YKTXemjY8u;;epz&nwyC>N4g&H=om=Yb1C+zyqzQ`+boq1Y6k9`E`Z>nzwuA7((1I zyUTUg6zqRyvMT0G)`XAH%NpBs7(E~too9X>oL2|F`Zw~4_mHIepOq}F(jTX9`&sX( zBJEC0OEPbXbFuO8eh-4zi9t#1G%(b_Cp?C^*i1U9-Q)xRPb5yK@|t>Tk<#;2e}93# z3=;!`H?jD%)Ly*M4C!1Mu*zX@KxRc#&NU0#qf$|2VFyVQWEPS=_853oT(f=@Iog9YOJ(u=cYOOwHYZf_B>qC1`EcB zJFXeEAo}X=+P=L~!~^sFNs1phVY!oLa3kyC*K*Petht}SPWeu-MqwdnDW~NQPoyaA z3sr3n|2?sMdK-$M$tsZ>?|f0>-xIwx&0f~4G(~? zfm97Wd}8T_*KsQG`qYfPV9s+|s7G-=vHZM`heh51G}8KThTF<4NVYdYy&FHo3H4T% zKDCU|;kP2BVa3#Wwl0Tp!lMd#dgek17W4Qcby0|edrb0~PM%7QGbh2!-L9X5*or+H zQcUCjdiP^=kinww#ta?k*~+gW_SJ)H=k3%R&pVB3uVB5Pc3#fl=4dQC?GKxL?} zq|o3YZuR(G8@g%8PiV!T4gE7i`&I$Rk5ITq1mKb`jVsiqOq=6xqjs&llDge3FwVda z2`}si_6-_5TujW%^!^q~__cjcKQBl8-SK_jLsQgtV7PrkZEWUyD9y$C*9uLaKI`-i zs>5-cyiOSw?Edd}nP(EMjydUjb0UC*99*^Z`J*JJwKwda4!#ELT4hIqFA^Rq(~1eO zxwYtVavb`fy&|`$*<+h>BMSZG&|WAZZQ3_~7DBl<;O(gkQ@nen92ayVyKNEjqTuY; zlbGF?G6gJLiJmH#lfAwAm00}(D17g)A~ZmjORy9pP*M#RRH6chVjc%P)9AP!n>C~L zR0CTvj$AdfoJa@H*ND5W7a4a?k4=flB#1WYNw53TI=cjONN5!mXtUj80ET{v?+Z-A zkormc(O{aACxJKjgj#esl-5mNPf4d^L=$6VqE&zUQ}K_|vS(}XtcE0@pP)hk znS{9ONLiG#EKne0*&EICxZIlfiq%NkU{sWz%Ip;v`gyy4NwQ1#{}eu-z- zU`5O}Izb0~d89~?y8)=m`5~&Zemb7jf%BYq`q%(l_f4@3T>N+pA%E9^zEYEuBf!O@ zhKUvpq{R~U&)9}jx_%uh`&@lxM>#9LS0J(B`wgcDfd*q!xBgM+Bt27ur)oQdI=-z( zHP!_&{Z^Q$?c~5SEhVNn~@jH&i;s60vA00O?Dha(nj*bAVKij*zKXUU$Cs zNRk(9DV*OEhM5?eKJZ7tB7=>#q{o8rCE>N>mt>KT5g)ib2JP5Quof|(DedNL@B_xX zsU>@a=aAm@+2U{x>l^N{@x(Br7h8x^j=-v4v*psr;7>vBeMC%zy62^5&1TeW#FR7z z6+gM*6K21y;jyHY@{o?na6qX2Gj5PAA*3lq`UAMcg+iH|!;ED))U?`u`ye=QlR;1=ak9*N!-Mq0*wXRZy1ZIrW1@2V5U)gRKmzcmyMsHs zzB$8$lKxS7+s2y%SRmN%(P0w^Hh3()>18Sx9W~=xDC21V%9}^FG2_z073x`?cKbXf zWZjyvVTd|;FdFLiYw%YxxrBNtpf(0EFY2T?f)f87e|%>k_u;7#E3C9{HJ({YsdSMk z`D3p8Erc%#D*yLiniP=4Zvl4}l{DWI2^=k7`9;h(4_LO~RY)xL+1|pjL)$PNr;u~y zTmOQZ6I3QHH^yoT5ulCPIWUqjz&bnK~T2Siz8kqWY6C?~(AY;)=z zr&Nc)wm$ItF#`SdfpFh>ZqS?)_1mN=t%k>o;zQ7O>ItUWK_k-NAyZgbXMc2#U*uX+ zLgn&hN9)eBdXA)DpPt-ITm&~LYJ}2?v(c{0qGA1_*z>r#`?e7f6E-!rTp%hRrSqNQiN4PrRWQ}G;RNd8vuogkh?JVJrshVj+? z%dBXlqJ*r43A2FxJKr=hxil^!An0X>E$y~2idYKiS&W$V?>tzo2Kd=^4YjShJ7$6H zK(G8}9u?dU-}k^?lM!V)KVh>Zq0hQ>9It11>@?_7a>S`pb-_TQLSTyC@z~&~3HKY( zzi)mTU3gy?CS-nQb^5f3sBpi6SP*TC+RFg7e2iv6*9Py6VNJn5z4I&q`uLztV0)24Nt07%P4zEZqp0EXiWcSIYY$aIv`;8FdcHxc3kZ%G71sGX>G z1b&;lr!5hwprb=UuFrzW`I9D(fwVNf+}wK&uD;&znRoJuJf|fzxcqC#7aR)pcLuEz z9@As{phB^q_=yb%zK#L-Q{|`wdbE05_|0siu7&^7ECrmAa|5aGo(@;XO-HAUmEkfN zBVy*o@l19imavwr2)C(8;~*vw#%U_uxpQdwc;9|#7JQ14VUsv?ql@?V8M2a?Qldv8M9$Qo|n^r&;gWqI}u!e2o1A$v}2P zpS+z$E9U0u;(*JvP2V{C4k$no)KugU6nkjE{ZLH|Aw}2fSt!RW$fh6+rjz|*ip6Zs zz7iTLZqZq{!d-Yz+Q;@eO5gr*|8C4ZWcE$JolHwE&nh{qPcW2^C6sT=5^2devVT1* z{>riWY1=P13BfE}kj>WEe&>fCWL64ioT%j8Wl`sdBGg=b{kfs%c=*0rH&5RiKb>ho zm<;V=GxZ=Ys(O`yH^Y@8n zA2omJv#@_Jvx0YQ(HrVf8p)vnZ^nzZSHEI38WHV0|5@iU>3d8P8TV?g>w5mW|GZz) z%W;5DhMw$e#JP~hQw)>Et>2j{a=UJ9ORr^f(8iZIr+EuQTQ^)xqBJ(DaI5!}g)e)7 zv!4Kq#Enzn4cm=m+6rmm9m{<)A+ktU|?j6x96Jkhj1Zd`vW1u8z2( zuC-uZ#@>*Uyeq~;dL|{<#s#9`Hemv4cRmktc{%bvh_ws-A8jhtIeumjf6modx`WIn ztKjuJiP7QQ(%6-g5{CxO{Dd*MVxG@*=&za2{vLaW*hhs57i-7G#}o$14e5_DTZ_M< z6a;x!l7sOSf0EvrJDjGOAIZY%gS|vT*HTZSt~)uX6Ahe~exfUuhnUa{6t|&z$#do# zQxCi_38jZh*jp9DV&C$=m7>Y|v{m~{oQ0d(^+9gzbCCRt`*DMIrCs>hn$rL>aB`%= zYu&jY!a&wp9Y7MJa81@2(h~WQnQcXt_~j25YZz6Mo|~w#tQ0;275rJm#N`9ZiCyhh zG%fr5a<8PRHu)(VaZ+>L&w5svH5+MlfQA(R8}~1BQz_`Vi7Zc9fA(h9c4Q_xdGIrT zX8PePQW_b2r|H)(CqJ85ZTxjGJKXH zxMplG@tFr_jZ+!9iPpoE%qPshQ(P|drw-@uVoHtwiwpmacF~;1At3Qtfj0P;+3gXg zi!aSG^;t7=s_d(3P-@$PT8(*bgjBnavOYK7<$#GoY#V7Va<2~^@^?xDJb4gZ6T)FS z`W}-fXy4TF<#CTeOua?+@|!L^xb^qvBDfOyJQY@L;m&h8AvZ>AGiWPICw68qQ4RZR zua{riwnSODNL1|`LJsxOMOdi^$@g#)xt?_2w%NXp)gHz_Rh7nkTm9m40JaYr{{Yg* z0+mLnZ8nMRIg8x0z&y(xQr>+|JW}BS&tq#f6DpyV@2s2Vp3?GpnPIhA{3_iX*S}K*_s7C5v}!{E!Tnw*!KkB22@;P!I^Zo#^n*E{4);%aV{%3V$rn&ICuC>ZyYh)AZ;|9CkP@{ZgH%U5Zw$WDLKK zc5!9i>mxkO8)0*@jM04mhp|G?6m&JG;WTd*BU`E7Uogekv5 za6~`~?u4tQ^-OH6TV>~mjTh+t6oBv!n~A`kM1Tc6=f~gb^KrZoeVoyE?b^v$<5xb3 zYyvn8m*pY-$tkbAp2wBy(DE`vixOVbO3TU$Pttj7h3-593<(JvZQQrSa@dk~*Q0PI z4hEh}Lc)2``Iz!{ZdGc2-)-|3eh!h9?fstbJVuWeDF>Q(d3#%KfCXy9%yi%32H7gj zYE0pAf*nsST2%sh4TpS7`^LB#uOcCzBpH?0M22k4G&G13W>6?WJ^ds#@L478(E(iMxWM?w(1Mve5X|zcXv@;mCqM zt;f8JWI8QcKgUl5o+J#}o6}wlVl;#ouTu;wzT0%Wf6Tn-s!a`25RAX{2_$Eje-k@y zXcKR}>#?+OzLX+9%! z`Y)bboR8TSQ5FO+`jZR^KF!XDbz8I^I&@B>i8+a>e8~qZ%eB?vW?j0b4-7p4i@Idz z!#dj9xMgpx~8)1cdJg@egXCL&6HU2Y(WHM|4HF{KYTd(USpxmR4I@9 zpsa6PtOs$1N_4@2h=D{5T2+%$u(+ZYS7Gme8tR1mkyfzKq7v7eu=DpTR; zOmo_QbARE7pWe-{{V0yWI4;Z#cP8qTk7#+4qp8;E9w%{Niq*WW&f$8g7wkRSo@-kju((haQQ@%?1ggW&n5(hPK|82it3r;t*&!a=;wCQt zZ>#XPsKwNdl0H$aQR553hK)wvsEZ>5*HyNVC*FsC{ErDH75cD%eWCfA;=Y5ILY}_m zfiXd=;^$Y7F(+R!mY4I+x9-|~+E%3+4iN1QIxPXIyirq^ccl*Am&~Y3^=jwNwl_MilOvL5g zyP4JrlRPnZQvASM=8B-54cDuX7OLf8d!ak8C0y4jA|a1~Lf4z6K(-nqBiAV!Q#9LW z0Z`i8J)h2tRwSkf#Ue!p?;`HOY~RWeeLI#js(uOY;18lRPr{!$)4xltD_O6F5CBx~ z#wQ+!48~LyU6Xa4+B3y!_PNrWY1_W9xVqi)cTyGI>m3g~wwY<&yLO#Iwt$^c7s$wq zWl5numGX##5A=YDnV*`F>%l)uvy9l-c&QOUTRRTEIV{+b{H@}=J_Nn~?kf^5jSQp# zfPG_MBFDQC)N=n1v&SU2W}j9O+Mofo?p2SR$gBWU$N?P^GEzcP5wMury-F{Rj=6Ns z#+744k0PYKZ`JF3ycLehI&H^JxG%Cr+js2lBxs|r6Tbz)Ulf6W<>fEP&@zG$ppLhd zcJyY%EHVt~C*o-4n{zjNeXks7ib={_OK?jcJ0D$&xBPVQgoyQf?-G*k4!hJNo4>b2! z%(>X`*jOUh<+&euuibEH{ZS9_i*0^8=cc#ix4Q(L7kXwGMZrfU0N{EQgbXK9d+?jN z`+K_F(I<{OvL%7(R1HU)4#v$eQtRA_3P#NBIOB{wW>)0v{R;i07VxBF6%fcl;X0ZH z+DjA?0GLa6-VNud9Ek0cTi)g6fQMK6^LxY%2SiKNNC%(ur7+~(lIt#JHrTf9Fb_ag z-?P;Hy5X7;Lk_L<|1iaF_GuvzFl(_NtDmqrR?CU_Byn$SM?fFi9di2yE*+Kk+7FyT zBTn$>kQE+@sCALqN1$TQK+&Swac6JqP9Fls7tqx;H1dACe_B3#Hh*y>*EQP88+tM0 z*03-pYF{3_x4ek!Z;v2u??f{KL=XWXyyOm=$b6$V{r&5%TdyGdKlUCcF=K#`JL&SI zg3!%L4)U^>?vcFEV`iFxQlPk)osMzch>4x(5r2rn^+AL+SQQ^I?+cp)>RH4ar8+4{ zvb|h%m*;#QPJ)`fgI(IW^;#er(CmFV&FygCt$D^b z;bHWMfo5qCxL4fTK@2K5hNa*04u8+_SqtB$TW-+UM$gBzJJ2JT#>G_~f}xbB7a8k* z(eepYFLtUL&fXmLrU`gO^kkm|Jm2upd+ds*_yU07#ira4y%DQa>S2&eyQ{U7rl}o) zvHA3K`zdf6XmbC@4H(g22EGr|Z$J((a9VEa>!|!&i zjvwiRFolJ;kvgR&&krK|pVw^X$QYQbVf`vMB+P%$u|T1GpdeK47NoX;`A9wdUXCpE z&X6d^>W4}G$mq|c{7;)y=4aCNDK}$_E6&X;o<&e-eK&ffR?asvS7Gq}&X6=8bXJ82 zxqU+d@vi>aZ|`1P0#B+g@^VTDYEaK1jw$RB2u=K&{Co?NiZAbmD-V>Xr>&`oUkK?m z#`Px@BXAp^NXQf=|6rf%<(z*e{mYC>?Qv@+>kN5}*gb7w**GE>O(hj%FueN_B*Rl) zZ;G`uSz$Jk!ZRQj{*zs~7Q{r(F=_Hw_dh)zNBdL25D#&TK&ro|IX)-2Saq*^zOtQr470NGjxH}JDtr@yJaHfIXOoC^E%Qa%}Xv~hMU z<$kPBqYWXbEfJHgB{=r9@;^mkMBJDFJi)%s&Aa@_x?=Jk0D-jp#71nNzWi1>Ln^3yGwjFeV-KsOM~n| zcg1rMD4wH+q}MYk{7Jh+9z^&B<=mq1Y*9fp-Iv=(_WLcj{t1{^#FxkGm&Q%q6=%An zN_(|~=euXIU3t6{lF#a>BK?-^$M8uIVlelPKfnL9>G09ogdEF4GFQ;Tf`9)@;_h~}lG?ZaB(Ju}%42w6RW*RYPA zwzmGb0k{GOv{gA{9_lW|fdaD(4?T(TYG%dQ$M0Aqs2m*JsJxtUbx;ZLN<93p#()`ArCs;0{^f{0gczj&wFi>`P@O;FiIP0*f}r z;04$aQ2?R+vQldWEslLQuxrOfM9%`I&r49B7`>mMH9X>C43hAgG7E*@IQ9QubA8bG zL+SP_$j1Xx$k@M<=jf=ADB^rOX-M)rEKt3D0E_$gJeK>-pJc0Ly-tm$SF~ZEP^xp^ z6M?|3m!;$5E-d%hTrGAMf7THg?Ve=*Lz{dt6-A*=Xn` z8@|%!A?cyS1pFUxs3r4-5*Dr6KZeNqsmFlbu5+>9zkcsaNQk}zlAOZ}OTom$le@p3 zxFIj?u)T5XG0z(LeLgZ#?W#k}m)k3AC&0xJpll8tpEKNfM>xwDLrT`(o95^%NJVp)^@(B?I{<>1f#)^9xYGNDzKu` z)T7(~MpHzV8Nq6cEzC>#aDYSc;Cb;D@dQsoqsaZ2L3YFojDj3C2n{}!7O$QAE2>&6 zYX8VMy&S$*^3*#26Vn_lD@uZxA*k7bSwIv3X@*%_%Ac#F1c;XC`7$YaZ<$vL zHpXnXHg41AM=Th`(k8?VizL`Zi-wI%=`4u0O6ZfC;uV)OVw8;fjPqCew6d85Eui* zCP3S*eoJUu=!k!qv_EE)(x1Mae609Pzx6D95u)A6&tDnTR+#OF(q)vrC`3YQN+l>cv9?A?cW|8=or5gDeEtii$)KHUY+^_ z$z@FFg+RSdIiR=;z_KTx4?8Jp9_>rd`egFsA2FOW8-V-rgOAA?SmID$PgFq3GAS$J z7$?2f*?;WOM3KKW{Ssu653zlt!@SmM5Jzy%E9ndcSqRi@Kn^G$1SBm7=!m-uG5u?t zamJEg=v*|Ih?Rp{O2NU~wrJ*oZ(-}9UmK8@Fr7quFKpjRn8@Gc+WtM9BBHoH`DCAR zSV<@sst_0!c^?GSmbDMSV#}9l<-&d$Vjh?L#=Q7{`~GNEMO~$k3<5`@5{+p%UVDbD zq?n!jgIGFLX3ZO#V;A3W%NkpIuY{BmRR|0N!|Q>)v|Y!g?e zqbczmD4vF+yT0My3DQ%GmO7t!31Xcu$C4>Z{!vb?S(geICcclJ>{n5c13Dp4&vPhD z836t{|Jn!r_!|L39z~O)Ji07kypJJp3(=!}(+L2smG?O`8O@S+GC^WJo_MNVk$*CF zPA^a@`cU(I6tBCDD^Z2Q69P3GkOZgzNHN&N%=p*!wx{Anc963v~=)gDJwMZFi zYdOb?epNka;!78W&06WBWsfcZmH5YoN*Dx-f+`4N(bjB0QUtsW(E298iR=TwCZ!Sm zDq2WtQ>e+Rse1ZVloyo>F9@cI%mwPPD*kwA5(5SyeUrCtT(t|4RJR zfk@wGey@VS0y-OjrUxnzm<0ew(tMk68e(n2mi1g(#AmKT-~tb zFAv~R{-`uYL_g`uk%+~~Gj_h>BbUFY3ZgY{LQE%ZD)G-3Ea#g9K@|fOdh`7%0!-Li zk9)Kbz+p+%OZx!gZsp_Z#?1!kj;k0xXTI zIlhVk3~dzwW*|!dRw0mvfHd_vXSC4-u7xtwfl-7UPuI33t#lwHK?26o(4SUXTITKa zB;O)d(vW{8{t9(=po#%CT6SMRJwGmj-UiqzZ0I)j`Y=(D`j$Xr`dv-*;W1J*`dL0t zM%-+fBgIgvUfSs`6@FW(_o2wY&iX5OkW^m9fC(+h`&9(E5Z?wE_8K7l3xtNs2xPM* z$q}OtnNBQXBsO-SXi2!8P=0VzDBbGC1MA08E}?{*n*1yAS7=eiKpc7rfGPq=D4qjg zdl3+j*6s^~c)xg-ffp7j%DthQnL*|&vm~}c+(hV0XdW=c_ zB}k4s*v2BA7}&gP(N+<_BFW2uQjk&K#=iVuCVw%l&6msbdu>}D*b&-})o`Gz>eN?M zd)?*I5Yb|d$e3?n`xusjOCWp~mYC|GEI||lRS0;fB7lZc0ED~$m*ZTf3_A6vp+*C#iZjlI$;s%*&*s9^{lPLKRcB>hlG$5IFEE>JpGWd$}* z2viY(LlgkijJprbjGZoQLwp1XhH(UeJV4uof?(BBwp_VP?V;jKLxgO-;&?)0(v_A> z{)Qe>1XIK~$&Ejoi}0*~N-fL=RRs9hQat~}4BDkFD-c3DDavzX1G2PdUO*QjnkWk{ zSsq31#4%wX^!cZ-ClI6}|NPXS@~wlmZljQOjIF|82{tQGmj~9UA^^a?2f+FwARIY} zpQ}qt{=9%m(HGi&Wt?a9&vE6{`5ZxorknYvYlHhqcx`xPG(Bj-Pd)}?oo>cJA14In zdyeR%oA+^32-pOuzr{~}EO45PfNs;ETpn+$FC|m_=-cx2aRK?9f9>=CDPP+DyLE&` zE4OFP5Yxi`4YGY}IM0CuEj9}${xKy(&``<+oNR1%JDK;OA0`CmoejX30?>ll!>|V+ z44U?(E(K8KVYZ#WcwR)xB;t}q6kW~{Dh>1Zq6O+~BE10bB%ZmLk~dAM6n6M%~i| z`)PgsQbAUdSC949JL&avQR*y&kbep>;x@9iO*8wC%OS<|+IBxAfX>O(N#BBCeoxBb z==^!oKq*}%1mxj+NdQzm1DNRN}Z!MSle}~S( zTeMo^Q{QjsQECzEsSWK|_8M5bd7$!-=^AJpO`jy}LSUZRfK7$?Hb8pd(TN2O>GuYG zah9!rD3PvQ&Mc%M^gR7>7M57VK3YxWe7%OmY?%{#EWt$TWjIn&a;i+oW+Pe@m^m$J znqgFsLSO^30h^o!V4ee@&jz^dED7+KYo;JXL~tT3_I`iea}F&u zm~Q4z)UZXVXt@%9ZkQ-KdU8Mg?0_c(HY6LcsUkpp8z4UvS8pm+`dE&^-= zm3w!9{l0xoeeR4v+AM)JT_4_OuTD4FmAo*KgeCg5bKwv%LAFsktK>gl1PKBY*G)Go zuxZ(VP0RwQ9t6Y>OcQx8-R;|`9k>|0Q-Ibt#zC@2)k=w_;Q-!^fP?IN9+Bej+2ip zo|sYyznGr+Ck$H!M+$^yGb+YFJ~1%8tiUFT03UNZo;3`Q0+vNUidnB^UqSAazpb2) z*+S3!tkvePI0^=W9%Hj&paI_PTC=Rqp@ zPaC2bh{_6-Pcr&!z&uHFPB88Puq*}G?+{2wJoT@UC4m|33z%NSb_Bl;7%TTE zEPA#UmlYT_BQR)rD2cmuapbCrLiB>Oz6vq3|McW93&DzcB5hV+8bV;MA^>3CS%Ba@ z01!B^4Y3^H*U8xioj)DX%H>u+q4W8eI$QcWOw6@pW2=0yy?#jsh(C8E^BE9R zLzNYnfe`RG66UclU|P}Ip?(`+zec+kpqzaGTwR`wK&V)d&lhEpj{K#1_t*^duQ0XJ zmCimeBVk4fBSiEVW7V2ujxT{=S{w%S|L#0xtpU1@FSg0>=KB# z0fr7Hwif|G0^*nI^>w<0yLI->m#02g_UooQYD14`Iv?{LpLo~XYx|la`Ik=o5;jv9 zq{)((nGMj3fQex)$I$_?2O##oei^OTkN-FATi5pxvwOKsXsRBQCwAHjtJ9I$-W?>o zRT_yCdW5N3=sXTf#m3Z1PGlJr-2*f z0Jx2=pHi0t!rMqRZm&b@+x{P#UM=63A!q+-BIviv#>1KvO9IzXLz!l-5RG{Yf^$>|=1C(zKW0PfO8si|yqJ;#UzZQJnKe^5(vBVB_rR|A5Q09d2o!8KVvV|2u4 z159ay?3jxP@FOfgW(ixVMva~u+^ikR5JVA>-qx#cgnCt7 z`gA;HsrILG9#0mr^=YEe+Uld_EyF03Y?X|Wb3|PpRD2)J=Vi@^tw8z4lnp53xOF0+ zY|JeSzzTryK_+ekVK5Q3k?o^r@xE0$F(J>c)6k`*l>}|lJ>N_>5Bci_Z;1Es+Ic|a z``~QB7Uzs1Yy#{eW-oxQZHgJ@kjnv~bsUw;b$E#!N9&bn+NQR# z*wOa7Z$S>SY{A>P^(+9)FE1oY zA$YEC*f>%q?Oi)pMCkgm=1B4ppV4zp-d}d0F5O(P*@0*=FpUwNN^E&cI9OS?1Oo_I@|1CvJOB0xu|Qv*?;T)IovT-;@5%X{2(zf9U&0E zBv85t7(d2MfJp$P7?iYvAvf_$^*QRO7TgRzh8p6|PkIW9PyMHA$5F>)QGVNc9KONW^GFoBsQWT~t0;bHLQ;xlhMXtkWJO8Y0QrLvHFC#0E+Gnfy z+wMQEHEkE_SJ!L1{*U?#nuD4v`40i|GMfe`>qs^{(C9|{ZtKyKAK1bIF_k#`*k1xz zih!7dklq9+ZSa#ZPRd`NAZ{s$yuQ5d!56{9#d*c`Oxqz+?af5zu1w{jyf_(RBadsKxaw zBj1vM^d>${ot*+`>d=u&c>R!sZfs@ZeVt|Q)PE)aauFv4%FG6Mbgts}aYVorvj70) zhNXe91d#6mKL8Cts~i+NCwE-(PrW3-)$6H9FId`Mxjs6Jm1c=RyNKXev}kEE?rX|=kHhECVe||u-0aF(N6;YV-IaTffh}jIN zZ)@oxIr&TVlCkp*u=Q;t?-az6dRA{bR}sfBmDGQo`_C6%HbAu`P!3JlMNElVfQl4| z-UQgi5QBR1Wr0-n*ksp5qw^gLIcGrqt?|>T4LlHiQa?61FCKx(K2^UJ^FSDpLYZt< zpa|emT0C8p99tg-0YIhp?b(5T`?U6>kUv_7uO~>9#4S1aUc(jw!j|48p)fS*l}oba zMV2F?X$)|=G1Vo3DJ-oQ7S1eT$^Z;MKeD}ZU~KZ2TEs0m43Si}?_aPk43(SuPt!wL zssEP!NW%0OTyw+OVOAm_af@WAiX{so?*gzP#Q&7Yf9#=OGZRmhMH$M=l=>g#hz*$< zxwdb_j%8@2>wRLQVFacs0z4EJQeokcm`a>3jCTQO)BR!h@^>*L@oQ}2>n#JbeSVsr z*k$W9OE~iSf9lzKKBCSj0m9a8q9S73w#a~o&d^wcS;1T3pMVIMeioo221z#oy1)kz ziuASV{&oB5kbmC#lo)&7J`UoKI{A4sIn?a@NDnOe&>NpwK``Huyfuq}aS@iiCykI?QIxy(pUP*X=iug=OxtkiQ9PRfn70_PiGTu0 zj16hncndr`3QQyFBm%%PYY%I0w;yh;J1^3&$5Vf&yh6Erl-O4wl7yHbBafj~=-&%u`cHa^?VdN{aaW$RQi-3!iss45|2&1j3WbXR4+UibD)L~l_n$_*n62|K7FIuVBmWc@e7)@| zO^r+@g;YP9j>9QmuiiL2{*Y(Rhj3^_@5 z@{hZ_AfDXI=p&_{P=E7Z`ya5weaBNAXefADff;55yt(p}CeI~i0j6~R3P;?_fVjrS zXX9Jlhu99aFTh6bVLhg#0pHV1aFshb!1cQJP%VB@Uu7_M^bW?|tMCA$3k zS-f`tpDnA`3_gsf>T3uAF|?n)Ki8{fg@1m_5yNM#=S%)w$V&s$MN57VtqVpeah4Lt zw15Zz4KR`5mJuYb*i2CB-hlDQU7ItodoS;2!$p+h>?Ot^%hj7f{#~@*AKikPoQ*;c zqg35hNEovMApqjC0H&X)BM3?*|5W`9;UlFVyFWZn5aY2ltY@gh9K&?aR2=4*4VYgp zY$QzL)RZ4&UPV;YI_>}gds(4BHX@skegX@cR9N=84Y|%V0!0idJ&g_ zv?Eo8DFYCj=3k>(`7Rsgg~N#FM!-G&IPw2P2#<4GNJSn zH~}nNlJEXoEE@QdJD#&=xL7XW^Lrx7>0P-uLbg!6UEu z7P#?-o8jXh`y^a@&8OgzS9}Xx|M#DTUwZLx!=tYFR=E3D-WBd}hvV>qpZ#@s!jC=@ zp7O+>hu`?^=fbmo;+No~AGua{G%Y|o$YZSZKgOY!5G;Put)rzIl;S-libdrnx6rGD zy$S7ivuvkfo*#W%nUpZlBejSqbw z008{Wm465CddJ@Y0Kg}%{WQGjd9Q)Hoqs0)0C@dxzZI_dj%ULCzUD#z0QmIv{|N8@ ztB=5EKK*&P=#qQD_kY*_3s?NdpM)F!`6gH_8u9{p$b#aNV_^flprd4*&pg{@w2kzxax$!)t&24^aP~ z|NIx=6aVMaaQgI_RoUs&+i>#4DLDJ=qwt}tu7O8>_rDH5vMgWJG;{2V0#U#vD5M z`o3?4-+to@;L5-LI{*N<|E2eaM_uu+;VUn=D}3;8KMue7`sc&%{r*efE5GV)aMMjE z;Au~K5ga{s1pdQ!ezWR8&@Tm&4H)vvGxbb^ef__jpQb62a>6bxn8{!cn*sr*8FE>u zC(wfCT=)j^j4c)o96#rF@P!+{2mkPAZ~7*+{@=%r9fezO zy%n~%cbv9Z8~?weZPWHF^}f3Q)!3~6+bUwGNhMNbq`%dg$>Ex1>mBzR6D?6?{29u zVzkRrzYiOLdXZ<1dU>Ou5CFq#>iJ#MkQK`LorS4li1dGc-y4LfpGG$RsUO^?q3r9G zB?D0OAq&BkwsEiMb2(+y6I)TCg7;IYzn$42+Y-P~sNcn$sAsogTA1qH0OdzmF-Ig9 z0QHMpQ8vo^hL#smMMcFXAae%5zJFkl!LW|FBJ9rq$ccKvDk>@}Qse&z?B-b%yJ1ik P00000NkvXXu0mjf_Xpos literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_Z40wIUYP.png b/packages/superdeck/example/.superdeck/assets/thumbnail_Z40wIUYP.png new file mode 100644 index 0000000000000000000000000000000000000000..4210507120efe0f8573742f569698950ecdc1bcd GIT binary patch literal 37815 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 JPDHLkV1hwM+rR(- literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_aTAXFyQ7.png b/packages/superdeck/example/.superdeck/assets/thumbnail_aTAXFyQ7.png new file mode 100644 index 0000000000000000000000000000000000000000..54191b297a8b3211bf9149905358351e91449b34 GIT binary patch literal 51613 zcmXt#ez$4cTIvzAb8LK!Ce=3cZc9kAh=6#cY?dS`{ld$-2F2< zvpX}Vs;j%I`aExlqP#R3G7&NW0BEu@63PGoe)|f7Ai}>Lx&(%l{yVc*mKFmlMoISH zPGIfDWK|L0J|2ih!2kdOWF)*&QCf7aC(X zHTjdA{O-L0C6kzA*noMsp4A?~=H@xi{urvK2jKjY_k_T*APphl2i~ch>*X>b08pU1eFM$}oxm_mr_{$UqcJNLYlQHlW_5Hj9 z@29j(MRu~a`UVICJ_5nhN5bqABW&`!4i*JgF|>{L6-#`ZR!Un_<;YM9S8vy#@1Vv; z{9KqW?!%CpCP+NS^I_xKp>C$kin&M2cwH4hZMs=Q^e7s1}_k+BJ~Ef9UL zkT@(1=I-A|zgN5?ujoVt%V(7|NXE#oBRtFS1yKwTI5vHh!g5140HO&`e$;Faw8lK# zWzAjW{2IS6Zj8lqOPMeUG{hgZov2iNv5kn&zQNa|+?6bv0+aHN6QOr;Hr>E6@7c%fg|4x!f9vQ63IQ(u3qwOqjtYu5|^ar&kEkfoi} zEGi-b?g>glKtNzNcE=B6W@u;#^9l#8FKmg}+cTT4)WZ1q@gt}a6*{&C1NHZZ9nKKM z0M3q7#&T@Cd++R4d_}zB8>A#9$?55lw+G`TV<;rgZ{nRX-@lL8&2pXCA_j)jE(uLW zlKq@ll0$U`-ExgD)j@(26B9-1wS2u%uB>NzlP;SzefGP@ubD3J*6knhgqfcH?)b%2 z+i>#!Qp^~(npYY)Ww*FF^;c!jS7eS~xhukYa6}1uH!%7)0ufn#GF~?rdx1TdtDyha zS){>qu+rXiEsh=4mdFSZXAHwvW{;1zD0u}18-J7ZI*2Pbt>MQf6%PRm z=1FCh^RA(>&GNaGPK>bjzNs<6zgOkG?>Q&DZO9m(4iGr3|AB>BG{0nS|EopafbgX?{+aXK>DrQcy6b4!CAC-#wntDTTlJu>XEqo6HX@Qp?2$AWTeXN)s=GBHAPsdhJ#h z$L+6?Iqpd(JkBp9)uvH>`Ja=bCWFPW{ z;?sq``C_9h00n^NZBe0;vhrlV_D@jqI6iQ^e7hw;C*wtBqDLlvT|fjH?6#3NHa5;C z5NZ^gO@3P5nfeXX-|LM?uXjmS86Vb zZD>!UnS%WP&7?BTnvL<8ZnKp?yz=P+K09)0n^|(iws-w8P`&;A?=#8h$NXS`Sx>$< zwYGGh{p3gsi1`+(K1c4Aq_iAZ@1c9syi8yY!O#J+M>i>TVufR6Rb2X-?b~Er3%yKU zBca64zXXih7&WUQLPA2o27pOSY&g`v-u~6fa!&52(6W+}63Av}07fKp$<^lMiMLpb zoRQdRQqCziH#a6R5&w>5goSi_Fky(plqwb#pfDD-BYXPG=>~fF)xwQ^S9-I2w^rG! zP`C!iTrw4Q)_n}=_&kn`$13fM(IUkCAn9s!*W>EgrDwi1qZ@p7{JS5UH=9|^>YfPs zEGb8Z(h-INFOjq8S%QtB&m`4V@Y#in(NRb&0UxE0)wJ#XUN30|`ykaS z*yd6`+vH)0{|w{W)0-RmNpkil1mjxppA0f|S)gwjovNjA+i5d;aknY-3$5RQ;=WT5 z#cKDNqCWzl%V}yU_lZt4-^;CC|({z8=r$VOoq;_!`R-={T)N zrlc9LCI_Eez?r^w8c14+FRM0)Is^NE_Lx<#H+XLLSQWt-anoV5J!|ECsyCVWf`t#b z{7&X=#2~UdyR9xeRTWb1;F}f=Et0G36ej6Vxa|JS%QAMZnAyFa*eH3RVY8|14-4pm zylHD*WMI83+4SolDfaOt^8CE>fc6+w&(L@gjYJB>x8A zXD!G#9`%*!EGd^5?@6unb4;6MK#e&*-ELXhmK^6aG4ieUfXdG0yyqZxljhmK=&6gy zFhJ5{r$_G0#!p(3OBsJ*82yDUo-nBxHEY@9XpHW+Wzl@$KtnM@EG_$;OPJ9>cN8d~ zZVL~qL*dA&hU5qyBUkShU*lLi#8ASVlx*pB}FfMz=)#wnL<9w1Q4GVP`D5K?BP z3jfs8g0~TirqD0T3Q<8rbZivH1}#6AzzNbeoQuc@TGdTRD*_!us>>6*5tc}ma-KnLxzPqDClt_AtJMhTF3NTD?DYUN!%jutb$t!FFp9) z;z6Iqgd6`X>|*e8p1P&ccuh_(50@g^m)NQaM~efM~rx(}|6Wer;vp?%5rFo^6>j zgAc8HD1CQJJ4)+l0YZiRuab_zXMBzCvmuoHjt1f=^`#`=jW1A}CPXi!J_G#NDKRB1k*0_ zQfa~x+mW#|XpiBf{bg=A1%RxcDwS_pPW9$%vxQi8Ex^+r*1z z2C4`LT8Tf7r2fG@^W+VslK8OFllL1pd5KBKJvjDF`}m<><^9 zp!*^P>!mA(&4nZmc7$05h`nX{VoD?Ewj=`rPD3+g z*Qfa_yV=P!?-=~-5$)w;)q^kJg-({5+<6zebz?kTB%~APD737$GEkC$%EQ&E=gG}3 zF4}}qRJ&%F#Sgg3b4Xoreo01MM>j-58bVKclL zeg!7Ey$LETo9VIdmnAJ=g@w~f3vuQbJ@Qk$u2xN02MeZlzmML|p5dym9X3bsS#YLs zPLV`Fs*xWk#yG2fxFo)C|2P#^xN#D*5#)DYvMZElhIO%6psu#;Zb!lHV{USpB&8`< z|Hs96AVk-3eD`xR5@PI{I1+RJw|7mBnaATM&n^D~JoIQEjPF(NDFck`_(&^dy!W{8 ze~*caLeUI6vXz^aXc=S>Y`1cm_{g}Cse%%MikMPMfa_59e` zUbQ;+YWMrbD&p?=ag2Zxpb0*&a~wh#N?ExH9I6u4gDRg1Z{2R9!+8eshljn_0-6vTGHt6HQoP~4m6 zAq0dg)#~w(7TUDi-Srt(cXa|fHQVn9Hy{vP>;!=^@#>1-H6DEJHPyn;s1#~MONd~J z;}|fEecF>j%&qKA5zjTXVfrWT4{W|BJ3^pP4gXGO6I2@Q6__DzFv~K(5S!riskxsvjGaQAI1ey>=zS?)k~5{axq}vQ zIb93g9)}Dyk!ghdw`Fm^+)T7QnOEI1=?7Zw>C(DJ8fqThQ!%SQspG!5=v?4^(uj&( zvIzV^wD1Vu0{_Jt22>p^e~)KAXbF;qZ9(W50VKX8eR?kvp$GfGp`4p1=q*g?wzJ)3 zb#vZ@$^ulywB5nW@Vc6xfdV9pzShX|IG+dYM9jT~R%P`e zvnCjb^Fk%C@NBh2ylITIJNM@MNvN=57%jRQsL!-wZ!@7*rg%R=Gjql=M64VEYV=5l z7~EqoPx3{xUDa{&0q%hIlbht@d$q{CySH5AyQM$Kn5%qKXnbJ8t5W$v5lOM+Lo^J` zwHDG5*QOh}SCkHk%--01GmKPZDLOVX1@&VjuCRm*Ie>UAwiPIdH}8ybwJl(St}(gL z##Fk|e^9N4TPxJJ%BC2NhcPbkR?fc-P^qj3R@?wx1}ykU=v%MV?H9`QoZW zG%>X~>K6rZ09$t7!rcL}}cTTJ%fuU(!QFmbJLL5DH`e^7pG!S9brG@?y#~}D{nq~WX1#*1)$RH9rOQ>=@lMVi#k`=EyvumZIMkZ zA&w-9n3{;Sn3tohaPC`P&R}Fh(&)Zjjl!=NC0s^q@@(zT^W*GZY)1XCpg&I7+3<_O znst619cJS1;TL=YwbItN=)sn+J-o1wJ)n+a!HE(-_l5kg z3vJHU^M+=#u$F9GJd;fBFi*dvwU!Ig>~y1N2qvn9!;;`o7!`xodIi4mw??Rb%>G9X z2Os|9_gHq3wdDp(eY(68;x1!{jmKvoCd0%ukX{7;X5)}t)>?Vex5A`_SLBxMt~Swbe8KY|L7SRtPqLW#~5zFzSrY-iH_ieCG` zdS?Dk*H=g(b34Xe4R)5rouIG6$|B}!`m&s-xjVp7QRaDH-<70A?RDYNe4XAd zNSkePnVKH~(k8*Ds~#)h;|TSs^GN8li^{tQL=d^Z(p<*=#DJn$zA(z zVk&HHn z$cdDSMML!GsRcP=2k`INt}>np`OK^fDfjbzNDoXqcbX1d=PTd@VhglVNTv5J@@s{HuSa}qN3kMpxWq$Das*7Qkv zK^j8DH9-$!;;OVNs|L5*>2DwHxX=5dB?=@7w7{)x+fgMYRU0kWQtP21l69O@aYPc? zQH!EtwwB-qyR13rN?i9}Do2^|e0S)jmlbjs*L$E5evqyv2M3p&-qH9p)(%2UvQ!P$ zx*+SAJaBe}XQdzee(r7@+KOQL-eGM7Ms(ehLQyG3Ly3hN_0SZDDE2)r48kF1439aG zO4}_*sjOn@R^>GTGt8-tEtlp(twhx;Y~dS-K~VMdey?T$0@!GrdSIN*&b?VfeHh+8 zb*^k%2YHw<0hF_dnkWvzN31F(DpAAdE{*h>dfG7zf7di%^~` z0_hjLdNXSxlz(DsRGqT*r@P^$`DiD9#>uEO_hp_3=g?tBBM=nYY{92Dg6G9VJ4U3L zVS$_?2v4o(sJ5hWLs?g+Kfh+dRQOvBdYLV{Sw%z?Jil(-(Y31-q&*=bro)A6B<$RC z3z9J&`=%Iawu%iYTDmQWl0Z$q#}J$J1AhwcsbwOCCd0~vum&Bqm4FHk(BRwwf|Pog zo&>4y<5-|HV0{BzSR(DvS@=i!FRu-`A}RN$uvxsNL=4${==86N$C0ntlDhqM;r{F$ z&e&iH=82r)!9pchHaDspKtuPJ;ozBLE;ogb5AV>Z*%aNHoOzAm~S=bf@F8vS|JIuR_MWnf856xxhSjt4L_uE&L< zf82|$B}Yd=6)`sMR=3LdOQ@Luz8BDh6y-QRz`(prU~WeX_N9MApR4^;{n@QgNH$RY zgQ+MIn#<9#a=v#&^!DKq1iIsAX8TPNK5$K3zE}F`NEc-ZXB_OTA{H0XObi>0@HIv( zW?PO&7#`Ota$mS_HDU=!aOQ;5-H zl{U)Nh46hQmu$T&(hOqDM!vU5&C;iFgJr19Y_6tpLp_QMdv7Avq9Nv$9J~=*=#L)H zB-G|D)(Eok5I;!9)W>M-QXmF?Y()jX(J`>=Xg|Gp`!{{MDAKiL<}xMv&SPa5EG5!;BGd@T#6%iN9RW~%lKS; zxaE_rwlZqnY9Ti(HfVl)%ruw2=!Yf z`=^pT$#rKZe>R8rGz)eXw;I&w$k%$?bd(6?DzZct`qauGg00aYXr+oG(ILecH+Ljw z0xnh zmLGoM!Em#=vlv z)ZmVRJP#k%pU~qyFQ(IJ0v*czBr-vxv5s!kM{z=C3&t7GeiHF5xax(EYWGja<+-Z?~GF<-orUs&#T7=C$9_p2X!HKjQiym z2j~oH`+iDIYixEJh5KV19NX=Sq#t|=0dmOxADMstMt-O-JZc8hOo*c`iWO3I$iVTW z3T0(tUVjPr?83Au{apvviy=*y7u;Np3v*Kc7eshc4$7Af5%??P8jqPxq;=OV3w?7W z$9O9Z-2Rn`q%Swi=I&WiKL{EXDmDMPKu1UeY6hXlFYV{H;)4AwncG^Qmo3kz52?;W zRV5kIwQEze9aHm&c;Qb);x|1JG3k8ZZ!MsN@=bL+h!OwLEULrmN`5MNDKUg*OFRt> z5lOCvBFIpbw@iG3C8bgqtL@N??z$aV;Ef~4D+aNd6|v}#fphD$1oDW$OfuPi%{sbu zPh&7HTp=do5<*=LypyH}+X09->V&M5;Yn%G=mx9H-|DyHypqT~LB9UC01pZ*$41s@ z$gklzh&cWS33my5O)PK1=wAyjh%b^l89iFVf)s|afG0YJj5D@nhj_eE-MG7&@8^1X zkJB#r()VmJEX@4Lk6J&?hwqCu=TjTg?#q8x-`?Kyzm|i7X2^8Mv$I(!#U@7{B%U{| zy(vfNLc*LMp=**-5~B-{J;Cg1Uj$<{Za7(CxHUIP=qGeW%ntd%(6vqPi?HUs4W<%J z*hJWGgldq8Xq~w0bI@{zqO{F$YI%T-K{G*K@nE#0Km5i_|3O-7ywxtXPgu^F2it=; zkxz`eVgZZ*55&BjwgKsa!hO=Ewo z55z$!_(BC}x?y(^OqPc--8%Py^@Jzsc*=qAu-GZCu>A1ck|e@9Y1D;Stsi%Fl0Z3Fj@h;bgK z6cE!-ru79|}Buz5f{zsN$G*K31^1`p3N z%i5|w^tc!=-0vyCN7vk<>Sm0aRR3tO0cZCh?ab#^J(S_I&bMwGpC@{Gt3eucphus_ z6X#a|PEvH4H26c(>>!vJ>%ey%wcH>#l{drFO3)XKH3PG{heGj#sV%S;4Yq#wAr5~E z4rX%AGP*-#%FF6WYjCi`+3O}F(jd>&d8zNxJ7ZCvRhTq=)rcN1;2!~(#qXX=UjMeD zP8Ljpb^V2ISJ?mj18WZt#MAf*nw))Q5fb2W2APjmj^^!#8>j?bgy^6}b9~^)l1G5h zR1&`Eg|8axMs%7sf+ZQlmPKqv4b!;6&HaJmG51Lr5L{PTiXK32IFKZX9my73%T06q zFU(E2(<4b-CSn!Xs!FctPvwO0f#J0D(Ck9Igp!zbl^hvV$w@P9V?+~irDJo&)Frd;ilSj>!-i)x8Yn~vt;p{q*_h| zCkP57la<80JqJXLT29$XNFSDp;aMHu?L<`g^@t}`T{pagEs8E$^+nb$v_W`B>WKoy zg>7hN+)oUPmd&$_qZtyQuTDwl*Qe}~-p+wTh%ZZW)cV7k~+0#v>= z6CNCXEFk75Tj5hJL4hIy5QS1zwNJ$~yW^-wi=^Gw{v43;6})sICyHS(Q(zu5SfTc0 zSCel2yAtkuxXfVv|SG7)5n0{>&tqLC8J#X zS6j^hdqI575jF-7p=oLQ3fn*6rBS}1rI~{r%x-+Hcd5qb>W=F&1Ky^=ckzga=T-cQ z0!oKR=eAp0*Mx)kIZXZC#^aqRr}!);2mcXJBNZADq`>SQY2Y1nx!rSJDT0I7f2>UL zuFA^B6eidfh&#mN+tlzg_7a_BqR@mWRA}^K5bGms53E^X(9Snc{)AZVORq5|!P;#G z@OjxdNzf|h;Tx;iFJfSf;@+Vn`lRe085RIJNQUIpd2uYcBAfKT2;Lc z2A65}_I`#@?e;zCfx)V>gYzg(?ij5XCwixm0+X*zIQ|vnfuPT_?X$6eGzgZ;)Sf-3 zgyFIjF|ag+!~JFb7*~uc<5MddtoA?vvTJ%}9A0n#BQy2n)FU)878@ z#)qWw1s6#9qmQ}vpk%`b>~{JXda3txjF?H&#V8X6sZnSU2adW4WwoV5XG$+V zN?h29k@@+c1=A~FR=J?2JSmVC9infVi7SKpAsMjmRI!b4Q+a6&<44we z?gD&LVpb-HmMN-s1Y96u*;0EoJ{5~jl6m3G7ch*Ctigtgp?W=Jh5w8O&;z-Uwdcd7 zw;WssnwL8eG5vjk7(iSIG3Nr7 zXxd=aeLTDc(t~p0fdNfINnpuV9Jl7LI5C2HV8fUM`{tQE;87h2epg~u9$N~rOO^C( zf((!#U9c~qe4Ms(#8`@((>(wju>zgb#9?J*kv za}iA*h}zWa74faB@a9LSeK6iI&#NTS$Hu?)@^^j3agQ_B2+?kEJ}QKIGd?MJjLT)X zlgI#@NZQbLodVG%O&rw->R1fNsBvl9YK8I*vt}R72z=|WNw6?3<B z*>u$J7au#I7h%czeA5H*35cTQ-mEZmj_#_Dq@T`Yw|dk)PrU=n$>;89cPKAK6V8+WCFty$Bz zl^c3X)j>8tI4Qn@_EL%(&_m^^l@ss)3ZjcoChMxtK0*jSAnMJ05X}(wqI4hzu2kb% z&k`m6yI_}oe2!CVM2vBF{7oEan!x8HZXh*^t5qx;%e5?}u01RE=VB|~VXo=M)gpL0 zTkP_7|4&S+mgZkqe0}@3U2@b5duvj~5P&d78X1()nUAwi%*1-Gj{#k>6Nj@Q=Y;)` zpS#H@5}mZufr55TYp5~;)l`(RFc!RJLEVt|%>IbUeH3zUaGHc`M%7hs z+OH$btBClO!>_L?KPqK8t}8Cw$)Zkf#}s4&L4@)WWs3@o>D_A~7VKjt#?^@JP=4}9 z9iZg;gUH*c0aDbf=o!2_`Nt8a0{yx-&yRxM(@3lMNg2mQt~lJ7YY)+{`s00m{N4f= zk7#sx#-w2jw}Qrx9zQm_(*6m1h6b=@DFSxa6hEqPwKZbQZ)&74dqbb;Ax^|o)Z3Y zwSzyy;ds6sou=~i5E5oTwJGnSoefP!@b$C&)e6 z@Frz2>l{ujqo9uuJ{v#uT>RZfL2ccC z#4K>Ly!Y&BPa{HD3|E!UF%JF9r-hx^XxUgiL1vKSAfYh#o8h^Y?=ydgPl}&#e~h#R z_P5}4V5K+p!2%71pJ~$hT!~86E3h|`R8IqwiIyQBrEodW%DkJ_$ucmGynXZR@#yHC zB$NEhBK`_1B%%u$MgN@G=4e-MwoXkM*-DZkL?K*>c)HOw@Y;;WypydFuOGY#q0ha4 ziRno2RDb7bw78w2llpUdW4G{p`ulTSlPc|t1un*Z>`h{e>!to?j&VWTwwAZZh}#T| zhxMojh|K#jQ*Jl3TsY@6`ec|r$}7NZT4*YzAjQvk^6uzs#SGT~d#MhZ-|1;oePO%& z?%dI&cpzHOG{y>KFINli__t1=*uNuBCgDX3=E&up@%3e|zQ7BzVFAnZtR5<1E`x-e$s0}AFJ#QQ_*)qaCWh zMkrw{N6pV`T#-({XL!}{yYoMK$JRpTc6A({7beT&c9-m0k)7j}`|sWD86qx&E-n)9 zhElGR4H07Wce(Y%dFOfOX_Asaxh!zS7SQ*Yqdj2qvn7G5V_4_{|mE$K^N1<>05g}J6sO~@fw$1Z(V=Dwl zquxqTKAk6oCew{Xv&Q7FU)+ba;glL4yDb_0Y0t;&zh_t&5Nc|;kyOqA^!GH8S*#ht zXvCZyTR}9ritA$YjfOPJDk>l#quHUi0cle)TOVZk?+;;9MXr0)39U{OZXoLWaJTD& z_0#rOsW-MY)8zo^&*?a+>*dbhw$?|Rni1 zt8aMi{dC;kcn-|Pj$F^m+uu)?co!IAK26U3LBY+h2JgLipEQ@nlmcuC2!U3+L&Z3* z42Xn%retqy<}7|nSig0;7KJd?b$8EaB0qx>&gZp@Ma$|^h*3(mbKPZxz5jqI)bmBt z2S!IZQ06B6NudM7o0aup{n6&N;bmuN#_p=WEme!{MOaYq{g|99$C>+4cXxDVCb~#> zFhbB;f^(MC_Z5M=yR=)|ue)3YlpgN2pY9AdG0f&$NDny60{$`(=r475gUtSmx?vq2 zoNJ;PQEhETb*p>0?p{yJQgTG!_e-dg@A_fQfVL+m(iOK`N2<56D7AjU&|^x) z0Ftlz{gPitOlei>ICL{EgrBYsZ{H?$ZlJ-$hP7ge105<6A7)zJYeYi>PdJGnIEy7Y z>_o7coQn%yk3}2GUD)OWhC^QS!&vRpQYp-qTjc7`;OFL$6Yuned!u5*lyaqiDXi-L z7qLA97~glK$+C?Gur*q?q{Gu#@qx4BuFCV9X>O$|eNhh%iw`TA5BMjRi@hAZO1V<{ z=PbfG+V^%YSHFXPJNB6X9fg-dox@Qk5WTh*m-T?%HwKvq=t%yUd%pcu@7LQM?^vsZ z(Mk9KpdaU~GJC9DDfjGhEKI5C%Ma96YudWg`N;pwAZ3R~dAfi>K=0`kM*wxO3T1hi z&`2wQ_6ml$wBLy0j{ss+(XG|eyO0v}5C7~uO+dKCYRSStkCCt$^wWXCBGnmjTG1mt z$EW6Corm9(mfqtYm`Gk*PaC%WJ8m_jZ1=Eba}D^UZst^g{tVe+)z2w;--aEO<68YB zD^ujBZ#P4qIDXCm|1DuPR-8RFJ)3LoK{+5=jUwO;0*_oc9qX1p^$MN-!x4An-zW8b z_eRicwTd5DyS~km?yEQkKa;gRe#~?~!gFY>r@Wxr5lx!)e1om!GXx@HFwnchi|wCw z10sLN1#T|Wv7b%8w!#A%H9w07R#Q$#yV#@J{3`_c$rZknI+)K;W?Kx4ciTQp6K=iX z(UbSq;@`dzrPf>dvfz99TFg}#4s5JWz&_nQE4Ww;@&nK;uV;|6 z;{gE7|Ne<^FlQD1Hj01Dr?9WhxjIJQH)CdDMs@dj0{lM@-1q*qqQKt}e-Y5*`*RpP zlE$@p&8^!#{usFS{9|gONseK-l;}GVi9i0M83~PfyQU z1h<~_@9%%d^DPLLlxpE`ju!mhWE~{J*JLH?Wm&(=2fBHqT z{$zQ)(pnhk*vKL!rX*okch=me=Ka!gB3=w&2Lft}BIA)T{UW7g+;Q>Ad#(-A!^ns|dGb zVsE|zx4oXHo$5NjDG=TyE&(a_tDO7vdO3{pSwdkP-q9CxCD(N+sH2hAL;4fnC9B+b zb^Tto#v2!x@#Qb+H2z2^9j(;zkGK8U{NS)ZizFF_2L}k8Us1jwBikJ9ecT$2LjbCd zxL3=At`A?NR8?`mfBzoMU@FgHJ%L(#I1L8Ug&dK8fBXnQBZyx?04}rgJD|$Gj~NiL zQ)Y{0rpA&ozWVodVWH&*%G=Z|nb})7T!BV4JKcf%sM45Mi|n=s12{`P7d+omom3Q2 zShevG0KA#CnIzY>y){(yt(+dv?_Tvr`158sd;-JQt|rGrIXC;A!H`5It!%4hJ^-px zC{Ny-wP1bc?kCyCHjA*ONjV~rBO1?dURDp6{-jcKT4J?hMXx02Kz2tCeJ1j(N_9BBe683Y}If!kP{ZjyrC{R0g3jc`rOc1Sio2}wLEoM@VM`!AFnjU+#D|l zW$-)anE&M;|Gg|Y?)aWTz3gHv!#Y5?>J?B{RzAB^i2?!tR%g%~FSi2W-()vbMgtVO z8ZXYP?Jw?^Q7{1C(hTX_Z(ItYS=Lv{O8+I>gc3EIyFF1V8XC&C$_a;*1OwRnSI)43 zvvJ=2>$LbLmht6yxtZW?6_E(Iz?--kb$Wa8(5tq5Lc7C$?DQQ)hPF3OwpP@Z>sL5v zlgY?~sXjGg1_r+7$ja8^k4ssqJIpu;xc;{i&0Sv%4Lq;Fd&2i5?oUps(hd}(%}}ym z58L<4ZQqPm;Y3~)E6znbii&70g&T|I`XP@%&3k+5>pLdk* z+1G!jIj!aX$XeT-S)~wULL*?-mgp-GeEQ}wT{-0W)+IReI2a(jX{>CY+T-wbghtEL z>NdN7*jE{iV1RUvQyqFIx}`r_JkZ>^o$roMP1)+ditfGKzK&&F!byb_2j=eH=9ryS zgEGbh&nbwwErNBV>mW>=XzsU1C|4sHmxNLg?!c=KPjFY`rw7lOv*FFLT%|bpd3y(b zWtFKaXJ;um(e7*^an{4Bl;o#7D(!YBv`uLR)VG5;~dC zaDu`od9l+K&#JTL04_atoFAGOst&((v0x>*6DjZEl)s31*cRAdI7AO_3TP4)Vq&KJ zV=PZMJ&~=V-lR;JTYrS#6Jp(oZ<;eai*zaoqgr|FEvkT`AZ z0Zwq0%oW>y^Jw8x!VBn66=bN;YbK>_@5cWH`#PE#jW!^g^z*o!|4+}g#axxav2cR} z9a4L_j=!fn`r1oduAGNdcJS>XTO{L~V(}bl!RGvX>`0)X&ET0Z@!OM3&Q|*i(_U0^ z>|Cd>JPh%B@PT#?%o{X^O7h9{$vOG6CcQJKfHm7a1WK*D43-J{iW=;kQmAVzVJmG zaA@IM##?-P!owlnUa`5faOrayvo$g^^p%d~^*2jtQe4HmGWgd|3ZJ|C^u{{ovb=*@ z?y;3BzViy4kJsEN5epq9VadFcev7Ec&jfKHTx`9j*ZT+C4C%L22R^Uqcc-u~+}n~4 z2a{ORQ6%C~E6X2`nJ$}gJv3__t@h*7<1MW@f=x+y+3zkxwnS&l)y};YgaZ_W?{VL% zjB_mt)fT&Usg$qt0}V^EId_tuUnM_5(W5^(RBgLvvD%K&$@yE~a4|M2PRGJh;ljeD_49X%3akcY?L#67J;ljQt4fbo!?^shA4#0d{U{c5G zQFfH2h;%2Rk#Xrw?r(da_ z204fJuy<-}*%K!Fer@2$is=enDi-zajF18-bbdTZ(|->B>_-1IZ6qd@Rb?tWmdcyH ze==G|-ejFOw%#(Vm5sk(j|?(?nej!f6L{wn`9&>&ru&fn9QIWq$8MVwivn-(yuj2c zwL{vQZAX)a`I@j3_WICEs?Z^pxl~Fy4N-)cbG&2uMoBOUj5et!`a!O6tXxft%8z!2 zTeff+(W`|3oh6_Q40%IB%tLbL$vIKpYt%oP?2%V?Ct7_J?uUFr(t)jZ(8X9K8z~dp zQ1|E5!`tNKHk(a|&*|38>QG{Hs20*;6sMOCv`kHiB9@kZ{no09LU=Nq-QoT0|FZx_Ofi7$>;pGl|GIdQ z0Pci1nJbf>;HVFK4UBaj=B<54OXY3Ki>s8n_?7plJaVEHd>V|7NA~(-*UJ`zv@W6y z=WDeQ?@4tv{-d_0F#mqJm-$*{%G2-jxON|-SgPy!)eF<4O*r(W&;1=ntylf2=}(3@ zruaN^S4Ktky=@QuLrSGVLXej3Mi7t^5Rhi*?(UG121#i_Lb|(a=#Y+~ zd*~WsfcN-+*TY)p%W&4Lnc4g7eP3~3+tS4Yi-rm|nwwQ^>R&5+O*SvHVT^`p5i?cT zC-~>@z|Svkk5?{fBapMO0E(aFeQr^S#6rDhbU%g)G?5-6S{p1oaJc&BVI}OJ*aV9z z=40@xux|Tit?v~}(?qhRmlphCuPIls#AQ1b|kvpU|VEB{Sa3rhQNwMz99%sk*8+d{d4J$|ryJH5GdQ zI&CzNM%dC(LebQTXj(b`t!u5s#~JZ-Wj+c5MQUv)v?|uMa81&1m98GWuJTJ}e%w~p zHH(C1h|Xl#ED;Rx4d)E)6F1e1IpW%#r-*wav4BsSzLK$?*pyI=sLnea6H1COd5vL{ z`8m-he^E4$N|6yxbfzm+BoTW^NXSv~*VY#|M+@PS(pa0_MKZs1j+qzQ{irGo&fCeF zrrRkvOx4A=2Y&`;>B3RV++aR<=(wlBGfC=o)@#_heD=L98sx|omY|Z^Hi~=(@j&KT zmVbE3>3UdW#i0DPj)!HCcZ^NG?x|0e&4ayOOPVQ3sKc9n1;XAmIa-w>f2E`4YxWVMqHDgDe} z4{I<+H8pA3YBj#1lP84iW60)7!wLneo~hX~I|C!)Vjy=e#7>9XOjrBUIQ@~t{R^GNDWsf&-( zS}Id}#{c~jUy#7AU!$xSKjIkNR2Q{CkHP-2i-;_{H&BZE`K``@;j+@#0}& zFZGC&!L?8*2BcWRGaRjp^JBLU{tWa&-#Q<>Ct%k`4VH!XJ7jc90}L8^?0#r-ltr%R zK^_T58}aUYZ@ggHn;>+Vb$gri)4+P%F?eLo}aT)LBjwjOp-qw?Ic!b0x&oi`8*U8`-3z zgfli8N|MiEVDUVSWun2vG;$OA*sdA8qFm1*GJZi&|yC zyLGhWY^5T2a6%(bDXcgwPh!65zPU@^XNzn87;19_4J+y_9niOE{SjiiWhHIxM>rbJB>8vd2&_$BO zaPd%4VYtx~WNkf|eN|F&{Eg*O%iE>7gGk`zw?4jnwqh;AyHirivE8keV_ivmYe5w- zt#+7)2#5cFY}uXPlVD7ip1L+Uc;o?nX%Tqq8=T7M1DsD&Qv#mr96IyI|4Bd=hGwNyR1((FB#!G5|TEFqDcDv+jJGJIj!_Q!4*$@3WrHcb3=>+^Etn&xx#BDdH;!`O1Q>3JnU zp>l@dys`S}blH|+AS)rtwcYTEx&)lC@A&TiorG%LB-jHH0p@Gw*F;_ZEmZtlCLL$$ zVau0xoP~6IB_Tg5fmsM@Yr&JN-FeDfu3#vV!X}g(6%)0SFHLCk`Ie4kv}h?f<7t9_21R*sdhMP11k(l#+(D@CyJ$jchtQ5*$Ktkr?_Q{ zt*A=6{2#k}I!58YieyZdiYm7jnc_BXr|=oU)jS}>)6Z+fS8NPmnI9WjH>52tJL3^! zOI_1g$I zt2uAip+9E?ckrX)Rv7%*1P+IbazNVZr`ZKZW)Rz9r%O|<(Jj4yS-^Ya=d>C<3=+@bS@yJg#>YY0u0S5!mFFO# zRuFv}{%HB+^Mv+d5AsiO>gtdpxvn}Dz6p&a_z19AAdr)`$@!6P+{V+1$z-0jERVG+ zUeV{w55w04zCtEqWSZ9DjbLx8y>WxC0XNhe4E?ydR1 zxD^*j;<2kpI=GFM@eM?EZh`Gz21o0V3gckuz+MNp=$6F6i1{+YaP#+iXDA)d_Y5N-@y%$@PsPSo?|qGF!~nn-qT8<}qRFNHV5QvuG?=iC5pXZ-{Mxy1%lX2r6OR;p zS?df70Sj%`47>$+0wyM=LZ^X&e&qBp8_mk}0kq9ZL(`-wGWRvJA-O@)JA=yU}}Y; z;^RqthqtB}NE}9G+%NNjTVLdCq_TCH{D(bgP_v^b((R=mRg73GpgUZ%$16CU-|2jUT$E9TB0#Jv!32NA z90_0ARn_|LFyn5dfM5&Z$hS}dg(I~=G0*hQ95+wim^wrAPt)S)AOFg+IYqV0YbvHT zkBytyoXF$=r!EU?KU zUv{zob+J}-d>ioJch>%!g#W(%C>cCzlNfqEfv*L{dLbEN8_8$SHyQKJ`P8LLg!ipr z&)X74)UW)NN0?vfLV{$bl=CPoOd2%Fd6os#SzkJkzWho|`e=Jrgh~`m7-OO9e)Oy2 z7n(BWT#eGm%5kS*DSB0{SP8-K zPZtC$$VisAM?5z6Z$acn_Y}(c`hL*&$Vg+x8pf-TZ|+MCR^Q44*n2{pQ1rPJs4%$I zX0?0|FC|f}qS!37ZB=qgvZEWgcH|8={w}5o!GIu#7}_}Ps`a;j(WmD5@%0?>5mHVA zm&dgtFGV%$3@1O%bp5oj&Y<^d_(3Oa*3YWqip8u#g|AGXX)(=8lL&`=j2hR4CL2nj z0Bk(+?zkr@=xkV*YGXnpAj9)wXDnuM+5iL^O@CnR&}r&>2j&Pc7|lHN$=uuF7yBsb z%l95(%nYLb67r;Zzl0??XN93D`DNP$4`h5(R_=A#r`Zu0=7LZtiJ zVeO&ym)QgTLYqJNs=rg%n0e^(@aD!I1Oytu@x%t`G$-Bb7flYn0c#}a7;8L07}@8# zqe)Z^>#s5$$Pu?5@DGR@M<#dMrLn77XuqVnoS|I}ja?Ou11c6m+{h*Hwot6JY++aY zhi#y2(ZPnpQ{w7Ek%Il#-}}E~m-!mEV*-9}y+h1^F6BVu)kVVz%fa;8dn_=-JNWm^ zkv;?HT%O_#XRG3H21w3z!}zs40Za5S;fUdUHcA61*K4cAa=GLcXx&?$xr3|C7X_5g zQxelqPKFFRA%7&WRxjNy^ieNygB*Jv{KULHy=C$}n?h!LwsG(enSX|Jn2#F-CMC@n zV${0#f^&5nisRsgqQR1Am#-d_Gev?`^RovWI?K6WuJz`9XKF*S)TW%S47(#SkQ{O> zkXD-|DO)z4*z)5TqTdqQ!3l^6(MseEBSMffr8g=gN$e4YU$A2%Mup0*w#0DKjZRhm| zBNGm+B>SYh~(@Kp71uJrQaaA|-(Wn)h3q;^)A% zcu4wy@=26ccLu@_ZpQ+Bl9TI)vN*cFD?~HP%10VPqTyfC!0FsrEO&1%e}0BEx&J-#AXW%bDC zD+m+L6muf7JF$wje-z#fiU_W{Xsp+2G|vA2*%c}uL`~;f}klVA_8LWmkO~js~WaTR^+U4FglAv#8_VGf8 zcAz*LA5p!{N-UubAL_PnofR_Z_9lD{2?+D*p5AYeH=C-okma#c$10E~=#QKwuR04a zNaH>g&S0OKQr%yyr?_A7AwHb_6RTDy$Dw0H98c^ff*esPJn z@i}1jt%I?>FMj|t52%w>H@LCLPyUU~vsl(-`DNBZn;CJo_eqw75AXV!vbJ*WZB?G%A*g`htj{xOAVFaN%qL|>2H{eQM4rH7`%gqMd@s@0_rPBbcf-NP z8y=^>95;|}*A(!pJ ztx@pW_vXjpVSq&7qpkbPaC;tWJuEtTqW)NlhqG><%QGl{=aO%9WTYhIGwW2jtnf^+ zm$0#MjUjYtOzW&)`POOb^b=mRa<2=!cu0+zf?+qYIE}I~+sa}ErhF=E(EaQQ=6xIlO*Zj6_?vK=;U7ev5CTc%Dz9Oh4m~sT=8FSUWlAX6WK;Mp6((1K5J$SZ z7kPPkQzzL(O?#^i#b053eSN0gVVw=@%j`s3si6u#A+gfw$9O^-WnU--UG_kr=zY#t z7RosoAjJ8ld=j(fn|d;J*%)t)0%XuE%Q9mTvW@kJzyf8CT*9H-0ucC{R(CWv#kg6Y z6c@j!OVp=iT2*_u?2H7xb~F&kX3h?X!D9w~o?N4L;j=M#ClaUxYJh}xL6`2S%U4eR zA4op+eb{EdZ@~mOwW8rbzx9fH`ZV@9{g+9rIU~5?UAE`Rv4qd~8%!;M0A{k8a(l}t zNU>2nXVs}FFjM%+<~mUXU)P|34rkgZl9_MCXkL?(qOCc^zVRBbPH&v)1)i=<8 ztIJboH%$We6++WS&>4U%RVszZW=dm$;I)m2qSfDru(_Sj@91}tL02bm6%c~k6{Rb? z9b>BgfkXs;Bwz_5<1L8*2V6s6?Eh`XSq*sB?i(0D{avE|Cy-f#*>JnqzsX_W#&0jZ<)VZcs1slZq zG8vD}4oj-6l`5lZ38VEq9_2_2&M64=MtoOTEaL7WSK9_`#suUw0&0ABd_wzVm6hFS zw%FQpN)vT44&@@2lI|>IA}VDADD3~)PI}SQR3Mf7!8&f1-@a0$8_w3ak*xY~Ror&o z+0*e$5KTHhjiR+(^r`E$`|^UGNJWJCPd}8S&#IQGze0nKe`>>((5)Maf1fcu@&Q>H z#RM)cHG}hVs7zwJe(k550hh3#|BEhp%?g9wA7)~p3C05yiKs$1B+#1gGkLc6l;)xR zTA@>Jr(AFPzi_}2txl&5rPJ!IqRIL-&u!LOl36l$z#|d>0x6P-lO(gGT<1uVW&7Kj zf)HRo7otNxSm^8ICBxe$i-b&HG#pq4@jWMA`}g^^bR3X?%PwG0rue>Vhp}1DFZPzT))$#tchU(L~+0e_@W~XF1mVk>E6^T4MGIy)Db|1L;{EVb#nva z&b6NBcR{zkor)9BrmqIDaqNGPbFQnp+KUpvud_d8jyUYG%K%`wuWulCOkYXK4*<>* zYMoCL7Je8Ky?xK*K|(mE63&0kM1=08XIQ6kJ?2g#JizA~cw~H)!9@o3aWS&*U(#Pw zAmIOrdE2nhVv;+7D_vEo~~m&oCZAM3%fr?Sx}LOF7evSuJ-8(xZEJ? z+@pk45^aNbYKsIgHi0tvN=Adl7GHPPqk_5E0|OLt}%-QYzKNB`?}-anUe=(@j0t^gk2HR zTuXd@q<}wJdJ6SCShN!G+Eg^OX9r5*f%=v$APx*UpNy{r4`g^9*~w|!MH>`X{$9W4 z1?=l%FkR{HFV7*GAQRWCK_}C-bk_CDhOt(s$+JINu!JVZr`JS&^{Dzj9$oE^LK_(q z0WYqg$7`-0hkc}FS`9>iA#KX1>hz{3aSJ@)aTx#@CXNm+J-6--1Ojf5DWBIoT~Fs< zsbzcp<5;RGFuaU=UFVLpRS(>$*7sP_zCY2PNSB9sP>bqAzybD#*4HVS=EpV8?pB9!ATM;T6KK>}IMJ=HUO@^TL;!m5ij(5Yfavbo}8aXt#X!QKLDhF@5R)-=h4q8P_AdRZ`=#_V<^&f z#>~fGG-v>$CkK+4K2kr8g_SO;*;7Z1$)O#PZ?08XkYH-$*lVYTj<1<-fC3>{v^YZRuH>?77 zYqv<2H(tBPzO*!+by?qUF@bI=G1YVD*S5#DK66mZ=YJarXLg`cKY1QGsH{X66ot_vbe|#djvwS>M5~w=mkWXffJ@GsFSA6~QE?-tH z^p)FhiAB5YzyLgF>EhIvLp>fOWI-!WqGX>V`159x>bllWJB7$?QXRUM#GlRWKaMI& zk1sT7wcVXZ6(6s;oWs+V(tMw%n>?Rr3dem2h51egTAwe`B(}0if@%mAjBGo@&zI*y z(*&+CZEtN{(qz|hl^*wT$`B?vVi}js&A~x~(_-G_fWIoj>nmv-a_t8=PG9#Uh8>bb zJGvVuED=xj9heil*?|N1NSvAkH0b5^T=k$*`k58GGa#gg@u=?P)NOyMnFX+_yzgR_ zjT5=x7*1k}GFQsL{QqMO>S|nj4tpi#lV{bd6Qsyy;vo(~0M8@#p$p!L{n{H{k0UhD zdvH6_9=3!7D(E$dX`NXc-C15huV!qB=SOK-Qujg(CXb3YFY-6otN#@RO%d!H$xKwg z94ce?7xP7#zcR*D=idVX*!NAfy()Sa4;BS6&$hDH)`U~dYBp^*-j1i;nQ@)f+9zuh znyOljTb9{N=pOdCL5oU5|+C9ApZW=gzuzml~6j8u;-`R9&#I6)V8eA^T0YFQPBVt zI{>IiIPb*X0q9w|C?F`nV|n6E2*+kK+rYzUZ%%Zf)rRWzCEeycRf_Q_EuP`=a3@fQ zsg7oy3r40gN3I6@PzwpYa1lo!hhsOUa25NkjTcYn68YcXSP-y%CCT8k?OxS?;CPx+ zy|w8VB4E+L&KXS$-z1jBNW`*IDrg*N~L&~k+ z5S1mgf{q#b^%dX=;@Hx^oMyfzpOtQ0)vxj!!97~6$MCwOGd?{Dm}>E3QEzFd`Dd5w zZlyxM74|p{;VzoUwY{q;{_^PVd$$O5#NH7Dtf$f6d_3dpVO~bn8dM;+Ifh0$%5ZWL z37|>?1*!a_^@ZJkDL)$ko-W2Gz1>y{PmjIWNjHSJ&l-h+Ms@omeGn>>oP_tQcpAoU z-~WC{52a^}jHCws+W-4z%s%f!7yw`D{}$#_MQop`-oyV7K2cWmEJ%0bV0 zsNWM20Xci}Ii(e(L-T>3^s}=_ip7!&qhEHUg(oEu==n=?zoVlw(p}>7eSU;nLJN8C zq3-1Fr>imZ20l1Hf4+^jo^HUohtA=V^EbIhAk8nB@n{llWDg-)3katnCbfZFc!pFcw+ zGvYjLhz-c)`NYr4tsHK!>=;(bCak$KcZ%-X(Pqs)?fPC;@6Ka)v_DtazN;X04stCj zyb^K`uSM$Aml#1}+xM3}Y||PIU##zDwB~);x%jl)vRrJt z+<1)n?7vw}Tx~y=GWeGsT~DQ!*;{W76I5jb5&Kgig@H$V*(dj|DCxsP>{zvZeL%GZ z285=I`syxxZLF+l?%7im^TI6zcuboat1vUMH6{N73Jsj4G5WhJtZ{-lMr@d|xmLKaA z`LE#E1Atb1z8kQbc)@G$j#&a$Ayi@khq~N71YB7PmQYTvJP|_8pSfTWlb;o-dEM?zHbK*|FhpzED{a^aibZU3WG$ zIidJA-1^xr*Pv)KC>xzYQ5>Zp%T-o>rrduT#e4`^mw6#IR4H4}tGC2oz9a%3>*s-L zS_p^rg(EhF=zk9F7i?@+D=#loe531FmlKkIhSJ#(9|2#>+gjVz$?l+a47wBx(T2$ii zpZ^JH-9w4mS}hkCSDkmbJa%&g@bR>71J_dEySB4K7tif(h|^`cUzMnxFc%ls88i+H zkc+>XnwuLVepe3;t$~hDIBBa{?Z|=lgNO*YqQt;Cwyjnt5||zF8gI;#~ zfNWFt1bcuO(DfBF1Xmo$3&rY1>biO;+*lsPgg=5P!VIL?9F_m*;edLx}uXUt>S3S#9l7EL5|gN^<99e!JKi z3A+Tw>3lz$bLH3B6~gE=DT!-?7uEg;+}hdM`RulL>m0bI_QGs>4mwZ8LwdudE(ZvQ zAC8G8D@*w{JE?qeK%RbcTTKNH{E$VAUtMMr&jy}%{ox=GdnZEdYX!FGHkCig57^%V zUYR(`^?QP|NEWvKkxH@1a4OQhCAAOX4fcx>b>*!f(6j#&(oDG~w;ol0B;EQ31O0lC zEF{k($HsB9Pwr2}%8H0@W+$V==kE;9>7&*KT`yZT)+S51MLX0t+PKTVD;MJV_ z{?oIANlA7Gd4z*wL(}%TA7+$HI~)drSv3X2e_cFHoQ)a`>a%m*E=+c}l&X4YNIpJ&JVC z_OAjAd#*TdFDH!@so_{ha?@bYP_$PA*xmoe+b}{88g@SWWfZ?+)j%T>AQbV5y2Z$Da&WbF`@h5|}xJxAt zC{+b?23+l*N~n?}2_*as&C#roT2A>j@v!TE-R__|pSs2-4I{c+bE6WARMK^KbPN52 zWO%oj&mbD)ARd4gLp}=`$5~r1+Odhx$OuQjw%Phdra^Or3+8jcRQix4Qi+=4|G*df zMrqF$wJ$^sNn5+<{18U9S@G8IJPtyi2dh7>a-NmBI-J71hRq_IU}F)T6Y~>IZZkbg zjHPQ#mF$>#Uhl|qxDBfuE!I*E4HZoNmP2_*M~@6zeLmGp+gMODd_qv2Kf*_*{;08t zTnq}V_<4x?o^{V#{%u04IDC0uvk9vt+6t!{4K9`2qJ(H-tx5!kxt&c9$DLoNMmgP1 zWF)xm*UOvt-7f1lV1ku?n=lP!s)u)C20U2T>>V$$ zGy?+BE{V1Vf0;D3>}eEhHH$dAIG+!0Tl{v9r5fo{gNuhBJd?yNheJa;P<)K0mw41G zwb2Nf!yDXI>+RTg+wxY;?+2cs99usp8Dc#Q#EC`%ZZ(+jZJawItjOKh)#t3Xcejn< zd{3HeXm#FqLfDipKu;b_naFr7^7<1n7-HHNM4wGfH}%~4zI>rob7lH7G&nB)oF90y z&xt(I_9W1ubNA|R9HlILm%sI5h?UWg>U1;^8l1~v*W<~+Ey35Gi&XpU4zsf&-@zCt#S1bl> zRrt$)Y3z;$+{m3Yib@@iw1gULS0kC=(BMPflC4&>wN{B1ofzwd4%WY30R2H>zmLC| zSsHk8anaL|^4#{u&!L@kwj_LxvA|9VrOS~SMo{zF{La+Jy`8dhEITy0RP&z!+;X)n zG%lPo>>4<Vhk+se~E`NDW<>ARID232$%H$N9Y+zujs46edzqH)aEozfMA)9Ituk zi{9m{6~$Vviqw671UNIsY^^s#OhdPBX4}w}b{~HEl=pOXW-?RY&t$V~1F5mc&Ye2z zYeF8sOnP&ackexNT)w&P2bsope(Jb1(noAn?z_RXjvkKjl0M0Q+{0ycQrep_Zm*BoZk^Y!JwnrJH}39Fvfg z_8kS|sqcFNp5ZnWj|PHd9L!Q-^j22DK|B^zeK|)XOjo9s}W|PfA zw4?qVED5|f-lhT6dN`tC;YBDd*ZYAVr0gXNhIfFzo443aX2@U5qj_4Io15>15O`-( zv=FC9Ua7N@3l-Y=wpp|N$pS()yT2fo)XLsx(d!mvdZ0Ei2^;MSdJI>2{Kow6|2p+H zyDWH@Nqea|bDMC#gwXFf9jBde8%_IlaV2 z_nD_u%p|JOF0eMMvz->n^td_FUQ7CbRBts;rco01Ed^5zVzL*TB_^KwRE0gSH;+~z zpDKC2+0SX(_pSPfw4$z4eSH;r+IS zL{;W~x)gJCWV-^FD4t)f_tE^FqI7-UetQ^|c6rmvn5swlhw0D0j{?}#EUU+BPx>2` zh4$BSolqe+ST4}tDA4IE$kQ&u<9EK(#;*G3OTpQ7QBFW)Dj3JkIwds~Xz7r|N@#Rg z4m*LizGY&XraFl7Am7+6v!FC4?nx9Tf1kHL=MjGY0`Z>jT{g zyYos59d5)w)P7tRkp}+5ox7u3TU)AI-+mfe}r#=a5SeYh$C-a~JO@v8m#qQ6v6Xvxhg z2p_^-?R5P$$Sj@xCPMHj`SP|>vXfbzElzN)p|32~Kh8c<1$VVPq-&geFBIsUTUIKpi?0PQR4sTq1&()fB z=tdvzQ2rrvdwaGg5l>XvXOYNO48G-6_u0GBNTG$oa>J_cM&klbnwr`vNa;@GF7)|_B|@9_av)zs(Nhp7UpW{bP{Cp z5TB3`6a@?UETmtxO>Vo~g0pp!9T=+6*>9$lLCwH`A>4TS5jZYSrQX*KXq*CB=}w>Z z(JC8W#ws!Da-mkWKU@twi}K_1md?q>h6|v0sc|Xp@fA|vf5^$WU*8NPw&~Q*^Po>Bm<3VmTsXzgD!q|QJy=!E zbi4fWQy?~{1l09Ye#1>4t1D*jPs7PKp50xJDcU5X_&Fx+IL4TR%jDJ%J#+D^ARA1i8L{ssh0jC!(738mbRB!gb zB&MP=Sl5a-$lLZ3@VK${G*$F$V~_HT&(tIP`IDg;u^P~+ErPc^-C%O`J>t{n&obt_ zn6eeY8KM3Rbacp0PC(-`Hr)RFlvL_V#Jla?-M7NRx}zhAbeU+fpgZscq}oI_;iuPY z2v^*C#oONVA=#Y!t0Wdp+=GLsN4}*6$7>0IsL+?ZM0Rzg<9w!Y4hY)&F97?-bMuUQSYh?Hjs0Y z3neOlBf?j5NjYk;MD4F|-ZqeMDPluOUYc;N3CZ zTVDZU_N03i*n1E=IUCs+kd5VJFfgTwu`VX~ejOTvo`fDXNf3Y3K~F8)Xxx-pqCU75 z6PX$pf)Pl-25u{M3!5s4A>Y_b9y#lh;;u5Dbq31v%~G$Y0|8LQollXSs`1x3rYDz= zWm58fp+{#q43!9Shc?px5VQmtVYF{MObfzC`*+%zxRsDEuz#f=qUdRe*CuJ^-WccOlSO7A+~AN|`Z_w7lz<;o|;!qe$BD>Z5=(mJmbxeu*Z zP=1B@1b<}KW&H@K@Xh84(pJ3xk- iaj*wmZu7-Y%u`&YvPk``l`Oce=B1n5pk2@ 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 Vd~bo$%P#-`002ovPDHLkV1krH*+KvS literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_cS8UY7ii.png b/packages/superdeck/example/.superdeck/assets/thumbnail_cS8UY7ii.png new file mode 100644 index 0000000000000000000000000000000000000000..15903ad356aed9373f68d8642a5c6d1a206db5de GIT binary patch literal 43843 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

    Pcri3(A*m-}9(gm|NY zv>EKLI)2uFzV}wdd> zS#iLf7iU|B_mNQl1^|u*S#~csl_YnOF$R>Pk0ryI-uZtW*V#dfNY`Msx&DszxHddI zaJfX7QwvCTMcMl*5Ezb$B1nh=T>aLns%PQi;46`q2ZfeorV^-LRBbXI$cy`@>oL9e z(5SgJ0C4aZPZn(bXk-JgvX;CEWAM*GkTEQr_})#ReGlY6pWi;hUVOWF%J&$H#G&s{ zJOcd(6h}c<<4=^jJ@;FoATUD?Y?JoY_j|$aR&Y zh#DtgnUSE17EG1CY(I4#$RidJJyIY$90y$e@WD!ru^4phw@SHpyXsGSYu){hLd3;V z**=PyVWLL_kyzD7k3BCpZUVJoJiM5n5401J3QI?uW3RqVr-PgI2RBVf)H( zwO$Oc94EIDBJqK3f(F3*Zq+}~YpufFFg|*6Vq`tpt1&MZVkFBuEM6UeD40`Sg0NdR zm^>=&?M)6a{<~9qHWU;V>2?~>`V2eHN7%4eis@nPY>$$GX36CS#4Wb^;xk_+OjvM6+l1R5X$B z^6WA&DTy(+J@!0zFKaAWNCaJ{Y;=+G^a~R;wn7)2iX)-^*LEVEhS^SPAMzO?efiT| zR#QFU28h;FzPF$0p^Yt89*QD#ytY4oPeo#CqFVsn?(U%djoHZql;KbjM!5$uZ6=dVOODHdMsiE>XGc4gx$s`f!P+-U}G| zURl>!FX~G^og`;@Ja<%Xtgs5D^77hG;NThgAp1OA!MgK4c$14bk>{x7M9tT>ON)#9 z=d(RMewIp!F79(TeQJ&(7Is7gtPV_TTH~(jX^28?_N|3qx)7&+>KJr4-sM!Jay%m) zF4w1!vI>%8Mf!TsWj~JcPgNReOUC8o#F#5;8xLfhtp5p1AZ1h$zGEnEe@S-994q7z zy*os3*_)7Ovi&3m?C)m`7p0w-V4rS@WVoWiu1x+u^7+z<_uHNAoi{eXz8I&guwcgg z;w`!vOgncnfqnvGpT6cc_Px1s56Ms}=fW@T>|`h0BqpZHi%0L(>Rwo@u<@M}gew8p z7H8E3M8*d)Xtp}|WrQ;DM{}()u540YOXnr?yzewA8;hz0(D!@knnI5;^966iP)f_9 z!NvQe>N!`EwVbE@<+JGc9RhUGjrDYqYGotMl8ScZ3;`q~<}LPo=Z+`%Rx5d!&-a$J&2DXhpNxKad;Zj| zMa=QO|F3)4mpKzpLFc zdvN2<;p!+M&yOi~kSU#T1-cb%K|c|nPHV$wjasrg=n+=mdybIbxO-Ya@%_<>{&h+k zQjYzujUz#pu`#@1^{I1;_KM>+fW~(^XM2j?JF05^O}hn8>?}XDVu|wcVGpKM_T&dM z7u78Lv=m76pkdUuHcp&6o&=)J{xa+q^ZU~C>=P1~QsN!ITF;jwx$&;iitcL9nMgG2 zIr>t+9YtQAajwQw==>tdNzk>Ozww(16ZoJG}kJv384H1wEg1$N@!7I1qda_kIvI}J1s6>Cw=G1!l_RU$D& zbe-4BkXUh3<00bgvtWRVm4IkyuzK62-t713miin%%?}TM!r;H14ci4>VWkWZ8qi!_ z7*F)-*X4btwtCPzv$6x}0&!r6>1@i{GsglCGJhh3Ve< zNAWTV+t}f8f0@Hw62ycm{l4E_KB9azRQ>#ei7PkZ=Rd@I z9=C0#?{iNO`2C&(G_SkUF^R`+d@*)~$PwUJv)collf(IK*8-`$s=0j4rhl1sW# z@As1Us0p8&6ca=L5Y>tn7~uua-JkIObF=09^H)<=(@a3;e#QNk4+l~^77fA_f~-lG zD!UU`MXVvRqJxyicM*Y8Hi5u^J~XD=tm!{t_IzUvtW{q14Zf?;#`K*W6our=WTW5f zlus9dy?uLpMd~=ylphFA<9l2&sRxwli1j`GGC=V4t`q(`Tnq=m0RN`D&>@RnN>@5y^sHiT>oaRl_eTSTa0os*6Ezg|zzb&=DLqZN( zg)u77BfzU*z~+{AhdIFBLl1h&>0+hd?_nH&hi%q`eL)wyD4XeZFlYU(*ENkvETmaK z^|@agZDAr9OKfQGPZPb2{8o$GardjqCz7C~9Y;nwr{1oc{h;G*;5^<}{`67e5O^Q; zQ2FwuSQ)#p#L{>^o?zl@fehx`X0NOLT*=-B^`$y&QR&ynP?qhm!!D6Lly-Bp7@;6^ zwl(Xx@i$811NTA2R~gaKX)+ufreiM6LxzUa7C*jpBo6f+X1!OOghvB@(e8=hDr$xx zeDRPEzC7GxbN&q*Oz~fIa8Jn*LdoP`Q@$&YOF^l#+cOk{euQGGd&r(*{MMiUuQ;;Y zR9>SNdG19cmV);;>zut{{8MMrWC$_zIZjmA8GXRIyIUr>QY5PU`$wBzu2=H-AjbM+ zly2Z0vS-Hm%cvu->_XS=a#tS7XP&c&8W0*2A?-R};IP7K@V4O1KTb_?c#PO{e(ZGF z2j`zgjcS!=h~;hk9;X}$C#&Ko1%XBRig{9Da{rp*0ts0&7TqQ)QKVvXZcKt)QSMC1MUZ`HL%>->Qh zJZ4%=12*I4KD@j)Q{CjCmSrR4RACRSp3NzW4#(wP|AQJH)^C(!W1 zF-Z$hT|nX}1=u1nj04&?8UD>rPEGu73miGkvpW;$0zTTf3wkJvr|=LQ#;JVfj(J*6 z?7O6cv0XMS?zm;kUzlJP#L!?W0$~lJ<^$r$!ZSwh!YN^b$ksN-SaY3g&RpI4@&bd0 zWOex`WY<{FjnrR-;y0Ine^ET7n!fYbmCfiRbi9t_bjHEc3(N1;)5??Z>@f`~iI4wC z9iSD%SM(>J*14v1v@q)<`Diu|c5lqLVxdd+fWkrzeYahI(cSAWk+%Jb0Ez8qiJ(^~ zmlu?Y1pcE5NE&u7+KVE0-Dk~t1G8)9!S8ZXb30JAM9OW>xll4qEdo+2LJBP1lGxn| zij22O0kje**hjYE&VK?WPyZI)pwFUJ{aowVKnFP4Z<_QrELqJjh@^-*sycW-t`QAE zR*#q6nG_oBmazz%SkIMcOEo0$8_@vYZjNPrecS5_RvW$uarhlekQBx9adLu&)4!$k zXAkm^f-|iu@`lyIkiBw@Vg%Bdgh)QrQB+~B;4*0dg~b6e!r2h0g91P>ItCYvh_uN& zxY9L%fo$vwg%%`?bG0b2Lyg55=fsuI4oV&fw!t9E*rJ!HT$7^nrUDHVgrl_*{pLR{ zrA2$Zf4? zu*nJ)bhTCJWfvAAF;|>Q@!4k-oo3?G7N+1(SJCtQpBA9b(bhQKdE92JrNXbno8njh z_Jr8WxsS{4oJ{;$9Ervc8m*t%F>`aoVQzmf1xP)uOGf2ZY^TfeYGN^pi~cYy>hZoD zAWhs9qeh(_KP2E%QvS-bU8ccxP)?(xprwAQT%a2MsTt5xGRybM7<(JfslYxw!z}ci$%8z zqx+Z&1R#FsW2kdjA&ekmV@{;W*E&k~IL$*TJcKcXdw5Lo4-@w45|B4A@b69%Xc;6Y z7aqQ)R2%qy?NvY8v4RIZ<@^ZB6>Tsg+ z^c>5KOe==6^fdYitBGl&<*-OnAnqy?K`TY-gm6zZW7$>rIevr3mZoT ztH|bVVOC64f0f35&T6@9FDrR}_f8ZBJxOLs`sMYI| zAMd)5sopBAy;iT9BVS)`@SpEj#4;OT#vxy|<*~6p5ec&1H*kW%m_exmyr5txGEh^? z#>F^OrqG-Ym-k#g#6k*Tr%mVt@={P3q8#=aQF#WtJjRqz|j z(PGn~(yzA`%MwgcS|QpAcV-QIc%~nl7vuj3`u|bx4PgS|QtIS&|HKf?ahL=m>UJoj zdZ@2>ae8R1*V#C0pz8}trC~*EU$~ZF;ID%(@c-@TIe5Wur~FmfYW&yAbrXFKriu{W zWPH2H%Hgub{bf&g}ZhdP|b!dsB&l_cI3E2X!Y`iTtS|MrezkPvSf zM=cfpOEpiJ(!;Szv%z9oh2K-+37o0t7xpG@cexf_x54In+4MRN35oyI6gRo33x=(> z16*K!(0A9ZWzc5!M_9v=E_Flrwy}Tr#!}rO(rvU3 zd(AW%l0Lk+6x)SE7iI3J07k#%7ORB}!2Og4WmzvS8s9pH@T_IcG=$czM@h{Kv+B2UY#nvmt6F#)%XM*w)o zVUGY9GDegDh3qVtOC>W|MiuN7o!LTHk-nmJvLNmQaT6(liy#N{R)^()J|Zlou~P_>EJ@cj&SgP?TxF_pL=1`&;YW&gZ^hwGZbE z-b+s<>X!8j28C1jf8Wh;zK&Zui9IYJQ~33MfrCIKDNCCTJBxm@xKR}+(|Hx2R86Ma zWn}+bGbLuQa?thPPV=)6^EuLe2Z&z8ZCN4#C-dAF-;I_L=t}}={ zCjdY^CJP3I9=1ARj_HtsId+9d=3_M)vB+J5V+%GTpGm*1#ugfV zGkfEEcK;}Gl-oVJdfhMm9?Ve|vuc$#4{+?emWAZftLzYUXAwa9rSAzY;RW0$9M z#q5*d5|tQWv$(stjiA56#*Z~c_Lc||T5mObOci4Yj-c{U!z~v=oz{d4`ghOPqJQ22 z+GJ8AtNsj8GUZfFw}Rn~g5W9&r_xSPuU(SEO-UCF35e)bjJ=ce#T;U+N*OVt$^jVm zNsUns$;QWL=!-&j6z1^j6uMi^km3D)9KS2f(kN|21$BqWxFhcSYx}c9xez7lvy%%YY3LeFtb#{GVueZTLaYLGpj+&qGzNo z2BX?hz&HGZygZaQ?H5o&Z{m%wl722mpR{hj;Y*WJ=xLt@0-jfyG;wri@HHGCHXta# zHyJwGCnt6QgIWRIyU_0apD?Tnm3bi6ohBt^i_0y~;Y?AJcPeO=dziK$3cOU|dCi!`vfy)i+?oMgt_VAVZT4+tPZ2Wa>t$V)teRb}^n&=O|UZGTGH zqbi;X;^6yL5OvX?94i!02_Z(uLY#i@vJ^9c)Hh4iR7t=rb7w;@XG8S+$cdu$m%+TG zck~CGx(>{2j1Y%37(~!uafQeT@h$plpm5l*5-&V-!~7JH2M5+^4Bxf-X9a~91Qv#* z#Pm35C4VId!T>1dW#egH*zQRqVII-N$?>eYUW;(w8T5y?)I*9_ zB&N0)1?v#@o$bS-AuS%lrX4IBOIKB4!R?H;b^&g%?ABvvQQ3cy{e zh32lGwgZLZyQyPSE6kY*T_c7La6g>GHl(HKUUel?!sOm>827eBEk;H9u@-vWRU1I> zNThpNqYl<~I+Cetr0C8s(8oF+XcP^0#Fg@wT;|2;k z;3`RfOR%@nD(L1ni?;f$c2jm|ISzT?W)?wYmul52$cRh#CSY{gO)czWgd+V{CCcE~ zD8ZPmK%#Rvry%IYUpAX$)r5JV)CqgiifzdnX+7pT4r(p#M zH@_40deY_n+1#Mq z7_x9fuV=M(FTxy=F8V>b@pCh2&BSICB;_M+W#>~*ayDWm*W0pz6WwsZfFz_-*#Y>W zoc{3fpvMXk88Hd4Opc4zo9b?J9%%2DKaBV0 zIki7U%Iow^&?IqFI=Z-+Yk>Doa~rZoGAa0m$3J27xO^Dr;i6{X+?v_&=X@U)kOrp6 zB1ALV#)KwhP47psGQrvD;G2)K_uSd0uJ-=Yl`|3r+KRk%Dp%dx^(u=NPE=Kk@PZUI zMQ@AP;<%IaG4(xzVlPq*{q1!3w~p_1`abUq#)VM=X0XLy^QI)@eE zwOzPHU;1?23M)M@=nML;^~fC@Uf*dV+VmN>QQ`q%q%`@8DH7c>SB3EfA<7UgE=586 z`FFs8Rps2A4~o5eQ?+1pbV-v78LP2UHibk6|EW#x!?^~O6gI=;&4Cwg1*_0|Oq&9y zB;rhgtmuM}n2pm;Q*x~NhlrO2*HisqETNW=x;x)eZSgkl$Hqu zXr->(0^qcgGL|lIW6wTg6rkbl8Zy}%ahP-sD>~xOs@`T}$ljlie|oI_Py_^^X-?x7 zNvHG1^NiR>-uXCW(}}$J+Avoko8=l*-baTp7vZWM$=ipRiixwmArVKxZUEq<^$azd zN+8T#%$IQO04Wn8mzdnF{OpWP2?RD1P! z71z5jEs>0Noa3k0Tb0Gd`SK#<`0%6GS`785`2CVHapoH?BRJr=f9~bs986-4NO>m` zxJDZSDKkryS-!6)d+#~XQmWO)l>9T3K51oPTbX>$UCz`ftGWL4+;+5J1!m|dSpUFD zA>;*`6w3~)wDhAzM;x-`x#dEqBc%|;6kz3ELkG-VpU)Ms=P)q?fPjoaEI=aIf)I{< z|3ocR2m*e`P##xP1F;zm%_Pn`sG{{Vw&E3Q`QL;gB-8{VegwclSwGX50L1@nxu5^l zNed>U0OselaVZSKf9%2AyPFzUK5>7r3%XMjlk||{Pk4?B(>R+Csntxg!hID?Rw_NS zXQ!T4*&j4KwcsV0Fy(7~xe-M!1mwzhv3@#TveT?oOJZae>i~%TS_&0?`lew1`fdfb ze0zSNQbf=2>C;O$a-^?g=DP?;3W{X(A}MK<@;HDM*TUnI_u-pl7TOl-1t1iHa|nTB z^WI9jsi7kB|2bK7rnow2DKx#`T>W|*Q3ili|K=Pd#nT%w(epk! zks$da?KYF8US>!omiYjP72S7z;t>SN$=Lo!IsiV~7-K8y2moI#PsItc1Ly{FHGtsllPr<)lLA8zgM#I=>12!VV z=MyvTP=_c&%wuTfh@@(PiN?SAYOx0UcVBc1>z<}x38!hBvx&0?Klgmw-u6)2s(+@%RkM3QAyURb=4ZZB&EPFkPxU{qp zdAS|L7zo|SaToN8hDJ9w?)d7$Jy2uFl?5%v9ER%8)gGwlz-gW)WcIgf%A`)>u;6n{ zM3A>8q0onT@{dV_NaP~>lqH7EbP)OwDXSt8Ew3+WEc*)He#ofz#=^*bTodkr+?3|> z9^O+Ib8V&_0bVQFk{(V&=%fqmVi_Rn%bW!XScB43q!BKYjan{58rqMt-v5Y*sz|BmgL^iyrSF4tD-QgTD zbzH%nYjb8tLu(y*Uhf&awfU>x`uOi)K{Q_AVew=a=5=)-*PG+>h}51gpj|zu0)q|v zy+pK&plsY$C#c`iZv4epmfdquHv89^AmC96G8KotM;vThuoszfY;IVF^wZUPO+HUEm zl8@h0k3^Ei%?n!!x{;6Q$|6n(!pHI+alk5uv&m-ax1#3D+8vIa2nX|Yw5*SLW45!u zHlo5#)bz$2jM;kxgBTNvX@s~k;_Znz+-Dl)+QSdSm%xOk)5*b1kWud0EFj`)ajQI&uPER$dz3rd7S0hZw}`cL5-5Fr2AR#4&Y>mSI%5OazzH?K)X@97Ax9l2&8R>p;qa0Qi5pM?)frNHvBH9p>&^M&jCE*f*NKLUQzE! zS+iD`+aezt*D|7b?U6&DQL~gHt`bB@DXL^*9%Tz_YawwxC+uf&`)hno2B9pV2ifblL{BAhYnC5p?+}q=^|$U$EPpK7v*dcEKa;Ft8hJpkpK47B zkYj}v*v;3dd)g&^YCXGVUWhh$eIFtV*2xB9`;92&j6_2b!p;me80MexutE+7oLF3Ome5- z+?Q>`HVRO}WEH8e_UZUPD(AkfVD6^;l`Pq)^LfsK7MbUN9{> z+Z_k+Q-9x}RQr|H#qcrCm8i@VD>K74^gbd9rt?I5iTUutz>Dd%cV%h52>52?xf>^B zW#z|hr)fm3;_|!DSdLQo&mYY$n7B_V_K~z~O4q%SmdVD6nDKwt-=8sYIV#y@kSnrs z(|I3j3n!>bOfyUtp+spA_kO$u6Z`Sd#(Urvnakjiz8bj%b@Px;_&W6?a=L#feutsf zl0yUW)2VnZG7LkMiJfO-x;X%fv-9=rK0awCHV^=~{oE51j_E0yen&{@dnms5RTSGV z%d7r$X~EO#UtOL=ID^-hj;~M1?O6v)`%U8AUY~y31NUbtE5=AD*Z$0X#WvZVrLz8c zF1*1Gn5#F%zCICRnEsIQO!+3AXS_)=q}v}`)Dz|7dYN1iRqIW)g%41mcm3%dcz*}! zN?%N|!H~6NgZs#6Sja-F%B-N27N9&sPtb{h_(+Zs+V0u8H|fJy0;{`8ALUpxtGF5W ztyy{+{|Q`e5gGV#sm{D0k07o^&-BNd%5HX~_TsJ5f7$5Yh?DiGAMC(j#@qgrj!60( zA4IX2Ce%Gk&apBBXP131=Gv@mS)`TpOJMWO{(n#@08p{e0N-BfSidoP3HhSuM#Ia7 z?0$6^KF5^g%Hq5ePepRa@B6SLDiP!0 zSHqpTjO&)dzlFt=#GesEl=xItoBZ6Ij9Q2Q^4`>03@P$%I@xO3VBA_u?}%HQuO62_ z)ZTosOCtXFGKPbBvb=<%D$wv|+TYT!|4(0MjPY^}d!Z~6Fjr%CaqP#z7t(tpK6{DT z7D0^+*V|P!Vd3@nLk5pU54hsu@C}tGs=#M3CCOFOVYS?sgWrTV@&+YXkhy=Lf|dFS zj5#7>_G2Sge=K=BD_j@^AT59cdkF;AqkVuvdkbPf^vX@Lmx?LPgPF>?X7V@Bz@I#} zhgWvMX0}kTs4iHR=(4?w8;DK>-1j-bL{aZ!JCrL(y}uBv+RXVV;O46^Qn}*Rm_A$U z^LmSi<0=2)q7RgIJdlTZ#?<&`EnEamPX65I8&ri47pDY9!SX7?Tx1d{fA-1o;XqyjIm|-_+DC*ig)yc9+$+U z(mHvIK@w!tApqph$-@uG=)eJa=Q4h`p)Azc?k$kFx09~96#U{0`Ew5`;8m&VrP^%Z z-fNyI5W>j*AweNth0*;a<9vXdAMu9imO}5wilULl=(M-;1ybu6nDgr7lX$nl2kXIu z9v4MFCeHdd28P{*3r3<2e7pa;cI2r|e&6+w)vL2#0cqD(u5F&t{WPk@?TyI{0c z@M5znaGUv*=qCuj$F0z!@hpL7d|~mat)G1XuZE7scY1Shfo#YEzQ}UGxx#cFAyW+V znR8C2e6%7q=@~Rh@mAAsZAc~B1d)1r6e|_&#t}yxZ$MpKC8Lm|OA@q{hlik@9C$=R zc9Oz@rggy2A(ppErCSLvDh-35jAHFHcE?>B7C<6CbXjzw$(nJRrCfR9jbo2jee@x1 zSnyUdOQT8NA!;z6y`tv#^zO5z>_1YtvRFG-4WR3xjTZgm-`<{S3?M#xz*_}C1|I^2 zAYf+{VSF5Fww5u41pHJDBIW?}jiS)dB%b#Qll$MT1c_t5TsoF!@$r`00uqZ3Gveg> z&`OI?%LLUX^0VIHxV)D2L0;n9-|@Q**ekVo+m4g^M>np!+CVeE7GUGue}DWu8vtWt zcgKDXEWGayi6$&Q`G|f{8nGI>VP=za7DG9$9(g=j`Gr+4!eKQD?{wT5ioYNLw8aUE zt1lt}<{;@H9{DUVd2An>>lHC;Q>(6o--xkx zp-irHRb&a~I@w{+C?-M!Wv<@ewP~M@)bY^?rVIv8Gta2oCGUMCf$KWhqkWDKnCJMlBNF15}U!0!S!OIfbs^7b8{@NkHiek5bWRcZUXy6GOoKLMNHCNct= z!)#K@x5u5BG}2zx{YkqP<9%DP41KOO_#J;;JnxNcFOn2f&W1MF*EZOflLn}WU8yLE zU2}?ioP;lKBlw+mo4VL^IX~c|U4O)>kuznc-P4E-`tZ(xPpER(}*)OX?kNkIC^*e#@0q@KD)4dEyxvG3_hoe_l>Yg@)B)X{y^f=ne ztT>Fp$G_j$B-vOS)`IibXx7N6g3}E}{*R__j*jd5qn$X7ZKtu*uwi30wr$&JY@@N+ z7!zxP#&#OpHr{-H@4Y{=W@W8==gyru_ndw9XYc)~&abw(J{5$N{DY}B*d%!+#?#-g zSg#C|Ql*Fk_N#)oib1!B%=x`)fK;?f`I~`Axw7(2>P)|bSJ(gvtxTwX@$DXL+8W z00f+CB-QB)h+psQ*yINb$u8jx;Q-=<wxU_ zK6Y1Cl+TPe-V^7139QK<>QsEqT z%o0RnPVj@2&uOh<1>{9rPrR$|-IkN>%Q4HZZ{bU92<+#X7PBy`wrmCRU~9r7f?_*| zyJNz1AzeQx2OyR$`$IA|r}(CV8WZ%btZNP)iV)yyTLZ9+nTb%8oU{cLvq z?}AxrL2HEfB0qv;c~8#(ba1^WNGUM7O*rX|`TN`HA|*{^Ppl;xW$I~o^-e0}A&rpE&}LiqaIlM@ z0B*b;0zlA{(gl=oSU%4TNP=#2T9K-oUAx(#rm$?P$|nxy@8hk8GQkRtM!s%Xrg#9B zEEc~rUu%tB1By1{vKb^uSb0oK8Ch5{fRlM@buG|Or5@cDtG;a~|EJ4l=j~Ym5>zx` zKmYvpvbuJuj*EbXYu@pp=h1!?>lgd7;%V~I828z=wrIL!lBhFD)0QylFK*$P0`7wb z=m`(x9z!|ms>}Q1XM(M0otDv(wSu77-a>f3ruZkZ*tS)w$hE7*lvr@Y)2Y`(4ls=A#A4OO=c2#ZW>ov}RYDLIy zxWdkIA|_8(T7eX*sD*wH7|B?!cCs1o8Y|Mbf1NBYp?o$)c(~*h)5~7!RD&ck0_REG zbz8POr;b`KEM`so?Mw;_TtN*7z73Sp!Raj3W_9!62s42C@DTai3O;; z<1atZroR@jSufT^wmxaB1L4-Sd=P#&aK0On?_rCQy3% z>g>$}b;EO80Q?$nY=Lv1)DZ?Qs~txwz!BVJNcgdviTE>dHLc6*>F@!yXlC5;Jx#s zkQZuB`#O0l6_;&f${tqEM4ahnu~6}8aDP#LzMgx`&myrwbhVal6iVeg*Mv&HXw{gI zEv_hnsQTm^lR0M>XKW}|8^xF@7#f~ZfTgtmIROOf&#H$BtjW(38fr?u(@NL%&y5Z` zI!`;nLbun0jMw)=u|re<(<-&`e(mPYOqnFZc*+=opf~*DXCslo>!!5p2LN0_v6K7# zK#%k1cWhKDJzhW#lNot$@>Cq?HLph$e86<6AH&<-5^8JFsa>c$gHnyI7NgcZa;g6f z*Z(s%Bp5wz0VjkCT!4J8EN4P3Z>5eO1+bO(5(<%dmepo0PA&y_Wi8RVIC&N)1yURX z9JCHl#X)82!aY7<(%!4hOB3iz*=^9IPTx`GVUbd+sP0ig2;c$b%szryLX$NiJ}1vl zrM<&_hNE1cb0N#+*6yM4i>{8Xa|Lh=O2s@(8+{9(A_#-;jlX%Ob(AE z2?abOW^sK4b*}SAGBe#H`L8{N->r1m2-Pd}Q-Tc%U{HRwbooifODFzg*OBMyIa@)o z#+MiQQ}UaT@S%N9@$T7~Eu-EO@rM7d0HaP55!fG*d?J(192>ehA$k72IikfAO^rQD z+rpIzkaxMOcc6Kv$ggcg=}Fr?DIRRRt1|(MQn2I+uBN322bcj{Of@Gz;uVi_Jw=!Or<%^_$PStOO67! z@v^7J1L}c zxl)A|-7Sc_)a1V5zTxm3#?;JwH`Zcvu&+z_I`{2uHc{&Vs~Hw@0aIP zsRrGiFahrmEC69Fao@)Y>xvq;@PmjdoT^#r#nz|O{eg5qn=bSC^BJMIm8%sHc&>u%k1O#d+Q>*aIV>Fi#hWxS8Ia%Y{n0Fx`u|%$+rtZfk;=t)eD0I#i0aB zGx8Y@%!(C(vICzd;UIQP`nQ7?YZwsL=XBQT& zi;U0cyEKCI3y*}}+}%%(%%YSD*(p(kODx(;+7!Z^@xB+s~o5e>Lv$s*iF*8~^v=>9(jO)vEGL37QrK1~0dB z!m>!)QN6^(iKlI6*=19^7@)0z6Csws=F#wK>uB3#{=3&{YmFDNh&m?_g%pXk5Jcc( zy9`gg{AfuiNS44I4#=S|tD(>;>N0Uu(t`mUZS+JN*Z*6+^iOhvmlFIPrT2Lue%oSy z$Ypyc@YKKxKttp#FDWfE`y1DJu}FD48#;#IJypneZ{lrg}-MmU5?KcbtTXX(Z zAO`#=1hmc}v6NR{gEJ3cdh2WfwHSfm&$jaak_mHjy$=H-86aSOVgrzpx}FaAW>l7Y zP7@@?Z(wYS8?2jmW}3t)#k*cau%N@K?`z+wZ4?XacpKW>fJ98q?NW*}`-l6_-I}p? zo@6E$>*TEpBVY%l-)xo(Wq7+d*qEeD6n>(RXRSd?KorHbQr8!o#R2D^9DL1AMl7{4 z_*1V)U9HJBk5+A|#sE{Y0eBL1%vsL&aL#{(Evq6)?1e$Z7kKw=RLQ<%6x)n_ug&wv zs&Kh)=uOlxiVE1#^Zkx1bsInSW){%9^6fb4#;dVsaAa3HRMM30rc=&Yxgn0)Zw!(R zxfj)^(*Y#mXk^MhA)y4gcI!O>zIX{UyKQFppkCOI2KG_DZU--w6_E+${V0)tKc#$> zKzXp;3?ESc2?6MWd+1Fk_4}Eod!%!5wjizqw7ZojW^yhYz@)a+vO@gwc*z_1_6B(@ z9g?%=ZnWJw$WGtJjEt`Rr=Vbw zwDmRP{~Us@IC}y+9y(llewF6u3xh0>D${Y;pmn=l@q6sazn#EMfnLYHRBF$Sn$=)1RB z;#JS^k+o96CMhm6+bW^aPj`okVMLFlB0SjXaM0LZ-rfZSMzLYD+Rme;(4FeJea@lw zfU#XkX46wWCCzlDA0j{)n4437lRo%&augPDw%!6qDo1_UTh@~2!PNW0NmysQ?Tm!) zj|$i-sHdDM^|Jvl^CB$|g|J{na7GF-nmGFI5Py*Ga|*%?DGZmBoqAS|KG10QKr9$` zyVaRWL1m*j5(2o78MTu$yu2mqK?>+9F*2HDMe^;<`uMy(3~(ghEew+-{{c{E(r1AI zY@=@af^^lye2l|)KXe*oHVD({S?pL-Zm>1VK_gWcTEepEOqnA{rZ zV3{>p0nTGOFQ>+F-NNkw%}{vj4j{_hIXtqTPuOkn+~rZ%T`ZdVpNfTEXLT{E9QFCzlEXIJTI( zUe2JYxBS4MkInrl2->@x{on=X-vx)1{!A@;&&Y73uSVWQvyZg57$x*1;XR#hLnh#~ zAxmZXu!gD8>#B(m6N97yxSqSgSufRY=Q=q>W^ntFBOvG=@#Yg&F1lXsr28KbEi&rW zZl#YgXcREQ#vie)+|HdCB>J+8H_DKNssM62Hsipv1)4@R0tF>yLYgWzF-Xx+@C+v5)fuHf%3Cz@!sXnvRro2}`z z*ax8io6}XN-p*wA4iBrmm2Glv{#3AFxE;$i9{)Qp}b=6Jf7OCld2UO3-63 zaB%3Eu2>VaFcpq_-5jyaP%BMTZyNYEv3v6YwhEV^ULTD?LleOmRDt8;{Hj$raWP0J zu!QSm7f^@ho3M`4CMB8xKQ+uSXU>BLUa!2NX@mU z0NZ8oj~JGn&3|HFY@U!=sfT8XgO2V_4RKcnh+%=FgoFHwTSl3M^F@)#l+Ub+D6?L8 zK>MHf)}l%M4~apo4blRf>X1wUaAYLDIxIl_2N%eD4pgAOSEhS3?DHTs26a!{Tml&y zVR4;@j_2*3Ez9|A70$p5w1Xjk0GM!&@6+K+d zUR~oQo95^f#A3R9qO|XWP;2!J%8Ek^>z^A1d zO_SyOco?p6ZB^C&vWrEYL<+=Jk1J~(TEn5cv&+rcj7T7Lu*T8c;CJMKIWDR|^dM`O zNU>Vk&q@oU%>HnRsv!w2A5Cm`=I2Ur&?cCS5I*;^2T2&RnjxT(qNA0f?ZuI<38E&@gZ# zHRwJ&kd|^J#qI8g3HUr06m+8SJZD5;Fw(Y zO4Z4S;I}X6W*~HI!k~e&Q;Nbrm^uc$A!#h!!uslham;e!pc&4D^wjwBWhwCOJAK=? z01vH*Xebgttk!*;tt+E^KOZsyVjh1Yyl=1>d`suOJ)a~z&d^75a8K8g`QnIMiIRac zMgQVHE6M`TYqv;-(1n>aj@2#hN9w_dzqJ(LCc&D6|!IvKy(SI?}|BJc&+d(=Q zH{tUK%?=c1;P|eKQuz-%xO3b$B-N4ZPy_|AHQUEn{O(S2tw&FO4!pH|QbcaO5erF0 zLsR3$IP}o}F&d9A^*qx-WA(C$yB&ids#y$W+#Qj0O@*dEMCT{e^UmIoT(fOG3O-FQ z;tyKTY_rVHXnj>g4L%H3oc4d;KF~jtY^1}9iAM9E2`Frn)d+GL$THnrwblj&USKYI znr%9AgaB`s0mAPu!kQUt&rrRSIlX_hE-Ij=_$I{AE$3jt)0k!t$|_;*HTTN zrO`|f74Hxj=TS6-y!zdNN9j7>0SUvvYTY(>@rNr4l`)0mz9pBg7xS@sQjRaNTey1a z2Z@0%L7WuaO~b9zu5nGui}kfKRP1;Ia^ZG_YyOsZ&`t*&6}@D>*dY9#**+9NW=I^8 zIbYSy18v$|hEgo08A#i#)X8R-=@Zgzg_%|3=i?DY>KK0|z~c(9S>G?vj|=Vb@8SI7 z@_ZHI{T0e%<4X$tehz!xkFW})!0+#QNhzf~@`8yw(LZg?28pTH#wLb-9Q81x4vnau zyjk=M0(wLBG_GDV^rG5{lmCGdRjMXMTq9>UUDlX844l74EkCDa4c+1bn9ryBOWw7F zx4j`Wa%FG*ZUg?+CVbq^2q=S%__$P=Dfh<+-oVbR^Btg5W04BYRBC7orz;duu>| zz&*?gO?HbCY-2lUz+zj5;dcfbw`gXiTMevdS5KnW7rtt__>HjGoe+uGK;VXQ+Q=sE z)iCMBuJe9i64gJmZ|1FI;K9llfU0mjd(rdzw{R-GuxiTd^1kzDY#hpj2YLubh{Vh} z^18siesyJaNzY=+JAvlosoK3kDB|SOs&fx}x)|jsRh`-N{n63YG@AaG@uKj<=01RG zT+Ew{!42 zgt)Nt z3Mx+I7v85Htsgnu^+w>Orl(gCHjpdLdbI&P?fs+K_06!>>FIHb7-RoKHh^;cc=Dg` z+ksp*zc)g1sX+V<_88sX-u}UM$8#0yeX2qtII&WR0HpM$k2jP#E|i8&gwoWG;(PW^mg#+^yH2(KAhLS?1@X$ez9fp1kKYvhSv zLU@3Vk>>vLIo&~<`?4c$j%z9Mcys4LprwLTMeza3X`xc5;Ya`{u|H3v?IG2F0Y{%= zDSfHf_yE4bI;AEf3xEiz|B7`?bI=F~Q=(ASRoYk&EFumQ;KyTH;|3i;C=@CgLyc>` zLG)AprK!@cu6)|ddQ?15t$cD`UCQ(ZYiSNQJP}NWg~Xc6z$$e)-$SoEl6g$C(Nv}R z3d!-Rn^^ax1yY24=)WwiRV;Ok^v|o7Z_xn@BlQM_h z$y~kbBTaK$kYQD4WG?aja>Cof^}a7J58Tk+Q5H{wKs^&olE} zR+8Np$JFtE<-?Y1NSxMcMO^>sXfhgoONX8h_YaI-({gxncKk5F8DFAP{{QF%wj_+B zp?#mvT|;j->)mL~{kRC{HlDHgfOHz=k4JvE`aV7sBODZvg7HLu8NFz|Mid+V2YHZ$ zxuLe=U)N@!hOhgJ91J((pp>Ql!6gX>CMoF<)HW39ph5(Ukf>v(4n>L7}3eGHQ1LsI%xQ zlQ%w~tJ2>AKk9gzda?!Krkbq7rVf0gUSdTc0F=YX!*NVP+kZDd+2$LNvx|%IN(b9` zh*A_V;bKq9tRD*UUuZ=a$C8#I! zxu3eb_G?_eX=FvFqzj0C=@4FZ^ zFoi6!{1Yjj7#;1;93&j{X4_V3ck1ZbfO8>r!P3TBN5k(+mn6Z%YS8A%aQ|q>(>B|>s%{J3!&&}$?+pBxZ zse*(cev3GaQl+BfeE5a3tC=tNJWs#HQNRVPHo~p|C|IODF8-X^by`hy?%IFqayahC z-wA-_4sE#5>utp1b{G!&i0SLE>2$HD8V=-jx@3@$?}JwpRY2JTr&{tV%m9HgF>~k}tniXGR*Kg2jhd^>jja(f?ly01`t` z);bMa#HsD-p;W|RS3y;U;lx%VKkZ*p8k!8wy}$u~OuWCMmIg3n25v(k ztw*m>*YOuZIJKlgF_PxgULIguRDY3}bOtbfpC8gd=(z0y9Z0K#x#pRgS6sYfzbBAV zWr=?X6o{;rLKnLJ&h;HdT6&~XyxWgK#F?cg28|ID!39mT1xfHXr*vo*mf2XU8VA7H zWIdJ}^&z(%q#k-pM!Rv+yQqd>-5VJ63(&Z%bNFr*63HHt0Gjnbl^FbUre#Ls|H3iB zoY9-o%fk?DYs>FvEs*+iD4K%C>2&#wY>WhMHPM_BbtG%s_peNrkCxMcOqmfr!0A_Q zo)XD_H|WU4;SG@UT6ItwyY!ElA5#>xIL;MT&?$E$S1ni7@0=QKP~PZrQRqa0zYDK5 zF#1X(q?AJ5>Rh)cI5w2*L_>kF&!BA@1s^|fVrJ7gXhK*4ltVDRq^ojKle%tS`u?;y-nkfoL09-<2@TPa&QT2arPtZ{yU{f5eGRx9XnGmQk}fw~ zz7#gnf?cCqjj?$7OwxR^kkEkfr|W8-ree9(y9!UE+FZ?cwL_c#j0P@OKNs(P)Y13$ zo&T5Z;%u&f8%a8|F8bx6?<4QYLM;>3R4xyXPak6nG6ELpaOzo|gBp4x+z6CK6~m;= zw`W_OizI;ExiOMsYK+fn*ehJ~%L`t3!|*p&CL1OdGAb%3eo7Zi;zmZ2c!SyCyjB@?sT0ORMYu#5*=_QZ&I@Cf_UH`fRNiE0%U=*RlE7oH)3Le zrpX1E64)d$8%*M>!o^S7ei-Bog*<@+lJrKy!DNsztv%B}nP-&ls>F=H@Hi=$&P zFcz(5Ken6LiG`;pjc~%0jB+v?g*BWm_iy09ozj;O&KDX@K_>3wVU+TsA|y*l4Sg0@}@?++7MnM_w=bp=#zLTNP)Gyia|*RmjO=PrY%4 z`nh%T?$UY0p%Oy+zfUB*0qV;EFfqR^`#5F1UjvPga@LeXxhzISoYdcsO>j+hoyh=C zhrl8!Ut1+tg*-vE?5z*5NzhmD*yj3UF&3WUU+pW(?vh`)QkA}2lV=NlCjT57I7qP7 z?VStd>;oG-ng0S9E)=@a?i*kL9ABxuhWm$6ciEoLk25&EP_&!u;>?-Ak&^dlVjJDT zE@jMHhyUQNIPU4Z@6M^EA32zqI$~yLiNH(Wgf&n+nrmXZ(9H!}qcUQLDw>k{LD0C! z#K~}zJX_E!P1~Zy?U0p2{!YdHQ^h!?8s(zX^LctCyDVEz^!zXsD|;=R5d55L7*-xH z&GuPoG?54dpQ@9Eu0HC(1ftPgP9cbq6yGsgQ5{1=fHxzd>FH(zd-|#z7vkb7>E{r= zS)|=zsAbv;lz+5Z1Tip^Om7loO<$!{Er}RAJXsQsXqzyWg#tLeGs7dqCN4iT9$2(a z)n<5%5cXg7Zzk_+XDUrXWslv{F@^%;q-15eQLddJZ4Ur@zWis^A?zj6v$O0RW8e43 z^3wiJF+0x2JWiJeoAqyjS2n}91nzP#PcN^+&ji68zva}^mC-x{DS@1E#{IpC{ci@JWl_?Of^|i7mf7Qu>~tNOJHC7FU9)^L()04Pn#;h zS3lMwG{cFG>utOqn&y{h64`ZQSIJMS%4QzrjEI|xzpMzTYBeDS)~_gjez_s##?&kR zX4vazRC&CXbb~V%d|b;{t)-zpCLnQYADLjJW22uVCn@ul0zKJ^(a)KFHRqnC{JCL zt^N`6rJ0%bTH}B@Jyx#duTFvf-^FXsDE|YMopw?qc#eHjCC3Wv8lSk22WG^Kl`*&S}Eji|z~w)n<|& zHX4>d)<4Eo)!(|w{jT9=W_DUc?I)rc3gmOxW`tRhiu_nb+V2tM!8{E`wZqK2E~Bs0 zhIoLRJE9B^lqYv#8|6ZH^IbWGoNCsBe`4_AAT-ZE&#lToxT1zO|CQh z=dMhX!sjr-0U7PRKk_3QEzapsri=~~SMh@Y(Tet?6QW8*LaAhoBDIxZCeB@GsC{X~fp%THUb>_kJL|Yl3FZTMlBB3Zyf#vVV>}+Kjrs2btu+^tB ztx_dkXIB?G7*n>kzNU4(zzE##L{Wzd%w>p7F*_#BTPgYn zP<$gHvaVVfH6rT?T2*uY2!ToOov&EbQxN*#LHuT+{aQ6wO6OyUTo*J00EnuL&uOSC zQgdA=4XFkfmW4LbX_%G#RNec zYy$})28oweKgXP+sp&3gqo`;We$g%M&+gmzV@hKD8Bl~4ngM~?M;u)MlcDD4=;$zb zfrqbi@P?*EqAM?T{i#|juYTip%ARLrAq*1*8+gZQ1SBe{O_e73p#!uLmDrU<1*XP# z8USQ7=#lq3whut!CQIKm-tG5u0dCgXpLzte23`5t(ax87P)Key**)rxcONd=M#Mhv zHEaBYj^b!pYTTR%%F2PKOC{bkOvv!49;7T`Ridw2fRvC`0<%+VD7#UE9#(v0(J6h6 z+FxN(Ws4Bv+p^M4^YEfA2+vjb=L=?rY*Kim5g@dk3bWtIo{Grsr0} z7aUY^Nmk$>1tL1)*MJm}$KPGO)HwiPZNtROtA;!2sm+yQO002w78466J*PrA0cY~{ zULF4lPD1zSD)^_mK@q!WUWS`i=2^nCTwlh#zCMOW=Jfvb4qgMG@o>R;e+RcdA69dn3|ifT&avkv*@O(|5$0rM5Fs*YG|RegK^p*71FeP%QRG3!#6;{(&aObNRVcDOriWkIrz0(rg1FI5#dp|s%!X1qS=5<8Sz#bd>cdpG z&*ou-s{ovPpT%WBXjz5T{6Uj;^(d|OJSrd|B_+lt-Ch`grrXAU!c`s`m_OUxPQx)>-3i|~Ep&nk6BQwS*!EL5dtFjn#aK3|DX98`& z_or?{>DtV`oXJc?L|p3T%BP0w6g8c(v`6`X(D=myaH9ifJcqDT5aVa=Pcbuv<5Nsg zACwac{j#zWlgk!^dXx7lW6eX7sY0=e9XXbWvh)S%#H2T9u&JqU0dXlYF_*mH)$rxC zTnm`_RSq!SCh6l_e}(C}OuR{mPZFB^nImp4QTnyh?bV{rae^pA;LlyahdXo+=@a5H z*Ej9UjkfSj)Hk{hFxNzTV1>w%gVa}-E1pvo%B#iVJj_|u4 z&C4Un%Ex}s;h~&1h{PO2t zJ!XFiSQSqo{wYzK1>NVpRtj-rHycUeZ3P3l9bY&UL)XjL5@hq`z)greDFIhE*CLzg z?a@X)!1t))5Yw~Ow`jbB?c*Tkt~C{}WlCN)7)(k3n05#|wyn1Mqg7in0=2UU(lpz8 zoB`XRL&UOP5Qy=Hj#v?4^G`O_tf`rq(al<;B6m5q_QFM!;CXm~b_Mm(k`=UlNNBXH z9be19@)yt`0>01@GSVq03F?IqmX-g?J44t5L3lyekg;WLeTIOaV6%RWUR&JZT6e^> z%)|`vRFR{40cYa031kqU`6vcYyBqHxTn(az3>1X&-U;1McNjUww3sd(aq)D!6C2Os zB(06}hiVoj*lDE8ig*$wsahAAaqI;YI_K0 z%L`H1%!wU41P#%||4@^2=kbCEPV3y*)lk-(7M* z*3URmoL61OU~}J+j|>vP0%~LZ;mYFk5~o8pJ7YB@<;7O#I1=r9(T+PKuWMs*YE_a{ zSe>Um!Mim|XLP_<>aRPeE1O&AUoNAYnAVzv!A@GbSpb-4kcgk`a=IC?0w2MiE-GSp zJKbFA&xvrcA*93t@BCeYZe8?wt?gL%z06|;nX>Pk)q%v23yMJv0p1ys!Bef=g!iiUlVvY9Z5jE_!E&i=4}6<6Sdt=dSRF;BnE zubTMXv66hgxg$XaGXCgY)npo5oG z%$qj_i&l@R3f#a?=Ew1#z&TSOSm2otyh%Ui8m#BN-}5Tjbopn=iUh3zZr_3^BSGzllj6?9B|f;&z$5u+XMLtR{O8pUV-mSyhAgyby=+A z6iy>a>DCi7oso823@Sg7yD?lugZE&4{i;WGkrf)%`kJhI2_4Fn2o<4rtpcsrKDBr9 zF6Z>wSL~=)vEP{MIX9ra0n&PzPsSoNLr8YhYjlnkVw z-tkVK1gbajKWQP3t&VpFy1=ACMT?;IJ+2E&oLoBb)mFFbdp8h>n_F61XjxyFbVW`H zTezC50Rk{EFoZ7B7|S1*%Ta5bI&@P^-D<0PyFDe&<{;rn7r?w2*A;#N8SdJp zZEWu+Z(@lD8z+nwSg8hvt6=`TcUW>o&!9ABp*k=4X1}_VUcE^dS3Pgdwil&R2cl5~ zFzwOmru%8G3C*01lI*qa|7H{~rNUNBBtp25G_dBwX_vlK&w;{wS5aZ*zU@lV^fr60 zPGG5IL!BJiYML}OX4|soz}I1bsH~EwoSK-BYKCjLy91OJO;*vnPZFI!Nhsev?`-}f z^Gk#7yWX?Sjo@4)Vgsel+}|L3N(hv1wA1CvgFCBJqmb5Q6cf6{h(@}+chpxPMc9s_Zvorz#0aZHwPLzL`aB~ zl~kvc5$xX9>KDc1ue~Htd^Q+{y?^yHzPZ(#)&Q~?N4FJJ@^;Q5qb;YKYQ(#{_3ECg z7NYpS_e}qA4%j)e8tiOpdi;Y4V$SXfiHSk-^wuVsslc?Tv%jbQJv-HQdwnfp2~uR^ zXMX5TLL+is8@^%C@Infb;0_Mi)Ve6I#7^z8kB$9+je?-dxbG76);mBo{i#VN{IaLj z-&FdI49*EYa7osj{Wq&&h_4nYqRex;@RhKMy<8QlA!J}J6 z_zuyJOSKyVZ7R4-t}ECHsnXnFD82*@h$j&os)hT5iDuyCN91ceNl`Z(QO~lymFLqK z@H$;CElPd)b;7RN+^~Ll#yO!|*HFVx`5ZrFK3!sv z?H_G3Eo4JsAvA7C<*@ZAyXhtrdbMWx?^z!kzN*agvj;gd8}l=?J{yxa<+ zQ+2JWnm>fvgx?P3gVWR9Ec%H2kqJVLSI6m$JxvFQ!Cr0+Q3E_8K?FKD^He#_mf@tL zM(@w{1bilM&b_c54>O)&T2>@TC@;it1t=`Q9f9q?7Y#J%vzDxP2U$db^p}xk;5+x- zI0@GgXB{GS&oh;>vT}tz`$l(uLf5Y?(3iRE^OLEdGrb#s{w4$+|K&&<4SN9KZ7gM| zj_qCPPYAd%8B0e12z3nj*Hgd88*@UN3liXZvPjbLxg0Vu@DMV0QDNZ0{|xaBtZvEnZ{#bb`(EL5)6?@1yuPf6w#nN`K`fEA3OXyad3NK z8Y(VYFt&1n@m{4;l`o^$+ACq|>`Cn#GUt|{qT7{AJOED=7SgrDT zb9=Em0F{&{>a`yAi&gP*{k6pm7 zN?GoUw%XzV11Q(%K>=3}L`wqR_kq`!o03${W8|!r8pr~^9m0~>1U^%FQ#?wlADKuv zOop6xNUcy(Q&Yuay=G{5LxB+QMlJ;TM2z~??m2ls5{(y|alpA?G_ow=Ujj(@qlQtd zho`!EiV4|*62v!l<~IcLf*JeA=t(fH%b!OOjOjy*iBunUInY64a&N->ybT<@6BIjT@{X(G_=Z!&P}8 znj{^mAE{l3+Tg`(O;z?-*eq2D4J%&NT155@7ey+TLG<}h!4a8|)y0`~zFL+?lNmK2 z81B$5wiQQ?e4~2BH&+ba@?Qbn3CADuus;UfP$SaCoM#UcWr33dtA)<@hGSi1hWkLm z#NWR|FZ}olMX1J@{n;LOuI5VLxhjg^WYU=9f+)Qs3xqD;kbw>os};Co26-Zao)^zt z;3Tse~@FiVma21WWoT*mqFe?OyQ% z12t&kLg{=2J|j)at~Z5-srFm;)oT6intW=i@mhRmtobK4N|(C-fNLK4l6e>9`bG5r z>EY*T6wnA=NSFF+Om4$S8y`{7Ouaa*7V)arTF`izUd$uG{VO_i_x7oVr3F}T4jJG^ ziiFEdICDI`Ke3$DHhnDU1E63qqx`%NPy+g{kidN@ddFn{8QCT2DMBG7AO{lFas1>* zZWdswYDi?@XmQNU(jhx2V2b$~ER(S%tX;@fNFDFj+9`Lk&85LbpejvAj}JIGiRZTz zDOKGuNheHYd`#^D6GF?um4!$qfh&MOKc;C1B-$y6{Mu(+Jj)}ir`_g(nFmJ2i*)+X znG&*68tA0k8D>hRFnyYb`q9yd4IOp$C~JpU_T{o0whCpRj!+fm_mrNQQ|^4EwZ~uI zJ%p9Q*)R`m;9E+{Ht`hmpe<)T3-MneM8N8BPpooKlj^>dGV#et$S|Ihs{8bOlC2h> z?4|xsb~E0TU9WMrw*5l2?UU*^@c=1JZBk)(Kfai00kZjlrbOtUmR2GuSSA(;xD+oe`Yjk{@x&}O%i@~{MZHp)mR7+T0$Qyj$;)YAWB4~ z+#zyUwvR|zfj2xKw^J&jb9f40iCi(E`)6{?9KyZw$E3!)ckcJU>D8i+)`T{Au)KvP9Chh+xz-|m5_MMJW= z(_M7KERJ%L3mzsg78#tXcVlJZc8+bh_*B>(%jp|hHcG%$ zXUcW#OvxtyP*JJ;T4!(9=tuqBF|%Y2zvtip@S+XGOSm*rr$nO_@=0OB4J0@5As;x< zG^Cxrou(aR2%W>KZS=kvZQ{~Mkum$HB1}?fFE#^8#iA!(9~BRD>+zFlWO4BR0CO3P zq)9Ouk|+|3Z2;|#0xgMf{43VU0J5~nFPHfp!U=jJc1Q4ORmC6bi2 zySjZUZ#-zBm=wkZ3aEu1zqF5k@ya-;)h{sgga)j6qaj@Q0XE3I^%37yLK;fTSmYmGIF9LDYuJ7MrB4jrH5oF;%j0*U2G@s z^`jqgM)LECPvO_|{50#7}M97)g{Oal$sXKFHR2QOfi`sQCZ zHdQ2IkAL`Im7K=^6Z9wx*YeiGT9g?zjxw2=T`AJbq>o2|omxFqeyz0^uJpku^JLFg zYbjabC?`Q{#_C)(#uhw~>VtV_T&4spjNHGcNbK7ycKGwBH=v+`Fb6>D4WL`#R+??= zf5G|FR{;RwH|}8Fil2z-$uLRiXc=02*(UWKxJ@`IPLL>nTAv!4!qsW@%}h|MJI^Xp|JXQfl^hR9VgP1nJc{a7ko92jt$#y6)XWmPxNz9Osvn=Qv=kFv%`t zH~9{#rvWNAMV9y?MSW4dPGvFl+Ldr5#wUsQjhfem$z-X>=(};a8yO9=hZ&)bYN2}V z5ELrxgQ$pToIZXLj~+Y*2)Wh{t&ZxoLJ$yG8qs%S5q9|&!YI zY)}9a6O(ZJ<{g|mb{1*r832Gfp*2z1w-5jU@sAR4E$k+dj{v~euP_=lt&iYJ<>6Pv z7kBR5!}&88aVO#~0H9>45~x}|M3m&xg)2x&P9c^J0E!haiUy5CQNBVs6f0H)(a|vo zzZrpZXU-#w@(8qh3giit6u34sP>Vcllul9pDy(u#`5TJgxv;NarcLq`3Dp?5rveeU zR>&zv8gOB#cmQ&s+yiUSq!#ub{ay?i(CKyjd-#-iAO7SoczSvO0A^2Jh8tnG@%gv! zqm+LM3D5MjbZl6)3$rFIL}EfR00H$I*T#(b@1beS`Z5_J!lN+bqi?YL$AgN!^-kT} z;{B43H2LUXmf2qcBU@a*b`uM~ zUW(N#)qPuHX&G4G#bcpcjCtMwJ^TdF7bR^z8*+d+#L_De6m%^YZq>$XEKId8-B(`of#2 z+n_pDZJP@(Z!aQ!a7cM9+xR7Bgp|X=xvPnCd^~F+CcHa}DoUN|S?LeY<1Xng#GF{RVpXwbNh$iK-m z4HU~#qGT~_*trztD+Wp8($dm#_S6Lgl?z0L;Bo)}Pfri@=+jlPP8v22#p+Fq#i0=Z zIC1PWjvqaVq@-kY?EEa6G;1Wrb??~)GiOi5TN6H{Fx950m6WfeiiyoYa0aqVrO2Gu z;LrnFOc(=s1?L$9nk|StLtYpGlP70U?`Oxm!>6L(UjJ7w-o#sDKf~FR zm&Fuy8`Quzt3O5UdQ|}c&09AV=_kE88*7(uLq0HA0wUwkpJHCIOj>W6Yh2nns~e zDnXTk3HqyQL;1TixQu~(>J^YlswleSN^`=5Ecp9d@25_+7yua=&NTqYUV!{*1Zb{B zLGt6Pm(QoN3skFKMZ915)iNw!v<5wObx+VZ(l2DE|60I*f`?5`==DEQ}(lel#58Zqv|*)SacSGtAp zszqC6av-}$zvA1CVw~A*Mo@)70Dy;w8NX3(0Sw4tV){L*eEox`YL}%Ay@qF(Zm~I1+y{0&C#{NX9Q>~ zPf7}KDq>YgqvAb5fWipS(eSVZ;}d56F&7jB?g_Kbf) z5D*a_l}#fbg18ZOTXG*zrZlcyzJ;>o%AibHtM6#t_uG-4mZ2!}?rjI~-Kx)t*@tBFHZzl zs(>q(!Zf(>>Gb3~9!i#cNi-^h1?(-2!yl;g%$@w$bQrLQsz)431YF!)0>mK!o#zGA zt?Pl*RBPKE5a9fk06EB?PJbyh9|z0?0$J?6`(ikW%fqzI3SNJ>mrHX`k{Pi9P zG2kvx)%9Gu-8~EeXBh#RnZT`ECRDC0AU@vW707k47trnC&`b(VLtSda2qw156|%?a zNl8;v)9k{{l5{kFSy^Ob!7DkUi~NfyV0w5Lz0aoUx?a){b9W_bswc@SPC zUh{$P_$5ZU9OURa&RqL(6TN>1Xi%&nuIh8`x)$tj6bsFVh7B!a{`KnRUhh8#u3O{! zz*B0?u=bExy#V~n2i3r$h+?DfOTsEvDyNuM08prKAq0n5*Z1cb0|J1k$a`XVnX&=! z^(&0zWU?umlSk#M6(!-BHpWF{L=-9nTk^VnD-tV~tdVh`t6u@vuixTUTaNVY)r|uV z_0K@c`^K=*YxGEPgY^7z8@Zi3YgUxeL00QxFy9!}bNkmUF$DXF+{_A2T%s0je*KeRh$PhX^%rrmQbB;jVW zS&Tb#@`5C;L+3Ww^V0!E`T7s;CF7TaBYzze=K=Wo6~;I7mfED2@8%a$B^Ut#{$lLI z2M-nVwhvL-|6dK-)S0|1&&q*rOeiUEZSSo9CP7{*e^>9T(B#X9t*Qd_H3VF*?s$xV z>eYek*Y%gd*B7W(O+S9}BDiMVYXRjnK*zx2tYV?n;{4ja>1Xk}a`h6W?Qp>1-~L5fTDo{YdB!`kZGdg%>o>R;YSyk!<+pd|FXDAT8GrQY--B8X zzaoD4<&U56>py$&>py$2bk#SKC6VM3vBTcj(4O8Vz|K3&dbF`~dj33lxuf!TZP&0m z3g)naK3;OytSe%hkROm=%3%Y_8~_$0!0s4dPFT{}=0nbt%-f_8XTh!?4@wl}f)&#- z{*7Vq_V$vW0>o=4-P&BK1is)_!kYj##5sRqQcGk)v2k3+qa@H^@Dks`ITjNK(pD5SzmvMi64x?fqj1>=3X3{ zwrGI%omw*GHDk)xc)mvmaW}xG&ospGO9$}#p}%qB=othC1)yv94hRe?qb|1~V9c=B z@#pcM;p5|t;w6gVuM_*R@atuWiHQZWw-fF=us7;w8wLQdfA2wT-muM%pPCxyk0Ztl z(hHVcd7g7__Wt#eK$^~}dQdq)7uF8>{nSL##an8hN&axb<{+nZvQkkaXk1*UUR+BW z$B>`OVhfeC0N9QLR)XG2fJbqyShx}8E0o1+?~D+`0)qlDd~82ix^rhPBQVe(fk6R8 ze({eJFtpGAuzts4anFAM=+LPRI&^9y<9Fzn!|2qt9aXj~m#$&V(AThb>oS0S*W7QQaKu!AEfk-<)F>P(3&Ebc&ajSZdn~IgJR=I zW3H>!kw2Pes-j`mK(3{#B+|H+Xxfk;%3uSAWq|yp%@PEvQ;HUr6E4VhCSo6IuwQwX zm6e65AI!r`ecr_RGgoNIu=B@X(6hq`L`O@v1Gdla{MpNB*R(fQELw*rDNl&J;vXkq zaG&v5ws4JIj9mIXJAXm<4*hW_@~&dJHgDLDUR?(vF(FaprL6o_YD(tDwYrk^Fv3`A zq;#|tju;E9X|?zMHKpWsqqF6bmrip{qXgXbz$$@zgIWsa;<;8m2-F)n#*MT7h73{X zec%94vZSLDvOzAo>(sGUcc`-t#+lK2@PErQ8xQRJtNUKGPgSsy-h z4Ds<6MfWr{O;NlD_aEca59f>bH?K#?XaoTJ_Z-IlJ%6BXXbrS(-xSSSHbin#3T|G% zjlDa6#r3O}Wp&HGT?hYwlG(g&%Xk66!-w&B|IKNb`q6B(Y4;3Tv}%H?H9`;(eg~&d zp2yyu2auZj6n*-4lcal^mPX`v*ZkO;Z^Ao;^PK=uB+ zp*KM037}y4a^RznEZ2U1bh;cAFAgZ2KJOg3PPIA=Q(1Fc#x_K$=_e}!(!E?o(68ma zLsGm=m`O@UUjAkuC;v~%w_)SD@W?)b_-@oa+`SX6nC87n6EJ!DyJBdCQgyS>53r@A z$zT^JKoYN9E_pr4d6H?!>YJ9HOsj4s)B60R*O2F(qo-A-)TTnI>R&gF>

    h1FCJS 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 Ab^rhX literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_nPPBLQ6k.png b/packages/superdeck/example/.superdeck/assets/thumbnail_nPPBLQ6k.png new file mode 100644 index 0000000000000000000000000000000000000000..9f5f91f46da4a1ccffe5b315dfeb32630c3a25ea GIT binary patch literal 22773 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 literal 0 HcmV?d00001 diff --git a/packages/superdeck/example/.superdeck/assets/thumbnail_oglBIjM0.png b/packages/superdeck/example/.superdeck/assets/thumbnail_oglBIjM0.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8b307f0c87a5af3304d76ce9cbf61211b55538 GIT binary patch literal 37400 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ⅇFV-kSYSExwGnI5g4RkKQRS4R)vf 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

    vf@OJW2 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