From 55bdad727bf07f9b47a9cf85bb6bda04276b4733 Mon Sep 17 00:00:00 2001 From: Youen Toupin Date: Sun, 17 Apr 2022 17:34:37 +0200 Subject: [PATCH] added icons --- WebApp/src/assets.d.ts | 1 + WebApp/src/assets/bike.png | Bin 0 -> 12994 bytes WebApp/src/assets/icons/altitude.png | Bin 0 -> 767 bytes .../src/assets/icons/ascending-elevation.png | Bin 0 -> 1479 bytes WebApp/src/assets/icons/average.png | Bin 0 -> 1065 bytes .../src/assets/icons/distance-electricity.png | Bin 0 -> 1417 bytes WebApp/src/assets/icons/distance.png | Bin 0 -> 1086 bytes WebApp/src/assets/icons/electricity.png | Bin 0 -> 602 bytes WebApp/src/assets/icons/temperature.png | Bin 0 -> 385 bytes WebApp/src/assets/icons/time.png | Bin 0 -> 1305 bytes WebApp/src/components/widgets/gauge.tsx | 1 + .../src/components/widgets/numeric-value.css | 24 ++++++++++++++++++ .../src/components/widgets/numeric-value.tsx | 15 +++++++++-- WebApp/src/pages/dashboard/dashboard-page.tsx | 24 +++++++++++++----- WebApp/webpack.config.js | 4 +++ 15 files changed, 60 insertions(+), 9 deletions(-) create mode 100644 WebApp/src/assets.d.ts create mode 100644 WebApp/src/assets/bike.png create mode 100644 WebApp/src/assets/icons/altitude.png create mode 100644 WebApp/src/assets/icons/ascending-elevation.png create mode 100644 WebApp/src/assets/icons/average.png create mode 100644 WebApp/src/assets/icons/distance-electricity.png create mode 100644 WebApp/src/assets/icons/distance.png create mode 100644 WebApp/src/assets/icons/electricity.png create mode 100644 WebApp/src/assets/icons/temperature.png create mode 100644 WebApp/src/assets/icons/time.png diff --git a/WebApp/src/assets.d.ts b/WebApp/src/assets.d.ts new file mode 100644 index 0000000..4997750 --- /dev/null +++ b/WebApp/src/assets.d.ts @@ -0,0 +1 @@ +declare module "*.png"; diff --git a/WebApp/src/assets/bike.png b/WebApp/src/assets/bike.png new file mode 100644 index 0000000000000000000000000000000000000000..c84934fe35476f45cbae735a7a9c461dfc936019 GIT binary patch literal 12994 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 literal 0 HcmV?d00001 diff --git a/WebApp/src/assets/icons/altitude.png b/WebApp/src/assets/icons/altitude.png new file mode 100644 index 0000000000000000000000000000000000000000..ae1f9823795d4eed7d8e45e392ad03262460846b GIT binary patch literal 767 zcmV6et-N1!AW{0UClWEe7OL`vM38kylC>2n381c_R=zV^@+0Pyq_1s^p2j{=~r0 zjXeAXH$z0$S zddzqO#Cpt-*MsDMug8ola5Yd3P)!l4@f8~n913-)rwH9R2Zcc@uXz;eTu%{i0IH{m z#=ZK?fp1mIZ-DPdu(m;lfCd1e)Q47Lt%)4=ybJqW@uP#qAbK?1#g4CHA*=-*-t z*iq2if7bhb;Bo2)Ko|s~3*t0LIQ0V{4+7Z*G!HCH{RnVlKoe8%84z%&2S6MH{ryM1 xXF$fG9so211Oj#%I2h_XkOWuwU%+3megQM0*&|V%^B4dC002ovPDHLkV1j^NG*9BY zXY_pRHPN5kKR2_Y%7gbj^Kv*51kqpRbkBD?syyx~?v6=Y;w`G2?)hmJRnDmNe-2g7 z=*?G$DbMS_I854J|BuI%^YQ*~k16L<^~2ATnn&e{{+M2e@9Zsk?U&x(Qj|X6PNwg2 z##HjdudL%$;oaeRC(|bP!cBS=9q((ub>>VgXMD%fPHOAS0S@?Gx4kI+e*7}+IiL!! z4sSb~6&?LOqH3GOH{YH!2Jqgu=YTJ~K7Dfz@XD{@?>_lad7?L`Z!Q}0@$>VP#Jp>I z1$sNRye@rsU&rXS77btdzhc@=TlDcMvf+KpOFJm1i#N1%d{Q2pdtnFVdHfpNN;hrMtJ`zeFX!vGtgfwc zMz3!#e7`)gL4{5g4o1MIb6$IM{6TCDFCcG2i-Vu$CG52g?`!FnGdA!r(8h&-w{**y z`jBk{tw{Cjhl=qqm%;751pQHkg@KPVX+77+e?Gq9@Z(SA!z=uCSOGuo8OVp?HoPkR zJ%U!kKDpr~^{(;w%u|2G?7FlEj~7_#ub7n+x^=_L8MBdBg-=I(w7i5CGV(m}%H|22 zyElAzH}>xhUp^Udctuk0yVV#k6Yq1sc5nFde&pHf%{i^A84COJz0Zv1m$B!s_l4hk zE5_+pj`p_p-4(`$J6Q$IZ)2}ApEfYxU6E|4)Q8%?2x7ecc^T<0r^6U)@ z;OkEu`0Him7rynqH@O!(7$5!k{8}aGojfO>s=cyMd>n81OiPXMCF~vO z?_D$CZMmx#w`WDGjRR168QXxFAitHndKuf22K`!k6}`;%PVWS;P~5_efPN{xe%m(W z=WcIprL{A`vD zye~d9OydUnIp0L^?9?Bczxk#hjSuMmt-b5{FL_5#;|8^das^1^)AS3_t&l#An`rqJ zj!)BXANT2xlP$l)aYJ}U^l5yc_E7GMdAi3$c!BZ`j1SZv%3Utir*XsjeQLLdGSHgn zv(IqbegPIoxIGl!oYJpT(!s9%5*+Zq@a+jvLZ% z)3`lEZ_wTW|3d}m7esrwN0kwM9-qFS%Wl~LzY_iQ hzxiSPr=M5<`VMAz?CUobThjml002ovPDHLkV1j}w{lowO literal 0 HcmV?d00001 diff --git a/WebApp/src/assets/icons/average.png b/WebApp/src/assets/icons/average.png new file mode 100644 index 0000000000000000000000000000000000000000..7c32a5ec6089ba9e8f68b9c3000811525bb2c689 GIT binary patch literal 1065 zcmV+^1lIeBP) zE)T?H67%a3$dSpFN$Nh9&D)WfLc;StkiC%f*dN)M{ImC$LqE(t(C0?1UWJ5D2*A@# zNW33&y#cpJ=7P8Zxa@XGtY;+We#!hSNIZtXAPEOJx*>@e0yM1zkEfsx)fjE-6ON7c zV*SZR!+@6J86dKj+&N)Hb_eWF{^QZ9;Y=pX(JjMgT{{ zkocvNgIC)_Y)9_Yrjt9h&6VKv+^KEG?d-tOX++ZVk4jDmfjl}RdBUNQoZSzFERO?7 zEI2wOr?|cV$=Q8ZNY3s^Fa$cu$CyU)yqBqD5`f6GmjiC=Ne%&$L?O_~dyFaMJ;oHW zmjhiP2^Tt$V@Tfr82OvXQH8vYDx{p(DmisxhNPV2rm?YxKp{o4^rT#9BSUu_hM8|45>V(RkG>fejx;8y(3yavO^!!} z&IA>DJ$4>q=s-b&3LS|?_c1botB2!!0zu{26i2s*kFK}Y2{xEHHw zbhwahMAFV;NVal1Sn?!AFpII;qKlMhyy|0mA&6TK4fD0^A)4^hqf{luVEth~kMchdq8zR(U00001bW%=J06^y0W&i*H0b)x>L;#2d9Y_EG010qNS#tmYE+YT{ zE+YYWr9XB600jw2L_t(|+U=Y{lH@21MPZ@+EQb5&2rR_?uQJn>l{Ur_`T|#1cSLzp z6_NH!{3V1W>`dwBz>iWl0ZsO<&$|F>?VAB*_ZHeFAU^=8yBgL_4fg@OX@osM-UZMT zfL#sSu7+(_L-|$!?E-#jSic-FlezhTJUi#(L-q}AoKn?R`6HsD+WCA8pyYw2} z0PS|f0C^WcUjX2chy@*i1!w?(CICf433;Lds6IfZ8diTY$y7rQO=rXim-`+g5~ATH zCJxC=4gji_%s?9Up*Z^hHdiJsl_(KFRZSPdWT26|tE z0VbX8f@pZO&lL)!;p;S3d)OeLoawUM0l@AAb@?{l_rC%}ow*s)@N+{^aYz*K(qCzR z61vCqaowRoiSO`~)=!D^8bWt?NV?iLpQ8?M5tU!3cYCyD6r~`PZkMg|Yf zi+zkt&Z+_2l(7TIaY;pYbA}mo{KsG_Gfqx^j|ENVMiuJ~02CknxiT2kO6$#gkk6r1 zwFD8s4kG}p9@0g9I?v2l{nCxMzW#ta8HycV00B25jQP|7;1cRMU*5A@FTyGaV53n&YTzqig_56hJHaft#Uh=d341JV}&QVdWY2S^Y=j{~4~ z_cmbmeAPC9gMjonAVmS?VSr$ZK{D+K0@wu9Fd#n+;4mOP3;-8IHth%kk_Eu>qaw+2 zgq3%DXuX-Z(42PxyZ}g#0#>efpSg(u*51&f2LWrZc;y8^VI2Tl@%mM9!0?7{+=^sP z=m0=*&4PttQ_25WZY$OP1uhR_VINiTfx33xYy#3tZC{dhj)&~9;M zK0R=8VLhJ|Ee`->1Hh|4BX9y%f5@N*?4(C&{%SVV3M;Fx(7z`EZM?uvyT1qWbEwCE Xu+4h`@%$Mk00000NkvXXu0mjf{_j|^ literal 0 HcmV?d00001 diff --git a/WebApp/src/assets/icons/distance.png b/WebApp/src/assets/icons/distance.png new file mode 100644 index 0000000000000000000000000000000000000000..36797ec4ecd2e47c755a2caececc0e6f7c034524 GIT binary patch literal 1086 zcmV-E1i|}>P)U00001bW%=J06^y0W&i*H0b)x>L;#2d9Y_EG010qNS#tmYE+YT{ zE+YYWr9XB600X{BL_t(|+U=W7avUKHg<+w67SVll1Qu}rt0ewy8t7^Cp6p4g+$+0k z_!=aHo-|BKKTqJ(8Z|t(zfYmw|MD0-UfuweoB%!r`2e6((8f(6e~t$oAqSw6D*)Hf zjfd8ddqCw((4dG=7H}GmSn&)foDC5xN-&_2P6z-P=7jobO~a2vh5VS0l?wqV!=G+| z9jmF(Hn77X7@+$b0@NTtMz*4KmWKcu2}m%&egM1?8Gu9rVzx3JOy3^P{kjzg*z8i^ zR8ClaKaS!|0NRly!PHi8&95I*P!53W0|^E^L1g7%03g?c0f1K4Simz14q;24914Ic z&rkqVcxohoExu_0R=v~x0~(M>C-6O#4#2j7XaL$r%A^wxH_!mMou^TN=k*hF5P)c^ z1_2BQDCdN84UYpV0iZkE=^cPm-kcz~FZ7Vh6}BSfO?iDY5tI4dhPV-40ZIX^vwN9v|e>Vu%M&24pk_SsHwmPZ+A2T-XjeDRijDWl8JIOLox zjo_&(RxfeMdR+k2Q&{B1EPdtO{1In`s?$fDMYc=;XQN?`r`EhisE20-%y^4Usx2HaWkce(-i61g0s1k(1}4N?MNy+HvXScm=_sw9Cg#q#-` zD4?EwQruoFXPzHm7ZbXi_O+PaJe2GVsOj?mi@kFV*iz^Hi7*xH(l zaGQ#@>Zw@z!fmelHUPa$lP>@i7a(JR$`qc#fb<1`&lNF zKwAOK6TvG#nkN8PslgS&C9Mme{Q#WZP<;V7r}*MK2g_CcxodtV?+bjh89Z8d8WT#FtG#ROsuc>Lq2T>X69oDf{8V^{(?RWV6G(F;yZaK zAahreZIr)WK!SgoeYC<9y(sh%1VUV(6YB2V&vW(s0c`>N9fds;RR91007*qoM6N<$ Eg0R5DApigX literal 0 HcmV?d00001 diff --git a/WebApp/src/assets/icons/electricity.png b/WebApp/src/assets/icons/electricity.png new file mode 100644 index 0000000000000000000000000000000000000000..a22b1057f4a83d2f870eae7820d7b01a7865d337 GIT binary patch literal 602 zcmV-g0;TGGF1$ z$TIMZd9P(x0G|Nn3=j&yQdMXGlMI%?HTb(;hPgo{fnbrLwFJQd>;NJ(0^kR*K_dWx zU}*3a-ISa0IUuT!Z5gg@Q|PHj=54Ou-QnHIkqah6s&xp#hx1dv6bdB{&=D zy**xrvyn!@C0Gc~-zx=I;JcARjT8!wkg1W|ir3(`l?lqVk=v@5MmjLbUKQI0CEUeH-d)$b7StIGw$lEsJsgaq2KMRpyqld4L!9gRJ5-WWy zm2dAn{`MvT0&TZ}HqSs?;W7r=@ha_jMTSgUVUi&V#|cZp5gaw*s1ZlO5%klYrz6=s zgpFXO(+`4t*e)_;I)x{KsKE5MD~?gXQX`gvBRFcrjc%M#x>$O;4SE_G%rpQPLDjDF z0fG-9(EuRIut`G{L&42px>5-WL8f_3e)UYtQ6r8T@zlrwDh&+PN#Xz!%^oAcCc{cV oGvca(r{S@sakJUXXZ`#70`_9wN~g%ubN~PV07*qoM6N<$f*SMk&;S4c literal 0 HcmV?d00001 diff --git a/WebApp/src/assets/icons/temperature.png b/WebApp/src/assets/icons/temperature.png new file mode 100644 index 0000000000000000000000000000000000000000..1496d125f61ac7d85d39dc83f7c72be76b4b3f55 GIT binary patch literal 385 zcmeAS@N?(olHy`uVBq!ia0vp^;Xr(Wkr_yOY|i%wQfvV}A+A6g2$rVrJP)K8OM?7@ z862M7NCR<_yxm;OkH}&M20djEW~^9hUj|gb?&;zf;&J@xHAkUl1s(RhvigQJk&V~Q)ldxbYJA6lI`L@U-=RX zhgnGUa&|7|6y7VnFT-W*XJq}b_;{4(=&JZzA;(#Ivag-wV$Z8RmKoi@DY3fU{?CTu z-&@xi^lkkd|9oNF!(H-aVMWX9&izvRZFF*JqC-)pkeQ`76GB^V z1pm0y+Hf!;WqY~)5W>hgjI)~kK4kubUW`hccBYcDpTG0mwnT*GQM}U XruU+p!|VoNI5Bv-`njxgN@xNA@c54M literal 0 HcmV?d00001 diff --git a/WebApp/src/assets/icons/time.png b/WebApp/src/assets/icons/time.png new file mode 100644 index 0000000000000000000000000000000000000000..6d58f5b308308f8da8832ba1c55b140512f6cf5a GIT binary patch literal 1305 zcmV+!1?KvRP)Ea*{D48N>Th0l->L+mq7U)^-F2H(zvOzVBvo)4v z(jGlMg{7uCWf%)$Aw;%}xcj!=xiOYR^u5Y?_QJxLcfvzg+_Qp35zbYxov~e*!i;fc z41xLtUo1#dx-r*q-q8KG$XpD~OfU*FX1i{8ZKOr)2itZ3)-O12sJkvQ12i|(<$dAz zZY-iMN5kL0GDBSsmfLMuL|yi)NOm^J3NBPD-GP>(6Dzn7aePPwG|Ykv0oVyI#5Y)Q zp~YSGpUOnt27zU>wLq9)c)(6D20YSrhGGk5z^trm1^<3S200!@hQ1?9HQYPT!i8q` ztdTkR!qq2Do~M20=4WAJWlQxR zu{dG&nT5*CBMYrUxiRz1;)l$>W`1OQHUE>CdSdI89SiQUpTb&f=1k^%PT#=J8B?Fd z+z+wi*Dz7({wTZo_x&t9vDs(H2~m;%f0%t_xAiBwir>oWHfJXDLyg!^u&Ac3eq&!b zcvFh+$)fH1S1>KQ{jIaTokzris%HS4D^7NOICXFyZIUH+RxMIp*!VeSq>n2y1x2NZ zjXBx5X=GmLex_b$c#;uI3W}(5hrYGZ|FrY{Dn{d&W>{0J#g7bY4L?hlkJvh!cvcfV zvDqd;7hf?m6CT!9^NsQk)`Mtnty`=4lGR9SwANA+%Ia1_{h5avnAfxh-&$&ZV)PAl zIk4qcLlY}Cf2*&tE{8q>cy?4bDUtzQ9q*IRGVSW>;Wz`>zE zs>#{=73_0}Ezqn5)*oR%R{!Yzk*>~bV(P>z)IbF4|7yaU)>2@v_D<}b^=jDTy%GDu zdOX%9x_rC9+C-OoBgxbf#+F;B?-}DgtYv+%{7s5aXDd?(cppwmgO}=4V?x$x%0*>b zC<~iVs;rQToRCZ9uSb1?WHryMW^dp!hq6-A(p-;mQeRt`QnlO#J*Gz4yGrQ#g+c#a z+k>NkXh~Kwqel3oO9`QQraL}pU9vEn$kY$In^e7T0^w-PZR4BkgQGFWqXa*0!}=jA zw-=r-{vWVE>-w`2;)Ukl2HoeC&cnYSR2Nay;= literal 0 HcmV?d00001 diff --git a/WebApp/src/components/widgets/gauge.tsx b/WebApp/src/components/widgets/gauge.tsx index b89b2e2..ea2082f 100644 --- a/WebApp/src/components/widgets/gauge.tsx +++ b/WebApp/src/components/widgets/gauge.tsx @@ -27,6 +27,7 @@ export class Gauge extends NumericValue { super.onbeforeremove(vnode); } + protected mainClassName() { return 'gauge'; } protected graphicalRepresentation(vnode: m.Vnode<{}, {}>): m.Children { return ; diff --git a/WebApp/src/components/widgets/numeric-value.css b/WebApp/src/components/widgets/numeric-value.css index 7a0809f..1bb0933 100644 --- a/WebApp/src/components/widgets/numeric-value.css +++ b/WebApp/src/components/widgets/numeric-value.css @@ -11,3 +11,27 @@ div.widget span.decimal-value { div.widget span.unit { font-size: 1.6rem; } + +div.widget div.value-icon { + display: inline-block; + height: 2.3rem; + width: 4rem; + text-align: center; + margin-right: 0.2rem; +} + +div.widget div.value-icon img { + display: inline-block; + height: 100%; + position: relative; + top: 0.2rem; +} + +div.numeric-value { + padding-left: 0.5rem; +} + +div.numeric-value span.unit { + font-size: 1.1rem; + margin-left: 0.2rem; +} diff --git a/WebApp/src/components/widgets/numeric-value.tsx b/WebApp/src/components/widgets/numeric-value.tsx index cd5e0df..0c81e24 100644 --- a/WebApp/src/components/widgets/numeric-value.tsx +++ b/WebApp/src/components/widgets/numeric-value.tsx @@ -11,6 +11,8 @@ export class NumericValue extends Widget { protected unit: string; protected decimals: number; + protected icon?: string; + private integralValueElement: HTMLElement; private decimalValueElement: HTMLElement; @@ -23,16 +25,25 @@ export class NumericValue extends Widget { this.unit = vnode.attrs.unit || ''; this.decimals = vnode.attrs.decimals || 0; + this.icon = vnode.attrs.icon || null; + this.value.onChange(() => this.onValueChange_()); } view(vnode: m.Vnode<{}, {}>): m.Children { - return

-

{this.unit}

+ return
+

+ {this.icon ?

: null} + + + {this.unit} +

{this.graphicalRepresentation(vnode)}
; } + protected mainClassName() { return 'numeric-value'; } + protected graphicalRepresentation(vnode: m.Vnode<{}, {}>): m.Children { return []; } diff --git a/WebApp/src/pages/dashboard/dashboard-page.tsx b/WebApp/src/pages/dashboard/dashboard-page.tsx index 35fc291..b4dc56a 100644 --- a/WebApp/src/pages/dashboard/dashboard-page.tsx +++ b/WebApp/src/pages/dashboard/dashboard-page.tsx @@ -9,6 +9,15 @@ import { GaugeLinear } from 'components/widgets/gauge-linear'; import { GaugeCircular } from 'components/widgets/gauge-circular'; import { GaugeBattery } from 'components/widgets/gauge-battery'; +import AltitudeIcon from 'assets/icons/altitude.png'; +import AscendingElevationIcon from 'assets/icons/ascending-elevation.png'; +import AverageIcon from 'assets/icons/average.png'; +import DistanceIcon from 'assets/icons/distance.png'; +import ElectricityIcon from 'assets/icons/electricity.png'; +import DistanceElectricityIcon from 'assets/icons/distance-electricity.png'; +import TemperatureIcon from 'assets/icons/temperature.png'; +import TimeIcon from 'assets/icons/time.png'; + require('./dashboard-page.css'); export class DashboardPage extends Page { @@ -67,6 +76,7 @@ export class DashboardPage extends Page { } view() { + console.log(DistanceIcon); return this.status ?
@@ -80,20 +90,20 @@ export class DashboardPage extends Page {
- +
- - + +
- - + +
- - + +
:

Chargement...

; diff --git a/WebApp/webpack.config.js b/WebApp/webpack.config.js index edf69b3..c3a62f9 100644 --- a/WebApp/webpack.config.js +++ b/WebApp/webpack.config.js @@ -20,6 +20,10 @@ module.exports = { test: /\.css$/i, use: [MiniCssExtractPlugin.loader, "css-loader"], }, + { + test: /\.(png|jpg|jpeg|gif)$/i, + type: "asset/resource", + }, ], }, resolve: {