From 121ed5a06ea5b19720cbbaa4adfa357543e8adfb Mon Sep 17 00:00:00 2001 From: "Lucas.Xu" Date: Wed, 27 Dec 2023 11:11:14 +0800 Subject: [PATCH] fix: tooltips and overlay related issues (#4206) * fix: align button tooltip * chore: upgrade Flutter to latest beta version * chore: bump version 0.4.0 * chore: minor ui update * chore: update dependencies * chore: upgrade flutter api * chore: use beta channel * chore: disable search bar and optimize toolbar ui * chore: rename extra info keys * feat: highlight text again after changing color * chore: update iOS icon * fix: lose children issues when converting block type * chore: update editor version * chore: update iOS icon and android navigation bar color * fix: docker build issue * fix: android keyboard issues * chore: update icon --- .github/workflows/build_android_apk.yaml | 4 +- .github/workflows/flutter_ci.yaml | 12 +- .github/workflows/mobile_ci.yaml | 4 +- .github/workflows/release.yml | 10 +- .github/workflows/rust_coverage.yml | 4 +- frontend/Makefile.toml | 2 +- .../AppIcon.appiconset/1024.png | Bin 53199 -> 98822 bytes .../AppIcon.appiconset/114.png | Bin 6381 -> 7011 bytes .../AppIcon.appiconset/120.png | Bin 6722 -> 7495 bytes .../AppIcon.appiconset/180.png | Bin 10476 -> 11737 bytes .../Assets.xcassets/AppIcon.appiconset/29.png | Bin 1349 -> 1161 bytes .../Assets.xcassets/AppIcon.appiconset/40.png | Bin 1981 -> 2203 bytes .../Assets.xcassets/AppIcon.appiconset/57.png | Bin 2939 -> 3231 bytes .../Assets.xcassets/AppIcon.appiconset/58.png | Bin 2989 -> 3323 bytes .../Assets.xcassets/AppIcon.appiconset/60.png | Bin 3123 -> 3496 bytes .../Assets.xcassets/AppIcon.appiconset/80.png | Bin 4272 -> 4767 bytes .../Assets.xcassets/AppIcon.appiconset/87.png | Bin 4743 -> 5220 bytes .../AppIcon.appiconset/Contents.json | 81 +--------- frontend/appflowy_flutter/lib/main.dart | 1 + .../mobile_bottom_navigation_bar.dart | 18 ++- .../calendar/presentation/calendar_day.dart | 5 +- .../document/application/doc_bloc.dart | 4 +- .../presentation/editor_configuration.dart | 6 - .../document/presentation/editor_page.dart | 6 +- .../align_toolbar_item.dart | 50 +++--- .../mobile_text_decoration_item.dart | 2 +- .../mobile_text_decoration_item_v2.dart | 2 +- .../mobile_toolbar_v3/_align_items.dart | 47 ++++-- .../mobile_toolbar_v3/_bius_items.dart | 8 +- .../mobile_toolbar_v3/_block_items.dart | 3 +- .../_close_keyboard_or_menu_button.dart | 33 ++++ .../mobile_toolbar_v3/_color_item.dart | 24 ++- .../mobile_toolbar_v3/_color_list.dart | 23 ++- .../mobile_toolbar_v3/_font_item.dart | 6 + .../_heading_and_text_items.dart | 3 + .../mobile_toolbar_v3/aa_toolbar_item.dart | 99 ++++++------ .../appflowy_mobile_toolbar.dart | 150 ++++++++++-------- .../mobile_toolbar_v3/biuc_toolbar_item.dart | 14 +- .../mobile_toolbar_v3/util.dart | 26 +++ .../document/presentation/editor_style.dart | 2 +- .../appflowy_flutter/lib/startup/startup.dart | 3 +- .../lib/startup/tasks/debug_task.dart | 20 +++ .../lib/startup/tasks/generate_router.dart | 45 +++--- .../lib/startup/tasks/prelude.dart | 19 ++- .../appearance/mobile_appearance.dart | 1 + .../home/menu/view/draggable_view_item.dart | 5 +- .../draggable_item/draggable_item.dart | 12 +- .../lib/src/flowy_overlay/flowy_overlay.dart | 5 +- frontend/appflowy_flutter/pubspec.lock | 62 ++++---- frontend/appflowy_flutter/pubspec.yaml | 9 +- frontend/scripts/docker-buildfiles/Dockerfile | 2 +- .../scripts/install_dev_env/install_ios.sh | 12 +- .../scripts/install_dev_env/install_linux.sh | 12 +- .../scripts/install_dev_env/install_macos.sh | 12 +- .../install_dev_env/install_windows.sh | 12 +- 55 files changed, 492 insertions(+), 388 deletions(-) create mode 100644 frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_close_keyboard_or_menu_button.dart create mode 100644 frontend/appflowy_flutter/lib/startup/tasks/debug_task.dart diff --git a/.github/workflows/build_android_apk.yaml b/.github/workflows/build_android_apk.yaml index 974da6c637..dc42889f44 100644 --- a/.github/workflows/build_android_apk.yaml +++ b/.github/workflows/build_android_apk.yaml @@ -3,7 +3,7 @@ name: Build AppFlowy Release APK on: workflow_dispatch env: - FLUTTER_VERSION: "3.16.2" + FLUTTER_VERSION: "3.18.0-0.2.pre" RUST_TOOLCHAIN: "1.70" jobs: @@ -43,7 +43,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} cache: true diff --git a/.github/workflows/flutter_ci.yaml b/.github/workflows/flutter_ci.yaml index 728e2c7aae..04d9f3bbe4 100644 --- a/.github/workflows/flutter_ci.yaml +++ b/.github/workflows/flutter_ci.yaml @@ -23,7 +23,7 @@ on: env: CARGO_TERM_COLOR: always - FLUTTER_VERSION: "3.16.2" + FLUTTER_VERSION: "3.18.0-0.2.pre" RUST_TOOLCHAIN: "1.70" CARGO_MAKE_VERSION: "0.36.6" @@ -76,7 +76,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - uses: Swatinem/rust-cache@v2 @@ -157,7 +157,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - uses: Swatinem/rust-cache@v2 @@ -262,7 +262,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - uses: taiki-e/install-action@v2 @@ -335,7 +335,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - uses: taiki-e/install-action@v2 @@ -426,7 +426,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - uses: taiki-e/install-action@v2 diff --git a/.github/workflows/mobile_ci.yaml b/.github/workflows/mobile_ci.yaml index ea01187ed4..290d01a21c 100644 --- a/.github/workflows/mobile_ci.yaml +++ b/.github/workflows/mobile_ci.yaml @@ -18,7 +18,7 @@ on: - "!frontend/appflowy_tauri/**" env: - FLUTTER_VERSION: "3.16.2" + FLUTTER_VERSION: "3.18.0-0.2.pre" RUST_TOOLCHAIN: "1.70" concurrency: @@ -63,7 +63,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} cache: true diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5c70c43e9b..72ad5265fe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -6,7 +6,7 @@ on: - "*" env: - FLUTTER_VERSION: "3.16.2" + FLUTTER_VERSION: "3.18.0-0.2.pre" RUST_TOOLCHAIN: "1.70" jobs: @@ -57,7 +57,7 @@ jobs: - name: Install flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - name: Install Rust toolchain @@ -143,7 +143,7 @@ jobs: - name: Install flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - name: Install Rust toolchain @@ -243,7 +243,7 @@ jobs: - name: Install flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - name: Install Rust toolchain @@ -346,7 +346,7 @@ jobs: - name: Install flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} - name: Install Rust toolchain diff --git a/.github/workflows/rust_coverage.yml b/.github/workflows/rust_coverage.yml index 7177a0983d..52f76bf42e 100644 --- a/.github/workflows/rust_coverage.yml +++ b/.github/workflows/rust_coverage.yml @@ -11,7 +11,7 @@ on: env: CARGO_TERM_COLOR: always - FLUTTER_VERSION: "3.16.2" + FLUTTER_VERSION: "3.18.0-0.2.pre" RUST_TOOLCHAIN: "1.70" jobs: @@ -34,7 +34,7 @@ jobs: id: flutter uses: subosito/flutter-action@v2 with: - channel: "stable" + channel: "beta" flutter-version: ${{ env.FLUTTER_VERSION }} cache: true diff --git a/frontend/Makefile.toml b/frontend/Makefile.toml index 86223bbadd..947ec93e3b 100644 --- a/frontend/Makefile.toml +++ b/frontend/Makefile.toml @@ -25,7 +25,7 @@ CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true CARGO_MAKE_CRATE_FS_NAME = "dart_ffi" CARGO_MAKE_CRATE_NAME = "dart-ffi" LIB_NAME = "dart_ffi" -CURRENT_APP_VERSION = "0.3.9.1" +CURRENT_APP_VERSION = "0.4.0" FLUTTER_DESKTOP_FEATURES = "dart,rev-sqlite" PRODUCT_NAME = "AppFlowy" MACOSX_DEPLOYMENT_TARGET = "11.0" diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/1024.png index c0d64e75c7b0fa1ef902698c10ebe7c02d2c4290..91ae2093cb42c397fda2ed68b003a75c9d688efe 100644 GIT binary patch literal 98822 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 z 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≫`3f9YOH(uH1mu@*`A!`0k0> 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

{l#F&~Eb=IkopgDZ=o-opo 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%0AXDZo* zwHw(aXMr8)qx&16pZT1@JM-#?tlSU?=PkQ#N>`rHHcl!Y8$HA$=DwKT225Gst|8^oe}Q;RwY!_Un6tJuKv7TzZA|Ox+dxwo z=kdiC82xtb!&WEs_i>`LgYwoxm-uS6B)GLRae9Qt+Q)8^*?#{00CAyH8>LFo(#ml~ zS2V0g5=?i7QCfU{X|&AwR;dPNq7>rf^E)n7Y;JIkQh`8Ey5?3FyRWs86DfYb@24hQ zeexXJ$hJ0qUjKyw4Ka8@ZGrs`Q9=>HyYh11i{6sbzzSa8Z>4C*(-(@j``ALifQevF zy&g)-U?FGyZ<&-|qrOKTLrgo$k`P-Sh(oRMQ$|`mc@&X$_9?_Unz64d5{m2C6M{3Z zI8=IPCO~A;9Vc%ZMw)6FXhvo%mJr&C(*3tvTyI<7xw%FhHaZ{2*YN0o^Z85{m| ztnoMAzGcfJnQDr5Ib?AYnl zPt$f{hx9u`xwxdo+Hx;?E>utph^vkj9r|}cb3)n^!Wbh z##!2ZTQ-gC`(N`{-q)Ex{Plr)>&=^vOgaxw#TQSa+vjpdj?pJH&5iNrR2w)<7{aUR z5Gk+QyxZK(7di3F=k_YY7i!WhxG=m&y|cn>HBWM%Qp>n0OQc6S*pnJe@n(84Zoi~J zg}s+)yh1M7=Vx~f)fW-we_+u6KQ?jI5M1xMRsHMv@*r}F9kI6Z^CQ}y(A~DhikW`Y zXR?<2UjCI=lQ4}fWh6Xk07kt@q)){k#CS(g)99ov{T={Xt_C4Kp2{eN3i&|4)kp?I zU{<=jiAd(@J-+6hl$O!5zYVDCOs5AY?@LU0v zP?=Ry**0f2)AS)HX{soCtfC%;O(={v6ExBv`l%^ z1Nr*Au=6}HPf$Q*Y+ z4dqH!*FR0SdhkA4tWb3!F4CA59)hN(Xy81hHwr@)eYo1T1!VmnF6KM=G3qQ}7cC($ zYi-X~JVfJ^v$-@`QwDr+V|)9h;Xs!mLb=XlELV3NKJ%RrP&4H*4}L6qC%P4bQggRW zcjSKMv;GEwnck9~+{JT@6&t^7uItJE&m3o$Q+-#NwWn%0-i@-~m$qxIwqFg9!STJK zYx|n=HVO7&=9JU^XH8b}(`SVJIfOLop!HK1Sfx93;Ki+V9&Vt+rDn%_)fMi{xpiLL zW4UHO%sgxngYea^81Q?BT4+5NP?#<_;f86!+}VV(naGLW$ip1XZ>lh4`pIm&#I-6t z$wF|=AEi|AiWt5-H}IqNRtTVj_~VRypp3YP-HZvGx8;dg=<2M5Z7JCQx+hA1Gfj4R zL}Pn0Yj~q@&FO;L#PVaZ-L3)H6)q^*9Sx&Q(1pq;9BDwK(bp#T(ws#SHuXECaLv3X zjMKPa+y;!M+iji~dA(v6EjM+Y79rd6DD22VmxM;KV=LZg@{OVhZ;a1i=m2-e^6QnG zsfKrR{At#y{|95Ineu&0i^i{>4}!=OB`l7ob_SQJ*6A0`D$Qy>rZ?ji3du8R zqHU>$?m+S-7&7XcKhjse03e7hbkyO4PWIpoY=jLb4%PC+hd| zr9Iegk-=`L-)@zGdEt~fRCB*_>r?Z~7P%E9D6WS78RiXTLUsIY&Qn2>Y`THNPI9LF zJNgRuza!U3!upA?<_H&mZu{kkoDL4RAl2t|XF-I_k z!ZOFjQ8Wva_0$ac3=Jj!)y|5TQfqb@>|AgBnne;+?zzIee1^Y%wz91$EWSaMlH`se z4Md>R<`Vitr#Q0;f=ou$xt*L!A@B;bYg_rR0Y?J1TmSetWt#g5CeI3-C+^Ly=l|KI zzPxXin`DuLnnbq=4({0mXa!7)9;#F;V%Tf25x$fpmdBRQVGS1yXTg@d z5tRz9rz&=jbgxR6%ej2pHMlYxK$-J3pj?1tAtx&|1kF>PX{cns&M=U~eG}Nf(HB(r zXNo1Zs+~9qtjO=kO%a5*gVD+?Tb{+S0=h@{g=VL6AN#;etPc)av%(eaGg>wk339o+ z8kwU?(yQ<)^S>~lSRi3@(sc7WyJ_pG$E|vN8k90OXDb&g!DZLLF8J?T`1!3o;I|QrQ6n_Zg1+u1AXIitgeIw)-wP0~}*= z34`n~vuLxe^Q#X+po0#$dpaKLrLT4lQ`{f*=_uk_5n+l;^9T5WgS_1Je>PiKM5ehH z%^B5f+gvwg-x^^5$m(DfhAoR_&|pm{0fA9Cq#&v=czp zP-t1GeDePn_i2hS>#+Uy>Irfpbv= zWO;A``ar90TAcz)5cgRwl1-8#qOmlD;BCI+p>Lw2FdSK8x%x`6N)@V_8}7-T9Z}u^ z>MM+E3z^wVpd=Yx>AD{mJ)CCJmDukmP(;cr*~5g);d}M1EgFZZ5)b(Z?wSkUV|(RIxQtg5$ZW zQ#QprucPN@yd zvLK(CcY03*7cg^kx6`>6w-RzSf-1b{0!kIkm7d7Z5wb7qWfS81j!%Y#3T#ZiZU;9Bf%O#QA&++7K{9?jo<1BhtlEDoBL1cT*(Wwfm+&pzjFj*!Rrz@f^m;XlP2X z{mP1Z1~e-AgB-nrcH7wHc8}=VQwBAVcB0lh{|k^nE18X&o;@5i3lMl`!X9MWhecB&yBTUsp`#1f6BN-n&XE}{I##s%&CTb9=l_R(?Z0uu&DbhYy92wI(^-037Y`} z5nNLeY5R`?2e}6vbCcb8a=*bR6x{cp0ii&UtKZ5GN}*Wdn{%_lJ3=+MJg=||dafV8 zUrC(r-a;o{0?qenQ?0C$dJ^}{71`4%WuGm)4fAT8pT1_;@h=Vo8h8s!oNgtXw0Mlr zA-37hTk{sPc8KpjC5%w6OEyNo1j#>E#(9sg6yJkh>?nY&0&Q@C>{|AlpFCjQ8O+Zs zv&b2J&y#qEfO5qg-C&E{ye}_NforHMEYyn9D&!cnL9Q7&VXFQj2+n zVk?W=w%mz}Qs{~G7>lWE0O>_Yiu3qYxR*5aa-Rklxmt3*Xx}sOviiuIKR^AQ%)uLc zUg&t+sBk2FL;*FKW+(A-k6~tGL2=Kw(x&)pGKq|>hp%Q+gw_1%(5P9ZND{DZ$=U4tB&L1hTJb4~^DopsE_ZSAB|UlY z?~WgIvmbV#d1R0E%tE+}>U~6(a4d`HJ9-s6vtE>275KTY8sSZ(#^(?r?K*e>dp^%z zS8}owxMtBqte0HYu)$HpobnY4}8UIMzc;EGYcXCMA9 z+6EP*tS}&b*X`G3Gw6k)lc=tf%GvX7(2u>r3qOwRZ6iWv1xT`c*>v|8f%{A-2RT`$ z!sX#_qluX+dm7kJqAE_SRmH&j>vZgLAYxtFEa;+Z5Z|Pk*wYT=gh^*R-i=Ff_q*O49D}0IQ1QuX(zfpm|=K$}AlQ;)H?3OTy>^LKWERu~Y7)%f@sOncRA=VyK}#V=oZ;D9>+;adx9bq-I4+)HgiuGmJw*Qi$;x>ARdf z3XE~b0(5~DF_x|r0~~!Bd+){%HICaH0v&Bh#TA?}NLh)j*EUi7B=?Fw z2hZy&5~0+6%y z&=#~W`zg7=$c{tui~QLlX+kNDMj!JA(I(r{yEM^%a`_lROeWQQkKcFLsX7$u3$5tC z;dyM#`ciOeluu3Z25`VWcb8rs^KDd*Q_YS# z8OE(Ys&*)eJzMZqss33(K(ml4LLL88TaVNJ(A2&y32~USif;J@yZvFTLSOVyx>{lk@XJe!`)DgzU_I!AQ*YCgjg#dysfNYa}m|5v}QLQpB}Y8 zt^Ea68CvQr7rsFmzEcr?ZI?C=T>}FUfkj|k z=JGiOe*O@vK#)8$vH zkFS+$<*KGGeGP1az>QM*9bW7B6M4;}iPQZ|Mbr7;VHad`KB!QI3Mtv8#A2%wy)-;8 z^=u|lW{3V!?g}6TL%Xa;${zoWBgRN;dxaQz%O9LnCjhT@8+Zs_2KrvgZ0LISxXEnU zEs;DeqZ&L_qyjlr-uW=~xQuv_VaKhS(aO)`m;UF^M5n6MNqJVVy_jBF1({-=#`_k> z{xJMXn{EaRy$tK;x|?U`_O~{l*o0$j5x-e5jl_wlYl!0d$F9?*j^X!Px`2o(fI)Hn zW-3N?iKMegl5@%vDA+H(C)U4zYvxI{eat-Tf&@?9X6(dk5dR;VzB``k|9$^;j)PlFHjj|7{tGuzo{SF=?FLI+R(!j*5jd9y!};`ml>hqJIYUg>UIzU*TsFy8Y!dPC@wTD ze|mi9v(FX8mqth+-G=UK(=Y;J1s(~VrHYH0FWU<=VR;?5oa|pBu+pfX|M+IUVqPY0SbA`_tl|v*;fD`vZq|+;ffF()I7|!`Wm>V+nGe zKaB;jjwYprB_IXeZ@f|GSK!X{?Z{so7d6>1xAlib{F!^7hL7o1T^Sibfg;vjq6^Z&zetpAJP!IZ zLE5QAo)*L=a44x)=GvU26Q^L>w0-o@5~AhU=Sw+$0Ei_Sh-=UWU^+wt*oAp|6N}lb z*;L-+yrfO#0Xs8cD&PUHgsUs#=2WHKl!-26NZt#qJ3ts?W-4&q=MH2}vLF*K3+{V0 zdTQV(CFMkk5Me<74Hv>NoqLzd0U4lDYP9&Ff8Fn6R`eK;i8Y^n#R%e>;x=z@Z3^vcR}Jz2E2Zquu)8qQIe6Waz+4GN#)I zYz_|YZvnoZ7T-!=c?!t1%B*;p!;VN-N?;jJYtHK;mQ0t)&p zlp%DT%=;$K)mDBu9UU&i{QXPBM_sctG=O!fJJ8xM_hRRm%e30p- z_+Rdd5kLzE7+7;&a>BA0<2!`WBYnP8E*Jw}8=KT+=f#WYZANZdf}ZTcsas`yWY9CS z!lbHLtO8`#E@!S6r2CLGSsu@oL#yhQfpAJ)*j=XGl;d+Q?y*H$b!S>su$Ab%Vz_JC1V(aknG z;XxVM|JMSMI6QGT@u00@6v2 z1>pDf^z6=n6rLG*|JzZr^=?f0N~Oesyy!_js!|~N>#y_HiD5UMYM;0~Rr_R=QTsUK zU_zb=n2cG||By&sfZ{u2Hox}^q#V1a=Lhf=EwI1=F%!R;@da>vx3ljKkMoOT zLsVUtxi`gXxx!`%6W(bBu)hMYBA|Sw)GsnU;iiFiFU91rx_HMFC4n;LLp&CfcQ-)TmSNS|vW9QfALe30w?9;_IP?Fd!#`q5Rl{_wQ>soO}}QNi;n0=_3-xxQ)w zUE&Daera{{rvgaN#OsfiVi}=pwx#E;OBb3qdoqm|mtH*R=F?w@`IK^YMN`;eOb`cm z{e$%VrWaq1btAoV7~RkgKEDnBcmD6v;38U+j^FcRmT^p?2knX_!xi;isZRvO_7XBq zI>t^O{j$33Y{wGVM}EOF(g#IRp4sL1QwWZqlKpv*i@>G_UeE92q<{>vljfgJyW0}R z=%#SfS1zR@*fD=+>n4`ckk`{tvJAV~gDs~gb+xSTJ_JDBk4uliJNlObIuP{R4 zA|RhIFYC6xb@$RzWz6H^2cv=&2jBXGu8i#q&+I15&9UsOUB%~pYcpZ{{(=nzm6*(e z`$}eT)RpeOZ@1cJi6?QR&p}k29wRme<xo zbBEG*<6Uiy<%{iqf&6f7U7fS_1QDpV*k+P8sq&@H@)dVBi(G2r@7TCUQ}0&hjK3`j z$)Eln*P2(SB5Gdbd87RhmNl=Ro=;@2e?tOjBM0joeyEDxdx@K+ok)(cjM?wfYn`mV z6jW+pI6iPeo2E-7SPkJj{+hYeUvx#r_zmpZQ*9|wvjH2&D_X~}3(X{2O0;P~=M;x4 z3_rTF=s1vfD$D=MQ2u*Z6D>87#yq8~7r}R;;sPDt8Pf;rDx_NH_ODPtho7BR6{E+J zLzXem_m7s}yl?alsaHW13F*7yg=ZSq_(#Rx#Yi>@y$vi>K<`q6r;k99)0h9g&+*do z!Fk(#t3#Gc&at14<5)e{A?5_HifebR7;{{r36G|fuR2>%5q?DcA^1cqosaQA3=rG7N~#7)5y;q{mh+>X0Fm;G2>CB@6Z+up9q1j zkinVWG;&Cv!klK5AE-(kj6}TDJXYt3_cM$C@YB^$>?pzQLwZEXv0AE57Zd&k_I_8+ z8$`L+x1Zk<{*zC2yV%AzKB{`@)0dAVl$&f4yYowh09cUt`YqhFiMdpXZhpn4Wq-z^ zL^nK#0FJPySa4Ly$}fSt-o!V?Do<)v_;uPkiWCJk=Nu#DiE4ucP3tU0(E$S;*E?$1 z>iG|eP!_C?4?tdahKdl51}^1tj&*e_9upa)t}%1+$1_hdKg4tZ)bjdxdUWqrJ*`E- z2W)pviTqhedyArKO&07!WZx+#7Nsi#|o>|Y^$p$g{TtkJ3^pNQJn7az|YI#=M?4wGZ z4}Q9SWf%3DfF9Y|CKZ?@3w@nDKb9GopfdxYc|@7jm-KYq?=` zr5AjK_mL3@XyOLreyVb~ zoBp|82re%)DNAcPDJfeSw`iQv`O@QEkv>Fo4&bA7(C;Fg6K@Le4jl9DTCcT zw@jQ`Jx|Es_;#cx@+(>7$SHrKzSx8yM}Gg7Sj|^#5>r;Lh6v=VF{89^3EX*YGke1C zK)3TP%tnf23CahXt-kXQ$e)VB&^IX{^QWYWItUf`yXEp0@xIfO9Jbn7l~KQb0l2** zh&=xyP_`e5?k0OrOg05BIYkR+4NaIgs}CzQzd3)Lz!-Rk5y$^dS!2wJ>pRETUlo`( z(*7@5K%&GKVJ_9Ff0-(ofY!PGHgA9hg!?Z^mC+qao^=O{^iP!IsePGQT~tP<4Hiohc=ajMEabH2Y2IQym76>YV4qw98 z&p0rZNQx2Ea8+e@D%*5Vr^5%;{QJyB1=;B3Z8T|RPkg^h= z`^*sMMSG;|cZW zqU&f8$Wbxri}HyH95vo<#BvHum`Oi8$Yd0PsQ=JRH6589Y+8ZfJV<6d{|UwOmxIld zGXVGXWu+c^?f3j-&q~Y*X)f$h%S(qGq^IoJQ|FfN^n>onB|765lD569N`GZ5NHMm& z%7NlO2fmpq`{qgX66c_5g_tkV1Px#&LU*8pg=dY)RumXhm~-+KXrSZn zd^GAg#n8JHKiEsTn<)t%Yq@q;x1E08y@YyxW7!*A=NLhWtAB{zCMS1?0<89IPK8-d z?(7k$9oS;3Yu9Ad;o!@54rN8%C(WulMATbuk)$tHvcM(O6J}?@RK6dux;uW2gfJ$t z`yoGDznP>CQaKf=d1WB4zrZf;N{g4jz#iCA`ghw*n!9|MUnCD%Z+EMt@k@06Pb@~m zixz$>`#I2!MdZ+zV_BJPj{TGRZNY0NLJcQ(l7c)|_2Lgwk?8QbJ2dQ)oIz>)tSAG; z+Z-Ek&F4bByM6xuV7*hSJ@w*%q9VVU4oMvR<@5b{`m%%Qb>yp0G*HLq^`(hiMqh#_ zF8J?R?@XMKQTlg94Hp(cg`bky`QRBkJa=~HTaOyhzsM_DmX)vOO`JQqLxy>?yu6Y< z_HkT@1*W~~^7smM`$aaYOHMaluO$as!BLefsoBSx(DzprZ~F#@NbtDB{e!Y*#!<^U zq6}%3^A-4Krt-R$q#-7J1*@Z-Di|Q3X#EjUMd~o+`0ODo<(iJK6INn#34O7 zf}^&A0IrB8T#%mNZa>n9Y`+&c#5>`An4pduJvMMEeIVVVBv^eQ!;obfPDRiU-r9)t z#BDXm23{c<5*aY9D^q|zJuG}&C3&~$Ig$0=N#;Zgv9|`$pU*4TF2lVTCB&h$3u=~- zKt0_=c(A$nhvV-}{P2MvM#&&4YKNlK-{bn8nRuI?6+9gCLU*h`Vy?|ssN+O;L`#+L z{7Z(FJiKDmCw2bfD}E9YnIBYmQWp=_@oJ_;rI``gK#w;F2|m>v({4a|hcc#@;T z3`y_kb14SDlRV?8&Nb9jZ~~qRiCc}+MPNZw_{JdP=pp$V$g$z>0L0*{5M0iWo*m_R zS-hLNy(yWp+cU5JK0^(n0m{|jJjQ~E-Tkl}Sz>Nx@Lgf<^iL*4@Tr=tnAIH_uNMn* zUi9U@%1khJPAQxHWw=ZC^$r`oocR@bw`a33{qS6Ow?Z%#km44V5ivtN&)(+$BN-XA z>El{IeNEAzF<%VOFTe&it8Ml7ZKM1F!JnT-01;1rEZh%;!!_x?aQ z8c#&lbd#?~KRlHQQl`E638VL`6elHgdBm=i@WUCC!)lbFz%{V{jj24YSD#5qQ+ll- zyYZpm_>kMqJO2wiJqAeBjA%+Bur&IfSjRp(qz18Zv>b>3WE#Z*Gpy$fAjb4wf?Gad z?3JeY(o`+WoVEUs?|mPZ>T%IER1SJs351{#3WVi--k}k=aM=sM<9v6x^Z`AHyH+~! z;3T0oC{*nU!tOQJ4`NR1b!FA;d^~g9-sj)5%0q`0MD_d;1uBnD%NQpoUdVCu*5OyJ zsn@@OtXj*&hbcIW;kG6`R)~^z`JToh^!T)YJJn-xQFbi!HfOo(|4^ttYw#m4r_Z;E zP_z>ADUN0A>JFK`&3k44s@1iT_Y*;BX_)vHT&dDBFx=pS6_cUYf@qZB6S<9!w9Uu- z&wA=qFG4hPX>B7wQu+Qj`|mk5$V5i_uz;?$Ui5W`3-Qdm7L<}*RQPz<*}r_i$jkIdFM@yQad3Erd=!IH55stzT6vI&96{8|@v#=fM=hCO_k>H8pOR>=j-7{H zXy0?M`J^19z=71XNKERvxNsxtov{{V&p-ZgTnmme5*>{22F2d6bq6_7hB^)`hejBW zsUqIqKKtbR;}dGwEbYOYROf3?V?4Pl<5Xa8zgyLu3l3l^_`adMg%mlI_(&l0<-6;L zGqO9FNR7rY4wi*tn!_Io?e!=H&CS`VpmJ!_cwg@7KTsggp z+2o{$z}lwq(qXe1fUVHA-@ClMYVbRE@H$LPq~>JKxUW@}vH8T|!CSeoRegRGQ%SaY zG-@3AHJXSPao?3mCQgMMM!P4w=zlqol7} z?K#AErg&{q&62)4A6=Bq+v^NxnLWLg{AHT1rDz#1TwUF0WxJ>py_y`2X&?`KH{k#m z93GjTXoT1=PPW%wJ83!pQuJ-OJdx*_r2rk)C`~HnCzzDIRa{l16A5kPzwy;0CL*v# zZi60bS+sCzp>ld?8$M(mL>~tCmG#JzB&MHn z5dtWSXISKH*KSgYu?w(mAJEbtj7D`*@cV^;(>6yT9|5^N!H?T%6iB8UNBYYw0(CrGEOb^EMV_Sq9pxA5+#x#3k?d?qpas;C^JxTx8pc7Z#pz5z z1)yB1O27u5tdJ^OuI0ymdl4HfmdmoeDFZTJ0g3In*c<4TO!S|=Go#GjzPdAdUs|SI z0^8orFdf?5KYML`c<}0})D@bPE3JiBd3&YdEENO-n+T3NDFA+J@LRS@q%n$#-F`yr zjoay2j0Zcn6kx|}Z^`j94^HwRVG+iE_sr_a3FX2tG$nHTStJ76Xjc6;2>4Zo#rH4- z-)Ag8tO|v#=rc+@DV(84aE*np{=kc}{tDc&q$Ita%kujYgFVYxewk9f6-f~3$IU|a zkNuQAE|q5ld2H%+>|X}kGH(rfe7cRdToZ(@zh}f!Ky6}C(R;j?p2=?08nIwSVj~5s zOyMY|tjBXnGlr1SbjAmMY-&Xs`xUs`3eFJj```}#g)SSV{-dKO?R~`E!I`d=Xy6!m z{%rkr)^l*JFc^f91)Y{yu#;9=!h(3@s-E|;)20hA_TjO-ePdy<7sKsqr)D?s&#VTG zF8bESP4_9{g~2m+N*vY$G~2vlYVPt7hQ*a;pH%7Ljo!dM(q#3V3*KWIVoOE@oG7$V z2#wECNbK|FOD<1X(o6l(t%`!36%X#ZSzl%`BdX;GeC0<+mvB~W%M<8iB7e12!|4rf z<0VT23jSP32P)W?fT8=Tql)Lii%queDFy08$>)CtK$bMA3*EBjelf-1O8HAH`)sSn z0Ml)0N)cvszD8}&zT2@~m?7+0CZ<3IcF)C7N*}?FLN_*AK~G(ts}o68>5P0KsRc!= z^CM+r1Tr?=ngw6@Uh1`dB_@b{4Pn3;h@4023UTfxG?aU@@j{#=)NR5 zF+y^F3I*$_e6JD_+VQZp2cQ82sXvQTj0kQRSFz@PL)Mj^{Tt0t@D`=+hpPZ(ib44_ z0PGr(1eIW1tf9KCAO?)O=smFiuq3#o2LAXlrt+0$BZ{opIEO9lbUf)ntE9+ztO|5} z?HlNMF8phGg@i6t-wWz!M<3n-Erhd-+r?NOaMRqIRg7(pQB3#-254nK5;4% z5Ir9|m4-#*XDGBUt?w_iN%&fMnl;Uydb5m(OM>e0`a4t(D7~#$DikTcJp=G;Tr;&9 ztR2%%E9?0Na>O^MM7;xkg?h4du~29r(l9w1B}_5IK3+s>%7z!~BnyuYNhDw%l#R)TU1o)PXw)KHor{M+Xrf zk8Kzos97NfrItQFcg=M^EvFC52v~`hst_5h}lRkKX_hFSX)psxV)ZhPm#pe z8}tljz9ZyJpmDwPPDRKo66tv^SPdG=EwUn|CGSYfH?Wj~nu|FgL!RXi2KatK@r4$i}%$H_>az!YoSD`E9*5&#T6+sZCgRrLwchpPBm8j*sd5#DOo#&NQIsv z7j%xRHb99mcm6eb93XpXULDl~;k#1M-)6Z~)kK9x%n4bG6b_7YIz<=la%$tH7vmpc z8`{7C{D$j%_ru9FBlZpYP`Kwt?cKpjHN55U9Pplc)>(e^w0wt2Vkfz9^+-tIBz`PN z^rZ4S+rXbjrUC;9*&&uYYXr*zUX0`I9n42UAY}Hsd)(oL5JYjA@5gIjhzmX~tFOsX z&eR`cJ=tOA>_ABB#J;kJRE25oC@t%gIX7azG<(caNSv2EwLlDOg5)$YL}{{PRlY>F zacf2m(?COrG;1zq42tYWnIGqegFLc=%Ho3I?-3lAbE^WBZdM3)%wME~Xv!(UMBQ}` z6*wV3=q0fy4RkIQB2eEbOs3Jo+zL-ZakAX_k2UFCqdzl9EkJ^B>n}d66VQLX;4-s6 z^^1sYnYhKhDf6u*nSyNl(3AWb_R7)5nq1g8S(?CI!#cEEJYjXs8wErB1)Cn9@Vv9 zX6EraXZTz$?Q9UhjZ>t7+2{d9o6hgL6XT?fN;ZtguCWTPhwI)_pf_^hGL$&jlh;_! zO)1C&aCYpJc|W*GB~$6+`MyC5N^GOs#*M6jx8SH}qPa1c!d$Vd?Y+}(%lAXuWS?jRo0u$$RZiuSAKAVZWy{gr~>t55q|Q^(iQN( zK_b_)Nr0&-BxO+ZQWXjzH=b%*pelD~l1;KUk-}cH)sQkmTtN=y55~jJ75`N@D@=Kq z(LEYJ(SLC7KI#L10|tAlvwFA{7p~47>{avi$FXWMnN|Mcj7_ zvX55W(PyxyhtUn8-(ZS1;SoZ}oBHoTrL}izY(V(x@y-7&KDz(tfZLohdYn!e z_gJZM@~zCfzz|{DW7**^IB|kg1JQlkCEm%?oWY(6mKKs0|H%OSmC~?a2B}&%0Yhn)&|yz8q%CSF<;>s`C?3p<7Dz$fO`fBVhc*7w2u1Rzz{-xNW7UX+ci0?a> z^k)pzvpzLW9Le)06I;mN1IuD!n`DsrhIs&v0@@V5VR))capZ@q=ad6Uj2c zgXrHE)?x`3XJ_m&#n4fUJJOU5+bvXNsrNFIO=5j%JH>6PAJkue?`DP7WTHYliGRqg zHwDV)E{t>@vz&bY@74=p&#+#sz^kw8rtnO&{HfqJqWIT|VRFGsg5d~I+vzqe)t*Ll9E>A5jqRDhE&j>bqQvC&hca@b-=NxC%3ays38lFkgCd< z{rTW15h7r~Fc?R;CqhM$X3c&ZxxAjz{{OJRO_W zx;c2}D-kTnP@cSZ`^2D=@4<$27qu3ov<7M{svohk#&DEIN?nxh+Xme7ByL^oglY_j z`u|#hxFF@XZ|v{gBbCkIg)a)BxoxRP3ND||^6C`i-TaxZW!cl^qr}}V$XM-P2%;OB z6|ur(r!3}pDyi`7s$(tR@M7j%h`+S4$R zo@Qb;iL)H+uRuTRX=cjzaX#TR>?DzEgED^U0pMyq|HD5O3CSp9F;g_GBL?en9f8S*3EiI4!)D~_}&}0wBc1pD)_bV0` z`s;rS%PbhmrRof!g1Z%T9i*C_jM81Q0vS_DY1H}@e9*WT1z7NevBmT{@HJjpx`$pkXz4cpm%2{ z9cemO9?lZ~6E32p5ZchCKa;S@5aj_aw?p`bcl@3EaFo=5{1OMyz}c>idH#_W`0|xc zphM^ZCC02s6Jo!>`$`gSMBCc|*M0JLO>WY^>j;;BZT@+F(G^tBx3GEx@nGLgOvxJ&Tptf(&vvbuXipt)#Six6ukYC0XUXEb6)RWg z4`&e|gsq3px`aDn3N~V2cj9in0{8O`B7V4O4yGU7|7umIc;e-6(9|rz7 z7zrcqe?4|NBKsJ?{Zcf_`}FDCrkeL9&%(e@FHxjG=u#s1z!Go!Sz;7vRP;X2CDZq> zGe9)E-Lz;vh5~3t@ZH>eTO{;+oyfA@W))%PV0G(v5JhgCi$fat9S3gJ|Gu1~l$ee4 zy2uE7d^)q8a$G0bx^xk^%p^`zK4ND0ekJ(PCO7_VT_X?lSwq?9;v2f}29l>gyUMYCLQC+ZLN~)=_Q zZA|zJ5rmq_L&po|YR-b~D1G_AFLR{mT-ej0M?)3F?6cTar~msI>#9Xp=RuQls{ zlo;E6EdZFApO>~Yc>4|s?Tfa^pI$L(I-ef$1$qlNmpQW^DVIn}$Sj1Lc%Cv4{pG(r_JIEO-1&24`lU4* zrCO75S5M!xhh{@PFW)W1N>2f8R;mzv`!||XI+0UliKG33tm8&KO|FkV-w!cOK3euIgQZ-N3{{-sj_ReQwdU*|3euMwnbo* zkHQ0`yn<`2$#UP2BxG<>Y*|v+jkoNi2MXzyg;MiJ;skLI?Eam3N1yzyB5<`?Lxf~Z zDDh8P)}z^&s;RrmCSx}deL%D<<7f$a*&VuagaEpE{IrX>XTG51Z50VEUj1x#PcoRY zhS)9BvPGo(X7s#Rn<$ktKnfDhZzc)#=3xZ3nduF2`(q067@3+k+@weJ&J^f41yASHgZ~kab z6TAToq;D0>5P*DaM%&Uhd`9%NUj6IZ@pza)}&6RRLc46>SyoHc^ixv2Hl@9Ch zV5=(!v%Mohz!mKm18l)%CcoTxhHf&LBATERx&S&N4re^Z8gBw5dyitVt53|>uzs9> znsnoe;mmVC9}`wx-p{A%=^FwfAVSyK^}*85Q9^4Q(M*&e?_IeWgM2AFwa6qxEAI~V5q^9C^r+5y}e(8>OE6TXH7am=F`~6G- z_nifn=5ZaAPbvc1lqL`Na7__6xc$}t^%s1?*0D<-E^4cH5tACMH%axAMleAu#qT0e zw~#4}F4jcMF z7jEh?2loh~D||sF(}APNHMQnvoKo**9OGUC3D4h|r$S9&HsfN&Q+N`-(`&cv4xkDyv(l)31JHy8Uj=Q~nCtSj{Gn9Gn9UnuMgRfkL6k@uK_~#hC z`4qi#_07>!8ec_q5GOCb8u<75Wn%*896@qc*q5Lph05)neOQ!bwG;SN#6|^6n8u;UhY^fmvoR^}*#jk>l z5v)WTOn6(_^QmLJVIfWsK3D>>p7$-hC4OWYfla6*HcXb3{W_g^cbN`~X`(m_=eJkh zqT8N zLO?OWZ;`$*W)3ir6b4A8kP(201hI0ah)*|p3RNCiLsHtpg6j{`L8taWNMd8PM&AUG zX9=qP=ezmng-3E{e@$aHFjWUGT#jR=0QveL829C)iJ2>H%OSXuw7yTIh&J|7;_4yb zj%Yz~Lp=bNtdY<$6=(g#-h1%P=?U(rbHp@f!!Nj`t-)3hV!e4@eI@D{g%38@Q@ZUDSx7#w5*5)SEQ*blI2G6VQ~eY{aqN%6MQVoc9I&)#ert%v>BQF%`-D2+6n>~)W35)4pd)>rkTJfQCsS<ozI#Ug`xy7K%0)ct&l&NOpuvafiO)j-YaWx;de}R9^!W#rz0IIY1xm zeHj~@!s0$BPsfMSYfohq(nB2jzhW!tu@{ zKgdz_{glQs9%KZHQ_-K8P;9UuxJe zZfOdNfKk)Hor!>pf#OOk;5!Zfcwy}}IGl8+Z09m)W_P2G2hUXbx5;4!!>gh4f2ZVM zijF@=e_&0&+|?ui(nIb4r3a-pTA{jx=B=kER5+!!w1sQnJXbLxRcV50tYJ7o4gi<0 zH3=!cKCHnp7#qUgLZ&q@&zhc2`>oU4=pAcOg4A_zNcvRq-bB$gXCKQ`THojWmr7EU zrS>t)KvlUjq#z&)e99PAKQx~QN$@?5ulNyf%Y^ZBgIBDmC7OJ)DEt6&sPWOKuU`!s zDh(kC4JhvKxb1lh12fCa*N=>=o5nBJE`Iwz~ZhHYpR z4H0j30jGCelp1fgE{6z;9B0b>j$d{8P~N^$pwys-%^Q)nqKnubU{1!z54QIHOx#qq zA~SMP<55P4>`k~s+V8!RjefS8D>pQcVR8gvJjyotH-YtDFV8DZuL~pD7er?=Jwyo^ zbl4G5SXK@hR&L}n!qNF*8ngM^G3&umLTA^r^}?>hUaeWuUdQpe225isw=YP{CYYvc zg!!ItORtdsu-K;i-KP@|m%Zl|o~{wk+NrFJiS+%Xj3>_`kX7;6ZbRw&cMA(jrBk8FWViXBk0+~TejR@lx^xk3fs$XH z9@@q13Y0IMZrXpw^lKIN-wHVrh8GIyM=`CelxEZZN6~w)eXxWZ?gFC5Fhy>WA21@1 zR&VV}MgFq*9J*DhOcGZDtAB4He+EA5_$1hjg&iCo1%br19;zX^5kuuVuNy6Ug_*}^ zrm%wZQ)n}Zc{80>Pk5hM9YN+?`5Ks>@4XG5GqR)b_Vz*0wh2&e*6ist?O4s8y~nW!GZBS3jKeR2#*?7rLd99!zEk(GleG6f3>{FxEwL|YcWrz1=Nnd( zBu!ehf4e-ft!-oBiNuzjD8a+p*h>ZBu8D8{B$DUsb8IW-3mR!=f9Wi5!cn^6Dh&++ zu&l9j-8)I9$c-DqQk<1ZIONV*M|rg?>0VC&LK|4+Qre+3sK z>@B52r;Oe-p|kv8w|wzJ$3dp8N6{*8F9kv*r&ItM9h*WuQCA-SW~z^5XZpcUht*}X zklMWqN9ojhZpjAAQuDB}w<;5#0rs1GP!oQI8kM7l*t&&RgE~zgDeLURBZ}eLn8S*l z316k2op<)|fgSSsZU?`0JrE1l+)W63zSxD+1fSw!4DYKa@M`17Ys7|UnWl2-C5nkj z;t}!08#G6{K;5xu-T(3%5ZI9Y)~(AIAPUzW44#q^MP*PGH#KeZHw={3dH4|VpW4#W zGN^lfhgzpI>oOJiC`rp(8A+GugI}Rmj+DWWpeHyQ?MzE#I!WpPeSo#|I{0f#W+%A1 zfz>%LBTM=4tzkd?jSH2>+|9!YmaF=Nv=rnyaxe~MbvK2D< z^m=R2xRsmhxr)_&7I5PuP^HMBzK$h02^ zcH?*PvghjaA(4>v``e&Lm0k1{05+fvYJPufI@3b&8}FnhX_OW#{mY%}d+GpSMSkm^ z15EFue&@v}UMpMcRwqs;ae>^I)R?YzxAocZeO3cKcOD873A%4d9I;yTFR#utCZzcM zu9Iz=qb)3gM6EN2!-t~V#>HVDk9pAm0V)h2r44692m!tjR5W`S^ua_fx%`)B!<|9om_0j}m=q zj+F;k1&OULDz7pChVA$t1RBueDMW6x;-;EbG}$iSVv=;~82D-A1BU+?%AZ6UO0YZH zripN)^dJ8*f7c1xloS@uiJ@5(9v_UnwSE@8K{X!ZR!Yj(v?lB6tG=@4{s{w4kDzcG z(#1FDeSFcwZ)KcoyS-W6We@)2XEorU_~8schcVsO^o&W`{K!Aqjf2%_08mL@av=)k zPcig%gpti9B|xmdHY`kxsHAHpb83adKFQ~15?~iiq0h?ULn63jNrya{MEpn&Y&Q8# zuXtz-S!FN>i!ezf-!SO$@k+@V(HC!Hp~64y^9OZNl7_y)uoxXS550;{`^L02SxUay zbHeLu0je=qwt~(>A+%Ph=w?8kZQ8~em)P`EHt}$xp5ABbBeH4>_78&>5Fl!Tm5A() z#}oGZm`|%!v^+UtXC*KeyGlrNZ%)f;d?q$a0nM<5!I@L{-rKMNnV+np z#a%X()`iyw&+|&nH;+FwN_QN&loDef5Dn}ErGP&ydLGee0s${pc@g716IPH>D5Cbn zp7P$Fh3t7p9mfF*lU_|4H)^+p2tt?_#BureoN`WoJ`7qqq$0J0v7)VxHaWS!p?C{w zA^f6y%JE<0t25l00^-=qL*h)yCSe#Mtl@h2Z|)-dPnMTb%QM+8!!xw;=eDc2mG5lf zw%!7j#Lp*6V3l3BU3vx3w0%!$xi>NTl?vVVxZ@{5M8uSw`Tg+Nf2tx?{3m}CHdKY^ zfAZq-gy4}0wf$fIcM#vZ3pC{(=5&T;bGJ-;WL4=l5bG){fVsjAL9~IT!4IGP5Rr!e z(EG>yx;0{?Zz(_a2AAt+A8=S#yFAt3AWn!!Vgz!)J-PH9;WQoObUNzPL z#FiRPlahpH>mR&#@Pu&Pnc5CO3CRuuaS55f) ziB6b6^Cw99-AzzkUL-+{F$V|GmyZ!EEIb7UN-X}@1(H$TQ+@*G`T|~-knMryIEnR= z5fkzS3k0CgSQN31yO2MNECTuOC06va(>ohW$mzyM5ww2ZQ`{l-Xuw59Aub+qY&F|^ z7#&UHC9AF^fAnVE6)=h=BGpiyQpL>#MBx0}rv|1U= zP(Agtn*{BWYv>PM(pNX(wHS)=&ayDW3oVQH)UjRc_i0#zIVpxtzRlg3n*cE0>4r99 zBU)Q|)#M2020Mc#zX}2%r>pG)TyOaa!YzG+Ek|iBjPh^KcE5uR31&s^ytMh@=IwPr z+m=hUQKS2GYz_BW9gaG8OJ8f`5-cmXR(``8>;;&I3H~sAw_H}_?>_XGpW(%Kv;^AY z$EOy47@3V){L9ftM`R@{t-b}kqV;M6{{ay z(Casq*G4WBp5PNcA1;>}E-GDMfVoS~Pq$%CUwO7CP3dSQNDNGQP-B5Zme}Vm3w~v~$_HB)ez>0Up&DPm< zR{%A%MjXOA_)FiuNg3(D0J>;lT#`WuC{Jyf;-L9oJ>{AL&-&tea`jsB=rvx{@{fKv zVi@#T?F1|7$$0c~X`T=JZr)h(8-AW+r(K)Y^;!qMxkfy3>a+NnFc);^FV2xY%JL=z zZ|6fh69pj=@090epFb@1=ukd37&@&{x(G>NSm{v^TC*w~+Y})mPmHrlAY#g1X^!3f zAx4Wt@$4hwM>Uw9gu&Rs{j@^zZt~y$of5)X zPCSLPp&L>HV`2D*2*P)_ z@Wh|%9hiRG_)xMB3{-}@~5Yi&cnA%@zdrR4Bqs?AJ|d-+XR3-=FN+>{U)4z8U3D?meMZhZJJvl-Jgg5Rc1N0`=Ks%AIlSo09?S zvo#^len8X+bW8x;<}8&R-dN?w?*?g?uhKV=gU4;pCn#eIuX1ri*Aw>tPYd7`IJSOb z>^2@OcAU&P+{J{%*l8l7s*l%ock2ZUqf7Jx_Q$E7LS+IK{y&Pij1fNW;y``^C4Ti27vWyoEEG=?rGaH{8G6>8geYFC@3!q3iMT^CJQV^A zk>>6v-p776QDYrO@PAdf>@0*5QwVq5Co80qiU02ROKxMo=y@B3HSj~MA?hU|fk;Tg z<&WrJU33Q}$|@+bE*Wc-mKE&{%R33NS}r@df>6rD)wBGY!d{_Uz85@6!*QH-eQZ~N zp0pUh32*v^cysN$f8BMZjqlI8&NM)>_Pk1`Z#D&|QgUy9TpeO(Nu<#FqOv^uhCUyE zz!>4BwdL;pcieW=#YVh9v{?ry5O&vrWBUvOcXvo`I9FC03J$#OzSVK~2^a$#o&$Cy zv)P|L6&_KCPqUPn(dfOn*AK})l&_6~<4a1YNA%Mhe8XGt{veXm;uSV>%Svmw^Odm% zg=-?)*tESIPw>9|5I18E$FtXHE|OhDy5-=6r4_3Q1MvKVUsHK4rYJX7hi5VmFD!Od z&Lq4`_BjpF0mLURjK~k@^<6QziQK`n0uN%XEo%L*&={=dPsY!VbjcZQu&6w=ZzD^d z?|SUZ2}i{^mXJl@lKzOO!rIGCe0&Kbuj_gRAQ{j9O$K>dXm(iLK&Z|4W4zvZ+>Yec zR+K9jtZ3%``t>9_G>cXo>Or1u`guh&6@yU2gusMC$n&y6#vyi(YO!Qquiv_yUUpKV z$C>>SH4HhEM4<5}*O$Zk_wKdbHkW{7?iW}VDMdkD=RRBQ|3btiZxlZ_!A@ayl^L(w zKqiz57nD12nCmn`HL;S6n5BM*`Fc4AX5BbUJ$rP&kJttntRhI4I`c5$C^>j%$H z@ZWBDe?vjuuGhbv3BL~Ci@GG@rb^cg6+2Y@t1bnm1ncV~b{SVr_H6g< zPQ+^?2QN?mN+oNlp;rS#ZyRY;dG1_7z>uss++xbsffLi}WnSESd=c6Xo9-KgF#ip%_2)~EYzN{;G25rnV_E3!Q z4I7yCjJ$UzwmMc%4CCRVUw2T-m#`N2?b5NaEV-Ip!R$GNu(*o;N3@+9`kyQirG5W> z!|uB=0jTos^_inIBycjZy{hE3{(MhB^`i8;X}0l$=3PL%{Hi>Y>q9f>={XA}pNr3+ zfg)tIx>nT_jL`=Pcj=r-8bson&?iO#(mqZ&Q;6b4B z>!s3Cya-T#oKqNH!COGj(V%|rHx2v&!u7j}9{XWK|?0fm(60#1K3A|FKbY<{L=eB0tJ@`?gh@G*Jn#Td57rj}W z;$5XQ4kZyr!gjpzNoQn?wT##wZp(W4NB=dGE&im@ zU4!6K{C3e7B8j#)sw=yWo;)dB9qo#HpYDGPe7CofEfFZ_)!k-+*MjWOW6$R^D)Ucz zifcFFVvnskuW2!t>Bm1hOBIvqje99P1Zh>F+;}XdytBQGI^@YBodiza&Se=2RP6_0vsgFF%@6oZ{GutY7WHM?$>v&Pv zOPT=z%ZXqS&Q1o8STOo(ba{{teb9Y5$R)&l$l+n`tk}(D&}KH#!-AzgXRIetqvM%v z#Ncfn2l|~o-vU&nE%N3jtj`~_0EnELZLwoKUIeedg57&_osl0pO&zmeG}wm;0j9&{ zIwW6Pe-^S_6eSE-Q;&n-kg-5I0yG}StJtMJtjujhazp&4# zOo!_)@I_*m)!>-r`5PS;7^o@ryVCpGNei_Yh8wNNL`I3PYYfecKj?BCL?8+&TA1Fk zGe4B1p%|aO3__pKnw3MJ9df6yxyw4!VHda)5#q?J$Bh1DGsZXr&_XIE^p@AUh5>kjrAbgR|$(`sI>kUgfFpM!T<#jM>z z`nMhd$E|;;a(Pm>`TazaM9<3$d1k5yxt@Wc8E-H3sft`6Cw>Ff>FW1Jyn#C5W+vTh zV=69`+Wendq?zSHiE|10OI+dbWr+_dm<%24Wgw02EPcI84?{apy;Y7x zyrO=@j1NNdLk_r&|HEffwL=H{Bx1!p!9U{iqMB-_Bzru|Ho^ zWB!O(9*tgww8yD-CNzM311ZEhD+m_Se^(b|9R((N5<~bIrm{C|bQDdM_vaO8AAh?} znmyz?iYzc@vdiBV-N>aR5B}~+O8(W%+CG(9b)>7+eA<*V(X=%-li8!%6Hl7QWHxOl zW-Co3;TR^Dm9#&gi4+M5`Ra)PDeODrT3o;%tvrhOTN!R~qB)*CZ}~wdB!{?16Zqg| zdt$#;sc`m7O57Ut80et3sS?*}7=W``&h!kH^r>=Mu4kb@s9K0-pX?+!qXE(m5z*G% z>Q5|Q85f8yB1n9!@~k+iIs1(ydWi`dQY)1m6M$p>&}-~-A%)&TWRldOSB>POno8{S zY1O$(P={7{BzkWG+YWJqpI%q2mr2Ak-Z05v=ih7Oe$O6HgE;qL2fgjrHkZ|Jg2K_m zZ)ba>Uo*`=@2J7Akng|dg42Lh+7_oS7Jz05+P)V=VpjH|+gp^6<7pfG>E1#&7?3kh z!FTM6gE?D3NFP|AsZx+e`gs+D(SlJ9Cc8U6l6%m9_!~o8?-bU?CEq}0k|7zO@>gc# zRNmd21ie2Uqt;fzk;!Pe&X&*8Q8d&=QcR3zXM()%ihbie)c`%_yBE9vI9m7k&nCjo z8-u1s#35QiV%rv<)GdLRz6r7Z(mQre2xvO~My!^;`b_4QW+%IG zMO1-+WML|k791v43(3)Cult$x^N2QQx0izlB)oLSG?I8=IS%^S)8V3TAusZ`6a2B! zPM=7pNff>AfN}(`-a}uz&~cOw9l~^GrewYMPwRQZ&UjuN2jQWp8}K`s?(xL)fIT{B zAz?V}p*k9ma2CF^g^ze%Lz-7yCSRC-C{!xqLL~Nw&Lw(3x_&pD-BcMLAK@7`a-n$~=u0V5?F^5eX0EGlS zfHY{1J429cu%wKbB&AxR)x%)7bu~G2`R&{1hot@lqM`6vRGC)1csHFjx&3XW1+5;5 z?FS$-wp32|n=So8yUh00!K-EH_BCF+RPY$lT^PHB56ZVLO`lF)fA z=QrX;R)sFa?w=auax_RsSUl%Jd~W-WWOgOV3TkYN9wcJ-{%AufnW@Am(u!R=N0$6r9i!=tuYm-m2Y?J?0ao5E zu|?-kCs##yO$&wHj+I%sTIpCX@25A(*`fix=o*O2C2@5}S$MI_#|2n4(;hjj04te-W|CWCxi2|Dw?vo7;>n%8rZ}nh3tf=zXHvcnC+3t@HTPi9r z*Q5}PO2`dGLmh9n-XBF)A80{Mn@>Hh2bchynIusiiCf)Mj(Yr3(KLJCKCy(9KjW_{ zy?7R!v^k`?@4;IIM$GxMQY_NAagv;8-HugFIyDpQ#~rp>aEc%91R_GCx0X-M&}A(av_<0pT!Or?SAV7vcyPc3l41v!Cx+8 z{jP3tg52`Rboh(T)%vH9A!K~<=`0flGUpZTXi*9e{K9t-?mQNlI>K{=$Cmd#}3NYY%MucCEh3RKED^M3&ztHJ8zfo zkxl{~I&5yn{Y>$~${04zpXiwqNeRng!_|l&&}HuMq&Ua&Pvmfu;rd%+2X^JBFSaO4 zNt1+zV`7VkUphoygPkJ>Cp+7c#Od!T<}jPWlpc!6%$;G;{&9hEPD;1YkM%%q_X;U| zXh*FysaACpzVOSM)u&dL{O?ueYJSgP{#UZgK~}B@YC#*mm-6{H`A1z|i3uN%QRwmTDbWNGI92L4E&NaucMud$Q|7s>Aqkn>PYl~tXimQhxpD_{J%$ib zdV~g(8`fEOCY;$x!8-k`>9b~!UacQxW7MIEXLm3V3@3gI49@Dj=Kce({+$16esmID zS<)vQBnJJyq>$Uf4GU(h2&i~@Wv;t|9xLDVjIsU(ao*Qm6K4+ncU)Jwn@_LF6ZB_p z)g}**5@UrOdzV{OfV2Bf=DDISPrrX@vb<`aVkGwBc{t|n`@oA-PoSq5mU_l zyHeDC8;5+iI`u8(91~%Z8aUAUYbWCBBU4@8N5E#*%I@ta(M?oRyHB%mG>u+D|9-1g z!`)h_e3lNX9Y429Gz0B%dn_YpkM%|EmOckTmw1zqSYPcgp*+m{*uKG!@U9)jq-{D- z{6}!UWCUU=d8Co0F;Iy68<@^sKT2-if&J!l91A|UZ{$j-gp?Ck@F zPe>FUG;AZnb8-fbNt0*s1mmI>Qu5YTXZ8YP1&KPW%f@2|x3&_9J-ih!_5S;ZWDD zIhzhUCMfCJOP?)$bO$x+#%*Ju9A5Yu-J^bKzUDz`3o2TQ1L zG9$Q-0EPwT9rP7|ZiQpxkIF9Fgk_DqdBQVAi4rwWt+_t5b@$`9WE9TorkxUf_+wPr zZ+uN$yY$)U+@S`hpxmFCwFmM-NQg3Zp`Duwj@dT%&i}+xMhgjRC6=C8QQPi`D^6eJ zN-9$Q0sDMk@yN^&E&>f6r$xZbd*()Xnw_!#x{vmW;Zz-1_2+>wFv<;T_Uvs7dvU?g z0rANU*K#lj$;t7Ra$$1alZQR{n?8qX*Qxnw?82Rcjh{V+x>#RZ3CSaVtYD+wlUCEY zu*+=cn!C&L#%_|mo8G_{UAvKkMq7q9EU>f-|63PD)l9ghgAzyH@E9_oPp6z!GPb8g z{&xxa{j&|U)DX~6pusY%PBZ=wQb?jtwm)~MM4xtPwquOgNP*rqR(Qi80OeiHyxc2@ z!e>*-8L)tRo%BN&+!OUiE#@hgCU@mjYP-A}naiA}zYnsYtGl<^_ieYnEJl{zUiaa< z9U_ebi}OT|o~!`f{5VJQAAqT1axzb~Ji_E9`ZwT1Rw>^&;xO^t9PeOos+3ZPWZhGC zzC}PWyulVXBXL16g{Zpvc&^~z1#-u4Ec<8u-7=$*F-bbE)jnW#9$Mu&U#*ovmqTuA zbpKgk%U>|e{wqk*v&@PP*xV0y#_nO&&n4&QY|@9+3`|}@g7fQv27JexhvcM9{2XwS zJ^2{sPhzP=LLMoOzfZ(~Aa1qg!%Yps{TR~|nj^NHA;8)1^*{$5u(E9tgEdj+C(aiBtkzh=>9 zZn|`?vFf0-ws75A+A9Q?NxsekhR6{0YJ4yfT6MV@d50fmMwL>#!v4l~gR@`D#l+u= zo;p_a6sGTb1mELzIZOwbXNh1FkJeSgUc$fVfoF8KOyLq!M`{l}H~!=oyXZ{YYC*0< zPjx!bNeIGx6hJ|F+>*N+dJ51x%ws3-U4maM6G4Git0aKCdNa>2g1>oTMu?>Wt?z@3Ml*kFkE~04Z}j(t0c3 zf5B@?F%9d>24E5<*zu1Pn;6BvaU*jh<6PLJ_hTo`hp=(+nnSGVf49EB=Jp(0^aGS!ag+$GYHwCmo*0r3Z|-cK;g@Q(ps24+u*sn0Yw{;d18k}&KB zm6;Flg(c53-n~iAEZBNta4v@fBMG$;HNGut_MEVTdAvjO2oWy8{6Ra-XG;1K?7l5;Q`93a_#0@UuQZG67>~a~KzdaF zC0=c+U;GaO-S#c`du59eY}`&KZ$y(>FSB(Ru{B zytv#Yxq!uqNVUSFv4@K63=`B`aebX0=UI@TE*hrjLRzt#Up9N_`u0z>Sc`-v>|qn> z<&X@hAUn#B>A*8Srx|=V&Q4A`RHNBs%y_WLmvmf_r+>Cl6cDXv{`dI8!Xr-4?>_^Q zSm7BNOF9QD9+m)or@!Vsb zYLNYIC`W%X>E-cL%a*w~Iuh6kF+qRu|3yG&H=Em=ZoK0LiGd#}8Mjkfg*6`wk5xZY zTKojWiNxBKOV6MfYKiVfU*xY@*psw^&1$QX#r+VyD36l5_i*hb)~+kCPw>ki89S#EDBQf@zjTd3MsfyL8667D+* zrN4`H{f0a(8EjdS`BwH(aT4R{y-mY5Ig|LH_cMn^AJK5aujDBdj!OrkyJ*jeL>P(K z*&_C|FPO=+o_LYh%?o40`uFb{PRySirn1|B3p1Nss;p1Vg`Y(^J;SXYC`Z+W8gpU$ zT`nCbrq6sGwZBmsv^z94{;vBQ6HL}YRw+&mzL(_^lm!wnvuPIomgGXYN6@vxrJ$21 zm79^JMvH69TiJ9I510vFzf2+KY0FeBH;epD3KtvjgBB+Dw3+f$?fv6f^0!2=L$Eg5ItO95~_C+ryZCe!CFn9|bER*SZ5 z@bEn;M`FIERhd7%POCw<0&dJGli`J)d$PDLtY;Vdk@o{~+qXs-fFJ5Pd_q;7dD?O6 z%wT+pOe#06ulxm8q+$m0 z7n8&Am(Z=dgqbp0*c`nb174#f-&G>515gPZmFJ)&NU3^x`nPMNJv18qwfg4KckbCU z<}F=yyycLcGTE{t;XPQE1KQ%Bh7VQ+fg4GW zf#qGdyI_D*IE!A4ub&eYz_=6h>;aI7lR7Gx66#W1+}ira`5dM|p<>UABUSLR1)Zr0 z+F^P%-nUFG0JGbwHTo!Y$M19~fZ(mdhSB{ty$t^jZO?z{&wLJ*Dcz?evBE#LW_JFc z7623ernPGblXDfJ;M)J!ZA_wb%R}|Qjy#gZ?!utCC@bOvX^% z&>#n=9Ue_iW#1!9Wy&KVso&|1k%G`nxBHG_FoH`3X0z$mPTtsa@P?ZgPz&98jPW^< z8i9)j-+rs5C};=ACE}_ya1pP?s(Hw9rLklM<0qxqyJ3`&&whYzPZmDbAD?*^QmpM< zIFB$Aw3Akyn{)bNqZg;9(}uOY2Og8XEyx`KLmT{kSNcyRCIMNujRViOMRfQHy9b4q zBkgQp03jlDBib(d-iXso;OMXvxk+^@*YKFuoNwY;jMRk>wcaU-8l;$*c%IKwnhXz4 zXJp}-acA{q2OO9nEci;wF#coR+hMgxa#c4daokIFm!3i~9D3cIAt>!Du&QXclj!q3 zBW7N))BZfBJOrv9wt333@zeihf>&**u?9b%^Sl$HuKdTtv7l5hy_Ce_r#9D@@#u7z z`Nh^#rIxTXUH&2*dhkP$K!aM)fYY&)#{%*0!2^1`MzF-OGhF|{&`+-GRO=z3#jS!} z0cP;G{;xe&z?@jK%0&Oqlqz7Sr^f=dvE)2}q0}Lf|ml9Y2;P<=dbwxdbnaOVc>7S0{Pje0I!Ei|wY$dTqt%E+M@v+@%gsumG zR&1yl{Xqk}y>RT_TWup9@Kye~0LG{?*y5<)t!G7Q2Db1tJ^q5aT|R<~17JmJ3TLHA zp<3SNC#9_Og`EJ9mizWD3(azPMumuaG7UVGXWkTJxPw-l%*bhywQXp)Y# z)L}S5N;nb{$8`SR9NelLZjRVsYDHX(Jt!w9~4hizqX5vpg9#%T1)!;OMNK zTqIi{&5^j-mo1qtC*D+{frjDF$WxqLVU0dMY1C+TXzwJma^JI+Q*j<-24LWk<bC=Q85TCJ7qY%A31d9SaDuqhyF+>S2dW^E}6ia5{V0v z2n%fj@5Hu|q4;xU@|XtpD%&W#?7g{spxw}^Kn7X%xn_>4umI#!}Ip;kr$Ec~W`VIYj~dhr|W$*X7N zrTxmaRlI0WgGr0=xvqntIeonV70a|Epnek_&3nxTk7NRj3+YC+d$7D%$}0aqTXtt! zpwj#l^HCKIIkuejeZPU=(hY03epn$g782neuoBDi2!6IGW|-ka5ZwGDhK><)P5R`F zJuXhfff1+vQ|xq*+EqD@{U3dv^+57ZcWBR$HctgBwHieI5~5SF=RAwJi6Jmox9N-p zW-lGfi+!+gW$}_qO#!JeRpwff5@>~mJ-U)R(01d`_j*>83dhQ{&C_%fTN5h-aiiLo5`7<7p zI@hr0qZqZi-3b2<7rQM?0Bbsob{^EeyHV+KJQpXTP*7W%y)5C?U-I!Cu8>}1pA>4s zR`S=L6P}*T&X{wS0#`AOb8?F*&8-;zE;mGB+5V%iwgmy__ zqPh=P>gq-Sv!3M^zV!ZIwl*IZ$)tvi4a%bh+3=U5IAXq92{U+RtnnX#!XYNA2%y5)BU3eku>tqv9)y5K> zj$AzMN-0?Gfee-OwtYE*3EFa3JhDCuf0&BFhMbpVQ6Som-!lBDN7sT7p{Ob~(>voj z1|^AstpZKKt_yGsSieo6S6al9Z{!;f%y-fOyl2~Lh@9OMrAAku=J@usdSJ?F+Vn`@ z*JOIJGFqSUH@LZB=-xSv%s5NyagChJ2OG;v0 zC`IAAZ9&f8-yPV$r*Y#)_oW_-ggmuwK0%p3#+Zx96f&s>H0!4wv`U!Z9q=aSH2J?Y zk8_07b#p`W%Fbp?NM8+3!Y@O6bw=AKrH4Fk>d3zp<+7zyMF~k4^U6y#Iwg;>pmE6w zM7-ze4`3`(RgyduI&O^!2b8D%dw+jsSWaf88y#F!pv#ayhtwL%MUIzt-&>Y%{Xz>% zI`U#-BB(1X}^%*_v9k z546GBvZZo;99?!7zDFy2`?lxti;&3u`6fnia!v*d^;I+>R~FZ_a01xb41(41IM~|& zsD+HVnjs_eiMQ;RJsVt%E1N-lS46*X+X`hq!YOYg(`DVKqZkj4eMN4pQ?A+~JNqW?j928{VyPMTGR;2|iVwWi?Vy1}(H%;Xb9;lfcJfA%_O0THL!5Htv~Q9O2^tvz&?U9qYyVAQp| ztf{=r2&#d-QoZ%+V#6(+s*n{B$M3QLSE!$yEgi6J$6#CK03)O)RAouMAsg(3&|XaO z289j?a7x+ZM+?Wl*pM`&Ye_Xg7LWPnv*aIwjt^h;d(qQfnHbj>f@e_X7sAVHo+=sZo} zg1XysYcoYxobuC1^_&RAlvb4dP{C2vF0J!7^OI^+!0`Du;2xL0AU7loEuHi(8zln= z+d+L-+QX)l^hrO>W>=NOYLXN~He;Y;bBBCLkJbF05wtCyi&%=2q{b0DhPMLrwO1+I zcfU-slp2y-c?J7JKi=E2&SC&9m8qL0E0qk91>9=tsCqQ?4`C&qBGEc5C+RhggGV!C zBT`WSVY}c|K?RU!$v7)&_^LpR5Ot+>PxeaJLHc>K*;;(u^x$3lO{4HP))kK*Ckb_h z`C!m`hXw2Zp&3f&?EgpoCL5X^?pa=rhOF(ym%# zB{cf=+v#ax>;1Iw^{@P}&4M37;kSPegtY`x-3geNVZ>}b1?$&qAxW2x_3EInc>Wkuc-69+@$FH6BI6ltzio{ccbCP1LK-ym ziOc$y+6&0gq*b=01KovUmI?URo))+~yH)jCH%e;R(+Tfe!+RWQiUgN9v$JF32puW1 zcX;z@po`^D%xqXyo>x>ZpgoV}4f_8`oHsn|+f^*4>O#X;h@x)$<3`M7!Yt1s)$QmJ zQ(L)J3#IF4jbuizeIj!`a3@_Vs>6Ge@ zBPp1|;|6>!57HsKF-Qa{vw(j9GMeh#Wk*2(xQ2ro_pd$$1|eP;Y+CD@3=0p4$wuQIIcn3X~`63X5-etDgVH z7=D&n#ta{1_GR?v*4`Q2FU;r3ikGGfYhV9AsEJZCuK3;5nW?eA*V00U&E&Q}F0=J{ z+H8BqJeRP_6y1nd?x6s-A2NYsULG?~T$;sGOYdj( z$9&y39#5)j&?sC@{^2fcLg_kPtZAI7OSq3$c$+OhCgF9gbjZTKq4kU$mCpP>+I<%K z|6mguPY;w4Te^fub@=0&G-uUaL4D$~yy^I7gPSSnjbF3y)zR-i;F3aU8alKZ#zyqo z-f<@2?-m@jHqD`h(5)w579~n!dj}GIV1zkqEA|Hi>3N}KP8aUqbm-#%A(b{2STAEy zN!{qR!gbCh_xn~!7xx7nAPHd{RAzKHLX8iWvmxS)u(GUy#lLan<%1|mN*Ttlj$_tJYCRZ@ycxsNl934Oh)gZb!lRkFN<%8(fV0m)& z2rrOsduIF2U(ElPu8mBwwCvfmLcK_QL^jM`s(n5iy?dRGd`0cLH%#?srUukh_ONFW zz=cX9Zfw9A9t7ewQk9$G+Y|-hXJd}@~!(g79r%l zz&C2=)F57%=a;+u+!d5qm79<&UU}~YB~*YnOUEBKE`_z#1N82fLCh%VzKPZ5v;3?% z4)aPBUcBK#Hl02*Z}y5BJhZ=8I&FS;Dh-P92@?j^%iLv$qhMfHH7-GhuYeSESGlb} zuuUluQuU%+Dj3+cKXv%XpF%C|i$o9}*eR;7;cX>%#T3an)GN z*2~>>sHpVb3$SA`-4AmSgnV(aoC1g_{w|c+y)h`BeBx(%zFzzjYfhOF#!6=bu@EQp z^CilTjpD&&$A;o(xEiu011`#s%otH~&>)dqNxCN8O;C)Mh=J@VUbDb&+On8ZepnOY zBe>sZSEYan+8y0#zeObAPE@XKc@FReVCVka1(MPf4mug` zki~Zdj*4l5K%HleJx9sD!=(E9wt|NO51dCk=WS)S+P~tX4!_Ti*exD*GLHgJl8WR1 z10ApcBHXo&{=xQ|j67i^UoBBhS+t;!2T^wL#nHPQn=2OP{{s`!{uN; zvWf;r_lO38d(7p(`%@hM#pdOep8x+}x7C>V}`xY=?`$2-%>luld8B{IzN#4-+}PGRBjxz4uVpV&^s4=rwz>EReV zIDt6J#Y&)%kwOab3fLm zH76Wr@D~H8g%}qd(&NK8FvG|ulkG|(707JwW_D6e3!yy>1{U!U0EJe7SeP;j@f>)a zqwsC=$(ers&+xCb@BX;je>KOQN%=i34F<|t!cdY3iWV}h2?$R3)_L%$Pvt4pHMtFx zT|Y&kpU=Tm_S7DB>kH2AePN9>$)uOOtI}?ZH497?QzLA(QeAE!4GVNJQ(1h*upn+A z2@-aif1BHz!9~?H&{;a95S&ny{b84Hg%yU5Jz4oKE4mu^67uLgQp6k9RV`oBo*yCKiuckVEI>-GM6f>0ubq`jSyI*K1%QDJY&Q}JQ_TAcd|iLX^U zW2J$LyaHkwT(0?o8uOUHgW6C{Y&E3bcR@e{XF6&hBDRf~l9n59IRcHH+Fyx7$NkQ_ z(XFAYEYOl^%|15iTlTK%$9s2D;@WNm@vstY=s;!s(luRyT5truUljD$R+CiHj;g)f z*W$9zrCe;hA8B2=`lg=_c3Y892WP&3W{7ok5SrhOv=i}uoH1IA#8EalNoN;-eDw3OJ{ezRdbrd%Yvw$opmJ*vG##Hd zw6CDsvk6b3ZKTWv0!eM}g83wyqKZCTXG*R01i$q!#<_F2&wpxZO6gQhaOq%3)ISH< z1;N|KnO;K11KK5<G@dh;~fQO9a>SiAyVJ2Ah=!OLOkl__U=*-T0uN*PhQV2qaju zy(Hb)#yZ$_6bcT-LjYQ52!96dzU`|!XEyffv>f*@SBV)~M-8*kbVz*qFUI$LccCX| z3=;Obd=^ zope9j-Wlpg-4q6>^~WTa5tJ)sIF%P}gN@Yn$yx2#q1`5=ey+6U+RcL=2Ss?Bpxv(Y zW^=HqkqRNKvD8G8-ok!B#47$1xfSQSuX)O1ck8Hy#DC-U-)CTlUYkiCn^uD$6nGQL zf1c^1f?MxAuhu|8W~y5Su4 zkq><(!2yesQ=xc{p`(%1W?fiK?Hl>6*1dDwP;kT(%$CB6`jb;!=WFLs%3TkSvx13G zrIhGT5!iiUgX5 zsjQw|9bw@*>|`@^@1n4qf9ia|j$1j@b(}|ix-Fd8JD{2MUR(IJ286vnwClV`pms2T zj)#}Bxp`Cu{tMYg3hDY9^>}>-LoNRyOVU3zn}b|!`Dl4F3r^VZVs^G62n^$a-ZAmS zmDLvroWv9Jx{6ImEK8r03GrErpn>ZWmK`D&kA5}2$aicngjgArZZtX(-gNaq!PyzE z&@joYgByJX#>{0a!(OH2OF5-Wk>)MNtu9yqvE5s>ptS3x>BG24{4b`TA_9cU%6YFm z;(Fvcil?3QM!M|NR85Ow_h|p}1U)}`$3wobJ@V4wPri+cb6SzT^Bg!cajOMI9ocTCGzC*J<-ly}JlOj3p715@)#(?m zY9h?%cBU#tn6-J`8wA(wY+0v4W(!K#@epu2|K&FP?J?H0qf4cKw{5?a~6lBBd?K*!M>_>FCAu z@_W*J5R!RGA;f>RX)j^yOfI}|oeo@{*HSV0| z%h6BH6y3l76A9_XovC_|ZV+^Ep(9KJ>;t@K;y3oxi z{QC9TlQ?O5lsfteq9qy|*%BS5QcLEn)VHu!hqNQFtOCgnQ#d6X#Y#3191V=P+()Xw zmx3kl9e+sFm&Ue+-0B!4&Sgo=YJTG>r_nx z+qNa=JF7m-T&i9-MzNzRTVQi+6Y{1=ZF7-Q-&4GF4X1HtVJ7s?ub=%2sgZc8qxm}r zrK`8k#5){$KM(#gSuy`%{~u%GQiI7&=aHfFwkrmW0ytsB+0g9DeI6q}+b4lP1d0du zytWp&9Dc7XH?0$_(4D&f(*it`FpKz~^=e5z*V%-3k%taGX~ec&@S`sz1=c=Jqk-L4mr;GILqox_ z{K(-0=7atvBE8B{ zjP$qF|HjJ^Hx52^7VUIZ^zF`6>sb?Dw6w+Np3aZ_KyI?ag5=oKdJ1{1=gpNiTuUq^ zS^02`i{WKCBB;)Gu-J7Yim{d+_xSIeh~kr(DJ{l}`co?&+7kQ^J!8Eh!;Z_zReavm zrBSO7)!0PI%VAC8Lp!SjMUKs6sGh2eehhL*);=cPNvpYFw8G%x-nwM{^_l&4cOr{+ z3qCL|plRgf_$LCJCatweyq8pxA)c+Bjj=j1SiWhxU!f|tKQnH(ncZM2J3s+sN~up7 zfUHfA**r!@=0l$eaq@P1$d*GiGB222Uk3rOG{6RkS>bUm%QBeXYjwmEwU6T5H3jhenjBM_^v>JVpta&JokAnZS zqthfb7`wA2@{yer`Sx8l=V%TcX`QA;&H(Kt4XOqVN?p$Is#>o}SpI=t@mf(suzCew z&21mEk-Q^M>KQZVsVlIxSX~OwwfAz>hODku+R{5*=3-nz+$R2+vo8?M8|>#d;%8%s zRZh`T8}Zg8$MWnQKl=~YXq%J@njdW1njH?Ty=@;4dZH`JsHrUHNcQSEt6c{RaoghV z8N((xhYcFiMwa13!aGP#anIe_6Tx)Z$xd`2($2NSd5t+GY_&EpEl$$VJS`!!)fA}S z8tptx=~H>JK1TD_Z;l4|S-1sUrw_l20xoiwB~$9UIooY_ecHp;8tqeXY8ONEUfXed zQ+{GyF;YH$Igi;=29Ra$v}ka8^OnfJX4|jx%_St=;{KU!&oQNjzxaJg`jc)iEot}W zv!33@nZY&BVj!#$7qFd~z~{A84RYr!h+k12*qUrw4R`x@+KY-jVtc&{)UC1Z`P!!X zRz$PuyZw`{oMC^F8e@)2T!#DqUwc;`4`uiEnWpSpWT`M&vt&t`O3Vn^%D!bVL`We^ zmd7$A356_=L0KwctR)mOmh5DUWQ={^ld+DO_vl&P_xO1B$vv|B3Rv_3Vs1&&D%2 z_Y=nKU#ACA8FvC!%lXq|D{9I%;x#CevnKfnGfytRzk*Z1%WdUbh_qCvai-k?y{y_D ze%d>y`T9qfZdnhuN}2O`n2lvOi_CXmdh{&14CVTTsRqT>KWq+{5_{b6qNK?XoQ^Gz53lNAx4VqL?JM4HnEhh7WxslThFXrTR;8zR>D|}@PD@Pi zx15R8^gnlq5c>x@))(iyrD&dX}*s1PNC^tBf5PBY+G0<1G;))kfx@+@Jw~vxi0wdlsNEWM+erkRCDVp1#Bb=$Zsb5&CWs`7Q zHJT;GFwEbaqV8@{DT|$ZhTyE)Hm;Ywuh0|f!*Q=+LF|hJ2x2$3O19m3HX-lB01Zs| zEEFJaK%PRrHkeS~zIl`FOKvbBxDzw$(`n`RX~B2N+#q^=N^=_OD&AU-_1i&<-O@un z2@xeTC72xnWZ}N^WVWt9`&=ViEXX-ZcHC2RYfi7{S9RzReBnpFZfXdq+9~QWvBC6_ zsHOhgE|F+T$-_uancW6yiZPK<(%Rz+qJ6?$`y5ZA&23$$+fcwxXLol7R&)5L$HE^A z_*UW?@+_r-z4ay_wts&JO?+Vi*8)G3vWWE|mj51SSzItk~i zL#lMZs7OOCzHuB$bE$2@23NsdVjfsZNPpvLBB9RWqmovlR|UEEuQzrzt|P~^I`9Gb zQPXb;qhe0mCh?T%I&Z!OVF>ck6IF9yr?}`JeuTvMK}D3;%474_5eVaHRK;xyoo_3_ z>vZ6EUlX@`Offt(1++$TR;;N{tXmG@Wh(HRYT$UM{J!iW&-ZQ)KQdH>W!C6R1O|Mx zCzExJN8=oep5f>w*J$?aUvc=e7Yt>x6z#8zV9HUUjT5;GsC~MUYe2OVI zAQkVHwg6uq7&Z@nv%pr-hPY4&8`<%?tJ^(XwcMh8qi%ReT%W(<;y6J%FE0?E(BMY} z(8M5-9+4s{Uxnl3O_e+;^Jk7lNpEVTt_N!4$k*2IXf|;Sos+pNh>JR@$>GfPiTg2H zwck{Z$XQ9+E4604+k+q+3wn+X7Bk8L=AE(`W0=&Z@UoY>Bbv!D(c^-d0DAm z{pHM?^eN^!#RmR6n{Y~{q^4*A03f?U0-B#Ki;0O1F&aL0abQ1J=)l8BC^;fiG4R#pZp9N&(G;clfZ&(ZJy+mm|;8A$Ewzq)pJF;sXr5h@Xe-RuY zUg-Z$2jXQu@^YvQW%|h@Vxfvn!oa#nlMGGXtd1@Fi zQQvuHndwU(X&_o>wL~nQwQ=Wc5 z=RL8Xa^X4*q*$PjtsoHgIV5C!#=5$6^g}7?r%9D79>i;=q*Nu-o%O{UT+L@-hPDn^HQ7R@fnj}XP}sXF4^vpg@5AHp)G*m2sy%IgA4 z$BpKLbMiOhN~cDCdi3DKnW*6p?0RVBYs@%+sXlh22$VJR=B7n0eUDA@)s3l?U9Ek; zP_be-orX6d(V*`*ykFg-j3^o9u2}tO)X9>t5w5i7HGSGJ z!~LSH^nCXI=PrEr3rrm=hVy;Yz~GboE1CSz_^J9PWapw|kTcrxmuRn7G@>e^kuPDjNSF;1oNs|*w zLO87x@I2r^z#}4&l`+O|^2^b<)g)j>7R>U3kvIaL|1tECyUekbD!V~` zq4z|F=6Fl&Wa|C0SHJ&Je>7Sndh^~7H%va^$_NYRMmWO`t~_j2GWXAEa~)6(+4E^b z^v(zFQ9F(-`JZS-VLnEcd0rbahR<&M+_Z%RiR*1pID?|a&*~Gqj zX=((U&%VO#P9bkb+Dv*g2W9{qQ)CdagV?Pe*I{bFSx+ zTkYNg6Kt{Dv(&RcxR*<16UYWLHfucy-o#YmH?C&%W^+(1 zx$tDyH_C-Wj6D030O8NU1Sw^7^pU_4ggc)~V2P5~SB&HWkgE63uAg?fJkc1ut^a57 zOGBDm)CD7H8VjFbrHZ!}hkxvTeD3OfNecSFSsd@AzS6B+e;BV2hB zmSuq2Bepu5a4&c)*;CikBYm59SO%pWpyz&>a2#w zJ2f7a=2;mKWTk^ipmV;cG!Y>Xw;Os}C0~_AasuRz(pJ((`D#gpMVK$^J+5;}n+5DSBoqDTQ?%OQu*=PswOCz& zSg=j@^A~ZK8>Fu$WZ&j8H_e*h_d{^-Riot@>-F;3yx_gu1>dJ_8EKK4<86`UuVWop z?i3hx&xOZ@dsLLNMN4nm!=vuixl@-nNfFa~m4X;F>GHVBf`41s6mw%F)?&M&&+>hl zB*b9|bxaYIFLUI)APJTG=w~lf>j-Zl!Ab%FEV|vPF@+s$Dh_F8{+K@HpM#zgl~a~& z7am(qiSwP!b@6@js6IsW_=bClV>*5u;{N$d-(k6oTda*P3101 zq0MXx>QFE)x|>^u7+hQ?!kw%XG)r$&M-R^HGit(Mtj)47>_ zD;`xN#wwd;SFs7A+~iwZZR;83Qwmedta$zr6BmG7y{6B2a|(3uToTegkUD;Cw0X3K zb!KsWORtRp7p2yEZ%;0#$007A!Q9mwNpF?=Tni7a4VFyOsI2xr@$6nnZv*#+F25$V z(WA8tW)zJwb30&1q>S) ztQwHWnrgQJU`lY|#c)oHa%Y&O0vg&*tlkPdJQIca8oN(;=ILK&Wm@<3=E$KR_fDFx zRNCZKohga%fNgEGfs1VF=Va`s=R$DLPmJG=^c&-RDv5 z5%Y)Be~3C9<$3|?K>V$J^GA_1TFHpQe<#V`e-2F6D>Ss3XRsiY`*%qGo=9;rVE4#- zr|;4~5Bax2<{8l4p$92f|9<+vKhS_euD@RdNW8yAcQAQ=E5pGm_gfi$EjGWE;kPpU zwnzWVmi}HD{!gw9wN&@!nA@Z{qO{jV;jTTme{?`R91p4bk zt$8iY_HI7sL4$w3``z-ll>S>A{zDBB-4*yqLqjX4t*&YUl<7ab>;HXA+lBBY1{#m) RW-wuCv^Dh9i>}x{_%GYbyoUe) literal 53199 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 BXcGVc literal 6381 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 v5yiccg7lHrH9-00000NkvXXu0mjfW&&7! diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/120.png index 9160b7369efe594f75c06f691b9e50ec039c5e06..ef5098953cd990f4309aebafff30e92ad073ef35 100644 GIT binary patch literal 7495 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 literal 6722 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 YAMjfFKJ?N*^#A|>07*qoM6N<$f_XgS-T(jq diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/180.png index b3d9a02ac09abf79235f8805a0de42c221f85d17..7e64745a73935f13fd3e6a394222bd866fa1e984 100644 GIT binary patch literal 11737 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 KbhW5q;Qs-&S&~Bl diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/29.png index a5977e7d0bf56cdc0675f36b82a373c939111bbc..60bea23799d6b49db45f0a3aa14e015e5518d7bd 100644 GIT binary patch delta 1127 zcmV-t1ep893W*7jF@HlzL_t(YOYN3hY!p=($A4#bceb?KE(qHqEh#D%QG+*xq7f;G z3KWA68WW=pqTq`{Fe+jUAta=UmzWsJ15t?~1Wb%JVpG!uka`OSQqe-CNQ>ADt&{3;guG2{0L2-KyNcB3Df4ngKt4j1fFezPrE<{Ko7#rIk4_} zcxEc(`@ONA(96AWcnh?D1Ils=l+1_94`Ja^_@N(|2xucVLcuLM?4Akp3f#f2(7|p= z?P`d&rIa$x>VF}qItVovVPlIEI%*o$;EOU?6wU@`K`le^`I;o%Kk1(FDVPpVAAqQU zIgQY1o4S}!3&7Fap*UkN3))gLd9s{C^Dl;Pf3(7`P(ofcE`ivZvBS z7%9bcw9lmMF~y?I0rY&QPiJCKegZDKK<%n%m<@~5ipl}~y)jPh+9bNNEfflg$uN3k zm?dxKGV9?92>04zPY2A<-FU*|xPS9oKWEOtNDO=3_|IzNX6FNB#oTlc(OrWaB{T|aE= zfZyUU*$*GgfaPho9O>nZuZ$6ssOT`dWgsGXkdx-(n0LLhX@_{oGzpp)nBcR=RiWdg z6RJS%KaREGGw2_Nk}%rqOVO(4L166g{;R5zaDVY@IJX@Jn;) zt$zxJ4uO!_SvNFPNj;)?sYiIDam=!9&^wfM*mh&!p6Oh7WIZA`HB7BOXk7&H6P_g| zF9l&{9a`yP52ymU`AcMVgR97(5csQClKoHB6l|Ic%{PD?bcM?PAjYW(SU&WXACC{URjk%tj5T}leRmcuRakZt`~?Kc zXHfX<%h3Kf3>~AtK=egC6(8mA(002ovPDHLkV1g{%7WDuC delta 1317 zcmV+=1={+F3B?MKF@OI_L_t(YOU;&Th*VV=$A9O(%&@a>I=ky`8ezJoCTe}p^Gov$e z?>%wux!0L-ch-fVIA%AVC=V=bx<6D-B@6 zEJdgULa@q3sC*=-zfGY(kG9G}ivy=FLgEPIQgG`67&lo%M49NW)bMg^L}&=iU4fsr z!09%~B=Jj$RKwzJFy$c~a(6#${u9RAuy{N?QxDZ9j0PSC4T1gL9__0Iy(b0HS}<); zZNAzEjV-WZ4}X{jEI9*vdI3u()f|I&Zih$5l?RtV{o#?2O?iC2%%iWyQMmkhsP&C+qB`;UWa-P7#1A;IK#K=qEyx!c#iM`878Fr zB(;-WmhLcVoGtvhb%h2ze-1wE(dX_cRqH&dvEa8kP-p36LO~axt`6S5zMnIn)KC>S z{f*gc4u6?+ni%GK&1tC6Us5o?1MHy1p|7gnr(0lVg`VNiQ-(pmc(Iqx z-43ysO?og#^=*>-*Vl0O@@hZV;`vntg~3*zhxaaM6)RP{j>m+k;OrbhRbVb7R4Oq{ z!J+pD+5K9Q_^cSS9;x8oRWYiYY;A+eZEhHPUw`lt3;~-HlC24k3yw+LhFw$Pu@Oe6 zbWWA(1YGRMQhPZ;Y<4Y7i0f*U1XbiROG+0ZOoo826imvWq^Y_AX*H?-6rCs(purnX zCew)JJMg~i!m*+li>704S&nF~*V-QjE*P{cUChJ>kk}3b$MLGBW6V1WW-LfmCtZL# z9)DN{?yK#1Z?qw-x?s{X&{&80{aQqGgMRorxJVv-2jJ{F#-XmbdKqV5jAUl9~sulCIXZ3ehIKTqj4E(+UdfwJnsP+rhP8U)J z%sve@<)C4uYub?8_kmfZ0jeVge)h(pSAQ^DCW7l~iRKc}wFJ_~ArcIPsz?dLl6aS+ zaMvk}`l+K=s?O4T;4LsKKvl1nKLZ)E_uNVB;L8XVSTVXa;Qe}u{M^l0S29SuLW2!~>tz|5If?p{8xXx4;g3y4Rr>b_h)870 zCU>F{nX`#Lz3(Q_qH6O8&yjy}Cw9+e3}RrK2-DzFE=~N$O+@E*!?6Xr&59Q=-M=8; z6-Q=Ggy9l>?q@`N+9;KVO$wCkTz?qk+NQnmG zUA6FfW4L`4ej-9^bCLv2fXE#aiME!Wk^g9TL%Z3n zti&8fvN!*Vr{2J2?wnGIYy?9NWBIqY;m?lkvaP`Wbs#vqa!HhR=F)$R4IVniU}N3( bpFsZxG!cBr76!tK00000NkvXXu0mjfEHH=g diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/40.png index 3a3dde7bdb26c3fe364ea24767486d215271d90e..9160456c7de249e1653973b54cc85ac6012fc9bf 100644 GIT binary patch delta 2178 zcmV-|2z~dx51SE?Fnqha zl%mn1rCLd7+QcHIB`vYikHlJHO_Ro^Hi+pTwebT{`=JeKB@HPxG0K+}Oamq^lok1s z6={KmT^4p{cjtbb_PyucGP^so3^7gmhbP%&XXe~>y0t0lftv1>{9nt9645ca4Ypn_)_> zI*_9ROu%&=fvpch$7`0URJKG;4gKe!VLIHs1$r{jvK zuyV2mIhy1Z0Vd!&cKK{sFQC*mM%U zya${*2jJxeRzvLsO(^kHVQ3fnyI{th zaQhSB2jDvJS{E#Q9h~tHNV1dxDFA~2X4k>q>uoMc(v?a*1fUqOOz7|NdG7N?g037Y zC6t!;1IccG5ZoHLYYU8Rwk94b8&fOW;Mr5)j(@kn%MFqS%sPzOy5PeNyWst_otJ!H3RJ)Z z9xR;ze`>uPz}WNt{Jn0DZW=>wtb<5iI>d-&^mh3)UgvY$x-^qMt{Gls5+i=46Bhjg z+<#gdZ^MTyCo$WagZ3MSvL|y##GnZc>u*0zp?w0GoE}=*eSsfREc#%s0qp|>Azv1y)->3g%mR!2d z#vhfcy(baVHj3q3FQI=nEQy1G{ zvZV`tz@9$Mxll2y7OqbXjl0r~kKWDfISjiy2=Y1f!d6sklYKU!q*@B&dB%j1q)yT} z7WTrq?Sw&yzWN?;#|+!b@GOp6Wq%96`^FzI&+mxhC)#;U9<^*P&M%fgWBv+3%DU3+ zx;C-SzC_ru4%4**Ej^^v_}0}h{V|&{@w|~XBSz(F!e8wq{Qk3$YKTjeiA}5*HGK;D zFZZIRH&q8Ra_@MXeQ(3z2jI+R%V|pLTFS0nI}PT&JtFIdN-WYz41QuArhn}isG7Km zi=UGs>-AzjIvID*8q}D$J+5@nNZ1fnIv$1NKLyhVIUV;`!m5UXY@!+F9|A3j7$?IJ zqfWjn2KcQH!F!z`jo$G3lyWfM1-!2=Ah&Ua-M#cq!$)F}eFx#lci_VIsDX_-3HdG3 zS`g@n1k>Mwns*S~q_eOoHGh=B$UP0goVA#J$3e?MV`LkmTur~2_OxbQz_UAa7o}dqJ@h6$^*HxGxL}`g(2YPqHJ2!$fi?&vjHzZleRhV;z;(PPS zEZYgrXcEgZaT^kR@hQwpd%?|@Z9^nNd{=YY@1yC(d&w@HV-=7Jb7(GHd{cHI3s!c^ z2q1X-@&v_?QL|#}D1S+kEE8q2!W`)&nEi7Y6q9nwH*;FiX^PM?k&oF0HdU_9v2im2G;)#f5UFnfs-hT_$Yc&gcM0% zGnK3MuR-UtP&^JDE8*fc8%|P+ix8d%|74c1J8Qv4)~TaQ9%t59NZ;{0JGtZ*>auq; z5uqhFJ)s{`{QJ8UcOSz$)Cq$gZp(P`%je;?G+sJ6$$N8!w_xxXrs!b`Da?Rv7I5Wy zB5A&?H91ojLS~FL@{+r}>HsELC#Rdzic!%(l3=U8sjakB^#GFr;0(GG+EhGpcROKHa6%PRdlz?~$p*A2$l&DAv4~L3J1BTL2P!Xh!nwIoo zw|+D@PJ`F4c-OnL^FU|rjAO5N?KLe@g?gox*E6&Ce)l`)e1GSgt9;-0c?}QsI>1*L zo&Q4yeegU@ivlErm7zcXi?JXEeHWBj8iw!91Sys0`CushSN@mp3*ARW0HZor3Y;AD zJpu#&fb1~Tw!qr=L*q&)23cw=ZU|b~uVl;%FbH8d+v%UdiG7gn5_&Xao(qXOxcLXL z;$7f+U>I<&0Dt%NLQf7_;&4+vv@h1*Wk{A(!seU+BSt1ieE#qmMb~e@S_D>=UL**c z3Hfo&o?%ad9Oq<~6|k^m*I zBy>+6&e6HcqPE$@EtHwSfI^Q z8o=}+aw==J*1?H&`cA2;o&_+f+>V`N^!=)iWPeH_0zG|5_yu%!%wfYFicNb>-A#g6 z>2S)|e-~iYDHso{q*M?D=rbE&b+UB9%mf(D?ARVZ+B{65zX>xDwzDWtOqdwUW7KA8 z`+R~o-(CfN7@KJ!iX>!54;&Z-a}E|CS_@lJrDbOZz(|xYoOju``7BoE65?h8Pj18< z@_%-Y3*!?kyI!&N>kV9XMKWMF=)*<%6LpMJ8EAb9OhfNO+Fmq-JrVXt*TD_73jml& zyWF>NAZTl5%*3^QCdX~67AtP}REq0A(J<9TB;4gj)Qbbr?$N~)3lmNL*e)zdLe~bU z4zCy2Ny!|P1rK~+kmoxyB&s1ZcHGkZAPXmpYTS1aVE~Y#@eJ2X_FNR@vKlEhf zs#g1?2_0(`TN})>U8QW1oPW;diKCM=tgT^nn@MB6UeL2W3`;6vK4=&3M<6F$k6#b_ zoR~COWI=lqTy06%eT=B#7foBblSIilItm9LgTV~$(q@eJu1CEw6^ddRWi5%@$A9%) zOcBI@)&WQ#gVBHDHEzOadQVyVFdLvGjx_S8265WHiy9e1VWK3isT9V&TQGKSsvP7r z6Y1yrar?dngAYJ{3`1I6(t_*yAh9H}A2YUC8la(YHr@vhpM-?ezX+k2K@qeG)Ll1W z?*FhBzH&`emhl}>G4Kn}{~hT427lNi+TjFj8erS-mQHAtP0x13GXX|rm(Jj<_%cl7 zE-J4qD1apY>|u=kJ25_XEr>;lN^@%OkyHbtk3rWixbQfLO-sZ;2@t6?6Gl8(|691^ z-3tJCb_{3LS0S69-RT2C%cIsU$2_&Wgm{JEq}9Ci6&Tn9F&C1;n5$DG(tkpkYuLkI z-HB?cgu!Uzwu`goYtZ{L7(toMOnuY9ceAL2JBZ!&Hm$a@ShTV;1}|)b@#ET=2K}$d zM9P$w!uywxzvdCl74NKoL4gs5%-wMqfB(Y}tI^kHG-HMG9deB|B%b*Kv8EagE|Q)X zw!-M|!4ex(#zab6v3v@rEPsr*{}J;|H&zHR6fN)M8N6%uXa6)w!ed>BOisrI6Su!3PWMIi*h&0ad9@?^%P!OjPl2bZ~HmM zvV{PQKpKj|6KAkDe~(0Z9A#DG3%lV4guzLCMyo8Abbkr6r3Ox43At{x4Ue2|a0US} zsbGckVhZO>3M?Q$L4SPPk^chVv{2ip&ylPRAv?pRM?Ox~ zt=B-h1NuIA(L~BTQsA<$5h(Q5|fyg{gCepe7!f3z#Xc>8-EpZE5|4LwcU4ZjHWeM zZF?auN)U8|d0JhmW*>DJsh@0t{PE{0{I!Qd|1c_UP_=m-i`rYmUxuei(L55>@XfBG zqlAjwOev7TX;37{B`wRvi&6DXS?#D;N_ey>^rijVyk|4Bpoo-2$5mnO2T=(+$*VsW p4)E2-Fz1Y~0~~y%gumt){10$ko3=Hr(n|mU002ovPDHLkV1kHjrlbG> diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/57.png index cc6efb047a455d5b6b47a72d3f489df6858d62af..a5fd34e2d9386277158d43ad1c6f66586bcb80c7 100644 GIT binary patch delta 3215 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 BJYWC- delta 2920 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 Rl|cXi002ovPDHLkV1h(XzHI;i diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/60.png index 76632e80db17bec37976a555fdd93a02985d85f4..62a6ef0fcb97d2022279528856b7eb8cdac7d087 100644 GIT binary patch delta 3482 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 IM6N<$g6wX>-2eap delta 3106 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 diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/80.png index 4f01c3b72374e8dede83279e3e2e45b08292a213..7b248658d19e3214509efd1a65b1fe967dc170a9 100644 GIT binary patch delta 4763 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 diff --git a/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png b/frontend/appflowy_flutter/ios/Runner/Assets.xcassets/AppIcon.appiconset/87.png index eff5059f4c0154f4c682dcb1af1369226114d152..f0ccd901765bec3ca33daf8240a4b73f1fab251b 100644 GIT binary patch delta 5219 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 main() async { WidgetsFlutterBinding.ensureInitialized(); + await runAppFlowy(); } diff --git a/frontend/appflowy_flutter/lib/mobile/presentation/mobile_bottom_navigation_bar.dart b/frontend/appflowy_flutter/lib/mobile/presentation/mobile_bottom_navigation_bar.dart index 6fa87ea917..ef84466225 100644 --- a/frontend/appflowy_flutter/lib/mobile/presentation/mobile_bottom_navigation_bar.dart +++ b/frontend/appflowy_flutter/lib/mobile/presentation/mobile_bottom_navigation_bar.dart @@ -19,6 +19,7 @@ class MobileBottomNavigationBar extends StatelessWidget { final style = Theme.of(context); return Scaffold( + backgroundColor: Colors.red, body: navigationShell, bottomNavigationBar: BottomNavigationBar( showSelectedLabels: false, @@ -43,14 +44,15 @@ class MobileBottomNavigationBar extends StatelessWidget { blendMode: null, ), ), - BottomNavigationBarItem( - label: 'search', - icon: const FlowySvg(FlowySvgs.m_search_lg), - activeIcon: FlowySvg( - FlowySvgs.m_search_lg, - color: style.colorScheme.primary, - ), - ), + // Enable this when search is ready. + // BottomNavigationBarItem( + // label: 'search', + // icon: const FlowySvg(FlowySvgs.m_search_lg), + // activeIcon: FlowySvg( + // FlowySvgs.m_search_lg, + // color: style.colorScheme.primary, + // ), + // ), BottomNavigationBarItem( label: 'notification', icon: const FlowySvg(FlowySvgs.m_notification_unselected_lg), diff --git a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart index aa15aac471..f20b7aa13a 100644 --- a/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart +++ b/frontend/appflowy_flutter/lib/plugins/database_view/calendar/presentation/calendar_day.dart @@ -6,7 +6,6 @@ import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:calendar_view/calendar_view.dart'; import 'package:easy_localization/easy_localization.dart'; import 'package:flowy_infra/size.dart'; - import 'package:flowy_infra/theme_extension.dart'; import 'package:flowy_infra/time/duration.dart'; import 'package:flowy_infra_ui/flowy_infra_ui.dart'; @@ -115,11 +114,11 @@ class CalendarDayCard extends StatelessWidget { ], ); }, - onAccept: (CalendarDayEvent event) { + onAcceptWithDetails: (details) { + final event = details.data; if (event.date == date) { return; } - context .read() .add(CalendarEvent.moveEvent(event, date)); diff --git a/frontend/appflowy_flutter/lib/plugins/document/application/doc_bloc.dart b/frontend/appflowy_flutter/lib/plugins/document/application/doc_bloc.dart index d553d4eb94..665b40626b 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/application/doc_bloc.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/application/doc_bloc.dart @@ -1,7 +1,5 @@ import 'dart:async'; -import 'package:flutter/foundation.dart'; - import 'package:appflowy/plugins/document/application/doc_service.dart'; import 'package:appflowy/plugins/document/application/document_data_pb_extension.dart'; import 'package:appflowy/plugins/document/application/editor_transaction_adapter.dart'; @@ -22,6 +20,7 @@ import 'package:appflowy_editor/appflowy_editor.dart' Position, paragraphNode; import 'package:dartz/dartz.dart'; +import 'package:flutter/foundation.dart'; import 'package:flutter_bloc/flutter_bloc.dart'; import 'package:freezed_annotation/freezed_annotation.dart'; @@ -60,6 +59,7 @@ class DocumentBloc extends Bloc { await _viewListener.stop(); await _subscription?.cancel(); await _documentService.closeDocument(view: view); + state.editorState?.selection = null; state.editorState?.dispose(); return super.close(); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_configuration.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_configuration.dart index 0ac6d806a9..087618d044 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_configuration.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_configuration.dart @@ -10,12 +10,6 @@ import 'package:flowy_infra/theme_extension.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -List getMobileToolbarItems() { - return [ - aaToolbarItem, - ]; -} - Map getEditorBuilderMap({ required BuildContext context, required EditorState editorState, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart index cc7662da32..ae2a71965d 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_page.dart @@ -296,11 +296,11 @@ class _AppFlowyEditorPageState extends State { return AdaptiveTextSelectionToolbar.editable( clipboardStatus: ClipboardStatus.pasteable, onCopy: () { - copyCommand.execute(editorState); + customCopyCommand.execute(editorState); closeToolbar(); }, - onCut: () => cutCommand.execute(editorState), - onPaste: () => pasteCommand.execute(editorState), + onCut: () => customCutCommand.execute(editorState), + onPaste: () => customPasteCommand.execute(editorState), onSelectAll: () => selectAllCommand.execute(editorState), onLiveTextInput: null, onLookUp: null, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/align_toolbar_item/align_toolbar_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/align_toolbar_item/align_toolbar_item.dart index 7e4cdbb39b..fe0a6d2f10 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/align_toolbar_item/align_toolbar_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/align_toolbar_item/align_toolbar_item.dart @@ -34,41 +34,33 @@ final alignToolbarItem = ToolbarItem( data = FlowySvgs.toolbar_align_right_s; } - // final child = MouseRegion( - // cursor: SystemMouseCursors.click, - // child: FlowyTooltip( - // message: LocaleKeys.document_plugins_optionAction_align.tr(), - // child: FlowySvg( - // data, - // size: const Size.square(16), - // color: isHighlight ? highlightColor : Colors.white, - // ), - // ), - // ); - - // the above code will cause an error in Flutter 3.13: - // Cannot hit test a render box that has never been laid out. final child = FlowySvg( data, size: const Size.square(16), color: isHighlight ? highlightColor : Colors.white, ); - return Padding( - padding: const EdgeInsets.symmetric(horizontal: 4.0), - child: _AlignmentButtons( - child: child, - onAlignChanged: (align) async { - await editorState.updateNode( - selection, - (node) => node.copyWith( - attributes: { - ...node.attributes, - blockComponentAlign: align, - }, - ), - ); - }, + return MouseRegion( + cursor: SystemMouseCursors.click, + child: FlowyTooltip( + message: LocaleKeys.document_plugins_optionAction_align.tr(), + child: Padding( + padding: const EdgeInsets.symmetric(horizontal: 4.0), + child: _AlignmentButtons( + child: child, + onAlignChanged: (align) async { + await editorState.updateNode( + selection, + (node) => node.copyWith( + attributes: { + ...node.attributes, + blockComponentAlign: align, + }, + ), + ); + }, + ), + ), ), ); }, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item.dart index d4e1b9d5c5..2070edecb7 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item.dart @@ -177,7 +177,7 @@ class _TextDecorationMenuState extends State<_TextDecorationMenu> { editorState.updateSelectionWithReason( widget.selection, extraInfo: { - disableMobileToolbarKey: true, + selectionExtraInfoDisableMobileToolbarKey: true, }, ); editorState.service.keyboardService?.closeKeyboard(); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item_v2.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item_v2.dart index d4e1b9d5c5..2070edecb7 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item_v2.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_item/mobile_text_decoration_item_v2.dart @@ -177,7 +177,7 @@ class _TextDecorationMenuState extends State<_TextDecorationMenu> { editorState.updateSelectionWithReason( widget.selection, extraInfo: { - disableMobileToolbarKey: true, + selectionExtraInfoDisableMobileToolbarKey: true, }, ); editorState.service.keyboardService?.closeKeyboard(); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_align_items.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_align_items.dart index 1c309ffd8a..fc34bde4f5 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_align_items.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_align_items.dart @@ -26,7 +26,13 @@ class AlignItems extends StatelessWidget { return PopupMenu( itemLength: alignMenuItems.length, onSelected: (index) { - editorState.alignBlock(alignMenuItems[index].$1); + editorState.alignBlock( + alignMenuItems[index].$1, + selectionExtraInfo: { + selectionExtraInfoDoNotAttachTextService: true, + selectionExtraInfoDisableFloatingToolbar: true, + }, + ); }, menuBuilder: (context, keys, currentIndex) { final children = alignMenuItems @@ -54,7 +60,13 @@ class AlignItems extends StatelessWidget { key: key, size: const Size(82, 52), onTap: () async { - await editorState.alignBlock(currentAlignItem.$1); + await editorState.alignBlock( + currentAlignItem.$1, + selectionExtraInfo: { + selectionExtraInfoDoNotAttachTextService: true, + selectionExtraInfoDisableFloatingToolbar: true, + }, + ); }, icon: currentAlignItem.$2, isSelected: false, @@ -78,23 +90,28 @@ class AlignItems extends StatelessWidget { } List<(String, FlowySvgData)> _getAlignMenuItems() { - final align = _getCurrentBlockAlign(); - - if (align == _center) { - return [ - (_left, FlowySvgs.m_aa_align_left_s), - (_right, FlowySvgs.m_aa_align_right_s), - ]; - } else if (align == _right) { - return [ - (_left, FlowySvgs.m_aa_align_left_s), - (_center, FlowySvgs.m_aa_align_center_s), - ]; - } return [ + (_left, FlowySvgs.m_aa_align_left_s), (_center, FlowySvgs.m_aa_align_center_s), (_right, FlowySvgs.m_aa_align_right_s), ]; + // final align = _getCurrentBlockAlign(); + + // if (align == _center) { + // return [ + // (_left, FlowySvgs.m_aa_align_left_s), + // (_right, FlowySvgs.m_aa_align_right_s), + // ]; + // } else if (align == _right) { + // return [ + // (_left, FlowySvgs.m_aa_align_left_s), + // (_center, FlowySvgs.m_aa_align_center_s), + // ]; + // } + // return [ + // (_center, FlowySvgs.m_aa_align_center_s), + // (_right, FlowySvgs.m_aa_align_right_s), + // ]; } String _getCurrentBlockAlign() { diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_bius_items.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_bius_items.dart index f3adc771c8..94a3a37b75 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_bius_items.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_bius_items.dart @@ -56,7 +56,13 @@ class BIUSItems extends StatelessWidget { enableBottomRightRadius: index == _bius.length - 1, backgroundColor: const Color(0xFFF2F2F7), onTap: () async { - await editorState.toggleAttribute(richTextKey); + await editorState.toggleAttribute( + richTextKey, + selectionExtraInfo: { + selectionExtraInfoDisableFloatingToolbar: true, + selectionExtraInfoDoNotAttachTextService: true, + }, + ); // refresh the status setState(() {}); }, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_block_items.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_block_items.dart index f93c915b4f..b836da1097 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_block_items.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_block_items.dart @@ -165,7 +165,8 @@ class BlockItems extends StatelessWidget { editorState.updateSelectionWithReason( selection, extraInfo: { - disableMobileToolbarKey: true, + selectionExtraInfoDisableMobileToolbarKey: true, + selectionExtraInfoDoNotAttachTextService: true, }, ); editorState.service.keyboardService?.closeKeyboard(); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_close_keyboard_or_menu_button.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_close_keyboard_or_menu_button.dart new file mode 100644 index 0000000000..c62f110c50 --- /dev/null +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_close_keyboard_or_menu_button.dart @@ -0,0 +1,33 @@ +import 'package:appflowy/generated/flowy_svgs.g.dart'; +import 'package:flowy_infra_ui/flowy_infra_ui.dart'; +import 'package:flutter/material.dart'; + +class CloseKeyboardOrMenuButton extends StatelessWidget { + const CloseKeyboardOrMenuButton({ + super.key, + required this.showingMenu, + required this.onPressed, + }); + + final bool showingMenu; + final VoidCallback onPressed; + + @override + Widget build(BuildContext context) { + return SizedBox( + width: 62, + height: 46, + child: FlowyButton( + margin: showingMenu ? const EdgeInsets.only(right: 0.5) : null, + text: showingMenu + ? const FlowySvg( + FlowySvgs.m_toolbar_show_keyboard_s, + ) + : const FlowySvg( + FlowySvgs.m_toolbar_hide_keyboard_s, + ), + onTap: onPressed, + ), + ); + } +} diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_item.dart index 05a4d4e43b..eb7614aac7 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_item.dart @@ -1,5 +1,6 @@ import 'package:appflowy/generated/flowy_svgs.g.dart'; -import 'package:appflowy/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/util.dart'; +import 'package:appflowy/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_list.dart'; +import 'package:appflowy/plugins/document/presentation/editor_plugins/plugins.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:flutter/material.dart'; @@ -7,23 +8,38 @@ class ColorItem extends StatelessWidget { const ColorItem({ super.key, required this.editorState, + required this.service, }); final EditorState editorState; + final AppFlowyMobileToolbarWidgetService service; @override Widget build(BuildContext context) { return MobileToolbarItemWrapper( size: const Size(82, 52), - onTap: () { + onTap: () async { + service.closeKeyboard(); + editorState.updateSelectionWithReason( + editorState.selection, + extraInfo: { + selectionExtraInfoDisableMobileToolbarKey: true, + selectionExtraInfoDisableFloatingToolbar: true, + selectionExtraInfoDoNotAttachTextService: true, + }, + ); keepEditorFocusNotifier.increase(); - - // showTextColorAndBackgroundColorPicker(context); + await showTextColorAndBackgroundColorPicker( + context, + editorState: editorState, + selection: editorState.selection!, + ); }, icon: FlowySvgs.m_aa_color_s, backgroundColor: const Color(0xFFF2F2F7), isSelected: false, showRightArrow: true, + enable: editorState.selection?.isCollapsed == false, iconPadding: const EdgeInsets.only( top: 14.0, bottom: 14.0, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_list.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_list.dart index ab4e0e0a03..e25b2ff63f 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_list.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_color_list.dart @@ -31,10 +31,15 @@ Future showTextColorAndBackgroundColorPicker( ); }, ); - await editorState.updateSelectionWithReason( - null, - extraInfo: null, - ); + Future.delayed(const Duration(milliseconds: 100), () { + // highlight the selected text again. + editorState.updateSelectionWithReason( + selection, + extraInfo: { + selectionExtraInfoDisableFloatingToolbar: true, + }, + ); + }); } class _TextColorAndBackgroundColor extends StatefulWidget { @@ -88,8 +93,9 @@ class _TextColorAndBackgroundColorState AppFlowyRichTextKeys.textColor: hex, }, selectionExtraInfo: { - disableFloatingToolbar: true, - disableMobileToolbarKey: true, + selectionExtraInfoDisableFloatingToolbar: true, + selectionExtraInfoDisableMobileToolbarKey: true, + selectionExtraInfoDoNotAttachTextService: true, }, ); setState(() {}); @@ -116,8 +122,9 @@ class _TextColorAndBackgroundColorState AppFlowyRichTextKeys.highlightColor: hex, }, selectionExtraInfo: { - disableFloatingToolbar: true, - disableMobileToolbarKey: true, + selectionExtraInfoDisableFloatingToolbar: true, + selectionExtraInfoDisableMobileToolbarKey: true, + selectionExtraInfoDoNotAttachTextService: true, }, ); setState(() {}); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_font_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_font_item.dart index 487776559e..e1b308d9ff 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_font_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_font_item.dart @@ -34,6 +34,12 @@ class FontFamilyItem extends StatelessWidget { AppFlowyRichTextKeys.fontFamily: GoogleFonts.getFont(newFont).fontFamily, }); + await editorState.updateSelectionWithReason( + selection, + extraInfo: { + selectionExtraInfoDisableFloatingToolbar: true, + }, + ); } }, text: fontFamily ?? systemFonFamily, diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_heading_and_text_items.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_heading_and_text_items.dart index 714d321014..e8f12d8fad 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_heading_and_text_items.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_heading_and_text_items.dart @@ -88,6 +88,9 @@ class _HeadingOrTextItem extends StatelessWidget { HeadingBlockKeys.level: level!, } : null, + selectionExtraInfo: { + selectionExtraInfoDoNotAttachTextService: true, + }, ); } } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/aa_toolbar_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/aa_toolbar_item.dart index 0cf5e8ac6e..c8c36cb61f 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/aa_toolbar_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/aa_toolbar_item.dart @@ -11,6 +11,7 @@ import 'package:appflowy_editor/appflowy_editor.dart'; import 'package:flutter/material.dart'; final aaToolbarItem = AppFlowyMobileToolbarItem( + pilotAtExpandedSelection: true, itemBuilder: (context, editorState, service, onMenu, _) { return AppFlowyMobileToolbarIconItem( isSelected: () => service.showMenuNotifier.value, @@ -52,58 +53,64 @@ class _TextDecorationMenuState extends State<_TextDecorationMenu> { @override Widget build(BuildContext context) { - return Padding( - padding: const EdgeInsets.only( - top: 24, - bottom: 20, - left: 12, - right: 12, - ) * - context.scale, - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - HeadingsAndTextItems( - editorState: editorState, - ), - const ScaledVSpace(), - Row( + return SingleChildScrollView( + child: ColoredBox( + color: Colors.white, + child: Padding( + padding: const EdgeInsets.only( + top: 16, + bottom: 20, + left: 12, + right: 12, + ) * + context.scale, + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - BIUSItems( + HeadingsAndTextItems( editorState: editorState, ), - const Spacer(), - ColorItem( - editorState: editorState, + const ScaledVSpace(), + Row( + children: [ + BIUSItems( + editorState: editorState, + ), + const Spacer(), + ColorItem( + editorState: editorState, + service: widget.service, + ), + ], + ), + const ScaledVSpace(), + Row( + children: [ + BlockItems( + service: widget.service, + editorState: editorState, + ), + const Spacer(), + AlignItems( + editorState: editorState, + ), + ], + ), + const ScaledVSpace(), + Row( + children: [ + FontFamilyItem( + editorState: editorState, + ), + const Spacer(), + IndentAndOutdentItems( + editorState: editorState, + ), + ], ), ], ), - const ScaledVSpace(), - Row( - children: [ - BlockItems( - service: widget.service, - editorState: editorState, - ), - const Spacer(), - AlignItems( - editorState: editorState, - ), - ], - ), - const ScaledVSpace(), - Row( - children: [ - FontFamilyItem( - editorState: editorState, - ), - const Spacer(), - IndentAndOutdentItems( - editorState: editorState, - ), - ], - ), - ], + ), ), ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/appflowy_mobile_toolbar.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/appflowy_mobile_toolbar.dart index 9bf475faec..e39da4cd95 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/appflowy_mobile_toolbar.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/appflowy_mobile_toolbar.dart @@ -1,4 +1,6 @@ -import 'package:appflowy/generated/flowy_svgs.g.dart'; +import 'dart:async'; + +import 'package:appflowy/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/_close_keyboard_or_menu_button.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/appflowy_mobile_toolbar_item.dart'; import 'package:appflowy/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/keyboard_height_observer.dart'; import 'package:appflowy_editor/appflowy_editor.dart'; @@ -94,7 +96,8 @@ class _AppFlowyMobileToolbarState extends State { builder: (_, Selection? selection, __) { // if the selection is null, hide the toolbar if (selection == null || - widget.editorState.selectionExtraInfo?[disableMobileToolbarKey] == + widget.editorState.selectionExtraInfo?[ + selectionExtraInfoDisableMobileToolbarKey] == true) { return const SizedBox.shrink(); } @@ -173,12 +176,19 @@ class _MobileToolbarState extends State<_MobileToolbar> bool closeKeyboardInitiative = false; + final ScrollOffsetListener offsetListener = ScrollOffsetListener.create(); + late final StreamSubscription offsetSubscription; + ValueNotifier toolbarOffset = ValueNotifier(0.0); + @override void initState() { super.initState(); currentSelection = widget.editorState.selection; KeyboardHeightObserver.instance.addListener(_onKeyboardHeightChanged); + offsetSubscription = offsetListener.changes.listen((event) { + toolbarOffset.value += event; + }); } @override @@ -196,6 +206,8 @@ class _MobileToolbarState extends State<_MobileToolbar> showMenuNotifier.dispose(); cachedKeyboardHeight.dispose(); KeyboardHeightObserver.instance.removeListener(_onKeyboardHeightChanged); + offsetSubscription.cancel(); + toolbarOffset.dispose(); super.dispose(); } @@ -245,10 +257,6 @@ class _MobileToolbarState extends State<_MobileToolbar> } void _onKeyboardHeightChanged(double height) { - if (canUpdateCachedKeyboardHeight) { - cachedKeyboardHeight.value = height; - } - // if the keyboard is not closed initiative, we need to close the menu at same time if (!closeKeyboardInitiative && cachedKeyboardHeight.value != 0 && @@ -256,6 +264,10 @@ class _MobileToolbarState extends State<_MobileToolbar> widget.editorState.selection = null; } + if (canUpdateCachedKeyboardHeight) { + cachedKeyboardHeight.value = height; + } + if (height == 0) { closeKeyboardInitiative = false; } @@ -264,15 +276,26 @@ class _MobileToolbarState extends State<_MobileToolbar> // toolbar list view and close keyboard/menu button Widget _buildToolbar(BuildContext context) { return Container( - color: const Color(0xFFF3F3F8), height: widget.toolbarHeight, width: MediaQuery.of(context).size.width, + decoration: const BoxDecoration( + color: Color(0xFFF3F3F8), + boxShadow: [ + BoxShadow( + color: Color(0x0F181818), + blurRadius: 40, + offset: Offset(0, -4), + spreadRadius: 0, + ), + ], + ), child: Row( mainAxisSize: MainAxisSize.min, children: [ // toolbar list view Expanded( child: _ToolbarItemListView( + offsetListener: offsetListener, toolbarItems: widget.toolbarItems, editorState: widget.editorState, toolbarWidgetService: this, @@ -308,36 +331,52 @@ class _MobileToolbarState extends State<_MobileToolbar> }, ), ), - // divider - const Padding( - padding: EdgeInsets.symmetric( - vertical: 8, - ), - child: VerticalDivider( - width: 1, - color: Colors.grey, - ), - ), // close menu or close keyboard button - ValueListenableBuilder( - valueListenable: showMenuNotifier, - builder: (_, showingMenu, __) { - return _CloseKeyboardOrMenuButton( - showingMenu: showingMenu, - onPressed: () { - if (showingMenu) { - // close the menu and show the keyboard - closeItemMenu(); - _showKeyboard(); - } else { - closeKeyboardInitiative = true; - // close the keyboard and clear the selection - // if the selection is null, the keyboard and the toolbar will be hidden automatically - widget.editorState.selection = null; - } - }, - ); - }, + ClipRect( + clipper: const _MyClipper( + offset: -20, + ), + child: ValueListenableBuilder( + valueListenable: showMenuNotifier, + builder: (_, showingMenu, __) { + return ValueListenableBuilder( + valueListenable: toolbarOffset, + builder: (_, offset, __) { + final showShadow = offset > 0; + return DecoratedBox( + decoration: BoxDecoration( + color: const Color(0xFFF3F3F8), + boxShadow: showShadow + ? [ + const BoxShadow( + color: Color(0x51000000), + blurRadius: 20, + offset: Offset(-2, 0), + spreadRadius: -10, + ), + ] + : null, + ), + child: CloseKeyboardOrMenuButton( + showingMenu: showingMenu, + onPressed: () { + if (showingMenu) { + // close the menu and show the keyboard + closeItemMenu(); + _showKeyboard(); + } else { + closeKeyboardInitiative = true; + // close the keyboard and clear the selection + // if the selection is null, the keyboard and the toolbar will be hidden automatically + widget.editorState.selection = null; + } + }, + ), + ); + }, + ); + }, + ), ), const SizedBox( width: 4.0, @@ -391,6 +430,7 @@ class _MobileToolbarState extends State<_MobileToolbar> class _ToolbarItemListView extends StatefulWidget { const _ToolbarItemListView({ + required this.offsetListener, required this.toolbarItems, required this.editorState, required this.toolbarWidgetService, @@ -403,6 +443,7 @@ class _ToolbarItemListView extends StatefulWidget { final List toolbarItems; final EditorState editorState; final AppFlowyMobileToolbarWidgetService toolbarWidgetService; + final ScrollOffsetListener offsetListener; @override State<_ToolbarItemListView> createState() => _ToolbarItemListViewState(); @@ -432,7 +473,7 @@ class _ToolbarItemListViewState extends State<_ToolbarItemListView> { @override Widget build(BuildContext context) { final children = [ - const HSpace(8), + const HSpace(16), ...widget.toolbarItems .mapIndexed( (index, element) => element.itemBuilder.call( @@ -453,12 +494,14 @@ class _ToolbarItemListViewState extends State<_ToolbarItemListView> { ) .map((e) => [e, const HSpace(10)]) .flattened, + const HSpace(4), ]; return PageStorage( bucket: PageStorageBucket(), child: ScrollablePositionedList.builder( physics: const ClampingScrollPhysics(), + scrollOffsetListener: widget.offsetListener, itemScrollController: scrollController, scrollDirection: Axis.horizontal, itemBuilder: (context, index) => children[index], @@ -507,33 +550,16 @@ class _ToolbarItemListViewState extends State<_ToolbarItemListView> { } } -class _CloseKeyboardOrMenuButton extends StatelessWidget { - const _CloseKeyboardOrMenuButton({ - required this.showingMenu, - required this.onPressed, +class _MyClipper extends CustomClipper { + const _MyClipper({ + this.offset = 0, }); - final bool showingMenu; - final VoidCallback onPressed; + final double offset; @override - Widget build(BuildContext context) { - return SizedBox( - width: 64, - height: 46, - child: FlowyButton( - text: showingMenu - ? const Padding( - padding: EdgeInsets.only(right: 0.5), - child: FlowySvg( - FlowySvgs.m_toolbar_show_keyboard_s, - ), - ) - : const FlowySvg( - FlowySvgs.m_toolbar_hide_keyboard_s, - ), - onTap: onPressed, - ), - ); - } + Rect getClip(Size size) => Rect.fromLTWH(offset, 0, 64.0, 46.0); + + @override + bool shouldReclip(CustomClipper oldClipper) => false; } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/biuc_toolbar_item.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/biuc_toolbar_item.dart index 3caf3fd032..d50d57aa60 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/biuc_toolbar_item.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/biuc_toolbar_item.dart @@ -4,7 +4,6 @@ import 'package:appflowy/plugins/document/presentation/editor_plugins/plugins.da import 'package:appflowy_editor/appflowy_editor.dart'; final boldToolbarItem = AppFlowyMobileToolbarItem( - pilotAtExpandedSelection: true, itemBuilder: (context, editorState, _, __, onAction) { return AppFlowyMobileToolbarIconItem( isSelected: () => editorState.isTextDecorationSelected( @@ -13,6 +12,9 @@ final boldToolbarItem = AppFlowyMobileToolbarItem( icon: FlowySvgs.m_toolbar_bold_s, onTap: () async => await editorState.toggleAttribute( AppFlowyRichTextKeys.bold, + selectionExtraInfo: { + selectionExtraInfoDisableFloatingToolbar: true, + }, ), ); }, @@ -28,6 +30,9 @@ final italicToolbarItem = AppFlowyMobileToolbarItem( icon: FlowySvgs.m_toolbar_italic_s, onTap: () async => await editorState.toggleAttribute( AppFlowyRichTextKeys.italic, + selectionExtraInfo: { + selectionExtraInfoDisableFloatingToolbar: true, + }, ), ); }, @@ -42,6 +47,9 @@ final underlineToolbarItem = AppFlowyMobileToolbarItem( icon: FlowySvgs.m_toolbar_underline_s, onTap: () async => await editorState.toggleAttribute( AppFlowyRichTextKeys.underline, + selectionExtraInfo: { + selectionExtraInfoDisableFloatingToolbar: true, + }, ), ); }, @@ -56,7 +64,9 @@ final colorToolbarItem = AppFlowyMobileToolbarItem( editorState.updateSelectionWithReason( editorState.selection, extraInfo: { - disableMobileToolbarKey: true, + selectionExtraInfoDisableMobileToolbarKey: true, + selectionExtraInfoDisableFloatingToolbar: true, + selectionExtraInfoDoNotAttachTextService: true, }, ); keepEditorFocusNotifier.increase(); diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/util.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/util.dart index 35f2c44f5a..5738b7b7ff 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/util.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_plugins/mobile_toolbar_v3/util.dart @@ -144,6 +144,13 @@ extension MobileToolbarBuildContext on BuildContext { double get scale => MediaQuery.of(this).size.width / 375.0; } +final _blocksCanContainChildren = [ + ParagraphBlockKeys.type, + BulletedListBlockKeys.type, + NumberedListBlockKeys.type, + TodoListBlockKeys.type, +]; + extension MobileToolbarEditorState on EditorState { bool isBlockTypeSelected( String blockType, { @@ -208,6 +215,7 @@ extension MobileToolbarEditorState on EditorState { Selection? selection, Attributes? extraAttributes, bool? isSelected, + Map? selectionExtraInfo, }) async { selection = selection ?? this.selection; if (selection == null) { @@ -220,6 +228,20 @@ extension MobileToolbarEditorState on EditorState { return; } final selected = isSelected ?? type == newBlockType; + + // if the new block type can't contain children, we need to move all the children to the parent + bool needToDeleteChildren = false; + if (!selected && + node.children.isNotEmpty && + !_blocksCanContainChildren.contains(newBlockType)) { + final transaction = this.transaction; + needToDeleteChildren = true; + transaction.insertNodes( + selection.end.path.next, + node.children.map((e) => e.copyWith()), + ); + await apply(transaction); + } await formatNode( selection, (node) { @@ -231,14 +253,17 @@ extension MobileToolbarEditorState on EditorState { return node.copyWith( type: selected ? ParagraphBlockKeys.type : newBlockType, attributes: attributes, + children: needToDeleteChildren ? [] : null, ); }, + selectionExtraInfo: selectionExtraInfo, ); } Future alignBlock( String alignment, { Selection? selection, + Map? selectionExtraInfo, }) async { await updateNode( selection, @@ -248,6 +273,7 @@ extension MobileToolbarEditorState on EditorState { blockComponentAlign: alignment, }, ), + selectionExtraInfo: selectionExtraInfo, ); } diff --git a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart index 71613a14bf..899ebca639 100644 --- a/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart +++ b/frontend/appflowy_flutter/lib/plugins/document/presentation/editor_style.dart @@ -297,7 +297,7 @@ class EditorStyleCustomizer { editorState.updateSelectionWithReason( editorState.selection, extraInfo: { - disableMobileToolbarKey: true, + selectionExtraInfoDisableMobileToolbarKey: true, }, ); diff --git a/frontend/appflowy_flutter/lib/startup/startup.dart b/frontend/appflowy_flutter/lib/startup/startup.dart index 1cde15681e..71f42a4a35 100644 --- a/frontend/appflowy_flutter/lib/startup/startup.dart +++ b/frontend/appflowy_flutter/lib/startup/startup.dart @@ -2,7 +2,6 @@ import 'dart:async'; import 'dart:io'; import 'package:appflowy/env/cloud_env.dart'; -import 'package:appflowy/startup/tasks/memory_leak_detector.dart'; import 'package:appflowy/workspace/application/settings/prelude.dart'; import 'package:appflowy_backend/appflowy_backend.dart'; import 'package:appflowy_backend/log.dart'; @@ -14,7 +13,6 @@ import 'deps_resolver.dart'; import 'entry_point.dart'; import 'launch_configuration.dart'; import 'plugin/plugin.dart'; -import 'tasks/appflowy_cloud_task.dart'; import 'tasks/prelude.dart'; final getIt = GetIt.instance; @@ -105,6 +103,7 @@ class FlowyRunner { // this task should be second task, for handling memory leak. // there's a flag named _enable in memory_leak_detector.dart. If it's false, the task will be ignored. MemoryLeakDetectorTask(), + const DebugTask(), // localization const InitLocalizationTask(), // init the app window diff --git a/frontend/appflowy_flutter/lib/startup/tasks/debug_task.dart b/frontend/appflowy_flutter/lib/startup/tasks/debug_task.dart new file mode 100644 index 0000000000..b08a9d1027 --- /dev/null +++ b/frontend/appflowy_flutter/lib/startup/tasks/debug_task.dart @@ -0,0 +1,20 @@ +import 'package:appflowy_editor/appflowy_editor.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/services.dart'; + +import '../startup.dart'; + +class DebugTask extends LaunchTask { + const DebugTask(); + + @override + Future initialize(LaunchContext context) async { + // the hotkey manager is not supported on mobile + if (PlatformExtension.isMobile && kDebugMode) { + SystemChannels.textInput.invokeMethod('TextInput.hide'); + } + } + + @override + Future dispose() async {} +} diff --git a/frontend/appflowy_flutter/lib/startup/tasks/generate_router.dart b/frontend/appflowy_flutter/lib/startup/tasks/generate_router.dart index 66df5123c1..0505e4cda9 100644 --- a/frontend/appflowy_flutter/lib/startup/tasks/generate_router.dart +++ b/frontend/appflowy_flutter/lib/startup/tasks/generate_router.dart @@ -1,8 +1,8 @@ import 'package:appflowy/mobile/presentation/database/board/mobile_board_screen.dart'; import 'package:appflowy/mobile/presentation/database/card/card.dart'; +import 'package:appflowy/mobile/presentation/database/date_picker/mobile_date_picker_screen.dart'; import 'package:appflowy/mobile/presentation/database/field/mobile_create_field_screen.dart'; import 'package:appflowy/mobile/presentation/database/field/mobile_edit_field_screen.dart'; -import 'package:appflowy/mobile/presentation/database/date_picker/mobile_date_picker_screen.dart'; import 'package:appflowy/mobile/presentation/database/mobile_calendar_events_screen.dart'; import 'package:appflowy/mobile/presentation/database/mobile_calendar_screen.dart'; import 'package:appflowy/mobile/presentation/database/mobile_grid_screen.dart'; @@ -152,27 +152,28 @@ StatefulShellRoute _mobileHomeScreenWithNavigationBarRoute() { ), ], ), - StatefulShellBranch( - routes: [ - GoRoute( - path: '/d', - builder: (BuildContext context, GoRouterState state) => - const RootPlaceholderScreen( - label: 'Search', - detailsPath: '/d/details', - ), - routes: [ - GoRoute( - path: 'details', - builder: (BuildContext context, GoRouterState state) => - const DetailsPlaceholderScreen( - label: 'Search Page details', - ), - ), - ], - ), - ], - ), + // Enable search feature after we have a search page. + // StatefulShellBranch( + // routes: [ + // GoRoute( + // path: '/d', + // builder: (BuildContext context, GoRouterState state) => + // const RootPlaceholderScreen( + // label: 'Search', + // detailsPath: '/d/details', + // ), + // routes: [ + // GoRoute( + // path: 'details', + // builder: (BuildContext context, GoRouterState state) => + // const DetailsPlaceholderScreen( + // label: 'Search Page details', + // ), + // ), + // ], + // ), + // ], + // ), StatefulShellBranch( routes: [ GoRoute( diff --git a/frontend/appflowy_flutter/lib/startup/tasks/prelude.dart b/frontend/appflowy_flutter/lib/startup/tasks/prelude.dart index 1e8d98c6b5..6d21cdb178 100644 --- a/frontend/appflowy_flutter/lib/startup/tasks/prelude.dart +++ b/frontend/appflowy_flutter/lib/startup/tasks/prelude.dart @@ -1,10 +1,13 @@ export 'app_widget.dart'; -export 'rust_sdk.dart'; -export 'platform_service.dart'; -export 'load_plugin.dart'; -export 'hot_key.dart'; -export 'platform_error_catcher.dart'; -export 'windows.dart'; -export 'localization.dart'; -export 'supabase_task.dart'; +export 'appflowy_cloud_task.dart'; +export 'debug_task.dart'; export 'generate_router.dart'; +export 'hot_key.dart'; +export 'load_plugin.dart'; +export 'localization.dart'; +export 'memory_leak_detector.dart'; +export 'platform_error_catcher.dart'; +export 'platform_service.dart'; +export 'rust_sdk.dart'; +export 'supabase_task.dart'; +export 'windows.dart'; diff --git a/frontend/appflowy_flutter/lib/workspace/application/settings/appearance/mobile_appearance.dart b/frontend/appflowy_flutter/lib/workspace/application/settings/appearance/mobile_appearance.dart index bfb93a81e4..eea54cf0ce 100644 --- a/frontend/appflowy_flutter/lib/workspace/application/settings/appearance/mobile_appearance.dart +++ b/frontend/appflowy_flutter/lib/workspace/application/settings/appearance/mobile_appearance.dart @@ -85,6 +85,7 @@ class MobileAppearance extends BaseAppearance { return ThemeData( // color useMaterial3: false, + primaryColor: colorTheme.primary, //primary 100 primaryColorLight: const Color(0xFF57B5F8), //primary 80 dividerColor: colorTheme.outline, //caption diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/draggable_view_item.dart b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/draggable_view_item.dart index fd171eb331..cdda6bef11 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/draggable_view_item.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/home/menu/view/draggable_view_item.dart @@ -57,7 +57,7 @@ class _DraggableViewItemState extends State { return DraggableItem( data: widget.view, onDragging: widget.onDragging, - onWillAccept: (data) => true, + onWillAcceptWithDetails: (data) => true, onMove: (data) { final renderBox = context.findRenderObject() as RenderBox; final offset = renderBox.globalToLocal(data.offset); @@ -70,7 +70,8 @@ class _DraggableViewItemState extends State { onLeave: (_) => _updatePosition( DraggableHoverPosition.none, ), - onAccept: (data) { + onAcceptWithDetails: (details) { + final data = details.data; _move( data, widget.view, diff --git a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/draggable_item/draggable_item.dart b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/draggable_item/draggable_item.dart index c3831f4950..7d245d0320 100644 --- a/frontend/appflowy_flutter/lib/workspace/presentation/widgets/draggable_item/draggable_item.dart +++ b/frontend/appflowy_flutter/lib/workspace/presentation/widgets/draggable_item/draggable_item.dart @@ -8,8 +8,8 @@ class DraggableItem extends StatefulWidget { required this.data, this.feedback, this.childWhenDragging, - this.onAccept, - this.onWillAccept, + this.onAcceptWithDetails, + this.onWillAcceptWithDetails, this.onMove, this.onLeave, this.enableAutoScroll = true, @@ -23,8 +23,8 @@ class DraggableItem extends StatefulWidget { final Widget? feedback; final Widget? childWhenDragging; - final DragTargetAccept? onAccept; - final DragTargetWillAccept? onWillAccept; + final DragTargetAcceptWithDetails? onAcceptWithDetails; + final DragTargetWillAcceptWithDetails? onWillAcceptWithDetails; final DragTargetMove? onMove; final DragTargetLeave? onLeave; @@ -57,8 +57,8 @@ class _DraggableItemState extends State> { initAutoScrollerIfNeeded(context); return DragTarget( - onAccept: widget.onAccept, - onWillAccept: widget.onWillAccept, + onAcceptWithDetails: widget.onAcceptWithDetails, + onWillAcceptWithDetails: widget.onWillAcceptWithDetails, onMove: widget.onMove, onLeave: widget.onLeave, builder: (_, __, ___) => _Draggable( diff --git a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_overlay.dart b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_overlay.dart index f49c3e3bc3..8fd5969667 100644 --- a/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_overlay.dart +++ b/frontend/appflowy_flutter/packages/flowy_infra_ui/lib/src/flowy_overlay/flowy_overlay.dart @@ -1,6 +1,7 @@ // ignore_for_file: unused_element import 'dart:ui'; + import 'package:flowy_infra_ui/src/flowy_overlay/layout.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -315,11 +316,11 @@ class FlowyOverlayState extends State { ), child: Focus( focusNode: focusNode, - onKey: (node, event) { + onKeyEvent: (node, event) { KeyEventResult result = KeyEventResult.ignored; for (final ShortcutActivator activator in _keyboardShortcutBindings.keys) { - if (activator.accepts(event, RawKeyboard.instance)) { + if (activator.accepts(event, HardwareKeyboard.instance)) { _keyboardShortcutBindings[activator]!.call(identifier); result = KeyEventResult.handled; } diff --git a/frontend/appflowy_flutter/pubspec.lock b/frontend/appflowy_flutter/pubspec.lock index e08419f265..18c44cfcb8 100644 --- a/frontend/appflowy_flutter/pubspec.lock +++ b/frontend/appflowy_flutter/pubspec.lock @@ -5,18 +5,18 @@ packages: dependency: transitive description: name: _fe_analyzer_shared - sha256: eb376e9acf6938204f90eb3b1f00b578640d3188b4c8a8ec054f9f479af8d051 + sha256: "36a321c3d2cbe01cbcb3540a87b8843846e0206df3e691fa7b23e19e78de6d49" url: "https://pub.dev" source: hosted - version: "64.0.0" + version: "65.0.0" analyzer: - dependency: transitive + dependency: "direct dev" description: name: analyzer - sha256: "69f54f967773f6c26c7dcb13e93d7ccee8b17a641689da39e878d5cf13b06893" + sha256: dfe03b90ec022450e22513b5e5ca1f01c0c01de9c3fba2f7fd233cb57a6b9a07 url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.3.0" animations: dependency: transitive description: @@ -53,8 +53,8 @@ packages: dependency: "direct main" description: path: "." - ref: "92e4260" - resolved-ref: "92e4260c062189cf4d5626272af62d0024d69455" + ref: "20a714a" + resolved-ref: "20a714ae0848fd69b2c947d445a2c6b1c2391472" url: "https://github.com/AppFlowy-IO/appflowy-editor.git" source: git version: "2.1.0" @@ -303,10 +303,10 @@ packages: dependency: transitive description: name: coverage - sha256: "595a29b55ce82d53398e1bcc2cba525d7bd7c59faeb2d2540e9d42c390cfeeeb" + sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76" url: "https://pub.dev" source: hosted - version: "1.6.4" + version: "1.7.2" cross_file: dependency: transitive description: @@ -460,13 +460,13 @@ packages: source: hosted version: "2.1.0" file: - dependency: transitive + dependency: "direct overridden" description: name: file - sha256: "1b92bec4fc2a72f59a8e15af5f52cd441e4a7860b49499d69dfa817af20e925d" + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" url: "https://pub.dev" source: hosted - version: "6.1.4" + version: "7.0.0" file_picker: dependency: transitive description: @@ -1018,6 +1018,14 @@ packages: url: "https://pub.dev" source: hosted version: "9.0.16" + leak_tracker_testing: + dependency: transitive + description: + name: leak_tracker_testing + sha256: b06739349ec2477e943055aea30172c5c7000225f79dad4702e2ec0eda79a6ff + url: "https://pub.dev" + source: hosted + version: "1.0.5" linked_scroll_controller: dependency: "direct main" description: @@ -1102,18 +1110,18 @@ packages: dependency: transitive description: name: material_color_utilities - sha256: "9528f2f296073ff54cb9fee677df673ace1218163c3bc7628093e7eed5203d41" + sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a" url: "https://pub.dev" source: hosted - version: "0.5.0" + version: "0.8.0" meta: dependency: transitive description: name: meta - sha256: a6e590c838b18133bb482a2745ad77c5bb7715fb0451209e1a7567d416678b8e + sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04 url: "https://pub.dev" source: hosted - version: "1.10.0" + version: "1.11.0" mime: dependency: transitive description: @@ -1310,10 +1318,10 @@ packages: dependency: transitive description: name: platform - sha256: ae68c7bfcd7383af3629daafb32fb4e8681c7154428da4febcff06200585f102 + sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" url: "https://pub.dev" source: hosted - version: "3.1.2" + version: "3.1.3" plugin_platform_interface: dependency: "direct dev" description: @@ -1350,10 +1358,10 @@ packages: dependency: transitive description: name: process - sha256: "53fd8db9cec1d37b0574e12f07520d582019cb6c44abf5479a01505099a34a09" + sha256: "266ca5be5820feefc777793d0a583acfc8c40834893c87c00c6c09e2cf58ea42" url: "https://pub.dev" source: hosted - version: "4.2.4" + version: "5.0.1" protobuf: dependency: "direct main" description: @@ -2069,10 +2077,10 @@ packages: dependency: transitive description: name: vm_service - sha256: c538be99af830f478718b51630ec1b6bee5e74e52c8a802d328d9e71d35d2583 + sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957 url: "https://pub.dev" source: hosted - version: "11.10.0" + version: "13.0.0" watcher: dependency: transitive description: @@ -2085,10 +2093,10 @@ packages: dependency: transitive description: name: web - sha256: afe077240a270dcfd2aafe77602b4113645af95d0ad31128cc02bce5ac5d5152 + sha256: edc8a9573dd8c5a83a183dae1af2b6fd4131377404706ca4e5420474784906fa url: "https://pub.dev" source: hosted - version: "0.3.0" + version: "0.4.0" web_socket_channel: dependency: transitive description: @@ -2101,10 +2109,10 @@ packages: dependency: transitive description: name: webdriver - sha256: "3c923e918918feeb90c4c9fdf1fe39220fa4c0e8e2c0fffaded174498ef86c49" + sha256: "003d7da9519e1e5f329422b36c4dcdf18d7d2978d1ba099ea4e45ba490ed845e" url: "https://pub.dev" source: hosted - version: "3.0.2" + version: "3.0.3" webkit_inspection_protocol: dependency: transitive description: @@ -2203,4 +2211,4 @@ packages: version: "1.1.1" sdks: dart: ">=3.2.0 <4.0.0" - flutter: ">=3.16.0" + flutter: ">=3.18.0-0.2.pre" diff --git a/frontend/appflowy_flutter/pubspec.yaml b/frontend/appflowy_flutter/pubspec.yaml index 174e2eeb29..4756e55ff9 100644 --- a/frontend/appflowy_flutter/pubspec.yaml +++ b/frontend/appflowy_flutter/pubspec.yaml @@ -15,10 +15,10 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev # In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion. # Read more about iOS versioning at # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html -version: 0.3.9+1 +version: 0.4.0 environment: - flutter: ">=3.16.0" + flutter: ">=3.18.0-0.2.pre" sdk: ">=3.1.5 <4.0.0" # Dependencies specify other packages that your package needs in order to work. @@ -131,6 +131,7 @@ dependencies: dev_dependencies: flutter_lints: ^3.0.1 + analyzer: ^6.3.0 flutter_test: sdk: flutter @@ -163,7 +164,9 @@ dependency_overrides: appflowy_editor: git: url: https://github.com/AppFlowy-IO/appflowy-editor.git - ref: "92e4260" + ref: "20a714a" + + file: ^7.0.0 logger: ^2.0.0 diff --git a/frontend/scripts/docker-buildfiles/Dockerfile b/frontend/scripts/docker-buildfiles/Dockerfile index dfd5caf638..3c3592cfc8 100644 --- a/frontend/scripts/docker-buildfiles/Dockerfile +++ b/frontend/scripts/docker-buildfiles/Dockerfile @@ -39,7 +39,7 @@ RUN source ~/.cargo/env && \ RUN sudo pacman -S --noconfirm git tar gtk3 RUN curl -sSfL \ --output flutter.tar.xz \ - https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.16.2-stable.tar.xz && \ + https://storage.googleapis.com/flutter_infra_release/releases/beta/linux/flutter_linux_3.18.0-0.2.pre-beta.tar.xz && \ tar -xf flutter.tar.xz && \ rm flutter.tar.xz RUN flutter config --enable-linux-desktop diff --git a/frontend/scripts/install_dev_env/install_ios.sh b/frontend/scripts/install_dev_env/install_ios.sh index 78902c94fd..29b44deaca 100644 --- a/frontend/scripts/install_dev_env/install_ios.sh +++ b/frontend/scripts/install_dev_env/install_ios.sh @@ -44,9 +44,9 @@ printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oE 'Flutter [^ ]+' | grep -oE '[^ ]+$') -# Check if the current version is 3.16.2 -if [ "$FLUTTER_VERSION" = "3.16.2" ]; then - echo "Flutter version is already 3.16.2" +# Check if the current version is 3.18.0-0.2.pre2 +if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then + echo "Flutter version is already 3.18.0-0.2.pre2" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -55,12 +55,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.16.2 of Flutter - git checkout 3.16.2 + # Use git to checkout version 3.18.0-0.2.pre2 of Flutter + git checkout 3.18.0-0.2.pre2 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.16.2" + echo "Switched to Flutter version 3.18.0-0.2.pre2" fi # Enable linux desktop diff --git a/frontend/scripts/install_dev_env/install_linux.sh b/frontend/scripts/install_dev_env/install_linux.sh index 55662b832f..470a1128ed 100755 --- a/frontend/scripts/install_dev_env/install_linux.sh +++ b/frontend/scripts/install_dev_env/install_linux.sh @@ -38,9 +38,9 @@ fi printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oP 'Flutter \K\S+') -# Check if the current version is 3.16.2 -if [ "$FLUTTER_VERSION" = "3.16.2" ]; then - echo "Flutter version is already 3.16.2" +# Check if the current version is 3.18.0-0.2.pre2 +if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then + echo "Flutter version is already 3.18.0-0.2.pre2" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -49,12 +49,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.16.2 of Flutter - git checkout 3.16.2 + # Use git to checkout version 3.18.0-0.2.pre2 of Flutter + git checkout 3.18.0-0.2.pre2 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.16.2" + echo "Switched to Flutter version 3.18.0-0.2.pre2" fi # Enable linux desktop diff --git a/frontend/scripts/install_dev_env/install_macos.sh b/frontend/scripts/install_dev_env/install_macos.sh index 6c30317636..763e655d88 100755 --- a/frontend/scripts/install_dev_env/install_macos.sh +++ b/frontend/scripts/install_dev_env/install_macos.sh @@ -41,9 +41,9 @@ printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oE 'Flutter [^ ]+' | grep -oE '[^ ]+$') -# Check if the current version is 3.16.2 -if [ "$FLUTTER_VERSION" = "3.16.2" ]; then - echo "Flutter version is already 3.16.2" +# Check if the current version is 3.18.0-0.2.pre2 +if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then + echo "Flutter version is already 3.18.0-0.2.pre2" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -52,12 +52,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.16.2 of Flutter - git checkout 3.16.2 + # Use git to checkout version 3.18.0-0.2.pre2 of Flutter + git checkout 3.18.0-0.2.pre2 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.16.2" + echo "Switched to Flutter version 3.18.0-0.2.pre2" fi # Enable linux desktop diff --git a/frontend/scripts/install_dev_env/install_windows.sh b/frontend/scripts/install_dev_env/install_windows.sh index 9bae4f947c..56afaf9989 100644 --- a/frontend/scripts/install_dev_env/install_windows.sh +++ b/frontend/scripts/install_dev_env/install_windows.sh @@ -48,9 +48,9 @@ fi printMessage "Setting up Flutter" # Get the current Flutter version FLUTTER_VERSION=$(flutter --version | grep -oP 'Flutter \K\S+') -# Check if the current version is 3.16.2 -if [ "$FLUTTER_VERSION" = "3.16.2" ]; then - echo "Flutter version is already 3.16.2" +# Check if the current version is 3.18.0-0.2.pre2 +if [ "$FLUTTER_VERSION" = "3.18.0-0.2.pre2" ]; then + echo "Flutter version is already 3.18.0-0.2.pre2" else # Get the path to the Flutter SDK FLUTTER_PATH=$(which flutter) @@ -59,12 +59,12 @@ else current_dir=$(pwd) cd $FLUTTER_PATH - # Use git to checkout version 3.16.2 of Flutter - git checkout 3.16.2 + # Use git to checkout version 3.18.0-0.2.pre2 of Flutter + git checkout 3.18.0-0.2.pre2 # Get back to current working directory cd "$current_dir" - echo "Switched to Flutter version 3.16.2" + echo "Switched to Flutter version 3.18.0-0.2.pre2" fi # Add pub cache and cargo to PATH