From 73a5d47c4542f2c8ad4f7c7ab7bc137931d98a9f Mon Sep 17 00:00:00 2001 From: Yannis Guyon Date: Wed, 6 May 2026 12:14:56 +0000 Subject: [PATCH] Upgrade to Material 3 Web Components --- CHANGELOG.md | 5 + README.md | 6 +- index.html | 64 ++++++++++-- karma.conf.js | 47 --------- package.json | 41 +++----- readme_preview.png | Bin 116285 -> 114401 bytes src/batch_name_ui.ts | 2 +- src/batch_selection_actions_ui.ts | 24 ++--- src/batch_selection_test.ts | 2 - src/batch_selection_ui.ts | 1 - src/batch_selections_ui.ts | 28 +++--- src/batch_selections_ui_test.ts | 2 - src/batch_ui.ts | 52 +++++----- src/batch_ui_test.ts | 2 - src/codec_compare.ts | 157 ++++++++++++++++-------------- src/color_setter.ts | 2 +- src/constant_test.ts | 2 - src/constants_table_ui.ts | 10 +- src/copy_button.ts | 34 +++---- src/entry_loader_test.ts | 2 - src/fields_table_ui.ts | 10 +- src/filter_generic_ui.ts | 30 +++--- src/filter_range_ui.ts | 102 ++++++++++--------- src/filter_ranges_test.ts | 2 - src/filter_string_set_ui.ts | 34 ++++--- src/filter_web_bpp_ui.ts | 29 +++--- src/filtered_images_ui.ts | 23 +++-- src/filters_ui.ts | 81 +++++++-------- src/gallery_ui.ts | 62 ++++++------ src/help_ui.ts | 26 ++--- src/histogram_test.ts | 2 - src/loading_ui.ts | 17 ++-- src/match_image_ui.ts | 10 +- src/match_test.ts | 2 - src/matcher_ui.ts | 90 ++++++++++------- src/matchers_ui.ts | 68 ++++++------- src/matches_table_ui.ts | 16 +-- src/matches_ui.ts | 25 +++-- src/metric_test.ts | 2 - src/metric_ui.ts | 34 +++---- src/metrics_ui.ts | 70 ++++++------- src/mwc_button_fit.ts | 27 ----- src/panel_ui.ts | 124 +++++++++++------------ src/plot_overlay_ui.ts | 114 +++++++++++++--------- src/sentence_ui.ts | 2 +- src/settings_ui.ts | 52 ++++++---- src/state_hash_test.ts | 2 - src/state_test.ts | 2 - src/tooltip_ui.ts | 14 +-- web-test-runner.config.mjs | 28 ++++++ 50 files changed, 812 insertions(+), 771 deletions(-) delete mode 100644 karma.conf.js delete mode 100644 src/mwc_button_fit.ts create mode 100644 web-test-runner.config.mjs diff --git a/CHANGELOG.md b/CHANGELOG.md index 5182705..5af7239 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog +## v0.7.0 + +- Upgrade to Material 3 Web Components (https://material-web.dev/). +- Use Web Test Runner instead of Karma. + ## v0.6.6 - Add a scrollbar to the right panel of the Matches tab. diff --git a/README.md b/README.md index 4085d28..6376613 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,9 @@ page can understand what is shown, but also useful to experts, by offering a convenient interactive user interface with matcher, metric and filter settings. The presented data should be easily reproducible and up-to-date. -In contrast to more traditional +Codec-Compare is based on +[Rate-Complexity Clouds](https://doi.org/10.1109/PCS65673.2025.11417613) rather +than Rate-Distortion Curves. In contrast to more traditional [comparative benchmarks](https://storage.googleapis.com/avif-comparison/index.html), Codec-Compare aims to aggregate statistics after comparing pairs of two similarly encoded images, to avoid some of the bias brought by comparing already @@ -82,7 +84,7 @@ Codec-Compare has: `npm run build`). - A `vite.config.js` Vite configuration file (used by `npm run dev` and `npm run build`). - - A `karma.conf.js` Karma configuration file (used by `npm run test`). + - A `web-test-runner.config.mjs` configuration file (used by `npm run test`). Note: See https://lit.dev/docs/components/properties/#avoiding-issues-with-class-fields diff --git a/index.html b/index.html index fa13fd4..74fa120 100644 --- a/index.html +++ b/index.html @@ -20,19 +20,21 @@ Codec Compare + + - diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index 75cb5bd..0000000 --- a/karma.conf.js +++ /dev/null @@ -1,47 +0,0 @@ -/** - * @license - * Copyright 2023 Google LLC - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -/** - * See http://karma-runner.github.io/6.4/config/files.html#loading-assets. - * @param {!Object} config - */ -module.exports = (config) => { - config.set({ - frameworks: ['jasmine', 'karma-typescript'], - plugins: [ - 'karma-jasmine', 'karma-chrome-launcher', 'karma-typescript', - 'karma-spec-reporter' - ], - karmaTypescriptConfig: { - tsconfig: './tsconfig.json', - bundlerOptions: - {transforms: [require('karma-typescript-es6-transform')()]} - }, - files: [ - {pattern: 'src/**/*.ts'}, - {pattern: 'assets/**', watched: false, included: false, served: true} - ], - proxies: {'/assets/': '/base/assets/'}, - preprocessors: {'src/**/*.ts': ['karma-typescript']}, - reporters: ['spec', 'karma-typescript'], - colors: true, - logLevel: config.LOG_INFO, - browsers: ['ChromeHeadless'], - // Makes "karma start" return. Avoids the need for Ctrl+C after "npm test". - singleRun: true - }); -}; \ No newline at end of file diff --git a/package.json b/package.json index 91c1ec4..e06f060 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "codec_compare", - "version": "0.6.6", + "version": "0.7.0", "description": "Codec performance comparison tool", "publisher": "Google LLC", "author": "Yannis Guyon", @@ -10,37 +10,22 @@ "build": "vite build", "postbuild": "./postbuild.sh", "preview": "vite preview --open", - "test": "karma start" + "test": "web-test-runner \"src/**/*_test.ts\" --node-resolve" }, "devDependencies": { - "@types/jasmine": "^5.1.4", - "@types/node": "^20.10.4", + "@types/jasmine": "^5.1.5", + "@types/node": "^22.10.2", "@types/plotly.js-dist": "npm:@types/plotly.js@^2.12.30", - "jasmine-core": "^5.1.1", - "karma": "^6.4.2", - "karma-chrome-launcher": "^3.2.0", - "karma-jasmine": "^5.1.0", - "karma-spec-reporter": "^0.0.36", - "karma-typescript": "^5.5.4", - "karma-typescript-es6-transform": "^5.5.4", - "typescript": "^5.3.3", - "vite": "^6.3.2" + "@web/dev-server-esbuild": "^1.0.4", + "@web/test-runner": "^0.19.0", + "jasmine-core": "^5.5.0", + "typescript": "^5.7.2", + "vite": "^6.3.2", + "web-test-runner-jasmine": "^0.0.6" }, "dependencies": { - "@material/mwc-button": "^0.27.0", - "@material/mwc-checkbox": "^0.27.0", - "@material/mwc-fab": "^0.27.0", - "@material/mwc-icon": "^0.27.0", - "@material/mwc-icon-button": "^0.27.0", - "@material/mwc-linear-progress": "^0.27.0", - "@material/mwc-menu": "^0.27.0", - "@material/mwc-slider": "^0.27.0", - "@material/mwc-snackbar": "^0.27.0", - "@material/mwc-switch": "^0.27.0", - "@material/mwc-tab": "^0.27.0", - "@material/mwc-tab-bar": "^0.27.0", - "@material/mwc-textfield": "^0.27.0", - "lit": "^3.1.0", - "plotly.js-dist": "^2.27.1" + "@material/web": "^1.4.1", + "lit": "^3.2.1", + "plotly.js-dist": "^2.35.3" } } diff --git a/readme_preview.png b/readme_preview.png index 5c5d8062b354b5028d8e0a4cc8df2e57a146e591..b5b19e27bee73e462eb1808927d13f21d7a3809e 100644 GIT binary patch literal 114401 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�UsqfW{>_%Y8&RphUwT3l@bRM!oa@WW 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

Y>H#(XD?ByVO}Yzv+!?Fza+biM&ZI zb0!<-=I?v;5IgsgfbC=qo>H6C)fv6Q1#WI)fpJR#Ts6f|0+Yj!wO{9PJv z?ebpA%|3OVs3AF;ID0rHF@zbqcJ4&)qBRlJdMx_-}dGWzO)?Fc5?UrbCk0aRKBT&@o4ah3Rlj*!y=nQZL0ObZN4d z4M>29c@OvTSgvJ^4u7n56vfAi3c5L#Q^#n8S1_f`KuGB5*pLF6D<^Pb)0@u=2EVGR zYc2tnZL`m3N59IE`M1jOuBjlL_23|7;X%eQJ|32K%4K@<6TMNasPu2^sD7Zka)dxAZjgJW{3ammZT%f4>s_Bd7{hMsX7QgllR_-P z5C5ElHEH_Whq9VB_0vvv-+Z3yFFZi}=a*Xx@A?W2NBC=Fx_%;O?k)kOi}--6uDz+Y z4O}v>H^(PA>ij8*+MgzHGlGP?5I=e$p7Db-s3G+g_wL_DWIovzRYT6MVG$Q*=G6Pmd#~IoOUjm_7ACJZWYsdKfDNw$Owo0>FJ5N4ivc|Le_CA-i z-G<|4iRm{jBWj#tsnbLDj&X{|mzr&OC}xI0DUH@`i%vhVjdMpo6(AVqm5F7I>ebHs zlvfk?M zC_`1=nZ+obV65UtAtb*?UOzHT(g`wuWMT>G=pO~vbwaiNmuz36Uq8z@VJTOVJR^3;Z^FzJ8&SLi5YDa^b(x#4s&R3Ctikv1F z>wMseAx_uYH%2n+^)cMh$vxd06~F$4Yvy{59G2c&G-<_&yshf64MmpW3-kJyQSYk5 z!@>{+m*>V_txkyLUFl2-Yz@cP*0uiAxU;th7DR3xZE1ZXMHh&)s!LjV8v(QfH?s8P z4(GzvK)ub!cReb|K6M?%vBdcA(rQ@G%!Kml3SQng^1QSj?@i*Z#W#&JI*fqwg@)Xl zFW9))QsS4regx{T>t-xbaN8Lf=~Z>Mwr3aCPEWnz_;30}s>1D^#NGtZ5+xO-L@Uh* zqiR&tNwsuzR8;ux2^$iU543P;x`9-@6&w~D`YkeEhALE7XIAZ~!eX?b+Lhh@AENyd%IX(|9*UwdunV>S&-rHxi}qkDCfs&X9qk~Bjn;@MLqAG-OooySh#dX z+i0`jr+h3hn*=EXq%~O|W_n^eP2R)m~XgJA9>Rq7e6ss_GIU&oLd>`vI%#Ex5gO>hvgC8)7pmI#)dq~?v;_o zdve{C2^(BeTif+FMw6XGi%P1}cnoCckY8?A6My^&*}lHHPoR%T4HTJ6qqLv9Fc{tO z>VEIp)Yr@Af@K%CfeJ3j5EieGxKr?x`VMa{tZ|O1p{vy_PWjzfu~904EBZ(!4dQpU zLTiu`+`ao*I)?j-h6ZtsxntZbK7Q-6Zkq2bXnqMdA}pfZ#c^uC7TUv`nQ`4(^OX8+ z6yLUjrwmB?6;&!jk*fUF91iclhoVD|=8*Y#OBa)=iOJc%MQ^Zf8g#0k_ihEOl6c`4 z^KR7Pj*TJWldd=o!!FG-Pz`+xJJ;Xo9T3v7nG$(S%Q!Ya{}~fMDdktoh}21eDtLG} zSe!W#TX9C2GCcYT>RV15?|}_fMZ>Ps8u>3!Gp$sM0r8R$5(W+~c5xB2fWu+Ew_RXt zpztHi$1wtsP91&7$oujoe4)P$w=6}t@LTIed<7JPv2CM){-82A5YBtwLfSrGv%6AHX?FU%v;2Q8a4yrdjIiMu&MWV`_vZU!a!^eQc(Q%9cN3|SuZQ4w$LwmwS=6C zZxnj`-_3ugKj;V#bc&xSUg{1->WNA*-xyw4yy$X@ZbaeN*jsG>Nes>h79HLj z{U*=09nW`?<%T(u&H~?T@%mro^z25ntS#h|HZ5s&x`CZ)5db8ZaXkra>KAIkuZv zTXyqV@S~N%YkzUYrk~u^He|tI$gs}7WJ-`pk1Nf3S@@i->qY&`CW6(eJB~tpT@$;N zP7ag<;cEAxw4yC@Q`jV3eu!npUK-(C7M7gKRgffAs3--iZ@-{1DR?R|I3$InKEPFMi^y7oWr$#)JBPBUrS3rOUt0hFREz<+wH$=Kt9_rd#fZ(#`$e} z=3NwMM!Rj2o_RUvny&luwrXdddGQNPYiW-7bK1oL2v@PG{lRr}W`3SIO3$|0EKS|e zXN~9R;xWXwiVUjkDlgD{>d@rErZ$VrD+b(A{BYU}ec$1|t<{@ke(7}UBtZhF(~0Qt zO9h!HruA6q+-QoNoFp{_;55w`u9io4?d!g4#9T)dR!gb57a>kB^lP_1@G1!%!(rC{ zAd0wyjXd6HO29!_YtNM1>7Vz{z7Wva>_uY`5TKJ%?CO3@hlcKm9R2cY_@l5P8K-?a2=K(J8(oL zxDtM$4K=!^#m_)%oBk#%XKkQ+f{duJsOX%;#o-^ExkCYj^EaV~u1T{vcNr;sL%xt@ zV7?v->F%(8Q4uVN5;D$kLOD|EN2W?aDM6N^?sw=qm1bugag}s*xfE#h%~W+^l?W9miH@vTe}14d3FxF=2Q&h; zw()p)2+w4sWA?cgHXU=zLVaj!bid0pr_fdg8meUAMZF)Xaw?p> z8Ux~@3O-xy&+C!?x`t%7PftU06CU7pR>6-`k3E)@mC^G=Z1&>F(R98XWCiJrBCSFRzR7L{mHsRAbOa{k60JYqcL_|ac>MT$~O=Xm8 zLKY^c1WklRo3oS)A&U0qzUJF}7b!~sib6MM<;0k>vXW=qM;x37S5Kr>#Ed>S1>Y=S zo%8$!NOGir!+WL`l8*2DV!Ss@n!~K;$pzecLw1R@d zwbV!j1T}>qPXg6-jDWk_`SI0ZTV{4PpUt8q$n}8W4-|TUF<-v?7#RshfTPgX0r=nf zT(nRq1b;r^0?2Hj>NfH8qCC??hd#Bq?%rAo&Fow~w$p*0Ri6)JN^#>TgA z-)22ZxkmKAB8RXdpx#WPtPiXt;oWqzOuq?S7c7*fMtg@Nx6oRQT4||4p7rC=lVb~= zS;;H`a`GgQxB+>!pBxC!@SWlN!-rp=t`Fu-ghM|PGI2?vF_djQ5u0ahII>Lhn z1^x?Ic!1Qw#@ZU1A;AEF`wG^zN$TO@;asC@XcqN7UofqRWjE?QSQ`R)6!4KD`B=iiy6a)hWCnqQ51XyVh zvjXFh%nKR}v9q(2k&{E|H2_nk(w-6SnQ~(!kOe(H{<2y1^z^!Sp-Fc!}{y`unwpvnDtCN0w^p2run&hp_5cOa0ABdg+o4+4vfkkjM5wUu zczL(BhTTw`?CJR+|9dfLDZS|tF7h4w010!JP-}l{nf9LG8$N0{#Z;dqu@bJWX?sebup7Wa5yyk}osHmvr zds$^=zxw-kp@AJN?(;jJu_i>uf{OH;p*s~!WWlS(Yu~#ATgCB6Uf}sYwa9aL&1{1d zT~a&?9Lbvqr9VkOipQ8J&@L?1^9e{Rtd^_DHhZZ$m5;^5Z?{l0{Bjuc@>=AR=kshT zST|wp?C5~c0Az`gDS#e0 z*h;E{sC+W7K}=S@(N(mJ2K(ly5^{PXK*Opae%tYZ8nFy-ML1 z2#~qBMqzUUyC_A0@VeB3o<&gG38Fqg$loldgNa>zrwH8@icjUi^#u;Q&ZZCJf6%lP>@vI(sG46^xnrb&%i4s&2J)aFwhtZgw(vvW+UU^Z z%2IgOzs}d?O%xF5h)LnnVC1A~XkwFi`5N19m4K&$lxXpszMoLTM9=*oSXnk2Dw>mc zuC%b6phAJVKfNm{!=Ol)5Y%ca{KBe}wzg|A_nzuB1uxh7_P%LWR#Iw{j(^8HQLcYD zN7;=%%P00O2t8B1;~^o=s?*F$Kp1hOkWhg(FTdxvwZ}B6tIRkah}Zx*!Rwyy`+^Oc zBt1N2?mEzd@%4WGn1It3TIE6$214$>b^HXFRod(5a!FtUeqdBH*pDS?%9o#bQU16~ zh_kS+pMaGfT|Zu^>k}0<&=~aa@(^)ZR9p=DM9|FX`dEX(`N=+vdL6X8g~vjIgJC~~ zO4%Y;AaFxv%fS(psDXGiEG%ap&%RV~sD8bNjs2BQ$_T3I;RLmYN8FBU!2XA8y4bM) z-F6=~m+QAMp3=~e`eH!U6Vx$4DJU3sxK}XtpiP@^0i2rNS7KwC(6bICjbV~Jz1IfY zEYM2(EXbi8);?i9YjgPeTGXdTpJ0LNH;1OJa?{YPF3Y5dgn%pr)7lNUw(pnr z=|0=9pWuQgyiK5`Qm!6=?tlg+m^@U!p{S&!WTx)ob+d=Zn}(TTF8Jcb_Fq3~Tj}1v zSV7k$uO%~p_eMuker@=>he)Gnyk&8%HQ!HBp&t!R89VUjWF+(L+u{#C4W1INLF@G* zQhs%X^zw2ULCFkI{&I_rNd&GP%jY{ajxnlr+MR-^uwOC~`U#L+@a#^Tn7grt9v$MgD$z%-m1ZvD0Rc<>PLel@mOjI+Ojrty3{8Iy0)+9 zL+#J-rgk4fP`hXUkO%EsWa1;I-#eTxRk!aF-%RsrO{Ebh!?su_C`?#%jgC{6J732( z)=uhA6ISIHzuHq`K28h|m&zG=3XBKzea(Gg__}(Xxx^h2dksm4tQ9Pmq$D?Vsng1U z?K3&l_y~{g>Ae;Eml7&uWtBbC!}Tyc$)PBZt*oqgd3mp2_bD;z9vvQjE^=j)3fXox z?Otk6$*HNaNos~{OKSQ0@1kxc@y<1NcL!khX{Qd!g;kW>26|nX84J_6Em~cB7T`Lwu85!Z02>saJ*46ZhK|J(hPG+tEimK{ZN8bSW z8@%(b_LJV^E01>9FKmC#;bRFvJp?_g7OSd>|Hm?EXpLr31{iaFuc}+!#SIsO&Z_Df z^K~dS%rX)u>jO!hVCCGzR7Q{L(fIo`ok=%t9^RY57K~(Fcz}{TmzY7;+;+b1fXsby zAviF)AGc_{8WOFjkdRfTmv+oK6%_oe*CP5fc*M5-fOFLK`1t07PhK5zNp9o2_k4Ut zTnYl%jFb2Z`{%YwZyQe=O@n+pmIpUqgh|%Y-a)c9+;0=6>+T`hHn2 z?>MCV&iS2@xkS%=HpR(5YNF`j4?=be_B{><1cY$;^p?$AAxECV!0woC{(u$fJYz2u z6~@m-**@G~mZv{m@%axS!*kphhb{MZ;H9J+iNoPW z^(4nPZ`Qwf3tr}Mvja|l87$M`5m3{Evve<5^sSSNb0v2LJD=xv->WrqeSJk?VFP<9 zT73Lfh3g*3b1vBTK=y`yrGIDVJ)BFQhkH{*<8m1vJ;(8A>hM-+d0qTVDGtgqJ<&Do z?AmQ3S+h*E3o}3o0Zwu8r0bhg53n{aFjhT~`&BJ=nQ;KOy|ZTG?mkPAvwqE~pnF-W z;nxuR=e&u}@$udX(vsa`lHDzxt^CUl!QmgEU{hKtFE2a4>5fLFGdT@S4FU@`?XDM)u$Z)rXpN_iohH1ul-0tH`x zztv@YN^*~l-O-c{%G9RTv9)4-1AX)@1SqUdef^F4umBk8ZmtAa)0?M6F%a_WsSi6R zScAD(IY@i~@+30_lLR*0QSnFH2YEEmY$J?_e}8L_%W;65^;prkMW0;Q4~8N&)k_fx zs1D#@saaIddVcTh*!#ICOZ+)c>tk%}hF#ZP^&tDzByPnF>YKN28hVJozr5$tyGe@? zP(yrFIfjzN?=kJQ$R*ICJCz8Q1+nHx;_H4+5Bhp1$BBXO(YmE%(JI~a(*l_UmMnyX zlBDg&eoyL)pvYsUefjbsE@;(5NX0~cu&%Zo4I{m#IdGtqLE`C;m z+G12WDPt(JTXft~-A9eIvGJ zA*Gu+`Gv~NjF>>L3`;XPL0c}ZkbUJ))_NzU@ZpPPDw_?__$gt}B`aUJ37(%@Bl_x3 zC!9GrrqVsMJlbj#3{A=23Q6SBcQ+3y`acu6x>ac0r2JHoF)<+xGw}yw2)ErQtCD?C z{EE6@R#9Hg$-#N(VxeeP5<6<|=~)N!56lb{?ddkdERuCjVACwqaGG&9Y!rWtiNUck z@w!UurO@k(Z&g7LSFuoh_su%#*mCbm{jI&veb~PR4{bnG}O8rc7a`_7^1A*zAV-Rt_hODYF{p>~2{@ z?y>T;n^nA(33Onx3#@RZ7#+*mRtK+wKhP~XD>A?l$Sk(A1Tv@V&RP|`G!2z6_E8Do z%KP>YE2{{eqxktDHds>A(-$(jwVu*Y#q-XkWiqOQpjb*{^+b&$+T*KHg?puKcxo^4J}D7Zv4{} z>x$ALBjBfXYFCm`E!&BUXGKN5W*8#kUh&2>H6xAR;#zmR=u6^WCmKgcC(D_y69DyB z6N8h9{UtiO!-~E<2ub(ks9vvTH3alrLZ9jMzJ-r>0q}T^*&M7aWun^)nzJ&{&%;l633+S%9+mvM0M@`#HBo^qPnuFgu|6 zHva7|Ajdlw5v@y*U&&`9pFCvHl)j8eW>WX~UT^{G{`9!@v6RBUgUdw|KLelw+d(2``J-e{*qkI8c@#?4YP*OI( z$nb#0Mx4U`YG^?fe6Vo#-xDZO%MZRW7hUiG@TCshiKQ+3qz4F`BFEWqY#Li*?{uqklYo zsifqOiM?st|Fo3}8zmW{`}!M#>U7-P7-NPgBm=_(LY)cdk5ik{MSMT>R1_S2W=a9Y zh*NwLh&YL*%!+3T$IjQFH@ki}ST^50A-7%@#LmZJ1(9Be`7#$gtThM?WP*retymYgvA6duG5{ z71*Z`F^al(Yw!jslfE%!7~@~<9xs*py6-d42QulrL3!M(f193fVRZYsJQ}spoO?{}Z%cD&z1Y3{ugnb+BPkD+PcyrWd~9+i zBl)v=1iB@-7gM6busqva9U^(bOL-N`W|v*umvYM~>lOrIS~RbT!3Agm{g!ZTX~`MuB*M?nAiG#$ND`SiIP*$mL)Ko(947Dc z>8Z{{P$kXCGR4KCKOXC^J^Y}es%pbAp2LonmuE3B!emAIBnJ2Drf&K^e{$>@x?G}y zS~MphvBo4_ON{+zZTqKT)wu^IC0Tu{R+BJ|J=e-W28R8>o93~#at3$O2ir=?&%tuIJ@dRcW=g=c?B4R;2Q>s7s*2SV5s5+%#45 z;;!>cay6Lb%i49;SHc$u&trV~tYb$k&1?LGaIc&aiNzy$I zRo$QQHu*F=0j0`OqNkywv$N(A1KqtmFTw;3$d^A@raLpdjoWa&MGO}V>kR%DxA}pb zmu$J^lrS0gzP-Z3tdpY^pe zp`*utH9YO+6#t*fL^OR;_jELYrNS|i6oZ_LDx9tE1f-RE&e%s|<(BnC8L4RuYUa6L znOQlOrc55+A~>vb#j!cvs2y|KlxGMhqVd=hn_@R#xn2IQX?0*kQaPXBbBSSUf-J$a zsA3FSBoOU08BX}ql{VMPUUq^6bZVx~>q@ev<=w(UgfFaeTuT1kw{lV!y8t1323V$PwJBC zz<5YusVcSTw3d#xaS7yLiV~wHz=KFz?T?Pd@r38i7!+wm+>3UYqOJtq&(W`JBoOpIt*664x3_dEr zvS0%m)Vw_H78KxbYyt=;M@o^6o#j_-%G>)K9({@iqXW?eldp|_7Zw+T^==q$`EI?8 zjl61PWQ1_vj_W$=@G&EVn`@ zr}hL*Tup7|xc}BwE%!I)*82K7mq@>=7%B?|f7J%io_bUDBght)R{X`%E1Su-+a3jv zuDsIk1%U=N4#RTIJys8tW;xghxPdplu`260K6HzNAT$pLb~nk4WDJ})oAhVD;#S!& zs%+M0x($Y;b10>vhfU!__cG+{;iC3OO6f^Xdj=Vuf%P^<-VlmuO_i3Yl2J)79igj-aX&q#`kTFL)m8G~27W>G?98gG=}SRHvzKQHTRq9| z{^+zf+&1U?^ZAUJC8A*=DrLV7bY)yMU%6U*e0(d~yKtDy(vw7K+`AhiQFdcB2O>QV zlgx&zaO->b75s2@TqpZkZ$N$6srjo2KYW8#%i(Oh*1<^jr>pa>oy}d%H&@R&%BtTX zzxoAeaMY@pyo|Mch#n14COD2<&eg+dDDxB3`Y&C1HStZxPy4$+a`2gptm{+NK- zm{d)g#$AH!>~@j0Ni?HlmfQx$d)`D7&{SA7TP`SZ2VZ#~-)TA6%ExLBZ0xMZ&$kX< z?42fK{231ZEbXUM{evRI7a0}?ucpL5e4U*YK54f+w_|6a$tWwM<3~K6o)kP!gT0M9 z%b>W}_T-nVfIy$dx-dXB*WaIuX68W?@m}hA;iq-ik|N`1=;`@d?jW?Iy)NpnhVS)H zG8xOG>m;S;5wbSY`*HzSH|tGOZ$U&9RO6}F=-U0{_OHw4T9|pIsBTv7`m5nPcg%7i zXbpEMD8rj^x)1oMQJhOQMYZny*-g3d#=m*5#6B7&t>ep(3@Rr3*@!&ElHS_U zW@&D&mdV0TvLR?9{{Z~;$24oB28PF;tXCf^RjQ?KG$Iw!R6YpzP3~#bzk`sV{e)_c z7_(B&%H-wC(!>pKKGew8`FHOQi;J1Pk~p{kRf&!kRn$Kyqw)Ofue0!Q;v(Sdp+indA8aKqPa&qh1=B z=Bb!?b{#$;y^1pV^vlPKJwnU1JU!p~{U&A^SR^{+X`I%1;tL8L@tPAw7H<}eSJ#Wn znvn}1!dS}O(lqMs?Tyb_opnT;dY3`d<5sHjRx-K(pH7>OAEZjdXD+*ru>yrwM)(9D zxx+vsdD^$MYd!rPo^(qU+#{st`;z0>W9RRJAei)(6EhzE zZfb094sll^8Gkq^kya-MXJ%&ZmnVdW%M-*CD1Q8iK{(6~D6`INY01>(Q7g;ZHsPh) z>pL#s9AY`iuCn5@p8oP21nk%5ssootVfR@x_w;-Lr`1G5?Orih60|(NQNpME(ac*5$fbOp)Lu+d*t7=(!_Q{m+1=LZrwzX|2 zm%>~&G-IcL0+E}2eJpU=+U>}?66%ws)?Zl(9hIKg+{$L_#@39xLoRNf_WX^leDA4# zf#})|WMoKWcg3=Tc;(sI@h)KA2f$=KSGtX+_4@TZXgxY^PV%}PnE&G)nWPQfqB_v zlCY2W?kgzvM@C#oUyJAVq9P$NDO-LILLn^uIDnk!l)Jt%HLdREtz{5=a0)7P)_?~UeOd(zX>~-zhH4s7%dO+9K*_mbmts@2@lMCjouWtwB-+-t5 z{ykJCK6>;>O;uH1`8H4&A!E#-TKxJ~_A3y!sxAFhCP011Z>O985&{&9;X++dV+CMi zLP=m~B;Ny^yhe(y&!0b!S3BgaK8}itI@=%8hMvJt$OEl%?1SndzI~auT1D)FtolDpj7LspAOV`4@)2)axVwSxp9u<$9# zDNo~Tj!vX~eIj>v-{#{|Vxr`Ch2jrhhGNF@TW!oXy0TkNPMTNM>outPLT25m}g{=^p&7NBZtK5Tsd!G&udS=FQ<6p{I$z2VY;f%5bmCM}6=yHNO$sNDhm6em7-|dhA z1I86R0=yY@Fz)dLva+(E^96ZAUr0;DLR?pAGiR(0Bl3UCH_%^As3|9>rhP& z91J|DL;^d7lasTtu@O`P*VO_eBXKm1Y7T0nUp$U%g{&Clh+*6P1_qtCYv8C58%NTf5sNzN6d~b5M3%KZnnskt!Y%xv3_rs~eu1 z3t3$WclWO|%!)QlMZ&IJuCA!?o_E(0B>?y46Y@C2ydU}b!!Rf9|0m!oVIyL15ACnF zjCKoXv{P@Hv`gN{;w-bM0o}p<4}$e6yncy3URy2dmy2C~2i)(X8DzZYh#e*P(*E(m zpMOrRRt#%wPpr974>qU=CtaZWc*2C5U0lqN>LJfuke4?B#EJ6v@BdrcL~KBS=)bgy0S8QI#Q?SXS!Q))WMoS)!rSid?ps$G zk~f>TBA9ufV4{pUuHAOQs@^zcC2Agb)lLRYhP1RS8}?~W8OzBxk<7qUum^PU_`*$K zcNvUEakT6E_mVId=#N}Cizf~*1Ya7w`jt0!QDJ!sBGw6f%gG35ET3&C$f+XYJ77MO zmUY@*Q^pDY8O*z|urcLN1x2YSB-`}tArS<-`*{$^It)oZihBg|;8Pg?AZK{NpcMTs zmK*=Mn97PN;eA-Y19Y2L1DMWgU8m~PFndE>t8muw+A)PQQf;^VGANG{$XJS zhp3z!9EH5gIoa7jKic2h%gg{})X8=~kmCjIcaCu{D?%6&NHS&JMul$2;FJLA5sYWG zlk`M6`QyjWl}YHpNI+_spC17V%}~1zLf&2!TiRhl9LYSU z>aPW#p;KuL@ObNCXzi3VhFj(9{Z#wX85Qj;h@r`80iRcmfTXnVCoYKcsz*fVZyZm( z3zLk%V1w0v89eC5M45@?QAyEXB}ZAJau)vZ_GM?=;K18f~1U)|Z6!=ZWP|AGk8#UJib zejf)%5C#r<0huo=LOTR7Y0y4a$JBJR;0<1{MQJJUc3_9|_VIyi{^#K<=m(rc^Sv=` zNJ84~4nnfaEV|pNvjxCwg}M2M%M2;JK;1n(uhXB!1cb|`+WwrT+aMMq~Rh{xY2CJtLqxe|K^juDFr zKYWoMO0hQkx%sS1;kqze{@L7&jQ)LEe*P(1hq9=FXQ#C?=tl*_E%;l`aT5oP!i^v+ zk<~7{WNlsOeap>W34oeVT0G-3$z8(4#hoH1Ot`;VTCQs4k z{`QiB{M1oN;H2Y<@@O2ZnZNo%k76+N~q{y#Xr#~*%9Tw)7FL}|vu}Es7bI*EhzFklB0JTGHeN)JQ zLEqZSR<0F&G)=+Dj7zODTRedl*RifI8QsfW8)X#}wRUb5Sam^Xg-zq$)fzbvu7=k! zIqq6<%{8}+)S<8c!E0Fz+v&!%zo9fBSB*V(d(;8&QIPZ?w304uq>%Xx$zPzfrqtx6 zR#v|L6}u0!Xn@p`{?-Mbi($RH1&~mJgRP-huNpmW`OXsUXQ$m0;Rg>s{fVIAJw)1- zyFsc6*Eu74=C5gGe~*+<;LJlpQ;5tFlN%_SMRTjN*nz3(qn+;6+R~bu2_NLxgLvza z7@0q>3(dy+IGQy2aYxf~ADlK3-ybd9Yw+X*msdkmv$nRjW@DRO52!@IA^Hz0k&Y~$ zD*z~NZ7p(C)KVCCJzPh}DCzmKva?OA+n&+Ug;)%#yN=wj{9h2?w!5w$VOngSzfpHO z-{il0`}`h011)VXv-HS#$4j$NWTojnaoLY1irRIqkqI9g+S-`GJ<=z=4h#s~+@yqr z^PNUJwwiSu>7rGoH}X4&{mGQ*tCvdR?}GLxg@))4@mPGS2f?Y|JF1_6 z4oLyE?jJvVe&+ct_wB`#Aapags<9|&B)6M!x9eC7&1E~n$H!xr0@aSCA0eBl>+TC# zv;PAae7pW%)WSbYo@0Dn^VE=Y)} zv;NY|TU+LeeD@Crj~=&s=H@}vHJwWEnJO%AJ^j(<2+?BVMUQ6ja~o3^kA#m?G0CA< zpevH#b$~q4fFShi=J7H9VBB4Y$M7if(kKQumR8;3?IQLkKLWTOTs;--niyP~26POp zb;TR+muZ5>JUzdn`K^-u zud7nohBW2BnAdN ze8Eg@8Y)F~^^C9C%T6=4N#t;^zR9?(GH5cX$~%Nq`Azw?-}u4a@890mcF08#Uy#E8 zLQB;ye`AB!&CG1owcvjTbYIvTJC_W< zQ9bB>OE&|YN0|3<_MSc$5coF61 z!Yz6Q;JzVVQI5I#vK5XE3-6pZ@u<$8?EM~lCwBYxHut4QrsRA>`Q6ixaRe&?KyT z82zXqHuqUW+bC$=MwF}l^>%uCDVO(h%EQ8OWE2n(#qJ2PRA3q57O3!w>z>$`andNo z^54F*kv3EtO|0U($uE?riEs%mpLFIV{}rPK|4rJhZE2D0aT}toFi%R!i%!zk(LHVk zMp`qkERzBy48m54uCOt4L)Ire4e$RP0dVIwL^S}wCiN8%XgHzO05ah#&AfCrkAY12 z0Ur(m%O66p_ut^D3r|ACvCBfs49L($&Qn4Q26PS??$h(IB%TJMscnR4`iBf^8bX`H zpP@Xc7_AIXQ84bjHZp4Ndq9zH29vI^WVnvaWEn5)ug#q;Yf|6wP=Y^j=ePd~cTSXd zL2-`o(Lb1{84w`a+G!x&0phS0#XmBmZI(*RXy1VVr@BR%xU@8JkJ!}=;t%5YZML8} z9yemTFXPGj_W~#FVqj84ZU?Enp4f|c9OaX zKne;;0nP^CbQ2r<>d-poVx<$SLa;RuRFEw9D{30K@RFoyZOPsUgj#UTO1htTB8__WF&;y7L3U>Jz8s&>707^ttG?rxsNux7lT z_Fcs>pBVoSF~ReOSX&PcHuj1JqF>61V2s}{ATHqGag5aD<~#&ogrp7RlNqu-`Oc4! z{#$MlAt6fg>?}4<-L{=X>;T7c{{FoO4*+n>%+3bl$s>9e=lOw!UljxoU*d?}?TpttzNp=2H7KB;EIAC{5ARfkeW4eOFZVcCJ|DY^0j z+FHMzPHk~IOI>Xf1Nrh7we?rGfJRbV;+07bJXmb)|Kr5J%~EeC{<_)`kEmi$xnUHUI&W|7--U zfFjb)PP(|fazxPCbfHyu7k>p)nr2f!SBhv5sjpHj?v-k(q=Ib+?`cM51hl#R9LE_pJAXSONJlRKvp}co90AA%;enr(k>Nw=a=HQ9=es=XRl|yZ zz10CkFJt%!B67v{GciE!fCGYsMZB_#5BxJ%D)2VHW@mfzPL>*owgmNf{}3P-zG?Vz zQ{2{8!cnHn`*^g%Qsb+k?Ai6dPQQKF&cE6p{~QgY3^s>p7sZ7t0hnA%wq&ytr%)3F z+oGmM7>TbEE&I_{%v0WKU!0{jyPW!U7jGwnr>{(W!XaR(299GuS zXoiUS_oAa$7xIVC^?)D(>9Q65j%svu<1n|Ri#SjS6_>AXu@>*?U)0qtFz$xn=05h< zsfWlU15-O5v1APF;+}dUh6l7EH|;ap+S=U^<%jtWbi@y%bxPg$AwCay>x7I+{m&>P zF_K+@QY;xVP`(E>6y;wEKZudV=Bs%Q?_)Z$EVQ(QSy=d9C~+uSGyyk7*4rD>8BhXu zD=BIQ8gvj_ujXH#FOnoD>CHj5;Z-_STwIK4XYcnr@qEi!%oZ!{%2vfCwvc&%_Aa{S zuXQTz#bxgwRJd<~AP<8!k5S1O9|_6dO*)La);`jF(yVhO-SK!SZ153ymTzjVC>no` zU?keHyasRdAwpa079pCpEYx4y72vsh0htJc^x4rfkPC~paHEK8p z-og^3zjw#)>=Kf>U@x%(34daM8?knD5-Ic~D~lRlAy@#NHpRq@GgEL${wp2hKUf)W zc@4f7iay4)oWPKKxpZjx^WSUwj_I9>hI{b;W@7yP&o`cLu3kk+N4LLXuq7w@AJcm8 zZU<=h{d?g4_2K`we?blE^dkB9cD?};q%A?#XAWq8yNqz{Tc~ei{$^_Y`67Zy|L`{c z^RG92Ld`!dM~n4~`+}=>A1p2`Sd0~^+vaLO+eCpDy~r{kS0rPA%Hf~GpB(Z7bPI}S zhN}}2{bl#lJ15L*xmWbfz095#WX@tmsFrMmZQ@LK8`O025s}0Ulm;hb%r6!jP7w15 zF#o>)N|3Ncd8S~>V#Ji&Z3ElJ#LuO=o$xMEUXImLmNoQ8_771aVG!6xKLRlk=ut%l8ZkQpwXwby9F$OHULt>7;L6M`k zyhsg+mwBk24#!aU>dzJ&5ay$akpx+qOYXUC@?#H&<>;277eu0WQEuPavlkZ?y(J(f zZNc^FDggd-e5VES_ildPVD*U|c~%^O1bLv2=6O~0w~qelLSV$inD*bT;Rwcq#2LlP zybiavdP#cu#?0LGCIJVMlt{81PwfS?GPdV`T~%+sra}e8%w_5}wy_HHk<$Dz$xpbk zxl9$$Q3wxt$T^iZtO{6ANWg_(!bG`oOVnun_ylMEBkSVIMsb;yscCv5sDMEBoJp(5 zHR8wKvZZa zbOF5KzE>(LFU@P`7&se8Y~Pn$+FAo3Yk#wiCL5#Ld5M-S95;tU(XRK!!!Qtit!Ad| zj$g!zsJeWdnVM=|(^+>r(ug{{qik$(d~~#FIP;8h`a(aUkpd?@Q!@Bfd`8Xq`4L{V zMB>c=69x@7%O871bFWGt;NIkOmr%a$C%`%Hs$r1c^?52v+G`5?VbXwwVDMg0xHImI z*Je>GsM0AezLTWs7*e2uxrnErC953SacU~iBY69qkxA2SZee{bK7Mep9BNYB4vF(r z3?|3Nz3*Fd+m1J`tC*V${9Bc>2AC*Z_TI}GU~KlY;%gxSp{&fxj5I1*8O#8Y&7u1i zBMQy;f6G!JeuZ!y5AC0MkK~C>>Mk22+WGrcswLl9e>NEwQN>G@EpaE{`#vH`WfV?4 zn2u`IPEt~Ob;ypZC)(V`8VA&gqKrDvA>SJ};|a{OZo=nVocGt2=M%ZbeoBn_lz2=< zzkM9Z4fv9M8EZvp?z6EyPI5vw*NYzx=fYgB3Aag+IXMV9!CdT9l~=Slk4$waF*Jvc zZ+lf5ta{BrlGkc@&**xcO{5>^{Ib+yYw&*sbNlypM6fzB*l$2MDNC+fO<9El*tj2nK zZC3wOskjh0e2k2PR0;0Gq(X~;_4Dt|lIVLic|Aj$*Z|;7C5l3X82IiT83p<2t?|3= zTk{q|zO8pieKBv!gCw$1c2->&O613nx@5tgp??&4Vg0*{0;5(+&n@gQN;ehvQxq2F zbO!Ic^}4qS0w@y*x3nsHL>0ZZM>@3tid*nG&V8)(TE;Vn)ZmWFL#w3wi{yk({O>TU zZP(cx5WlKVknz<;v18m?99hjlyS-o2)Y>}Zw6Pg+HXpW`7)E@lF1BPg>W{mooV3lj zG?Sv^+jH6FoJuJ=7-b+-i^{j*DJP^-sJ+d&6U%&5y*X8b!);t?FVCQRcu^A`^UuM7dh=~C;iX9$|WQ&JXu5;AhmYQ#h4mdzgq2IPKo_0V#lCaCG#X4e0w;-6^W5rn4ibxRnyCQ>#3`C@~gd$_tnwavQKd74N^g$ zDNlT85SYR$IyZgo)>Rphkh=M)5{;=ydN*U8;?zHOS_etwNGfLjpsD^|PELU+%JzNjx4r*w{-UGg>e7M63@yDj3h{Xt&@K}SW0&#v_76jMuH)uH!re$$Xb<=78( zp({4)(cW5PT*cNcKma5%17v`i4*`W%D09o&LnrtOn7LFz30K$>Op(M^Km&@_n?ng@_=^+SGUtnX4CCgnDPZV{z-xm;* zdvn<(&F^QTR%#ad_kGB$PX7d>YU_h{V4ofF<0bjc(Z9|K7l~62r$R1?7cJuGhMxG| zJ36-1+LiyD?q^ZoUI`+^z#}f~Ib0F|NS$cvh?88}G~Ruv1i*Np5N2mnLm=eeF4frh z^TG1+(lXt^=e*GKfE7*C(dfJK#QZ{yWE5mid|T$NY-!rs-k;ym|Dt(?y#%+`>MV7~!zZVureLvCnrtlhnDHy{ur9XIv_<}-` zickqqd#)iBWvPn($BrQ5Ev-U+5tm-u?fetJgGe{h>~X#8<;3?Um)2Rofxo^!`SGY^ z;AHH5sh-%!?&SUBE38scg9@piLz+K)Nch@E;=x-n%!(r0BIUiC>$4(Wq1Tjz{1zd3iXwO!eGDO#3aW;#Z=P)I}$ZdT~YEi z{t!dY7s|sYwAGgHgFHMW&UJ!6Vx2oK_^B*XdQppY+{jUt>DeYcsT^Cw3wORT`7 zgI*_%uBh%^&cLE!Ch86wI^AqS6!;CZ7u=lSU=fgzz>d>rU2?8raxLW$Fis2H1^|io zV|WySUH7GkyStvLnyaJCWQ|j}HgmD##w7m36mgHYnNY3YBs~W0I`7@jXla*z8Iw*+ z$u6%Zq2PAy9Qj!(_cbQ$f1`^tG7)D5LuPJ4@t9VqLNeguKZN2KdX|$-yT^_Q{M$vI zlm@Ppo`vv9OZr#L%INTN$k` z(of4Y$j+{-YUCh2*CQiBhH{l$CQbj&N^u!+)XKx7s0wY-TiacoyTQ%7CG|~J#o5)- zHikb{K>M?+(4;6$jCPI8+xK^Vxqjn64yEJQ@&YpW}7dTrXs-Yo3C>`n~m zCHnc})M6arlpV1lWi3>9DMlx!B@eB6Po)Ke_j9_Pk#%4-V-20(QJnWltbL3fc>exY zLyH+#%TNNA3Nty!Jo&zugY?AdfKnL%ejzbeRdq>^)85%BdAZ}~<0B}cP;BOx!o{B7 z#qgAto(hs{U?RHmH{32p!!S)vmbXQgJ^btU{+6JIad{K6l^T36v|ZC#VbdV=w(O@L zHV$rW!`4Na@3vqw7tC*NZ=(htaF}cS`**?EnA7a4by4|+rF*!(J)ntJTx@p>GdpJ4 z7IfP56DR2dWXUKpu(@hIPbce_Tgu`tu4fiHDa8$v`j(HZ@wzOyTWVeN6QH7_J3Od5 znm0jF`u;enc@7oZ?Xob^p3J#hZIk^Gk_?PWg0wejVTy8QWLKNy`T7<6j-SHIm$P;kZD}+W$ix}76P6(( zD?mNJY@SSbu2^>Af#hZF%dtQbrEpJxoSNF?%WdJ^Utiq%zpS#E%1KNpP=!>yd}bz4 z^2}If_si={GQ|bvph!Ds<#hl~%y>A=8xBh*4H8PaOOnnf_!sMF5SNqPiCi9^(v`ww zG^@EgY$SluHdh_d8r8F&uW!J~%yHE9=EVbQ!e_6zj4^OuV-Y76PBVz&;Vr)}aaheB z$;%NjH`maft0&|#Q4L90TDOCSc~O`V5wU8ExcmIle@}l;lNo6|fp=A(e_V6n6($LP zPfT?ukl@1*K84cn5HX9<(vd<>@_qBi=m~Wzn&=Z1YfpSDFKZ>Fa?es?>HK4`1j;u@ zr}~Xi%G}q6tXQWw8-LZ+zVE&uoV93#;-xXK9^(xkT@qs+~7`p z&9REh!)pIYWZnl{oibuaeGS%(iurbkx1`#&82CJyUW8paO*}lV+fVE_+!yn!o3M*l zDAH3VE+*Ap{#4t_5VY8pb3RT00mF@R(eX0h>jjf!zV^M$Unjec8Uha^nU~TKJtmG2 z0RKqKZzJ44*(1JSI_Xzg4KK?^YqV^ubTIn_ZB{uu)N|9Ov;~wjB@vg!A6IEK?^Tt5 zmI_4T*Y3{SXz-5(PGEM9Q!$>|Z>NQ$Bb&?osc&{Q0jt@+o0>fC&;JG@Fs*19N2S-{ z4+H^Cf;8xHd^oJrs&$pKGB9|ZODjsmTk1896gfOxDWQD!o9S;W{2ZtE$52!<8g?Y= zJtnSChrc_+#xseJ2iod*$HcmH%A<3a7t&1-(od-L_O-r2+jk?u>fe`{$g?ug?JwFETtr3AjBLCsUv_X@yD{^)hyDtGSeGerDTA z?Q)8nA(M;va6e_m{ioZI=cc|dCg?(s%9PoM>lY-tW^^as4RgMv=aHz5j4k`UrHYWv zGd=r$jiNQM*Pz0AePX%HiE{sBc;>nRKL`VTW_I}z)%uZNRYOY3esWxOccE*R$#k)6 zMVaAN)R?jEHX=igaC<~~IrLZa-wVO`$qjYSm2w_8y2qn`p?V7B-(xQVjDSu< zyWurGN2a(=!-tn=tuxkW==RH@;)vW_TA-s=E0$tDrSM8lbobTUdAQOl`sa^M$(%|B z+-ajlq%0 z{mcL<_AM+s^>NLL%9=jHfBd~8Wa$`c-QFwptEJsh zOEUsl0FY#8>~lS<=;+99qVzo0W6}%WY-J%%(T74z5Is3RV+h8zi2U?P2K_0uo^*Mf zO%uaoKEC8H)2AuTvhmS*YNhtVtat)~Qy9<6oR67HuXTm-gRXM=7`Fz(hJ~GyePP!K zS|PZ~3|nW6?*;v7y@rG&m-1;UO1!&8WxZM^qSaor?CjTWz|ddacL{VNJ|z})x7TEA zvRNFQeTw09nLR>Xl<^97#hG^cYDL_@pdE2BSsC-F(Cn}-nnCc@%cwBo{R`avrp=CR zFdIk52?+aR(^qz$p&^$i>*^zPT5e7hlp-`#)LZ-Zs~h@z8Bh|DEZ8BS%_}1l{OJQ` z!J_Yd*%<9dmWKb_P7Y9fg04%c+`>40JH&w=XGdAHdIz`pH{tCu1)@HV5$;SH4R`PL z&SiWIWuT&R*_sZocFnL*XNNc$TRR2wfdZ11 z6`2@jVc=|UXvige@=EJiuQ@!$-B0IYz6Tlq!}h+dHr1v2tePQ6DncsTKNS7XKU(PV=EC z!<86eH6U2v*k{Fq=D;(t4*0jwiAI`-&07_sAw&>p;bYkB9h@t(cY}R+c9LIMw@8IX zV=y-Myk@J@Teu5US;l2K3A$cvHVm@i)GY6<7z|Gtjz_gCduM0&iAj!$D;i=7lsm7< zEq|%%w0l@~-aAL>*nhEPWjd*=g-0_Mj=+mINeF55LLQ=*3t`Slmp zCOwcXw}`1H z5EYf~hNX0Ow;Kc%0V(NjknUQjlr)mk(k0z}E?~cY-}|5MJ?G5)=ggclXN@!4?Si$Q z^{o58?kj#_YC1Apw%TzuCO9N4M?C`3ga4r*HaIFuw8riDpnVl9z}+BVn~R0oTi0Mt zqO=J6#*K7A{|^T^MB5WK5+nAVlGRV%zuPzE8)KSUQa1hqYv9L^c;o1c=DjBl2w8#T z`Sij9?SltD!3}(+R)#z^HPy-48E7PQ^z@yPY)xHVA91un=+E4ojF=c?6^#uI4PU*o zI@nqOkF7g|gbWB|wb^iKEk0R0NZc718fJhd9q4ibo3FwPjNDd+O6b|y6{Ms(09iTP z78yoHPfKeAE*k)JhmZ!y$K%7@JmZbFHi<#HlfO+e)%Lkc8Q;zWlIm3;BD{T&G#1px7`<8A>>iC;yFsZge11XOhOqXZqFtg4r zKkQg0bFp{2DZ*b?Nkb!QVr-~D5)v2Ze%MiixisKiCv;aSsnXMnX zi`C}A{m~U(TwGa;@sr`pKg-5x*teGJuW?>-rx6sbsla!1->6@Qr(JeQ6IPyX2so)B z5M1*u74y3mh+6b@!F=DZFaL_EQdqdAb%WnyXNyJT`}-Nc5WM7YCRJhdb>3ffx?&`2 zL)-VJIZJFixYbQWz8|Au8}mO&P1kVK7kN%g>mMj>NKd^p|H#r>duv0_&ygYRa5e`w zXw|N2DP~iM==fy0!N$OOtLu=Ew8*U~F3UZg!-v8f!1!*bC!;!>Hl;>xrd=s1dC57m;#^-zvtL=LSef^DedyQck zYsxEk`UNqZG={w|_T5>+!=tA+10*%qy)_V<^{%QZFL&JEm;oblA+S&f4YvLq_3)1$ zh26kBt;~K|4dBtBH+uE2zuIE?cEMfb@0O|SHMexza(OxNc+<7>e(ZhHEZ zzagSspIN;W#7HN>!!27Wr=_DKcS{A-M`0ij^a_K{IB;rDfn!uLL>`aRdB(8+TQuuC z1QJK&@7&S(jQ)u|*;VYI#Mj|R?WmY-?ag-Ts~uDK?u?ejt=}Nztv5|OW;gZ=>&x)= zt~X*MAro?nijLmhYwqFMJV|n9=MW^UqGP}}DQPVnH;@Vm4`I8*ZnZyS|WcU4wqv3%h$)wmAriXWf6qCAs=y8e>}FRnxigybj1yee9Dp=LLvMi z!Aeg_d7_|@qRE%~BU$uby(lTqbc0KZ$?G|xCq8Pb0gFFnL1fTX*h6QakKVn6ZX?sh z#@OZUBAbmbPlsJbpPd8){?gvN9uPlCmnLOd8F;2qZ5A(B(;35`m6YT-{!gOs&<@D4d(F zhvxo48=E&S=Z$ss^bHoZ7F7j+K~2i>hfL71&wDI#@wLPG1)hUq;^J`Zjdyoj|44cY zvU^nCpc8qf_!=*S5EC;7UK;55RkiEH|2KTLPP*MDiG!%F8%20QYki+O>Mdk zkbt%}jr^CdK{pj9-LUM=mO!_H&`|N(a5&_;*C-&KqwTDwF=ak{IKSZbEB=yK+v=Fh zcl{!w4~ujVUJI?mhOdqHD1D-GSRENkle}Ymm~?eBPve^N(e%O;%_-9{{k?m-+9Rv$ zA?b2*GZrS3u?1G-D<)1nsv^(Fk)k7v!4lLI(@l9Zjv$K!=54SUi*}^C($4_|&=PX3VkLYg94Pa`tsgeF2-qvd( zP_t6OL)PGb|H0K;Ai@el17D^ZK%IuC$Kko-8%8_vh((xp#aF zF)?NN&>Z>;i;%OIfrsT_?$poewBX=51_i2L11swy$pIQoFq zz-J2dLA_mA1M+fmbcbBqAYw{SM$g734>Cr-qjD4_nSk|`l2Tvm%#O`?Bu1n+6JINv zV;-fqN_dmNVmL1kH@ZC_P&z{&0h`IBv$!#zIx$rQ@s;sX-URYgskd2L@+u9T8+KDczlY1?p_=( zpU$jl9r8-vczLr+TxYzFL0e2tR)3#sd7oODKbQGm@~t;*`WA7jb<loi$9GQKLi!w?(Xgu!Nrtr9XN>G z4|n{-n=`L1x$U$|+^Cfk)sm8W^5h;@-UeF#+js92OLQK6-4!AsA@||eDsWv#cywfQ zCxEx;GuNH4(ZZEg$@lQ`8yj{~>bVXo{`Skau2D>x=4AFM(xoOP{r1?|TN<#Sq)ZlU zs26l4+&Fo>g}4!3<7_UsGZ~PTKWKV5KIiuS-NKk=Rd$+aCz&&lS(gglI6PbyyhzL7`|C9Up+XrKC&)vjMoyalyeGzAq#WClu49mD|tvJ5H*h9kNpHFH;&=C;!Ix9lx6FL`R*-!v9nPFOlO~xMq z;=M953EA0IU`-05muD)=O_0bzsgj%oreA$@pb)D?4XUZu4i38;8&TX=+Hjx(dHMJ9 zax2!$hlD^D2Eb_S!&f4}0j;!KYJB;SPN4r_dkKCf>f=YCc8M`=sV_|TdSfajQfI-P zMyJ@EYp;YG9WNzLqTf!)(@jYsXm!}(AtxtCs^9+EIDDD!J#{#xLZr zS(zZ>4NK!okj)%sCU#B0Ya*L%1NX=D~1T{TIP z|MNQ{&ox}Xg{R!RtvADE@r?;hYm>)zOIbPlEzV6cT-9TWmRKlboGRRX<;?Y2SbnTe zHA1#l{H?*RHLVudJ}M0T#sk|BA?p}@UMSf=CPI9ZD2c8<{gMa`gVO_>xKjHv<-Er= zJBP5fHeWqY`O$%dmR}V8FL^Agbk}KOwZ_> zV5+&xH-1T&3w|mU$G5|vJ^@V&`Vv_L!eL>uHe+BSNEW{?$7QD%yV5#9jjZ9Y3s>a( zO@r|J9ZWO&e%C!9m0EacGD}ozb8?B`_zIJ?klJi@hPrZlmbMJn566|CQ#N~`j%QG1 zthAxMk|e7_x3XL)_+-(14!?t2xPPk^0|U+t8-db`ehv1U;=n_#JsnU_=VLo-`(I= zHkrYulJPnRX^opPD9>K&0#a z2O#T0OIvXwNklDA`K5EWZP3$Xzyj&G4r3=w$_Eb~tlb!8xkNm&%(ojrD&%yO z!8Q5_B`O1AaPVo=i)%@^CIY>}ik9zt#N-5AZbP>!z0MO) z;VWXDVon5`g$WM=SMGlC$kCQ0^2E<{bLrzN`+HvM;+HWg8R?yR3L2P`$!6U<(@Kj& zOf1HlX7jF@Q+`XbO}}#T<=or%>;)xTYr5_Z-}Z6P(wwl@MW@IdN5+(w8Wb*hN+T$Z zB+*>G(*7B#3gc}&VA#uB#@j&7DI6F{$b}xG`fYs<745uwcMod1vm2Oq_tn{^93+ zwaOYaEaH=W8`EPN28R~cUL3Z$>FF%nt{5&43XgO%(Tm&UsRb21^SJLC_nuy_7iz#2 z%-q`?dhg$>1b8rsb!I%pONr779&soTE8Wn*Kl zBj}-|pzwLl8`GghvNqzPIIvrzp!l4%?MCl>xbXB!(`(eG1U_M^=C(HLh^4LRW;XZb zo7*Q|rAh069B=0{Rupbf1p@;31mGtyS~;yM$swm1&fxaG2w-LDwDMjfDwV)ex$U+qq9-S?E2 zPm}o7$`m9k>;2Jul-()DY+_Qc*P2Z{MpJ>;P|hzgR8zk3Re(GqgkrpwAXl}_s_R#f z+lTf~40g@!?Nr{sH#f-41hmA<%IZkcq0}zyDOCA*| z+rB%L$onHB86Ui*`R2$|GmovkccaBZ2hmXu{kASpk72#%bJO0j)x)!@f?w%tE1xc{M<_UVp{o0_p_XQB=SQTx6X zp0;lr@os3at9N^dsrt?+!tf}5s3VcS!TLETquwy28Iv51SSh>Qt=Y{h8t$#g_wDGf zu7hvXWJJLdvZK0IL?rI*+xPQJ3%RN_)ey1{rZpz3H@as$R(=0(G}BHF(TmH=_u$X> z3~YkVSX=^&LlfFb#xcQX8Pb5o0av+r0T0@H_qd&V(aAP7kT=-}tS;@E85^qs^BfYW z;Sv)A6CFk0$Gs7%p6H;2!rf-~{_Wc=#f9tFk%1+#w{Z94oWUA};Le@ho#iTy`FG2L9*oFQf;<7QZJrza4}=> z{AA#XY(J-p(oQPS+bsV*0<=>F(*V7_TUMbsUw?B`v*A2DF)S zM_S7w-?=n@bLi%nYt^OHyyPTj0?;Yu2>#a!cK`Po*SpKsWZRbm$x z(x9DVuex*CX0%~#t?z}3MQ+}qU63{?8Obs#B`T^`R@LEsjnn&MJu@O>9pY~{bV4R7 z8tTiz&cHE{%z0RVD-x4<-e!-`w~m&9fsTP;(vlm}C~$~a9-@W3f|7!B@jC_c7?tJ? z{! zfN*z-ifODAY;z2x$P{H|1+9Cz_^N_aTQ~nxYi3S>(YLO`bvr6J>F>_3HPnsA5faxn zUwI8w z^0Btr9DDODE6Xm2TUtaUsnVGSs-rwaZ2<|}BiTn^zq!7x*q51dce{75ehG&GDyu0P zX>uW_6Y4EY3g{hfvIX8NQu6(EpKV)BI?p9%(k;M$&XT*%H#)pV{)L#B^;QNh?ER!M zkB2MD?ulTzg3W;6`aPq}(-XyED)hxvh2KJNgp!QRLoS+upW1{W`?aV$`HA{4Z>=Tk z*gkKFhzeZk&9XQr>Y}uZ^HuElDvz#JEpIM}KhZZAee^0W)cbQxsJ6n$a93bp4YSkd z{hF5H%Lzn}yhHn(6 z`_laPHZ6bcS>Qxs@VlAX2w$CTuYf}gtX zODQTom5|u_>eU1u@ZH^gC9k3FMohSsqID{0asr9U6y8nSs-<4XxB2;N(kv`q?GkQ* zhn7|M430bc_Hn8Wa&rJHfG1);id0va2B#qrGX^Fmq}AppPft%|oOy#Ll)o)6AFhnJ z$f&5)*Kp6Ac;Srow6r$Ac>Y$%<%E@nMj50@h9bhkM(e)(Y_Xo^#NJ(`0u!2kwu{eJ zELHS5mU%?zWN$R*V}A6NEvFj1%Td$}Tk0mk!EH!4j5;dH*zlZ|=JxyE)6=uOjJ7Ai zdwR1Uj7Eg=TXAu5sl8zYymsFUu4mLDgca!?E7&v9F?x9Q>bS?zo)yP@Jj_70sT2l*Z&F9`fFOEAANOJduH18$`A3 zeTr$Ql%cZnec;f-p+9@P)!NQLP0i~*5&?iR~0Q_sy#cQ~kluHBis9e~YY!2U(QsNEMc zljSDjj7AO`F!c8*sChhM=qYrEo5Nym@?S}DstaSi$IsfLU2fMIckoD=t^y-P&La<@ z!=ZoF+~W=&*;ZUTTr6>14oZqu|6ZW>AO1}YMI#kuQXIdVpxuE7R;9}vC$+ptSye#T z%y;_N1Alw1h928SZc-9OZqN@XWI>f{uE_zXa_@knWksNzocuKk4l*dZ;9T3a$>S~> zj#4bJy5@dD00pY0uaWJ-Br>sO?o~yODiIm3)8dEIOtzEWPuu3%WoF|IXJ^;H7p+31 ztd3oTOFwF7^C;wwuT(qVHs-L`9vAc>=!l)IaYpHK)iW>vhk2yarcbl($u_)+P` zX8CQeAeJwiE%IjCmBXsf8qTx5LBo>OXM-Ly;i#f!93CFQx) z8*W%DsVh5KEN~A|giVTEcFkb|0R-~$%1Sbjpafm4+f5o^3)t95&CMMFa-X1P^W6Kd zH=l;gD7}9R>^iu=Vj8tdSOK^Ud#y)VyQPdSItxr~-w+CUTxWAfLcdF-79D!2M=+0zPXTa>C zErJEi0Q2`xA)S2D}kXNRyD8@XykWy zSaN7>xIuH=KKj;~lldG{qg|kaOh2kz>a8|qLn%f9HXKN`K^rt>EGsj!p|P=>^g4Xd z`DxQKRT<&6`fZQkTI#OYtBdGR6wlI8O_{iAjBFXn&tqLi@uvV*e`Q&y^KhDE^qCaU zlW%Y+l93^}zdGmIR`Kr@m(;4?o4kI1Dsz-b{g6aTFQ+c=5}^;Oj-7 z!*7a|?lC3v-RQka_6`$X1q1!YjotYlQ{cY`I1UMM@hTYj#qii<1Y(i$f;Fk@Y#Wi* zEVRh8`s_2V+zP3ckrotT*}t(pO?9hCkl|2L0MB(zv(3*_{h99$Snz?pbj48ZNU)*Fr-@<>lj3S5XNim01w7U5h~d^Sb}M z$&$r-sDJD3pbMILDH(g}-BZ5B!4JQnQGwE>U6S%lo9n@mNkpKG#EFQ&K6=A6b8iUz z4>I3|&4pl7`)j>j>6H^nllL z3AuuX-N((!%sg(>w1S&#R$O^UB8qhi=7Cz)*031?SNC0Y#Y#^TTnEsLAvs5qrh5@+o@Q|TDAa*lt|9#{AhU;a4 z`HssaUGJknybvCL0Bea8beevwJ5M`ax6D_JjkE(UOmwfOWVAr7p1xEZ z_sO@49w;{c+KZhZZdz*%PpRcH&o%DoELca>9?#LS=GE}Q&>SF%i*D8zpR{X8Hn0g? ziU*youb#hi60J@D>WIwd59v65Hge90@byb`On4$A{pA>}q+fK!A~1=|jq21yzBh;~ zU!#EB9eU<+%B#g@OO0?G-@jKcc?J)16^5kk-n3C&JS^F>hw%M0e@nSwS+}DVrRP5- zD~nL1)t<`Fc1=uaR@(BATN<~7UaS7#vAtLV=!x&Rvm=aN5@_F_iwk+IFB&xeb+xW8 zPRJRD;lW<*B20~p4Q&Bj1v*f-X#n39+4J{(=u&nt0XjA_Os^%E_6#JG*ZgsH{KmlN zVQ#~sdl2kwqkj(NRqe4V@7@Re;k`=eJ*DrMb8Tt^J}Zx&b9OE{^PAu@mk$X+Dn}JR5%@ zzqWVf6HrVav`59C#>U2mtZ!#0zRKe?8?xkLCH%ldyvU3=vp;_!#!9~u79LJcdYq}Q zj7dR}$UAq@7Rc^h>M=ML7Zcyww&f~6trF|$OIWg6Uw@?B0rMkyvm3+L>=P3$GNnOd z1pZJZ3u^E?h-y?bQs^H0oV5kY*C8kW(-U|r7TD3cr*^;E^}b>5)a4cA{|dC>u*+EQ z{p&3pH1Fy((%+(w&|M(k)`T9r1Xkc!Z$X5S=c<9UG-QQa#!Ja66{9a`LRQP2jN*x? zTIGnnvAC4ERH{pk-Ec&7G?!ENo|w?+|7I0$X?%n{7KBepBb9$v0JAK%L+3VxCLr+b z+o7se6bg{4`nfx8y%YoWOUy7!7!Rh;+8 zKd3va(thuchuCBar}P;oz33FFDeQm{%!&A!jP?}@q}Fi8Ecc5!l4rlpzCvKUhf3`5 z$H-yl_?=;m;`eD1IY%##?|Lg#llTk)s$9V;+6~m$1 zEV~mA4`3c(c56_e((^m5EyA3JiYjMV)8N}*cNV`&_wGT|TUc29y*8q)JpzSd^)u|6 z<+$iJRLm_N*AI0Q5NrUm3>hj2rOL_%*)NBR1`-G1+_9VfsGRz2PS4d04-ho}sj|*P z-s+1dc8HkLK(pJHvSZ@DShs#Dc|Qys$E~hDbvpg)b2=PF35p{~1$t0ss9hPSeNYyw zCiJvA$8pdf!U4T_E8o$jBNR@umbUb8w`Uz(>sm?HQRmFVSzhNi9RgJvf6g!;Sd`xH8Y91h=~ce<${!>IVYw0$*LA0cMp?M zGAAI~K4}UhAE8G8JXO$j4}4l6=E|r;)9rNP*B%@*fO~?885tr#eaA|w&tyO<2!|CK zOKMqZa&&YpCkBDF?#I-Wtc&szzw3M{K(FJp#Bwluj(VghV;SyU;eVc8Dx~xw=1*a=OuI1*ggwo2>opkQVs2jE@ zXnVd88kaX%9mi(jA{Q~MI9+???*8>|&+A@wKq_noRxoQJ1)U9r93*t)6cust@Z8pZ zS=rkM6c;OSP+|U0rRSQ7t0G{tg&OKHIN7!ZR_d1HVz&8|rvj?uiO;`h6oscE64oc& z1DMYUO!+FhRU9%tz8sCeC4mmA&+nq5hN3u3c=s*@kXX z?j9>EK?iLi=itKPmtQZNnJvRi8Z^#Fo0~JiO4IuzWZEEXsH&z08j01e`@zH(Ai6U% z!vPxT@E5RI7IHhV{rdM+5Gynp$UQze=HsAdW3y?G;(&i)Gw5(V+G7!tDpURT??vQE zO+YdLnR5L5_HQUtpXzs#>htEGTKc`}4W=LSb$3q;=dNO~vZv)zSJ(p-V)OfFL1AGO z-v1lJ&#*046F#IU%s%axveqZ2(vgi`t!|+}WI0Cm#j7=}-}bl|X`$S`_n^4fJY-5K zx@PW#OpjGoNe2|Y9O>g+5&AtATbm3~( zL81IbsuaOr><;B}Y1UQtrgjk=MdEWE7^q%2tgnuKdL8bfU%LjXydrV)p^Zz4#Bs(g4@Qx0(L+!uiGo(FxOg_) z6)#lG?*9I>4k0Tm;CqwpflCftv~VzP1v6_-PONL!CdOZI(OeF&`Fo*5#)OUJ7Lf?X zt5>fm8av~^eTZi!#PI221_;LG+AdN&U>GQYQ^dw8HwjjB`)vMT!*6Y<5t&Z*L+U07 ziRZgXixMrlW1wW?cizf?kv+)kf|I$Te_KlnK-r8&Y#H(Yy%=mp++HFIxy50wM@~V} z7?xw9INi6%;{hO9h+1y0u1dKYsu~)Yq zWAHo&vu_*`sW^Tj0)jH*zAUIsE32x)W6wn2L98^-pmY|!j2Vi+VhJt_pcIkt*)vd4 zO|90R3Oa8+7(H_`^+bivp;`OyD=TDUR{GohLV*J|oS;+<8nY1GX+TkWVF5;nQ0mGl zKLvCxn9Z-VzJq%M{yk;UJy8=oprz{hDKkI+BMx-ch7up6L8>=0qEU%=R(uMakkpE5 zggQ+PR^&@}F6Fy`;{kx_ztz==1Ex$~UOJW+l7O_lyu9ROD)0h3UKNHn2Vex4pFd#6 zle^IqBjEC>GIt*^DayGTnUC}FQO*m|Pe%1`aUsTl$3q;iow2??^{Ca^$Km{Mm1uU| zim|aV^vlq&$)He-g&Y+Wi~I8sdFkm*FCPNq-+UZt2CK_{c}Ou^NjCea|2YVAkB$m( za@vD=Fx9gFjO*7S{O6p#tw{@%27Y}l1ECWTg`)-C4#2u0(yKoCXJcbw@lV0Qg&^w=%T?Bb{@52wNd-#Wf2(&xYO^xuCTZ`4 zuNLiMjhG4;irsk?BpQes_GMWdJ{V(vu~84ec3@wVkdiKRoVC{2?-=nv%JY+LDXYgD z*oCIR$s2k-_;&^75IJ-h!=A7|tR((=d`ZJeUp6NupE*fw3#_*1m<&YNr%a1=2= zXgQ>LDF8)P!k?$!%LFzFdaN3rmw71Xs|a2XrI@&Ps=#4CXLPc5t?XJ4-e!{Ab#2|J zVSEous>F6>!+$?=_|kv%>?=BZcq-`@HvImwH|n&QS6zn)Km4vT*stXh;+@YR`9qC# z1o=-**`@YGS5V{F)KI-$t{?Lw`83)8x@nr5JN|$+-Be4lK}-^~KMW#6Qfn0>{s0Er8D0GQT$UulXPt+$M}nOUj{KBW zN`68{waOt()&JXTk>0m+BFSv*#T9N!m`JR@_yv?4k!RF-l0;+AMBM({wGuuEkij3w zu!4le5u}ZCYH73)R#ZzE7WNJ>oW)K+*G^cZ{h!&U0O;ZtV%Y9LN9~cxYZNq%A1Me zG!sq2Kinx#(fbS!cuR&4GDrIftT#e7g<9TceSce=%%@=DeZGoY73Acs_tqxV%gn)# z`2#svu5~5a(!f&mq<$vxJjpNg(kQJO^ZA>rrGfd&nX3bH-iHqu1Ox;ZmlQ>O-ZAN7 z1(OxG!yRx}RF{x|#*p92c>*s(mU~9uGK{=+`!)wVyQ`avU}TSh6?B3La_t@&-=Q%@{5Y#kdK78m+;67z{7OMzEWoi#UYwZ-J^ec zO#ih3O|{Oyb;C%2y4Kaz0k#DkGeA`tW=`i}66KfB#ZGS3)z@#FuoMNuaHH;fAovd@ z{za(!;_*xDtVQ&-Gy^FO({AU572w(a0MWg(G^2OEo&M1de#U%d&H1$TLU9h zV+Lgo#LLjiB;J9|uU=@dR0;|TNO^4|APf6Q@tBy)QC?wAdkoUH$p%00T>*S7;KVcO|NH}*8eLrv_!0n4-O!K1lk56qLq{wh zK&(+QiSNoWU!cLvKDWAkW*HOcP0aan_pjE11c2G-0?y^Kk%t9 zEw!I&v`|}=2bYuYneyq2fDfOZ=H}r6j4#n0U~jo*keHv%b_@$3yNVZd<24&%ha?RW zeTv6EBh^ktBN5o-f^fB+F+B2WYC|Iy||uk)6N3o7(57osQ^r1b`B1J!xFP_E1;dH4)}mK z&Iajxs6~3!IXFr{hsRn6>2^rHcVoL0(#JDAe4|FWgmZso#Hc(lH86?IHeUK+d*7q9x(!6aJ_z`4x&n=(`3 zMIc!X$U0y`NlOQ&eUKqLU)zjIT3XO!Qc;Qcr(^%yS_kqJRR&01aklfuz}?5%Bo_K4 zae{8nK)LcKtftK}V3CxN0B^umV9^X))WX_Jv#7?nItM5Oq;_1`aNFH^u95uV? z??K>a1F%$}u{@xs4=4S#x@z(AWmgMxNTvY`V3q+I9nOqEnve2=xF+B*fb_#Fm6Vww z&0=!Yc$uAD3;E?s74g!->MHron}xc~H&L(9C-o;ZYNMi|9q#YDog7t!<&BJ|{4zP4 z6llwa>j1LecA@)?GX*1~rd32UbMF$^as=Gr3OJO7627*!7CgtP(#(@!VS>aazTeYr ztor(TNDLj;eti`c@}f?O8*ej47NGchHZeb3%ZPG@Ih(VK3v?Nr0e1;>Gg}%nRL6bm zmha!8$Oh+yo>1Ht=w?6&Vf>VzZy87?0J$`z-bXX7;d~A&mZzZtw(~NBdXjJ|=;-Lc zSpw-Zo9WMoEA|Kk0wn!4sO3AgAc18XFtC)^S}sPpf90@Ag68X|!se zy{Avzv9;1BERQ}FX)IspY2Ji<-E5fCRyV6joQ2EuCs-#5qrda_$Gm>M`^S$&K8~Xs z%4g|Gu`Ux66GS$^%}Y@C3=LIw3n8RqxUFCw46`xVZBPQet`d2suRj|`uY9sU7cVM3 z`lPQS0$fnw*UsSg940{R35|?YrS}L`6sV1afR<%Ro-B@j4Fkj0-hMVW{`&28x!f$| zmj`xF?Q-XKSH}@Z*B9sz(GqmhPle%AZS83Ul%9d)h(3IGS~@zl0_`{8@>gZQOf4A&1{#_` z)qsP8a|>MTh%x^;$G>DR4dhjomunzhBkLv8$S@S>3+unHErY4wT2KH>7(Og*m?k>KU?0PK8d0a7V3#VCMQ5i zV3|0}z|PW9gR^;{a$XwW)0qf~wBlmhZS_TFcJ@#lN@(3?-$OxZ|5th;*$StQ=6OG5 z0ZZ;aYVy(T-P>iocyZM|4Fi7nV)s)3VsA%>6i|sf zI#z(u2-idH4QIF6NI7`490E56&OBBwE@e5nC@u>vEv+%Q1LxjLsZgoAZ!apY@bB;M z1K+W`uMb8gWhEt;SXjAc!N73FAmxSmTqRIo;144m9i?}DV`Hv*nUuKr5+oKYD=T1X zl$)D7V~+t192^{#3hVn6PvCP13%>+FJp(>Hu)$`-c}d{57y-`u?6xFiCh&sSac8dj zGanpn3k#5GBqk*l04)`07!?efihKuWItX${C&!1-K7d0Gc6@n7#qxNq2XIPYdbYN+ z1I-iM+qc0ajG2iEaHy7+Fj22`T%Uw{QwuCW=dF3@Gj5PgL4E}W5~>x}dKwxdEn)P) zPdPo>lot8^?ad9yQ8wUofiDPnn82vl)7Sqr?C{0&5_B5ilPTZTJ#Sd0O}!tkmcLJfU>Z#C(h)d$L~=|L%dP4 zruEZ%RQL!(BO|NC)SnNST)!?!YVKdY&C%^|@l>Y#E@K&^%B?KMzpbdEWa!_&RVuj4 z|4T&kiNarrOj+9X;o3zwu1_;_jP5Ro$VBtlu-NdWtrwK}&)*wZMT^pxqMnOs*2fa+ z;Mp8NycQOI!U^FR{9T|6+}PL%ttzkvfubK`CUgo8T#+ga`2M0`;edt)=2QY?oj_+N zzH{f9sHj%0yTH0R2n@^t>j_dp*iv8usa|S2xW75)>*FJm*ad0k)0D!(?xk&?x(RS{ zlT7(08O^!9vlCF;(8j$iRXvBY##e9|x>YEaV?k8Uc2>ukDd7}SgH1Ue#}>r#ge=ei z=vLd?+je$#&?sIiAnK94Ny;Ndi7;S<9&TZptDN8JW3}(OLd#WmPb~8sF;xYnPr9SOz2} z4exIYIr&c^8upei3u9?tyk_+kG_14sFChkG#k*~hZ2g7F4Dg>h;2%SO$jHJ1PWuCR z4r&3OL9tLdcstNXfu#!*>1%I9LJpjroGRWz45|P(l|so=jP#+ao}WSg9&X(CYp;b9 zN=mlj^I>9Qswz+J9&&&XnO-X-@}NduRaJ#qmp^bnbu~CUlvR@LxJz&Xb_&qm220JL z4s0GT-B{?MaY^jiy$?l)R$dwSyTFPrD;s$D;pF55UPX;fwfhdSui`L}pV`z3m}va$ zFWp7MJ?}(ReCyDI?NF3G0qi&6$K_up&>T?CQJb-^np)rM%ZBz_dOA(e^S9rpngU@_ zj8!|aJ$(4`{#{60ZU#X>dH*)7!Pd^M#&y52s_Jn5M>6Hjz$VDxBzrL4h`f6;2|Es| z1iYYC@h2(C$&UxN0|Ek4#lsgX1zmQ2gGW?&csPCPXKEPbJnT@!z{Vagw|e}9Nuzvi zrj>xc1#Vt}%5T`!((!_^rd5N-5h!cfMv|u|<5h2FqCEP-7tGySLTSy9mzHiFFWu1` z7^P(j7ZCyh~2xXTH|cTfM0~= z_4OBI@NoN}B;bJ^l$MqTj&FGbRS=mVN*c09A)mHFOhZFMV-w>i3%rd2I{aY6s;Hm< zEn%n-jG{`dXIkRo$Z#WtJlw&UE38@;)mmUlQvErNyqcbn%aF;KNBdfzv?+YeMzN?2x{wmf8HT?8PD)@0(u?h{QREcmSx>SiW zqp*m~x~*+V6i=Z@JH#G-OUg;3H;0Ju8H=iETJJ&f;Az__R=H-BoY>$a47jc@Scu;m zjm|pcyrX>ZGe-;XibQ-=$HOirQD@KJ)maXfYaxmLoXF?2UL@w_NrojP{4}UKZi4ss7fL;V39H zk;%A74!%YyU4|V6@$@Q43q6ID-F;Y-TR(j!)sv8v4<5>9v75K9_iDpA}{~`KLCa?ey9Kd literal 116285 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

EiX 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 z zLHG12+?}W-BOlSzyJmMb`{Kj(g87i+Yf{ojZ16JTcG`umj1M&YBO?jm{taj1ptPyE zdFe@tIV{+dNaO{CF5kIj0Jat&EaX)L!I{9&$mDSVk@m**wMVkaFwG&XI3z6W+Y0c< zPTJ|oh5dp;LRgmnLUhz$*rd8|>5~yi&VSr`s5xwB=C5Oman;a*^utWO6|BX-Yn|ts zTsZ5e-agbwmuXH7*D|ueIhnn$LFqzaz~^S6reA#eQuE4M`&_4=Ov3h(CI<^GBKRlp zABOE;J!WN{aGv>fw*Sk}RI-2tsrD*0F;Py<-on}%eSiC<^aBvY$Ua$}G%!4JVlBD{ zSClr_D$_6lkbEd`#RPS!3PM1}!(HbLO~B{}9od*WrWtv8z++=&VoG$GmI?gbuV$GU z{a~ST6o2TKm)oqE*AMNUl@siiv zFMl*j@QkAoA+J6atf#%ZIX=z~*#cpqBvYqw0ubR|Q z-)WV($hju^3d(PhFHo03UiSLBMen!lY`;OA+x*EMLPy@^D_w|Fu^%SKp5B!_4)fV3|b~8$FJq&IHe>)w$zA)T5sLD8Nba-Pfh(E zn>p5UGvlVEf%(OBbEg*7lfLlXlNB>X#Q-laRdMlArB7!u%TPc$>3%yt2)SgQFy4XN zKNC}gho1fA+6ed7PPQpZ#eh_PlIT!mUg^o=-0b4R)MzB zmKWlRqzwEdYPCQRl+}>;#V#B+;gm93U+6LSR>$m#E|Qf%lCFfBcaMc%C}ObUd^dry1>x$qsV+P4+(LP6MS^i)g7 zj-RKn3=RK5R5lxn2pZ8AA1P(l+tqRgJHB&;@8G>@w0Pf7LH1Wxw! zy0kYxz%5E+XAIRpqw*G>f`524pVMw+uGbEJE&+qux5KRHbLZr`?rXi$G0W^JpFfMY zy3_X?bqz*kY^*N(ShiqM3&5Zvy<*E}$wlm$t~8Wgca*5s80F^v*ZvBd|6DSvIyXlL zYK2k@j+8s-)j8M(P)l1`ls4Ydxzr0!eeSb^iEdhC1PFlP(j zx_x7Cdy0C>PArIb*3#uQ+@@dH%+{Hm9ed@rhUvy%ow>j6_ zMMbY)Cy`Rj&B@7XycLUH4Mih=FB(iwXTli~F4gp0P-@P9Kc4Kdj>A$#C&*?Och)7ARTRE6)Bo_JBO0BwHYPg_{b+h&f z+4e@#ob`tY2tcf^8TY();wC&VMq+7(9y24t`$T-l$=OgApo!HGqxD>G<~~g=tV(Jc z(8_3fL>yT4Ga}3##jH=U0yg26h!vJ72!cb!ihr5Lh98WQM7z zaHjQK(>4wMcwWooSolugL3#3IH+k z$*6FgV_wcd+OW{Os=u>b>8d}->gw596P@S2og26RS-IS zd`p7-lD1TzzcWK+z~|fs4%z`H=9+wn&;vf+XS1WRBTnY#Yx@DxXOm-nqnQ~QuAtXd;SDT-|xVROPN*l4%6Z0dR1pOfkabM%7v5Jw57GYo4BLfWh<8_QR_ZzEKukO+fkH&sr z`)S`bpvzsV0-VF!Zx(Ykt4Lvv%p6m$EvZ5srm8A$aqglbZnFEW^M#aDf)}n|N!Z+m z=@3x7p>2IuV1Or(4m4nNAHm9t--#(6hey_Fw#8{6(jZ*yv9jfRkNw%lWz

B#$^) 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 sLs}?}c+Jylx{HeR4QZW{Pe~D0OU% - { batchSelection.isDisplayed = !batchSelection.isDisplayed; dispatch(EventType.MATCHED_DATA_POINTS_CHANGED); this.requestUpdate(); }}> - + ${ + batchSelection.isDisplayed ? 'visibility' : 'visibility_off'} + `; } static override styles = css` - mwc-icon-button { - color: var(--mdc-theme-text); - /* Make the background disk that appears when hovered slightly bigger - * than the icon itself, which is 24px. */ - --mdc-icon-button-size: 28px; - /* Tighten the buttons to save space. */ - margin: -2px; + md-icon-button { + color: var(--md-sys-color-text); + --md-icon-button-icon-size: 20px; + --md-icon-button-state-layer-width: 24px; + --md-icon-button-state-layer-height: 24px; + /* The touch area is hardcoded as at least 48px by 48px. */ + overflow: hidden; } `; } diff --git a/src/batch_selection_test.ts b/src/batch_selection_test.ts index 41818dc..ecafcb1 100644 --- a/src/batch_selection_test.ts +++ b/src/batch_selection_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {BatchSelection} from './batch_selection'; import {Batch, Field} from './entry'; import {dispatch, EventType} from './events'; diff --git a/src/batch_selection_ui.ts b/src/batch_selection_ui.ts index 5d9bb54..2ac21dc 100644 --- a/src/batch_selection_ui.ts +++ b/src/batch_selection_ui.ts @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; import './filtered_images_ui'; import './filters_ui'; diff --git a/src/batch_selections_ui.ts b/src/batch_selections_ui.ts index 1467cde..308ec06 100644 --- a/src/batch_selections_ui.ts +++ b/src/batch_selections_ui.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-icon'; +import '@material/web/icon/icon'; import './batch_selection_actions_ui'; import {css, html, LitElement} from 'lit'; @@ -111,7 +111,7 @@ export class BatchSelectionsUi extends LitElement { EventType.FILTERED_DATA_INFO_REQUEST, {batchIndex: batchSelection.batch.index}); }}> - filter_alt + filter_alt ${field.displayName}=${this.filterChipText(field, fieldFilter)} `; } @@ -187,14 +187,14 @@ export class BatchSelectionsUi extends LitElement { static override styles = css` :host { box-shadow: rgba(0, 0, 0, 0.5) 0px 0px 6px 0px; - /* Necessary for mwc-menus to work properly without hacks. */ + /* Necessary for md-menus to work properly without hacks. */ overflow: visible; /* Does not work without overflow: hidden; */ border-radius: 5px; } table { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); width: 100%; white-space: nowrap; border-collapse: collapse; @@ -206,21 +206,21 @@ export class BatchSelectionsUi extends LitElement { border-style: solid; } th { - border-color: var(--mdc-theme-background); - background: var(--mdc-theme-surface); + border-color: var(--md-sys-color-background); + background: var(--md-sys-color-surface); font-size: 20px; } td { - border-color: var(--mdc-theme-surface); + border-color: var(--md-sys-color-surface); font-family: monospace; font-size: 16px; } tr { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); } tr:hover { - box-shadow: inset 0 0 8px 4px var(--mdc-theme-surface); + box-shadow: inset 0 0 8px 4px var(--md-sys-color-surface); } tr:not(:hover) batch-selection-actions-ui { /* Dim the action buttons when the table row is not hovered. */ @@ -249,12 +249,12 @@ export class BatchSelectionsUi extends LitElement { } #filterChip { - --mdc-icon-size: 12px; + --md-icon-size: 12px; font-size: 10px; padding: 2px 4px; border-radius: 30px; - background: var(--mdc-theme-primary); - color: var(--mdc-theme-background); + background: var(--md-sys-color-primary); + color: var(--md-sys-color-background); display: flex; align-items: center; justify-content: center; @@ -265,8 +265,8 @@ export class BatchSelectionsUi extends LitElement { } .referenceBatchChip { - background: var(--mdc-theme-primary); - color: var(--mdc-theme-background); + background: var(--md-sys-color-primary); + color: var(--md-sys-color-background); border-radius: 16px; padding: 2px 8px; font-size: 12px; diff --git a/src/batch_selections_ui_test.ts b/src/batch_selections_ui_test.ts index b64febb..563c957 100644 --- a/src/batch_selections_ui_test.ts +++ b/src/batch_selections_ui_test.ts @@ -11,8 +11,6 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. - -import 'jasmine'; import './batch_selections_ui'; import {Batch, Field} from './entry'; diff --git a/src/batch_ui.ts b/src/batch_ui.ts index 16e60a6..70fe6f3 100644 --- a/src/batch_ui.ts +++ b/src/batch_ui.ts @@ -12,7 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; +import '@material/web/button/filled-button'; +import '@material/web/icon/icon'; import './batch_name_ui'; import './constants_table_ui'; import './fields_table_ui'; @@ -62,49 +63,50 @@ export class BatchUi extends LitElement {

- - + Download batch + download + ${ this.state.batches.length <= 2 ? html`` : batchIndex === refIndex ? - // disabled mwc-button title does not appear. Use a div. + // disabled md-filled-button title does not appear. Use a div. html`
- - open_in_new - + Two-batch view + open_in_new + filter_2 +
` : html` - - open_in_new - + Two-batch view + open_in_new + filter_2 + `} ${rdModeHash === undefined ? html`` : html` - - open_in_new - + Rate-Distortion + open_in_new + stacked_line_chart + `}
`; } @@ -119,7 +121,7 @@ export class BatchUi extends LitElement { } h2 { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); margin-bottom: 0; } @@ -139,9 +141,13 @@ export class BatchUi extends LitElement { margin-left: auto; } - mwc-icon { + .md-icon-in-md-button { margin-left: 8px; - font-size: 16px; + vertical-align: middle; + --md-icon-size: 20px; + } + .md-button-with-md-icon { + --md-filled-button-with-leading-icon-trailing-space: 16px; } a { diff --git a/src/batch_ui_test.ts b/src/batch_ui_test.ts index c75e8af..edc960d 100644 --- a/src/batch_ui_test.ts +++ b/src/batch_ui_test.ts @@ -11,8 +11,6 @@ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. - -import 'jasmine'; import './batch_ui'; import './constants_table_ui'; import './fields_table_ui'; diff --git a/src/codec_compare.ts b/src/codec_compare.ts index 5940b7d..272b813 100644 --- a/src/codec_compare.ts +++ b/src/codec_compare.ts @@ -12,11 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-icon'; -import '@material/mwc-menu'; -import '@material/mwc-tab-bar'; -import '@material/mwc-tab'; +import '@material/web/button/filled-button'; +import '@material/web/button/text-button'; +import '@material/web/icon/icon'; +import '@material/web/menu/menu'; +import '@material/web/tabs/tabs'; +import '@material/web/tabs/primary-tab'; import './batch_name_ui'; import './batch_selections_ui'; import './help_ui'; @@ -24,13 +25,12 @@ import './gallery_ui'; import './loading_ui'; import './matchers_ui'; import './metrics_ui'; -import './mwc_button_fit'; import './panel_ui'; import './sentence_ui'; import './settings_ui'; -import {ActionDetail} from '@material/mwc-list'; -import {Menu} from '@material/mwc-menu'; +import {MdMenu} from '@material/web/menu/menu'; +import {MdTabs} from '@material/web/tabs/tabs'; import {css, html, LitElement} from 'lit'; import {customElement, query} from 'lit/decorators.js'; @@ -71,40 +71,41 @@ export class CodecCompare extends LitElement { @query('help-ui') private readonly helpUi!: HelpUi; @query('loading-ui') private readonly loadingUi!: LoadingUi; - @query('#referenceMenu') private readonly referenceMenu!: Menu; + @query('#referenceMenu') private readonly referenceMenu!: MdMenu; private renderReference(referenceBatch: Batch) { // Use a span to avoid breaking the line between the button and the comma. return html` - - + { this.referenceMenu.show(); }}> - , + arrow_drop_down + , - ) => { - this.state.referenceBatchSelectionIndex = e.detail.index; - dispatch(EventType.REFERENCE_CHANGED); - }}> + ${ this.state.batches.map( (batch) => html` - + { + this.state.referenceBatchSelectionIndex = batch.index; + dispatch(EventType.REFERENCE_CHANGED); + }}> ${ batch.index === referenceBatch.index ? html`reference` : html``} - `)} - `; + `)} + `; } private renderSentence() { @@ -128,7 +129,7 @@ export class CodecCompare extends LitElement { private renderTruncatedResults() { return html`
- warning + warning

The results are partial because there are too many possible comparisons. Consider filtering input rows out. @@ -203,40 +204,45 @@ export class CodecCompare extends LitElement { ${displaySentence ? this.renderSentence() : ''} ${displayGallery ? this.renderGallery() : ''} - ) => { - this.currentTab = event.detail.index; - this.requestUpdate(); + { + if (event.target instanceof MdTabs) { + this.currentTab = event.target.activeTabIndex; + this.requestUpdate(); + } }}> - - - - - + short_textSummary + tuneAdvanced + photo_libraryData set +

- { + { navigator.clipboard.writeText(window.location.href); }}> - share Copy URL to clipboard - + Copy URL to clipboard + share + - - settings Settings - + + Settings + settings + - { + { this.helpUi.onOpen(); }}> - help Help - + Help + help + - - open_in_new Resources - + + Resources + open_in_new +

@@ -252,7 +258,7 @@ export class CodecCompare extends LitElement {

- Codec Compare version 0.6.6
+ Codec Compare version 0.7.0
Sources on GitHub @@ -358,11 +364,11 @@ export class CodecCompare extends LitElement { } p { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; } - mwc-tab-bar { + md-tabs { position: absolute; top: 0; left: 60px; /* Width of #leftBar. */ @@ -403,8 +409,8 @@ export class CodecCompare extends LitElement { overflow-y: auto; overflow-x: hidden; } - mwc-tab-bar, #sentenceContainer, #galleryContainer, #advancedInterfaceContainerContainer { - background: var(--mdc-theme-surface); + md-tabs, #sentenceContainer, #galleryContainer, #advancedInterfaceContainerContainer { + background: var(--md-sys-color-surface); /* Simulate the shadow of the plot on the right. */ box-shadow: inset -4px 0 8px 0 rgba(0, 0, 0, 0.2); } @@ -415,22 +421,23 @@ export class CodecCompare extends LitElement { cursor: pointer; } #referenceButton { - --mdc-theme-primary: white; - --mdc-theme-on-primary: var(--mdc-theme-text); - vertical-align: middle; + --md-sys-color-primary: var(--md-sys-color-background); + --md-sys-color-on-primary: var(--md-sys-color-text); } #referenceButton batch-name-ui { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 16px; white-space: nowrap; - text-transform: none; + /* text-transform: none; */ } #referenceMenu { - --mdc-menu-item-height: 20px; + --md-menu-item-one-line-container-height: 20px; + --md-menu-item-top-space: 0; + --md-menu-item-bottom-space: 0; } .referenceBatchChip { - background: var(--mdc-theme-primary); - color: var(--mdc-theme-background); + background: var(--md-sys-color-primary); + color: var(--md-sys-color-background); border-radius: 16px; padding: 2px 8px; font-size: 12px; @@ -443,9 +450,9 @@ export class CodecCompare extends LitElement { display: flex; align-items: center; gap: 16px; - --mdc-icon-size: 64px; + --md-icon-size: 64px; } - #truncatedResults mwc-icon, #truncatedResults p { + #truncatedResults md-icon, #truncatedResults p { color: white; } @@ -469,40 +476,44 @@ export class CodecCompare extends LitElement { left: 0; bottom: 0; width: 500px; - background: var(--mdc-theme-primary); + background: var(--md-sys-color-primary); padding: 6px; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; + /* Otherwise the active tab goes in front of the left bar. */ + z-index: 1; } - #leftBarContent > mwc-button-fit { - --mdc-theme-primary: var(--mdc-theme-background); - --mdc-typography-button-font-size: 20px; - } - #leftBarContent > mwc-button-fit > mwc-icon { - font-size: 42px; - margin-right: 16px; + #leftBarContent > md-filled-button { + --md-filled-button-container-height: 50px; + --md-filled-button-label-text-line-height: 24px; + --md-filled-button-label-text-size: 24px; + --md-filled-button-icon-size: 32px; + --md-filled-button-container-color: var(--md-sys-color-primary); + --md-filled-button-disabled-container-color: var(--md-sys-color-primary); + overflow: visible; + --md-filled-button-container-shape: 0px; } #presets { margin-left: 70px; - color: var(--mdc-theme-background); + color: var(--md-sys-color-background); font-family: Roboto, sans-serif; font-size: 16px; } #presets > a { - color: var(--mdc-theme-background); + color: var(--md-sys-color-background); } #credits { margin-left: 70px; margin-top: auto; font-size: 16px; - color: var(--mdc-theme-background); + color: var(--md-sys-color-background); } #credits > a { - color: var(--mdc-theme-background); + color: var(--md-sys-color-background); } `; } diff --git a/src/color_setter.ts b/src/color_setter.ts index 82ce76c..b3c19d3 100644 --- a/src/color_setter.ts +++ b/src/color_setter.ts @@ -39,7 +39,7 @@ export function setColors(state: State) { let hue = 0.85 * groupIndex / (state.groups.length + 1); // Skip pure red which looks ominous. hue += 0.05; - // Skip colors close to --mdc-theme-primary. + // Skip colors close to --md-sys-color-primary. if (hue > 0.63) hue += 0.10; // Slightly greyish to avoid burning eyes. const saturation = 0.8; diff --git a/src/constant_test.ts b/src/constant_test.ts index ee12d5a..944f437 100644 --- a/src/constant_test.ts +++ b/src/constant_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {getFinalConstantValues} from './constant'; import {Batch, Constant, Field} from './entry'; diff --git a/src/constants_table_ui.ts b/src/constants_table_ui.ts index 87e2895..f21cf63 100644 --- a/src/constants_table_ui.ts +++ b/src/constants_table_ui.ts @@ -98,7 +98,7 @@ export class ConstantsTableUi extends LitElement { } table { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); border-collapse: collapse; min-width: 100%; } @@ -109,16 +109,16 @@ export class ConstantsTableUi extends LitElement { border-style: solid; } th { - border-color: var(--mdc-theme-background); - background: var(--mdc-theme-surface); + border-color: var(--md-sys-color-background); + background: var(--md-sys-color-surface); } td { - border-color: var(--mdc-theme-surface); + border-color: var(--md-sys-color-surface); font-family: monospace; word-break: break-word; } tr { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); } .description { font-style: italic; diff --git a/src/copy_button.ts b/src/copy_button.ts index c1b12b6..165ae29 100644 --- a/src/copy_button.ts +++ b/src/copy_button.ts @@ -12,50 +12,38 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-icon-button'; -import '@material/mwc-snackbar'; +import '@material/web/iconbutton/filled-icon-button'; +import '@material/web/icon/icon'; -import {Snackbar} from '@material/mwc-snackbar'; import {css, html, LitElement} from 'lit'; -import {customElement, property, query} from 'lit/decorators.js'; +import {customElement, property} from 'lit/decorators.js'; /** Component that copies text to the clipboard when clicked. */ @customElement('copy-button') export class CopyButton extends LitElement { @property() textToCopyInClipboard!: string; - // There should be only one snackbar per page but one snackbar per CopyButton - // is easier to reference. - @query('mwc-snackbar') private readonly snackbar!: Snackbar; - override render() { return html` - { if (window.isSecureContext) { navigator.clipboard.writeText(this.textToCopyInClipboard); - this.snackbar.labelText = 'Copied to clipboard'; - this.snackbar.show(); - } else { - this.snackbar.labelText = 'Copy to clipboard failed'; - this.snackbar.show(); } }}> - - `; + content_copy + `; } static override styles = css` :host { float: right; } - mwc-icon-button { - color: var(--mdc-theme-text); - /* Make the background disk that appears when hovered slightly bigger - * than the icon itself, which is 24px. */ - --mdc-icon-button-size: 28px; - /* Tighten the buttons to save space. */ - margin: -2px; + md-filled-icon-button { + --md-filled-icon-button-icon-size: 20px; + --md-filled-icon-button-container-width: 24px; + --md-filled-icon-button-container-height: 24px; + overflow: hidden; } `; } diff --git a/src/entry_loader_test.ts b/src/entry_loader_test.ts index 4d79d9e..bd1132f 100644 --- a/src/entry_loader_test.ts +++ b/src/entry_loader_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {FieldId} from './entry'; import {loadBatchJson, loadJsonContainingBatchJsonPaths} from './entry_loader'; diff --git a/src/fields_table_ui.ts b/src/fields_table_ui.ts index e39c9c0..cc09022 100644 --- a/src/fields_table_ui.ts +++ b/src/fields_table_ui.ts @@ -61,7 +61,7 @@ export class FieldsTableUi extends LitElement { } table { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); border-collapse: collapse; min-width: 100%; } @@ -72,16 +72,16 @@ export class FieldsTableUi extends LitElement { border-style: solid; } th { - border-color: var(--mdc-theme-background); - background: var(--mdc-theme-surface); + border-color: var(--md-sys-color-background); + background: var(--md-sys-color-surface); } td { - border-color: var(--mdc-theme-surface); + border-color: var(--md-sys-color-surface); font-family: monospace; word-break: break-word; } tr { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); } .description { font-style: italic; diff --git a/src/filter_generic_ui.ts b/src/filter_generic_ui.ts index a820aad..fd761c2 100644 --- a/src/filter_generic_ui.ts +++ b/src/filter_generic_ui.ts @@ -12,16 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-checkbox'; -import '@material/mwc-slider'; -import '@material/mwc-slider/slider-range'; -import '@material/mwc-textfield'; +import '@material/web/button/filled-button'; +import '@material/web/icon/icon'; -import {SliderRange} from '@material/mwc-slider/slider-range'; -import {TextField} from '@material/mwc-textfield'; import {css, html, LitElement} from 'lit'; -import {customElement, property, query} from 'lit/decorators.js'; +import {customElement, property} from 'lit/decorators.js'; import {Field} from './entry'; import {dispatch, EventType, listen} from './events'; @@ -41,23 +36,21 @@ export class FilterUiGeneric extends LitElement { ${this.filter.toString(this.field, /*short=*/ false)}

- { this.filter.enabled = false; dispatch(EventType.FILTER_CHANGED, {batchIndex: this.batchIndex}); }} title="Delete filter"> - filter_alt_off - + filter_alt_off + `; } static override styles = css` :host { display: block; - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); margin: 0; padding: 10px; border-radius: 10px; @@ -71,9 +64,16 @@ export class FilterUiGeneric extends LitElement { p { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; white-space: nowrap; } + + md-filled-icon-button { + --md-filled-icon-button-icon-size: 24px; + --md-filled-icon-button-container-width: 32px; + --md-filled-icon-button-container-height: 32px; + overflow: hidden; + } `; } diff --git a/src/filter_range_ui.ts b/src/filter_range_ui.ts index 6c9d8b3..62a745b 100644 --- a/src/filter_range_ui.ts +++ b/src/filter_range_ui.ts @@ -12,13 +12,13 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-slider'; -import '@material/mwc-slider/slider-range'; -import '@material/mwc-textfield'; +import '@material/web/button/filled-button'; +import '@material/web/textfield/outlined-text-field'; +import '@material/web/slider/slider'; +import '@material/web/icon/icon'; -import {SliderRange} from '@material/mwc-slider/slider-range'; -import {TextField} from '@material/mwc-textfield'; +import {MdSlider} from '@material/web/slider/slider'; +import {MdOutlinedTextField} from '@material/web/textfield/outlined-text-field'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; @@ -33,21 +33,9 @@ export class FilterUiRange extends LitElement { @property({attribute: false}) field!: Field; @property({attribute: false}) filter!: FieldFilterRange; - @query('#numberMin') private readonly numberMin?: TextField; - @query('#numberMax') private readonly numberMax?: TextField; - @query('#numberSlider') private readonly numberSlider?: SliderRange; - - override connectedCallback() { - super.connectedCallback(); - // Hack to force refreshing the mwc-slider-range. Otherwise it may appear - // broken (probably due to being initialized in a display:none parent). - listen(EventType.FILTERED_DATA_INFO_REQUEST, async () => { - await new Promise(r => setTimeout(r, 1)); - if (this.numberSlider !== undefined) { - await this.numberSlider.layout(); - } - }); - } + @query('#numberMin') private readonly numberMin?: MdOutlinedTextField; + @query('#numberMax') private readonly numberMax?: MdOutlinedTextField; + @query('#numberSlider') private readonly numberSlider?: MdSlider; private renderSingleUniqueValue() { const uniqueValue = this.field.uniqueValuesArray.length === 0 ? @@ -77,9 +65,9 @@ export class FilterUiRange extends LitElement { }; return html` - - `; + `; } private renderNumberMax() { @@ -98,9 +86,9 @@ export class FilterUiRange extends LitElement { }; return html` - - `; + `; } private renderNumberSlider() { @@ -110,12 +98,12 @@ export class FilterUiRange extends LitElement { if (this.numberSlider === undefined) return; if (this.numberSlider.valueStart !== this.filter.rangeStart) { - this.filter.rangeStart = this.numberSlider.valueStart; + this.filter.rangeStart = this.numberSlider.valueStart!; this.numberMin.value = this.filter.rangeStart.toString(); dispatch(EventType.FILTER_CHANGED, {batchIndex: this.batchIndex}); } if (this.numberSlider.valueEnd !== this.filter.rangeEnd) { - this.filter.rangeEnd = this.numberSlider.valueEnd; + this.filter.rangeEnd = this.numberSlider.valueEnd!; this.numberMax.value = this.filter.rangeEnd.toString(); dispatch(EventType.FILTER_CHANGED, {batchIndex: this.batchIndex}); } @@ -125,44 +113,43 @@ export class FilterUiRange extends LitElement { if (this.field.isInteger) { if (range < 30) { // withtickmarks is laggy with large values - return html``; + id="numberSlider">`; } - return html``; + id="numberSlider">`; } - // Hack to bypass the inconvenient check at - // https://github.com/simonziegler/material-components-web/blob/78305b6d547b07aa06db04ad47b765b8f92851fa/packages/mdc-slider/foundation.ts#L1017-L1025 const step = range / (256 * 256); const min = this.field.rangeStart; const valueStart = min + Math.round((this.filter.rangeStart - min) / step) * step; const valueEnd = min + Math.round((this.filter.rangeEnd - min) / step) * step; - return html``; + id="numberSlider">`; } private renderNumber() { @@ -184,23 +171,21 @@ export class FilterUiRange extends LitElement { this.field.uniqueValuesArray.length < 2 ? this.renderSingleUniqueValue() : this.renderNumber()} - { this.filter.enabled = false; dispatch(EventType.FILTER_CHANGED, {batchIndex: this.batchIndex}); }} title="Delete filter"> - filter_alt_off - + filter_alt_off + `; } static override styles = css` :host { display: block; - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); margin: 0; padding: 10px; border-radius: 10px; @@ -214,17 +199,28 @@ export class FilterUiRange extends LitElement { p { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; white-space: nowrap; } - mwc-textfield { + md-outlined-text-field { width: 80px; height: 35px; + --md-outlined-field-top-space: 2px; + --md-outlined-field-bottom-space: 2px; + --md-outlined-text-field-leading-space: 2px; + --md-outlined-text-field-trailing-space: 2px; } - mwc-slider-range { + md-slider { width: 400px; } + + md-filled-icon-button { + --md-filled-icon-button-icon-size: 24px; + --md-filled-icon-button-container-width: 32px; + --md-filled-icon-button-container-height: 32px; + overflow: hidden; + } `; } diff --git a/src/filter_ranges_test.ts b/src/filter_ranges_test.ts index e0cb288..7bc391a 100644 --- a/src/filter_ranges_test.ts +++ b/src/filter_ranges_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {FieldFilterWebBppJpeg} from './filter_ranges'; describe('FieldFilterWebBppJpeg', () => { diff --git a/src/filter_string_set_ui.ts b/src/filter_string_set_ui.ts index 8085573..d5fc80f 100644 --- a/src/filter_string_set_ui.ts +++ b/src/filter_string_set_ui.ts @@ -12,11 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-checkbox'; +import '@material/web/button/filled-button'; +import '@material/web/checkbox/checkbox'; +import '@material/web/icon/icon'; import {css, html, LitElement} from 'lit'; -import {customElement, property, query} from 'lit/decorators.js'; +import {customElement, property} from 'lit/decorators.js'; import {Field} from './entry'; import {dispatch, EventType, listen} from './events'; @@ -54,9 +55,9 @@ export class FilterUiStringSet extends LitElement { return html` `; } @@ -79,23 +80,21 @@ export class FilterUiStringSet extends LitElement { this.field.uniqueValuesArray.length < 2 ? this.renderSingleUniqueValue() : this.renderList()} - { this.filter.enabled = false; dispatch(EventType.FILTER_CHANGED, {batchIndex: this.batchIndex}); }} title="Delete filter"> - filter_alt_off - + filter_alt_off + `; } static override styles = css` :host { display: block; - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); margin: 0; padding: 10px; border-radius: 10px; @@ -109,7 +108,7 @@ export class FilterUiStringSet extends LitElement { p { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; white-space: nowrap; } @@ -120,10 +119,17 @@ export class FilterUiStringSet extends LitElement { align-items: center; justify-content: center; white-space: nowrap; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-family: monospace; - background: var(--mdc-theme-surface); + background: var(--md-sys-color-surface); border-radius: 30px; } + + md-filled-icon-button { + --md-filled-icon-button-icon-size: 24px; + --md-filled-icon-button-container-width: 32px; + --md-filled-icon-button-container-height: 32px; + overflow: hidden; + } `; } diff --git a/src/filter_web_bpp_ui.ts b/src/filter_web_bpp_ui.ts index 1f38384..c51d1e0 100644 --- a/src/filter_web_bpp_ui.ts +++ b/src/filter_web_bpp_ui.ts @@ -12,11 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-textfield'; +import '@material/web/button/filled-button'; +import '@material/web/icon/icon'; import {css, html, LitElement} from 'lit'; -import {customElement, property, query} from 'lit/decorators.js'; +import {customElement, property} from 'lit/decorators.js'; import {Field} from './entry'; import {dispatch, EventType, listen} from './events'; @@ -39,7 +39,7 @@ export class FilterUiWebBpp extends LitElement { Megapixels buckets as described at Bits-per-pixel of Internet images - open_in_new: + open_in_new:

@@ -60,23 +60,21 @@ export class FilterUiWebBpp extends LitElement { bucket[BUCKET_FILTER_MAX_INCLUSIVE].toFixed(2)}]`)}
- { this.filter.enabled = false; dispatch(EventType.FILTER_CHANGED, {batchIndex: this.batchIndex}); }} title="Delete filter"> - filter_alt_off - + filter_alt_off + `; } static override styles = css` :host { display: block; - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); margin: 0; padding: 10px; border-radius: 10px; @@ -90,11 +88,18 @@ export class FilterUiWebBpp extends LitElement { p { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; } - mwc-icon { + md-icon { vertical-align: top; } + + md-filled-icon-button { + --md-filled-icon-button-icon-size: 24px; + --md-filled-icon-button-container-width: 32px; + --md-filled-icon-button-container-height: 32px; + overflow: hidden; + } `; } diff --git a/src/filtered_images_ui.ts b/src/filtered_images_ui.ts index dcbb61b..017d630 100644 --- a/src/filtered_images_ui.ts +++ b/src/filtered_images_ui.ts @@ -12,8 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-icon'; -import '@material/mwc-button'; +import '@material/web/icon/icon'; import {css, html, LitElement} from 'lit'; import {customElement, property} from 'lit/decorators.js'; @@ -75,7 +74,7 @@ export class FilteredImagesUi extends LitElement { return html`
- photo_library + photo_library ${this.batchSelection.filteredRowIndices.length} / ${ batch.rows.length}
@@ -112,8 +111,8 @@ export class FilteredImagesUi extends LitElement { padding: 0 15px; height: 40px; border-radius: 30px; - background: var(--mdc-theme-primary); - color: var(--mdc-theme-background); + background: var(--md-sys-color-primary); + color: var(--md-sys-color-background); display: flex; align-items: center; gap: 5px; @@ -121,7 +120,7 @@ export class FilteredImagesUi extends LitElement { } h2 { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); } .tableParent { @@ -136,7 +135,7 @@ export class FilteredImagesUi extends LitElement { } table { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); width: 100%; white-space: nowrap; border-collapse: collapse; @@ -148,24 +147,24 @@ export class FilteredImagesUi extends LitElement { border-style: solid; } th { - border-color: var(--mdc-theme-background); - background: var(--mdc-theme-surface); + border-color: var(--md-sys-color-background); + background: var(--md-sys-color-surface); font-size: 12px; position: sticky; top: 0; border-top: 0; } td { - border-color: var(--mdc-theme-surface); + border-color: var(--md-sys-color-surface); font-family: monospace; font-size: 10px; } tr { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); } tr:hover { - background: var(--mdc-theme-surface); + background: var(--md-sys-color-surface); } .excluded { color: grey; diff --git a/src/filters_ui.ts b/src/filters_ui.ts index e9265ce..2699f21 100644 --- a/src/filters_ui.ts +++ b/src/filters_ui.ts @@ -12,17 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-menu'; -import '@material/mwc-icon'; -import '@material/mwc-button'; +import '@material/web/menu/menu'; +import '@material/web/menu/menu-item'; +import '@material/web/icon/icon'; +import '@material/web/button/filled-button'; import './filter_generic_ui'; import './filter_range_ui'; import './filter_string_set_ui'; import './filter_web_bpp_ui'; -import {Button} from '@material/mwc-button'; -import {ActionDetail} from '@material/mwc-list'; -import {Menu} from '@material/mwc-menu'; +import {MdFilledButton} from '@material/web/button/filled-button'; +import {MdMenu} from '@material/web/menu/menu'; +import {MenuItem} from '@material/web/menu/menu-item'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; @@ -39,8 +40,8 @@ export class FiltersUi extends LitElement { @property({attribute: false}) state!: State; @property() batchSelection!: BatchSelection; - @query('#addFilterMenu') private readonly addFilterMenu!: Menu; - @query('#addFilterButton') private readonly addFilterButton!: Button; + @query('#addFilterMenu') private readonly addFilterMenu!: MdMenu; + @query('#addFilterButton') private readonly addFilterButton!: MdFilledButton; private readonly onFilterChanged = (event: CustomEvent) => { if (event.detail.batchIndex === this.batchSelection.batch.index) { @@ -59,41 +60,38 @@ export class FiltersUi extends LitElement { private renderAddFilterMenu() { const batch = this.batchSelection.batch; return html` - { - this.addFilterMenu.show(); + this.addFilterMenu.open = !this.addFilterMenu.open; }} title="Add filter" id="addFilterButton"> - add - filter_alt - - ) => { - this.batchSelection.fieldFilters[e.detail.index].fieldFilter.enabled = - true; - dispatch( - EventType.FILTER_CHANGED, - {batchIndex: this.batchSelection.batch.index}); - }}> + add + filter_alt + + ${ this.batchSelection.fieldFilters.map( (filter: FieldFilterWithIndex) => filter.fieldFilter.enabled ? - html` + html` ${ filter.fieldFilter.displayName( batch.fields[filter.fieldIndex])} - ` : - html` + ` : + html` { + filter.fieldFilter.enabled = true; + dispatch( + EventType.FILTER_CHANGED, + {batchIndex: this.batchSelection.batch.index}); + }}> ${ filter.fieldFilter.displayName( batch.fields[filter.fieldIndex])} - `)} - + `)} + `; } @@ -147,7 +145,7 @@ export class FiltersUi extends LitElement { return html`
- filter_alt + filter_alt ${numEnabledFilters}

active filters

@@ -181,8 +179,8 @@ export class FiltersUi extends LitElement { padding: 0 15px; height: 40px; border-radius: 30px; - background: var(--mdc-theme-primary); - color: var(--mdc-theme-background); + background: var(--md-sys-color-primary); + color: var(--md-sys-color-background); display: flex; align-items: center; gap: 5px; @@ -190,23 +188,30 @@ export class FiltersUi extends LitElement { } h2 { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); } #addFilterParent { - /* mwc-menu and its anchor need a parent with position set to relative. */ + /* md-menu and its anchor need a parent with position set to relative. */ position: relative; } - mwc-menu { + #addFilterButton { + --md-filled-button-label-text-line-height: 1em; + --md-filled-button-container-height: 32px; + } + md-menu { /* Otherwise the menu is clipped by the parent's overflow:hidden. * Unfortunately this prevents the menu from properly reducing in height * when there is not enough space to display all items. */ position: fixed; /* This way all items should fit on screen. */ - --mdc-menu-item-height: 20px; - /* Otherwise the menu is rendered under the mwc checkboxes. */ + --md-menu-item-one-line-container-height: 20px; + --md-menu-item-top-space: 0; + --md-menu-item-bottom-space: 0; + /* Otherwise the menu is rendered under the md checkboxes. */ z-index: 6; + white-space: nowrap; } .menuItemDisabled { color: grey; diff --git a/src/gallery_ui.ts b/src/gallery_ui.ts index 8696012..2d2d247 100644 --- a/src/gallery_ui.ts +++ b/src/gallery_ui.ts @@ -12,7 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-icon'; +import '@material/web/button/filled-button'; +import '@material/web/checkbox/checkbox'; +import '@material/web/icon/icon'; import './batch_name_ui'; import './matcher_ui'; @@ -110,34 +112,34 @@ export class GalleryUi extends LitElement { ${Array.from(this.tagToAssetNames.keys()).map(tag => html` - addTag(tag)} + addTag(tag)} title="Enable all assets tagged as ${tag}"> - add + add ${tag} - + - removeTag(tag)} + removeTag(tag)} title="Disable all assets tagged as ${tag}"> - remove + remove ${tag} - + `)} - - add + add All - + - - remove + remove All - + `; @@ -177,9 +179,9 @@ export class GalleryUi extends LitElement { ${asset.sourceName} ${asset.count} -
open_in_new
- - +
open_in_new
+ + `; } @@ -200,9 +202,9 @@ export class GalleryUi extends LitElement { ${asset.sourceName} ${asset.count} -
open_in_new
- - +
open_in_new
+ + `; } return html` @@ -241,7 +243,7 @@ export class GalleryUi extends LitElement { } table { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); border-collapse: collapse; box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); } @@ -252,16 +254,16 @@ export class GalleryUi extends LitElement { border-style: solid; } th { - border-color: var(--mdc-theme-background); - background: var(--mdc-theme-surface); + border-color: var(--md-sys-color-background); + background: var(--md-sys-color-surface); } td { - border-color: var(--mdc-theme-surface); + border-color: var(--md-sys-color-surface); font-family: monospace; word-break: break-word; } tr { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); } #tags td { @@ -283,7 +285,7 @@ export class GalleryUi extends LitElement { overflow: hidden; overflow-wrap: break-word; text-align: center; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 4px 0px; } #gallery > a { @@ -317,12 +319,12 @@ export class GalleryUi extends LitElement { .linkOverlay:hover{ opacity: 1; } - .linkOverlay > mwc-icon { - color: var(--mdc-theme-background); + .linkOverlay > md-icon { + color: var(--md-sys-color-background); font-size: 16px; } - mwc-checkbox { + md-checkbox { position: absolute; top: 0; left: 0; @@ -339,8 +341,8 @@ export class GalleryUi extends LitElement { padding: 2px 4px; border-radius: 3px; font-size: 12px; - color: var(--mdc-theme-background); - background: var(--mdc-theme-primary); + color: var(--md-sys-color-background); + background: var(--md-sys-color-primary); } `; } diff --git a/src/help_ui.ts b/src/help_ui.ts index 1f467c3..ae603cd 100644 --- a/src/help_ui.ts +++ b/src/help_ui.ts @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-fab'; -import '@material/mwc-icon'; +import '@material/web/fab/fab'; +import '@material/web/icon/icon'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; @@ -199,7 +199,7 @@ export class HelpUi extends LitElement { bits-per-pixel usually seen on the web - open_in_new.
+ open_in_new.
Click the visibility button to show or hide a specific batch in the plot and in the SUMMARY tab.
${ this.rdMode ? html` @@ -229,9 +229,9 @@ export class HelpUi extends LitElement { matched pairs based on that asset accross all batches.`}
Each image can be toggled on or off across all batches.

Images can be toggled on or off in bulk using the filter tags.
- "addTAG" enables all images associated with that + "addTAG" enables all images associated with that TAG.
- "removeTAG" disables all images associated with that + "removeTAG" disables all images associated with that TAG.

`; @@ -270,18 +270,18 @@ export class HelpUi extends LitElement { For an introduction to image file formats, please see this - Wikipedia article open_in_new. + Wikipedia article open_in_new.
For any question or comment on this tool, please open an issue on - GitHub open_in_new. + GitHub open_in_new.

- - + + close + `; } @@ -340,9 +340,9 @@ export class HelpUi extends LitElement { a { color: white; } - - mwc-icon { - font-size: 0.8em; + md-icon { + vertical-align: middle; + --md-icon-size: 1em; } `; } \ No newline at end of file diff --git a/src/histogram_test.ts b/src/histogram_test.ts index 47680a0..0c24727 100644 --- a/src/histogram_test.ts +++ b/src/histogram_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {mergeHistograms} from './batch_merger'; import {BatchSelection} from './batch_selection'; import {Batch, Field, FieldId} from './entry'; diff --git a/src/loading_ui.ts b/src/loading_ui.ts index 746fe47..33b079f 100644 --- a/src/loading_ui.ts +++ b/src/loading_ui.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-linear-progress'; +import '@material/web/progress/linear-progress'; import {css, html, LitElement} from 'lit'; import {customElement, property} from 'lit/decorators.js'; @@ -25,14 +25,11 @@ export class LoadingUi extends LitElement { @property({type: Number}) progress = 0; override render() { - const progressFirstHalf = Math.min(1, this.progress * 2); - const progressSecondHalf = Math.max(0, this.progress * 2 - 1); return html`

${this.text}

- - + +
`; } @@ -49,7 +46,7 @@ export class LoadingUi extends LitElement { align-items: center; overflow: hidden; z-index: 10; - background: var(--mdc-theme-surface); + background: var(--md-sys-color-surface); opacity: 1; transition: opacity 0.3s; cursor: wait; @@ -57,7 +54,7 @@ export class LoadingUi extends LitElement { .card { padding: 16px; - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); border-radius: 20px; display: flex; @@ -70,7 +67,7 @@ export class LoadingUi extends LitElement { p { margin: 10px; padding: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 26px; } `; diff --git a/src/match_image_ui.ts b/src/match_image_ui.ts index c4e6f54..a0ac068 100644 --- a/src/match_image_ui.ts +++ b/src/match_image_ui.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-icon'; +import '@material/web/icon/icon'; import './batch_name_ui'; import './filtered_images_ui'; import './filters_ui'; @@ -86,8 +86,8 @@ export class MatchImageUi extends LitElement {
- ${compare ? 'compare' : 'image'} - open_in_new + ${compare ? 'compare' : 'image'} + open_in_new
`; } @@ -134,8 +134,8 @@ export class MatchImageUi extends LitElement { #imageOverlay:hover{ opacity: 1; } - #imageOverlay > mwc-icon { - color: var(--mdc-theme-background); + #imageOverlay > md-icon { + color: var(--md-sys-color-background); font-size: 26px; } `; diff --git a/src/match_test.ts b/src/match_test.ts index 3cf9e62..33a34f0 100644 --- a/src/match_test.ts +++ b/src/match_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {Batch, Field} from './entry'; import {getDataPoints, getDataPointsSymmetric, Match} from './matcher'; import {State} from './state'; diff --git a/src/matcher_ui.ts b/src/matcher_ui.ts index 73fcc97..7436d12 100644 --- a/src/matcher_ui.ts +++ b/src/matcher_ui.ts @@ -12,12 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-menu'; -import './mwc_button_fit'; +import '@material/web/menu/menu'; +import '@material/web/menu/menu-item'; +import '@material/web/icon/icon'; import './tooltip_ui'; -import {Button} from '@material/mwc-button'; -import {Menu} from '@material/mwc-menu'; +import {MdMenu} from '@material/web/menu/menu'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; @@ -41,67 +41,66 @@ export class MatcherUi extends LitElement { private readonly AVAILABLE_TOLERANCE = [0, 0.01, 0.02, 0.03, 0.04, 0.05, 0.10, 0.20]; - @query('#toleranceButton') private readonly toleranceButton!: Button; - @query('#toleranceMenu') private readonly toleranceMenu!: Menu; + @query('#toleranceButton') private readonly toleranceButton!: any; + @query('#toleranceMenu') private readonly toleranceMenu!: MdMenu; private renderToleranceButton() { if (!this.isNumber) { return html``; } - // mwc-menu and its anchor need a parent with position set to relative. + // md-menu and its anchor need a parent with position set to relative. return html` - { - this.toleranceMenu.show(); - }} - id="toleranceButton"> - { - this.matcher.tolerance = this.AVAILABLE_TOLERANCE[e.detail.index]; - dispatch(EventType.MATCHER_OR_METRIC_CHANGED); - this.requestUpdate(); + this.toleranceMenu.open = !this.toleranceMenu.open; }} + id="toleranceButton"> + ${toleranceRangePercent(this.matcher.tolerance)} + + - ${this.AVAILABLE_TOLERANCE.map((availableTolerance: number) => html` - + ${ + this.AVAILABLE_TOLERANCE.map( + (availableTolerance: number) => html` + { + this.matcher.tolerance = availableTolerance; + dispatch(EventType.MATCHER_OR_METRIC_CHANGED); + this.requestUpdate(); + }}> Set tolerance to ${toleranceRangePercent(availableTolerance)} - `)} - + `)} + `; } private renderDeleteButton() { if (this.fieldId === FieldId.SOURCE_IMAGE_NAME) { - // title on a disabled mwc-button-fit does not work. Encapsulate in a div. + // title on a disabled button does not work. Encapsulate in a div. return html`
- delete + + delete +
`; } return html` - { this.matcher.enabled = false; dispatch(EventType.MATCHER_OR_METRIC_CHANGED); }} title="Delete matcher"> - delete - `; + delete + `; } override render() { @@ -133,7 +132,7 @@ export class MatcherUi extends LitElement { static override styles = css` :host { - background-color: var(--mdc-theme-surface); + background-color: var(--md-sys-color-surface); margin: 0; padding: 6px; border-radius: 6px; @@ -144,12 +143,29 @@ export class MatcherUi extends LitElement { } p { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; } - mwc-icon { - font-size: 20px; + #toleranceButton { + --md-filled-button-container-height: 20px; + --md-filled-button-label-text-size: 14px; + --md-filled-button-leading-space: 4px; + --md-filled-button-trailing-space: 4px; + --md-filled-button-container-shape: 2px; + } + + md-filled-icon-button { + --md-filled-icon-button-icon-size: 20px; + --md-filled-icon-button-container-width: 24px; + --md-filled-icon-button-container-height: 24px; + } + + md-menu-item { + --md-menu-item-one-line-container-height: 20px; + --md-menu-item-top-space: 0; + --md-menu-item-bottom-space: 0; + white-space: nowrap; } `; } diff --git a/src/matchers_ui.ts b/src/matchers_ui.ts index a4b67f5..a0c1fe8 100644 --- a/src/matchers_ui.ts +++ b/src/matchers_ui.ts @@ -12,13 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-fab'; -import '@material/mwc-menu'; +import '@material/web/fab/fab'; +import '@material/web/menu/menu'; +import '@material/web/menu/menu-item'; +import '@material/web/icon/icon'; import './matcher_ui'; -import {Fab} from '@material/mwc-fab'; -import {ActionDetail} from '@material/mwc-list'; -import {Menu} from '@material/mwc-menu'; +import {MdFab} from '@material/web/fab/fab'; +import {MdMenu} from '@material/web/menu/menu'; +import {MenuItem} from '@material/web/menu/menu-item'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; @@ -32,8 +34,8 @@ import {State} from './state'; export class MatchersUi extends LitElement { @property({attribute: false}) state!: State; - @query('#addMatcherMenu') private readonly addMatcherMenu!: Menu; - @query('#addMatcherButton') private readonly addMatcherButton!: Fab; + @query('#addMatcherMenu') private readonly addMatcherMenu!: MdMenu; + @query('#addMatcherButton') private readonly addMatcherButton!: MdFab; override connectedCallback() { super.connectedCallback(); @@ -47,34 +49,31 @@ export class MatchersUi extends LitElement { const fieldName = this.state.batches[0].fields[matcher.fieldIndices[0]].displayName; return matcher.enabled ? - html`${fieldName}` : - html`${fieldName}`; + html` + ${fieldName}` : + html`) => { + matcher.enabled = true; + dispatch(EventType.MATCHER_OR_METRIC_CHANGED); + }}>${fieldName}`; })}`; } private renderAddMatcherMenu() { - // mwc-menu and its anchor need a parent with position set to relative. + // md-menu and its anchor need a parent with position set to relative. return html` - { - this.addMatcherMenu.show(); + this.addMatcherMenu.open = !this.addMatcherMenu.open; }} - id="addMatcherButton"> - ) => { - this.state.matchers[e.detail.index].enabled = true; - dispatch(EventType.MATCHER_OR_METRIC_CHANGED); - }}> + id="addMatcherButton"> + add + + ${this.renderAddMatcherMenuItems()} - + `; } @@ -122,7 +121,7 @@ export class MatchersUi extends LitElement { static override styles = css` :host { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); padding: 6px; box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); border-radius: 16px; @@ -138,13 +137,16 @@ export class MatchersUi extends LitElement { margin-left: auto; } - .menuItemDisabled { - color: grey; + #addMatcherButton { + --md-fab-container-width: 32px; + --md-fab-container-height: 32px; + --md-fab-icon-size: 20px; } - #addMatcherButton { - /* Save screen space. */ - margin: -6px; + md-menu-item { + --md-menu-item-one-line-container-height: 20px; + --md-menu-item-top-space: 0; + --md-menu-item-bottom-space: 0; } `; } diff --git a/src/matches_table_ui.ts b/src/matches_table_ui.ts index 1930e74..e5ec6c9 100644 --- a/src/matches_table_ui.ts +++ b/src/matches_table_ui.ts @@ -519,7 +519,7 @@ export class MatchesTableUi extends LitElement { } table { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); width: 100%; white-space: nowrap; border-collapse: collapse; @@ -531,8 +531,8 @@ export class MatchesTableUi extends LitElement { border-style: solid; } th { - border-color: var(--mdc-theme-background); - background: var(--mdc-theme-surface); + border-color: var(--md-sys-color-background); + background: var(--md-sys-color-surface); font-size: 12px; } .headerRow { @@ -541,7 +541,7 @@ export class MatchesTableUi extends LitElement { border-top: 0; } td { - border-color: var(--mdc-theme-surface); + border-color: var(--md-sys-color-surface); font-family: monospace; font-size: 10px; } @@ -550,14 +550,14 @@ export class MatchesTableUi extends LitElement { } tr { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); } .matchRow:hover { - background: var(--mdc-theme-surface); + background: var(--md-sys-color-surface); cursor: pointer; } .matchRowSelected { - background: var(--mdc-theme-surface); + background: var(--md-sys-color-surface); cursor: pointer; } .hiddenRow { @@ -570,7 +570,7 @@ export class MatchesTableUi extends LitElement { } .missing { - background: var(--mdc-theme-surface); + background: var(--md-sys-color-surface); } `; } diff --git a/src/matches_ui.ts b/src/matches_ui.ts index 05aa2a2..617275e 100644 --- a/src/matches_ui.ts +++ b/src/matches_ui.ts @@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-icon'; +import '@material/web/button/filled-button'; +import '@material/web/icon/icon'; import './batch_name_ui'; import './match_image_ui'; import './matches_table_ui'; @@ -52,12 +52,12 @@ export class MatchesUi extends LitElement {
- ${ + ${ this.referenceSelection === undefined || this.batchSelection.batch.index === this.referenceSelection.batch.index ? 'photo_library' : - 'join_inner'} + 'join_inner'} ${this.batchSelection.matchedDataPoints.rows.length}

@@ -90,13 +90,12 @@ export class MatchesUi extends LitElement { ${rdModeHash === undefined ? html`` : html` - - open_in_new - + Rate-Distortion + show_chart + open_in_new + `}

`; } @@ -138,8 +137,8 @@ export class MatchesUi extends LitElement { padding: 0 15px; height: 40px; border-radius: 30px; - background: var(--mdc-theme-primary); - color: var(--mdc-theme-background); + background: var(--md-sys-color-primary); + color: var(--md-sys-color-background); display: flex; align-items: center; gap: 5px; @@ -150,7 +149,7 @@ export class MatchesUi extends LitElement { margin: 0; } - mwc-button mwc-icon { + md-filled-button md-icon { margin-left: 8px; font-size: 16px; } diff --git a/src/metric_test.ts b/src/metric_test.ts index f98dc9b..a16e344 100644 --- a/src/metric_test.ts +++ b/src/metric_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {Batch, Field} from './entry'; import {Match} from './matcher'; import {computeStats, FieldMetric} from './metric'; diff --git a/src/metric_ui.ts b/src/metric_ui.ts index 317c55a..df9fdb9 100644 --- a/src/metric_ui.ts +++ b/src/metric_ui.ts @@ -12,8 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-icon'; -import './mwc_button_fit'; +import '@material/web/icon/icon'; import './tooltip_ui'; import {css, html, LitElement} from 'lit'; @@ -33,24 +32,23 @@ export class MetricUi extends LitElement { private renderDeleteButton() { if (this.isFirst && this.isLast) { - // title on a disabled mwc-button-fit does not work. Encapsulate in a div. + // title on a disabled button does not work. Encapsulate in a div. return html`
- delete + + delete +
`; } - return html` { + return html` + { this.metric.enabled = false; dispatch(EventType.MATCHER_OR_METRIC_CHANGED); }} - title="Delete metric" - >delete`; + title="Delete metric"> + delete + `; } override render() { @@ -71,7 +69,7 @@ export class MetricUi extends LitElement { static override styles = css` :host { - background-color: var(--mdc-theme-surface); + background-color: var(--md-sys-color-surface); margin: 0; padding: 6px; border-radius: 6px; @@ -82,12 +80,14 @@ export class MetricUi extends LitElement { } p { margin: 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; } - mwc-icon { - font-size: 20px; + md-filled-icon-button { + --md-filled-icon-button-icon-size: 20px; + --md-filled-icon-button-container-width: 24px; + --md-filled-icon-button-container-height: 24px; } `; } diff --git a/src/metrics_ui.ts b/src/metrics_ui.ts index d4dd023..f36c41e 100644 --- a/src/metrics_ui.ts +++ b/src/metrics_ui.ts @@ -12,12 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-fab'; -import '@material/mwc-menu'; +import '@material/web/fab/fab'; +import '@material/web/menu/menu'; +import '@material/web/menu/menu-item'; +import '@material/web/icon/icon'; import './metric_ui'; -import {Fab} from '@material/mwc-fab'; -import {Menu} from '@material/mwc-menu'; +import {MdFab} from '@material/web/fab/fab'; +import {MdMenu} from '@material/web/menu/menu'; +import {MenuItem} from '@material/web/menu/menu-item'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; @@ -30,8 +33,8 @@ import {State} from './state'; export class MetricsUi extends LitElement { @property({attribute: false}) state!: State; - @query('#addMetricMenu') private readonly addMetricMenu!: Menu; - @query('#addMetricButton') private readonly addMetricButton!: Fab; + @query('#addMetricMenu') private readonly addMetricMenu!: MdMenu; + @query('#addMetricButton') private readonly addMetricButton!: MdFab; override connectedCallback() { super.connectedCallback(); @@ -44,35 +47,32 @@ export class MetricsUi extends LitElement { return html`${this.state.metrics.map((metric: FieldMetric) => { const fieldName = this.state.batches[0].fields[metric.fieldIndices[0]].displayName; - return metric.enabled ? - html`${fieldName}` : - html`${fieldName}`; + return metric.enabled ? html` + ${fieldName}` : + html` { + metric.enabled = true; + dispatch(EventType.MATCHER_OR_METRIC_CHANGED); + }}>${fieldName}`; })}`; } private renderAddMetricMenu() { - // mwc-menu and its anchor need a parent with position set to relative. + // md-menu and its anchor need a parent with position set to relative. return html` - { - this.addMetricMenu.show(); + this.addMetricMenu.open = !this.addMetricMenu.open; }} - id="addMetricButton"> - { - this.state.metrics[e.detail.index].enabled = true; - dispatch(EventType.MATCHER_OR_METRIC_CHANGED); - }}> + id="addMetricButton"> + add + + ${this.renderAddMetricMenuItems()} - + `; } @@ -106,7 +106,7 @@ export class MetricsUi extends LitElement { static override styles = css` :host { - background: var(--mdc-theme-background); + background: var(--md-sys-color-background); padding: 6px; box-shadow: 0 0 8px 0 rgba(0, 0, 0, 0.2); border-radius: 16px; @@ -120,13 +120,17 @@ export class MetricsUi extends LitElement { align-self: flex-end; margin-left: auto; } - .menuItemDisabled { - color: grey; - } #addMetricButton { - /* Save screen space. */ - margin: -6px; + --md-fab-container-width: 32px; + --md-fab-container-height: 32px; + --md-fab-icon-size: 20px; + } + + md-menu-item { + --md-menu-item-one-line-container-height: 20px; + --md-menu-item-top-space: 0; + --md-menu-item-bottom-space: 0; } `; } diff --git a/src/mwc_button_fit.ts b/src/mwc_button_fit.ts deleted file mode 100644 index 8e008bf..0000000 --- a/src/mwc_button_fit.ts +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2023 Google LLC -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// https://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import {Button} from '@material/mwc-button'; -import {customElement} from 'lit/decorators.js'; - -/** Same as but with custom width and height. */ -@customElement('mwc-button-fit') -export class MwcButtonFit extends Button { - protected override firstUpdated() { - const button = this.shadowRoot!.querySelector('button')!; - button.style.minWidth = '0'; - button.style.height = 'auto'; - button.style.padding = '2px 4px'; - } -} \ No newline at end of file diff --git a/src/panel_ui.ts b/src/panel_ui.ts index 7bae1da..90e7f20 100644 --- a/src/panel_ui.ts +++ b/src/panel_ui.ts @@ -12,18 +12,20 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-fab'; -import '@material/mwc-menu'; -import '@material/mwc-tab-bar'; -import '@material/mwc-tab'; +import '@material/web/button/filled-button'; +import '@material/web/fab/fab'; +import '@material/web/menu/menu'; +import '@material/web/menu/menu-item'; +import '@material/web/tabs/tabs'; +import '@material/web/tabs/secondary-tab'; import './batch_name_ui'; import './batch_selection_ui'; import './batch_ui'; import './matches_ui'; +import '@material/web/icon/icon'; -import {ActionDetail} from '@material/mwc-list'; -import {Menu} from '@material/mwc-menu'; +import {MdMenu} from '@material/web/menu/menu'; +import {MenuItem} from '@material/web/menu/menu-item'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; @@ -43,7 +45,7 @@ export class PanelUi extends LitElement { /** Currently displayed component. */ private currentTab = BatchTab.METADATA; - @query('#selectionMenu') private readonly selectionMenu!: Menu; + @query('#selectionMenu') private readonly selectionMenu!: MdMenu; override connectedCallback() { super.connectedCallback(); @@ -111,34 +113,32 @@ export class PanelUi extends LitElement { }}>

- { - this.selectionMenu.show(); + this.selectionMenu.open = !this.selectionMenu.open; }}> - - ) => { - this.batch = this.state.batches[e.detail.index]; - this.requestUpdate(); - }}> + arrow_drop_down + + ${ this.state.batches.map( (otherBatch) => html` - + { + this.batch = otherBatch; + this.requestUpdate(); + }}> ${ (!this.state.rdMode && otherBatch.index === this.state.referenceBatchSelectionIndex) ? html`reference` : html``} - `)} - + `)} +

${ @@ -146,46 +146,46 @@ export class PanelUi extends LitElement { // Rate-Distortion curve mode does not use any batch as reference. '' : batchIndex === this.state.referenceBatchSelectionIndex ? - // disabled mwc-button title does not appear. Use a div. + // disabled md-filled-button title does not appear. Use a div. html`
- - + Set as reference +
` : html` - - + Set as reference + `}
- ) => { - if (event.detail.index === BatchTab.METADATA) { + { + const activeTabIndex = (event.target as any).activeTabIndex; + if (activeTabIndex === BatchTab.METADATA) { dispatch(EventType.BATCH_INFO_REQUEST, {batchIndex}); - } else if (event.detail.index === BatchTab.FILTERS_AND_ROWS) { + } else if (activeTabIndex === BatchTab.FILTERS_AND_ROWS) { dispatch(EventType.FILTERED_DATA_INFO_REQUEST, {batchIndex}); - } else if (event.detail.index === BatchTab.MATCHES) { + } else if (activeTabIndex === BatchTab.MATCHES) { dispatch(EventType.MATCHES_INFO_REQUEST, {batchIndex}); } }}> - - - - - - + Metadata + info + + Filters and rows + filter_alt + + ${showRowsOnly ? 'Rows' : 'Matches'} + ${ + showRowsOnly ? 'photo_library' : 'join_inner'} + + @@ -202,8 +202,9 @@ export class PanelUi extends LitElement { style=${activeIndex === BatchTab.MATCHES ? '' : 'display: none'}> - - + + close +
`; } @@ -225,7 +226,7 @@ export class PanelUi extends LitElement { } #dialog { - background-color: var(--mdc-theme-surface); + background-color: var(--md-sys-color-surface); position: absolute; left: 40px; top: 40px; @@ -241,8 +242,8 @@ export class PanelUi extends LitElement { overflow: hidden; } - mwc-tab-bar { - background: var(--mdc-theme-surface); + md-tabs { + background: var(--md-sys-color-surface); } #closeButton { @@ -259,27 +260,30 @@ export class PanelUi extends LitElement { gap: 10px; } h1 { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); } #selectionButton { margin: 0; pointer-events: auto; - --mdc-theme-primary: white; - --mdc-theme-on-primary: var(--mdc-theme-text); + --md-sys-color-primary: var(--md-sys-color-background); + --md-sys-color-on-primary: var(--md-sys-color-text); position: relative; } #selectionButton batch-name-ui { - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; white-space: nowrap; text-transform: none; } #selectionMenu { - --mdc-menu-item-height: 20px; + --md-menu-item-one-line-container-height: 20px; + --md-menu-item-top-space: 0; + --md-menu-item-bottom-space: 0; + white-space: nowrap; } .referenceBatchChip { - background: var(--mdc-theme-primary); - color: var(--mdc-theme-background); + background: var(--md-sys-color-secondary); + color: var(--md-sys-color-background); border-radius: 16px; padding: 2px 8px; font-size: 12px; diff --git a/src/plot_overlay_ui.ts b/src/plot_overlay_ui.ts index b70c4fc..362fd43 100644 --- a/src/plot_overlay_ui.ts +++ b/src/plot_overlay_ui.ts @@ -12,16 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-button'; -import '@material/mwc-menu'; +import '@material/web/button/filled-button'; +import '@material/web/menu/menu'; +import '@material/web/menu/menu-item'; +import '@material/web/icon/icon'; -import {Button} from '@material/mwc-button'; -import {ActionDetail} from '@material/mwc-list'; -import {Menu} from '@material/mwc-menu'; +import {MdFilledButton} from '@material/web/button/filled-button'; +import {MdMenu} from '@material/web/menu/menu'; +import {MenuItem} from '@material/web/menu/menu-item'; import {css, html, LitElement} from 'lit'; import {customElement, property, query} from 'lit/decorators.js'; -import {FieldId, DISTORTION_METRIC_FIELD_IDS} from './entry'; +import {DISTORTION_METRIC_FIELD_IDS, FieldId} from './entry'; import {dispatch, EventType} from './events'; import {FieldMetric} from './metric'; import {State} from './state'; @@ -38,7 +40,8 @@ function fieldIdToString(id: FieldId) { if (id === FieldId.FLIP) return 'better looking'; if (id === FieldId.LPIPS) return 'better looking'; if (id === FieldId.P3NORM) return 'better looking'; - if (DISTORTION_METRIC_FIELD_IDS.includes(id)) return null; // Should not happen. + if (DISTORTION_METRIC_FIELD_IDS.includes(id)) + return null; // Should not happen. if (id === FieldId.ENCODED_SIZE) return 'smaller file'; if (id === FieldId.ENCODING_DURATION) return 'faster encoding'; if (id === FieldId.DECODING_DURATION) return 'faster decoding'; @@ -51,10 +54,11 @@ function fieldIdToString(id: FieldId) { export class PlotOverlayUi extends LitElement { @property({attribute: false}) state: State|undefined = undefined; - @query('#verticalMenu') private readonly verticalMenu!: Menu; - @query('#verticalButton') private readonly verticalButton!: Button; - @query('#horizontalMenu') private readonly horizontalMenu!: Menu; - @query('#horizontalButton') private readonly horizontalButton!: Button; + @query('#verticalMenu') private readonly verticalMenu!: MdMenu; + @query('#verticalButton') private readonly verticalButton!: MdFilledButton; + @query('#horizontalMenu') private readonly horizontalMenu!: MdMenu; + @query('#horizontalButton') + private readonly horizontalButton!: MdFilledButton; override render() { let verticalFieldIndex = -1; @@ -77,12 +81,10 @@ export class PlotOverlayUi extends LitElement { horizontalTitle = `${field.displayName} (click to change)`; } - const fieldIndices: number[] = []; const enabledMetrics: FieldMetric[] = []; if (this.state !== undefined) { for (const metric of this.state.metrics) { if (!metric.enabled) continue; - fieldIndices.push(metric.fieldIndices[0]); enabledMetrics.push(metric); } } @@ -90,50 +92,65 @@ export class PlotOverlayUi extends LitElement { return html`
- { - this.verticalMenu.show(); + this.verticalMenu.open = !this.verticalMenu.open; }}> + arrow_forward ${verticalString} - - ) => { - this.state!.plotMetricVertical = enabledMetrics[e.detail.index]; - dispatch(EventType.MATCHER_OR_METRIC_CHANGED); - }}> - ${fieldIndices.map((fieldIndex) => html` - - ${this.state!.batches[0].fields[fieldIndex].displayName} - `)} - + + + ${ + enabledMetrics.map( + (metric) => html` + { + this.state!.plotMetricVertical = metric; + console.log(this.state!.plotMetricVertical); + dispatch(EventType.MATCHER_OR_METRIC_CHANGED); + }}> + ${ + this.state!.batches[0] + .fields[metric.fieldIndices[0]] + .displayName} + `)} +
- { - this.horizontalMenu.show(); + this.horizontalMenu.open = !this.horizontalMenu.open; }}> + arrow_back ${horizontalString} - - ) => { - this.state!.plotMetricHorizontal = enabledMetrics[e.detail.index]; - dispatch(EventType.MATCHER_OR_METRIC_CHANGED); - }}> - ${fieldIndices.map((fieldIndex) => html` - - ${this.state!.batches[0].fields[fieldIndex].displayName} - `)} - + + + ${ + enabledMetrics.map( + (metric) => html` + { + this.state!.plotMetricHorizontal = metric; + dispatch(EventType.MATCHER_OR_METRIC_CHANGED); + }}> + ${ + this.state!.batches[0] + .fields[metric.fieldIndices[0]] + .displayName} + `)} +
`; } @@ -174,7 +191,8 @@ export class PlotOverlayUi extends LitElement { #horizontalButton { margin: 0; pointer-events: auto; - --mdc-theme-primary: black; + --md-sys-color-primary: white; + --md-sys-color-on-primary: black; position: relative; } #verticalButton span, diff --git a/src/sentence_ui.ts b/src/sentence_ui.ts index 0b67942..30ae8d5 100644 --- a/src/sentence_ui.ts +++ b/src/sentence_ui.ts @@ -294,7 +294,7 @@ export class SentenceUi extends LitElement { } p { margin: 10px 0; - color: var(--mdc-theme-text); + color: var(--md-sys-color-text); font-size: 20px; } batch-name-ui:hover { diff --git a/src/settings_ui.ts b/src/settings_ui.ts index 6f2f542..938c748 100644 --- a/src/settings_ui.ts +++ b/src/settings_ui.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-switch'; +import '@material/web/switch/switch'; import './filtered_images_ui'; import './filters_ui'; @@ -42,13 +42,13 @@ export class SettingsUi extends LitElement { Linear x axis - { this.state.horizontalLogScale = !this.state.horizontalLogScale; dispatch(EventType.MATCHER_OR_METRIC_CHANGED); dispatch(EventType.SETTINGS_CHANGED); }}> - + Logarithmic x axis @@ -57,13 +57,13 @@ export class SettingsUi extends LitElement { Linear y axis - { this.state.verticalLogScale = !this.state.verticalLogScale; dispatch(EventType.MATCHER_OR_METRIC_CHANGED); dispatch(EventType.SETTINGS_CHANGED); }}> - + Logarithmic y axis @@ -72,13 +72,13 @@ export class SettingsUi extends LitElement { Hide data points - { this.state.showEachPoint = !this.state.showEachPoint; dispatch(EventType.MATCHER_OR_METRIC_CHANGED); dispatch(EventType.SETTINGS_CHANGED); }}> - + Show data points @@ -88,13 +88,13 @@ export class SettingsUi extends LitElement { Match set - { this.state.matchRepeatedly = !this.state.matchRepeatedly; dispatch(EventType.MATCHER_OR_METRIC_CHANGED); dispatch(EventType.SETTINGS_CHANGED); }}> - + Match multiset @@ -103,13 +103,13 @@ export class SettingsUi extends LitElement { Absolute metrics - { this.state.showRelativeRatios = !this.state.showRelativeRatios; dispatch(EventType.MATCHER_OR_METRIC_CHANGED); dispatch(EventType.SETTINGS_CHANGED); }}> - + Relative ratios @@ -118,7 +118,7 @@ export class SettingsUi extends LitElement { Arithmetic mean - { @@ -126,7 +126,7 @@ export class SettingsUi extends LitElement { dispatch(EventType.MATCHER_OR_METRIC_CHANGED); dispatch(EventType.SETTINGS_CHANGED); }}> - + Geometric mean @@ -135,7 +135,7 @@ export class SettingsUi extends LitElement { Hide X error bars - - + Show X error bars @@ -156,7 +156,7 @@ export class SettingsUi extends LitElement { Hide Y error bars - - + Show Y error bars @@ -177,12 +177,12 @@ export class SettingsUi extends LitElement { Show some rows - { this.state.showAllRows = !this.state.showAllRows; dispatch(EventType.SETTINGS_CHANGED); }}> - + Show all rows @@ -202,5 +202,19 @@ export class SettingsUi extends LitElement { display: flex; gap: 20px; } + + md-switch { + --md-switch-selected-handle-color: var(--md-sys-color-primary); + --md-switch-selected-track-color: var(--md-sys-color-surface); + --md-switch-selected-focus-track-color: var(--md-sys-color-background); + --md-switch-selected-hover-track-color: var(--md-sys-color-background); + --md-switch-touch-target-size: 24px; + --md-switch-track-height: 14px; + --md-switch-track-width: 36px; + --md-switch-handle-height: 8px; + --md-switch-handle-width: 8px; + --md-switch-selected-handle-height: 10px; + --md-switch-selected-handle-width: 10px; + } `; } diff --git a/src/state_hash_test.ts b/src/state_hash_test.ts index 931fe39..70ee2f9 100644 --- a/src/state_hash_test.ts +++ b/src/state_hash_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {Batch, Field} from './entry'; import {FieldFilterRangeFloat, FieldFilterStringSet} from './filter'; import {State} from './state'; diff --git a/src/state_test.ts b/src/state_test.ts index b9cb1e2..cf4cc78 100644 --- a/src/state_test.ts +++ b/src/state_test.ts @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import 'jasmine'; - import {Batch, Field} from './entry'; import {dispatch, EventType} from './events'; import {State} from './state'; diff --git a/src/tooltip_ui.ts b/src/tooltip_ui.ts index 2b94f86..f539279 100644 --- a/src/tooltip_ui.ts +++ b/src/tooltip_ui.ts @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import '@material/mwc-icon'; +import '@material/web/icon/icon'; import {css, html, LitElement} from 'lit'; import {customElement, property} from 'lit/decorators.js'; @@ -27,7 +27,7 @@ export class TooltipUi extends LitElement { override render() { return html` - ${this.icon} + ${this.icon}

${this.text}

`; } @@ -36,8 +36,8 @@ export class TooltipUi extends LitElement { position: relative; /* For "position: absolute;" below to work. */ } - mwc-icon { - color: var(--mdc-theme-primary); + md-icon { + color: var(--md-sys-color-primary); font-size: 24px; vertical-align: middle; } @@ -51,8 +51,8 @@ export class TooltipUi extends LitElement { padding: 6px; border-radius: 6px; box-shadow: rgba(0, 0, 0, 0.3) 0px 0px 6px 0px; - background-color: var(--mdc-theme-background); - color: var(--mdc-theme-text); + background-color: var(--md-sys-color-background); + color: var(--md-sys-color-text); font-size: 12px; text-align: justify; @@ -60,7 +60,7 @@ export class TooltipUi extends LitElement { display: none; } - mwc-icon:hover~p, p:hover { + md-icon:hover~p, p:hover { display: block; } `; diff --git a/web-test-runner.config.mjs b/web-test-runner.config.mjs new file mode 100644 index 0000000..3e31775 --- /dev/null +++ b/web-test-runner.config.mjs @@ -0,0 +1,28 @@ +/** + * @license + * Copyright 2026 Google LLC + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import { esbuildPlugin } from '@web/dev-server-esbuild'; +import { jasmineTestRunnerConfig } from 'web-test-runner-jasmine'; + +export default { + ...jasmineTestRunnerConfig(), + nodeResolve: true, + files: ['src/**/*_test.ts'], + plugins: [ + esbuildPlugin({ ts: true, tsconfig: './tsconfig.json' }), + ], +};