From 707af39dc08b18937f21286066145183dbcbd62e Mon Sep 17 00:00:00 2001 From: Malick-Tammal Date: Thu, 28 Nov 2024 16:16:37 +0100 Subject: [PATCH] | 1.1.1 | 2024-5-17 | Updating dependencies and fixing issue in battery_util package + updating UI --- CHANGELOG.md | 1 + README.md | 2 +- asset/icons/Battery_icon.png | Bin 0 -> 8879 bytes asset/icons/Details_icon.png | Bin 0 -> 12241 bytes asset/icons/Health_icon.png | Bin 0 -> 14009 bytes lib/battery.js | 2 +- main.js | 23 ++++ package-lock.json | 173 +++++++++++++++++++++++++++--- package.json | 8 +- preload.js | 4 + src/css/main.css | 186 +++++++++++++++++++++----------- src/css/root.css | 1 + src/index.html | 201 ++++++++++++++++++++--------------- src/js/app.js | 52 ++++----- 14 files changed, 454 insertions(+), 199 deletions(-) create mode 100644 asset/icons/Battery_icon.png create mode 100644 asset/icons/Details_icon.png create mode 100644 asset/icons/Health_icon.png diff --git a/CHANGELOG.md b/CHANGELOG.md index ef99a7a..3b38fce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,5 +16,6 @@ | Version | Date | Comment | | ------- | --------- | --------------------- | +| 1.1.1 | 2024-5-17 | Updating dependencies and fixing issue in battery_util package + updating UI | | 1.0.1 | 2024-5-17 | Updating dependencies | | 1.0.0 | 2024-4-24 | Initial release | diff --git a/README.md b/README.md index 2f3ef9e..c81e756 100644 --- a/README.md +++ b/README.md @@ -65,7 +65,7 @@ git clone https://github.com/Malick-Tammal/ENERGIZE.git npm install ``` -## Usage +## Starting ```sh npm start diff --git a/asset/icons/Battery_icon.png b/asset/icons/Battery_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d8334bb93c780c4dd71fb00c8290ea631cc6bf9f GIT binary patch literal 8879 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 literal 0 HcmV?d00001 diff --git a/asset/icons/Details_icon.png b/asset/icons/Details_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c2faacfea8577a79b7900cb77a6f44dcf9e22066 GIT binary patch literal 12241 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

O96OT ztK9e)dL4#Jgh=<$z(z)m|3$g*R?FBAcBdA5w_i86ZB=j_Ay3jlI8Lz=JOqZtB;y6(*V7iUp2R}aF{Jwe`Am1Q$1pu>x z)%*;^UchhB2mC^5FIuzC>Dq19eZW;@c`~oQ#em=7;8e+o7p)QJttNRTbNjZ>Lja{x z)QiF;PR4Zo?zHaj^KsKcIHm@jxePX>;sHJBT7S(yRL=%k)aF@|e?rwZkbn?JmY4+a zTD7!c&fP|igjE<|qH6YP!%$VAgX+Wma~UfC)KFX!n-_hC*FIl_KiNw@hM$vFq3J%yVlo*xl>&(eofBg78~3_Emsa=2j*Wm@>RK1!g-bPd<<0#R5=}sFE#%Fd zio#ojbdd2uv!Fe~x0dkjD8es3YWTqM2LSDzRbyB1M1btW-1yHtdGd;Qia8GrpnJd* z7-S~8EQ`Nb5`WO=Z(}NOX8<$xh{p#D#V^L3X+hR@fUTamzwZk42t3{YqK^S8f4p;# zLP3zd-5YkRn@+3XySey&Fqza<`E3%F`OGam1KXjOf9DPE`buUGayGQ$o8_^fkRO)9 zr6YLj6nJ2~9jP#N>&%?wHU(h%-`+5pf*$QJVT6J=Ve3+sG)M8W|eNsCF3AC7Io#10sNQ9M0-hhq1wrp$GSeVtr54} z*eY?70pZn#LnAMz-kE|Qv0+#qTY3`u?xHoi;}h}QAR23$8k~LzS*%KuPWpy|EKff< zyz*2IVW}RHu*!)FAabbceTuu=|9uRHd!;NVbK`5dnW6PFQ1eoWSJxEI9`Kwfjq>7u z#B{bs)?V%Vg&=xEH?wq@V$*i}uLDJRnBLA?1Jjf1{XaD9`hVdH$Gx{Qy`PY-YKGDO zbzN)9%~FPL62}%K167iEVZAVdY1Ho~cp50$alN_Ei8}RqZ9I7#N1uy58vepN1B&fICo{G1#K1z?tE@cx828xoYkRs)!8H) zDt=;XX6kV;lml^Zaj!tq5Ktn1<6dy_q;ZBT&Vu@XDVi3@iS8(oe|hjrfA-p%OcFeU z(}N^5c7|CGORuLfG}kPAgbZeXX_E#%oIMs|xR+2cc#6{P>5bc#a^$ zz0YU2F)Jw<&K6zi0bE0(nLjPkjr$OhGnx1<|2k1W?l@SrFdek*{2~yc8?bp}ppt&m=JrT_76DFp&KqZDEuWP?>2oV9MG;pOKkWl=Dme<=d*SJ!CM|tmMTc{yrLhc98S$RVg#;Wt-$`Wt~;No z6M&HUhydNEyXzL;C$%kdjUrF#8<_Q z359{Yo^bxk_^Ya=&#rVsl9bbG?cJ&2I0Rv9?2|~WeoCu)I& z#=X6jR&AoEbUtL*DF;KR-WsWS({%~URK~chkmp1y;Ik>tLY0Pb_g8$RbD2|5WpiOp z!G#BLvG6uXZuT(8Nw>u!%|&rN9+lrCaFx+DhzOp%(%a2;;OT>`1*^U^+8GNEW_vz zc_|!{920!eh$B!3%WQ7->i4WJkf%sJBkgDq6Icf}a2a_*{%yjo?H?rAT4fzMFs62GEMdS0ap>&uCVDm=xPpA5ZxISFCW*j znhuMw?C8uk0ARFKKdPW=@u;j( zY@;o!kL+X5#w?!l$Ywpj%WK_4ecKVEB#~y;yOD~w894yrsk6Y%Se;1t60oaId*_4z zQfw~wMEB26)O*G`iQI0txS?ev?Rbw9=qyh@i7Z>^ zai%z5+cfxkl3$KwYU0_;Rmy;)xO2OF`|2fCKtJ&HNB`E`6MluKQmV$R6A{`MOna&= z(EHSP^KwBU|0wLFINE-upk<&Ek77GU#Id6UL5`aXE^5z8sywD@jl(Vn|2yx=7FB`~vAu=KnI z?t7753x2=JVz&b<#ZP)EraG?k=@2xTuq+si4I2zVG)m`MlAmRdgiJrgJ?liD`Jr()t#;4B9=XBg}kK-d+0wjMV>W2FTzPZuZ*5qglDP!eb##?yNMCjN!6R|?!}4j z=g!MHOKCSGB@5xD%~oxV$*Qwh>-a@8Z!h{LG3YUWr%!ATw#jMk+xdHis$kcpkKzo_ zBa@uBQtA55h>;N4VzNg1v;A{Ay#IcjXOsU<#DB^}lp<#3I!3)Pbq(PMz&rW`YRcM5 J6$;jm{|_8rzkUD! literal 0 HcmV?d00001 diff --git a/asset/icons/Health_icon.png b/asset/icons/Health_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..87d1a3416302ebd6da08c0f739c735a76badaa66 GIT binary patch literal 14009 zcmeHuc{J4F_djnY422BJzVAZW*CAV3vQ*aWLWnG7XUJOivSgXDm69b9vJFyXR|#20 zCL{Zro$q^Q>ia$4^ZWnzJLh*kr_(rR-p~6!_ul7qm*?I)@kWL^r=cuR5)zWrS9CQ^ zNJvPx@c$`Kf#39uOecVUPC4l5Xp)@Z|Dl>+q?3?vkzCPKziv*oJVsT|=A1ph{wh7? zp_r3BRRVle{T-c?F}yjVnyS9wBI-=p#h}T$ve|l?P3wy9o@~raIu_U2&_Z|E)Yl5h zA!BkDKvyB1Bq_jce`R>*q`TX3m``x>MOj%( z{^#TWx(-Abx|4A`7)=M zJG8=s4CXTe*c!1OS^kdMmo>lhdX%3fM?W9 zxY*TH7?blRH?*s{tGU~=i@vxZ0)UbuN)8`TDC9In9*RSbr+UL{>AKwCB*a{Z1XL4B zVt+G^IAh9r6c4Ajb-pyy~RXK@K_E^hop*TES`k6`dqO!a_=f z;BTzS2C$)#aG+tyOAjssSheVFbKE#IS`wABXa?M9@C3bpN5A)QSlVt|qY31586Ku8 zlunZZY~v_jAdLb-8Z-n%79`)!$K|%gA1&wsS&eol5ZE~@ z7Zw2BljVA-aeRMVilB{RKDvtGf!po2g;fIuG9sXg&B(8DBl`zWu5xI+r{y{a6-udr zKN=h0ImvDh<1II?j)*RH@`mn#r+1tkBB+o?*i4a1`IAF`Z}pNB^x&vQ`wGZW8cGjc47)z#;3kgB4fvzxdNh815Kbg+34PoqGFs zd2P(Krd`*B{Z-dQ4)Rk$0baAySGfneX-V%1D~N9*0gw*74#-)L(NoB5LG}iE(3rxT z?Az~Q4CczG1!;NkBEu0=klRCA^_JneBl9Nc$SHpF0ENyFo$+jJ20>sUqg*uG`yk#r zj8}ood%CrZU}p1~64>TtHwi)UIs5^k;BA1_(DbidciQLRiYn9tL?`K=F|nQte1d5) z1TMnK1%{RfCSf9Y~0>I0>WIB_aXuZNtll}kN@tA1ELWCUQF z>(aQiN?szH8<6(Ap>R~Ggh=?jpLPw3_Kg{Ab9;AN3rj;dURbFi#xh1VqEHn%Vjdj< z31t+T(SdC;f3eZHt3y=jH|oPw;iYTF;c+9b3{|K)#KRY`&CEe?!DZrtb;^mh>l(%< zm&)Hnf)pT+*HRo*pZ=*9>v_jd1x{9Q?7gIW?8P(m1x;k#&^ZtsVZ-{s@0M zM$8CjF>ICcfXk5V1s01z;kh4gznG=X;@u$#W>w%?^%E7Lg}NbG5f(G>DZ|)|T8dRV z@nDb0SM07dntny1JoTj)?qBLu4nZh9nyk%=vcrQ|hH*5;KhF?+^Ty!V7(;i*U!qfh z*Ds!x(IAO?zrOtvRV!b;Bzs@*CiC6e#02tt~foaaMA{ z9;urYMH}8pvG7P{_#a2GNG81dGZYuuf8m(5LB$QfB~)6^jydC?(rLNqPu;}c?RON7 z0T6{qyqh3}JQJ*X!oS*GzT@ud&RTn69=7RScBFmZ%bloU*9!EqSg4}b(fM&p?MbhO z@U&ZR|4MS2c{F1?{PAnguYaISCiPFFk-u|jlWm{?^sfGP!^R~A;#E5ng z0faN0>pLls9sDYB$6~NS@r2^t!nf=b0xK|c3k=Df4>>oFjaBl$tz;;%%H)?f%;_ixlVk#2POt2Nj;6RyL+Kc<&kc;48K%;5#;t7?t1e)M-w^K|r= zCOgrJ;S>Fwkgva?N9jv3oowVpAn+ojnij%SYvY>ElwlS^7)GRG*|dnbh5CtrZoCd7 za@1xxO}DtX;1hjpAEA>E$8~W`w;6?e^16w^4DU1J47h$jOIs3uaJSB@JJnk-dx<5h z5g(R?=#tSFpP#+kIIWXoT^te}Ml-HJ#FLQGLwITYC#E4|#!x;Bx&}o~l10^vhka2W ziRm7S4iWrTjN0tC_;@i7>|?Qjvi#VIy8Azs3thLf%y2$P>DGD$IV$hIqGV6-y4T6m zUP}dvyzjwvFaI%C&etPGAdtrdrd?6?7Wsiq{+e#h1he^rqW`8f{|LRm^aS-dOSZA9~MsOqZfUl2g@Ao(+O>dRyz1zFQ_ zQf76F9w4Iq)=ADE)6_rtBjpqL_@}zJO^$4RYutS?w_@%!!MhD!`5&(%kPt?bO6b!Kf@+0IjE8m|b;Ua|%-&-P6%JGgganeU=($qU zPUsB%?&-pWNiK_alMa{KV4{`|%*v43E|+x6QL(h6EqUU7X2K~o=%>BM2Utk1(cEwb z2khAp&3m;yfelHYTh;wi$(^@!kK>wPJ1rsi3Rk(wc9_>A<JZl9V^@70KIqLnLlwA4t%$pn^ zSz+1bS(Cxw3)fHnG{!X`wZq6Z8{LY|^j?+j-!M zy&9tRn^zG995I^f?jQwT+-u*p&c`Kh%J19d`*s;wzq6~hY(L)q{`)()`YtAAL6)gPX3#S>a>)so`% z?s2=IVgPz56Q+QOZq9)#dk*845aiIZ#UOJxS$Eb?oc>%<*0iBj8Tycm$?sGHz1x-! zMm;HyFC<-Po~=gWHu6}51zIe&W~+b9XLu%gXhe3miKG3eA-}E0&GS1_yNzotaqr$C zc3@1*P01*kecmeWPeUC?zu(u}P$VqAs#ID2`h9BI8gUF&HrP4oqMGq^Du1M~*lRv3 zHqPF)nj&7kMCq9S5v6o7^O37N`|EY%4RNsz`HO7s(%Nl+64QjO?R&ivlpta(lfC-O zS1=hVG4p9x5#5gVyA(dcdOX4k?QLsX<*t5BIaTR=_#pjShKwuCY}M2nWZ|1dhKepr zCzS7=arRa9Yrxyl*-ukK!FW?NPk(-7;T|6BR%P16u>A1hv zCP51Bemlmp4bK~J?ORF@{@A}7xbwW^@lP)3mcW|4SGbDcU|`Kh7IJTBIBqgCvyZPa zaWk-^WsAOIFwm8TKf+XAV7kjapDS^OTEBFnuzl+}m_~EmMKFC)%3#2G)@a89 z0V>)p@tLjZO>$P7t-%4^#!WbJr(K}aw1|PU>F$jGr__&Ykmt^+C#>fQ1Y%C~Av{dG zEP}n9I?Ao3FJdOg4$F69^*6jX;2X}^je#R;4qJocv_s*_(4>)bF(mhyF^B$B`!>V# zHgJ#G(z+){RhvbH(#RwK*D{V)AaO_#kvzC+171Cb^59#w zLeW+$i~cSvWsE`wnDg3-K~?A02aUMyk|urg?u}8qr_8*gUzB@mtF|kWUmz~?QOK9-t3>tJ~q zQA{phndIDFm-gl2iNA=q5^`r*G4vi|rQQrwg)QL5sQh!_GF3<XDF5lbASAS{KFD#M1{u#r}N}@$M zb$K%hZj{v=+g~hIgLY6oFg~Fg72PV38=Mvyyx@K3fHtH8{u7wK8glGxFfF=eQ?mDG zzP!(dJ~Z4I@cr#-+ESvX=PqPKP1^rv#;arJZPsaBM@mwV&h$5qa}F!VSHTR5Nj`_R zrZdEu0m**>Epyu9)HK-T1I9c}xo26n9Y z4vGCuac@zxi%Qp3s6LsYY=K<&Rn%(v6-OB$m#nZN+oquM_Uz#sz!SjLs_eW3{26xb zCz-z1Y?}|}yqm3fP!GI~InbVd0p|f)b)E7JePsaSX;n(!IoXuD39^S4C1~YS$j{5~ zoNHo$S{TM!DKh%#X|6s?86Ad=&cAO98p@b6mke`d*fq$T7ikRy5#jv>OL`{HhV zB9bZdO?mGCXQ*|?-ZjK+O7M?_1$e)&w!(eTgVk4mc*AxTAp%hzDf_y5Z>jWzgKp&G zw7+G63}dOT9o1|_$8uLEeq$y~h*AB z58M$!zd45KHRed41xq1<^=^g@*AZ4%+56gHV2GYuc!8mb;k8reOnSEJmWIA%VENkp z1_^0$Ae{*fbx=a%Ty766psKfxO%Fjyetfo#Ew^2gTx`ArzA2t~b`3jHx_ti)xN6& zh0c<$Ue&6mpET@MVYhYEi=-CwUDWotq0-`dM=sR9Q^;pQ0kHUoO3?lWO zeusshC|EGvFF7Q;CXURxbL3Qg*-907XF zCqEEMXwa{g5nq=1n0C*(z1E1>gnyO!BD!_MbaY`?b8G`Q#)r;>iy3gs%4cCpMu(h-PNxJ zY~}{J0l@@mjLOmZ-_ESgH&bGpn;IVPyxTSVD4$e-rUM@B;u*>uWPyG)i7;JuWqKDu zBc3>P0j^xI zpPAOqNmw;u*2U%_QRBBfA%Du2KU-%31JnVJ)mBrMPK-}fxJox3a*xcT3!Gj26Am*R7J#g85h4fMXI`E{9V6t@Ou^F*b*U&kWvmO1Ibe$yv3|~7pu}= zw?&?bEP!VMI`{X2Y%Ace0gj$GE4`9)jN8jmRUCJz0((^8SyEJD_7_=w4?Hh`^wWS` zE87nrRt0s^v?+j)xuS|}GWOSPnL;R#{TcFr!_R6P*+4f{Zr5XQg#mft@jLp*draVg zMo2m`)FY`p`{n+WfFA4$mA4Ih+e3V9m%n(ZfCRZy>OKdLU0id93RP931(ZWiy9uQf zqSf`s!DG*BkFbthOhGJ?S^VCEl--_6KQ z+`?}`>1{Zf6hC!UJN(!s$rys%F70d5NM7*1cQKyo;lRL&zDK{I8Dd9+&fnf4?4u-k z;q>(ugP>^D$BEnGB~;4Yx~!Xhp?Ix+1#+)_caGdicf3-hN2-c5{@#nY@O`$2(a6pj zL8Yvc0Y+DKF19kJP1yZA=X@XU|Ijw4ofc}=pryOr3(#I_=-W`X)pr-7Dp-r~C&_}~F6Pval91gH0(?2=KJLqc@Rgn08v^0`7+7^O0pYvAW*q*5 zaxLVoNA$>bE>c8n*6huYN8t%0MqE(R{sM-qu1V~E@lX^Aa=Fy~x!JsmM}^l7lmVAD zX>;YWi|P&39R#f;=_3V7|K!qEPx6qKTS3tv@UD|HNe+qc3aBARj8G<|{YX|xL}M3K z@lX*7a*;^rZk3lA%D|3iKn*OZe&C`@(s~p~qh#F9hR4OofE)-;vWMAe=(7Ti)YEfd zbrV*q8R3gdq6tv}>qSsH%q4bwNNtWVct;J&rM+<|3d;2quyytZ*)gD^4l=zz?w=uE zrDmpEDH?3_$&`!Id#O49zU{DU3LKvlsCwH4;ZZCMooFk5Fef{C2}DK-rFTDD2V5@Q zDoq;!gk<1R45|250mGlCXTZJ$xJfpE?5pktvG;{%!Hd=Y((XF~h)o#-GU5j?IY;Fn zolr(hh(aD|g#d{4HXtMkq+?US+%$9l1w02Wl#l!zFT21%>MMPg8FP*rxB0~!Eaf~D z(3U58R)6>VYjBI;OQY-HUTP4-;?2n`MFqf+t;|~a7ps-iD)R2{mb6~GDAp~_fld-8 zf)4a?S8U2>(_;xei`ir)sO1`~R~@v5>LJ6jMQ(sj&C$dQD0o8&(9hEnoH9KSa|Lu}_Eg??bJ47oymfqu zXUTVa!KKZ=Y}(Z^bRbtAotqNi9le<{BwEf2tjgyz$ANZ{#WSrzK=UMd`@N%6E$g=C zbrY`imGR{G(|k47PAkf*pPd#=XM%$6O1DPl4`rcAYetnlQ~c1eLy}%e4e!3 zBNAOC=5x)E#TVrKSOBfCR-(MC(s0J@x)9ps5*X>kcc8RqVsC;*0v!ndOclZd+V;mc zl2kF-SjFN3bPCu;;SM}30U7h?iF5Jc*%=X`Ge~N4#IVu40}pgW$WGmsH&wz2<%jrw z>8D%qkP&G@V0~>cQ%^X%o6uk?*tXymuq}rF20q<0Iq~~lq-ZAwAnkeZl|goDEPHEp zA+wK(`wi)u4iTeTxcr~wzRknl-ta_vOzwlTkB$V~GzHKuQVY+{Z)4kSe7s}REdyLd z1~m~b=3Dl;x)+|y+_`|>Tj9#sW$=OF*Wx4zQgxj<_o4{20@wVL#|%fLHQI@g(OEK! ze6XnK7y#h?k={?P9Vlp-2F&K$O#vZ-D4I28-s826J7*weagkL5djUOpR zkOc2t%($n}zyWF_9n^-P>hx<+8wI7d8r)T-nTEDY5lb_7w{}H+E`lrGf-77!lpieGHKBadt<@!@7bC%Ao@{i-Qx82)UE+aI+JUQBDJR3YyeWwqPgkhBh zU?0#f`HWML8viHoT%y6o7`0&SWyn?Lb3Jit1$IptBXLF%%?ep=eSDw5eoiQT6>2B? zn<1mnEiPDst&zN;P^c3Hn@NO9AhQIe*_`_q7U-4%m^jK=D%}J*rGFg20>Qq`J}IQL zlQ6XBd68!CY0j!l!oeCvqWD0_8Uy63%@&f(!VU&b$IonBn|-CM@4nS8c}*M&FjE9NiM8UIBKQt_#p@Pm@JLIWzD%Axuc0 z3x+J(3&uD`Z;zsrhCzn?Pe#>L%g!Yb( zx8C|q%OZn_&A~H=^C3P~!>*+y$Ygx(aCxWGSrngr{aBZthzutK`(`AahkeR<2KbKG zPw*b~sZp+9A5jevkizIg&FfEda%|Q#AUd2jl*!wl?rDO4ycAN{5=w{Ng%c7!=o3+I z&JOlI@sHllpF3_taCxET>k8QCpgWo--&Mwj2h;ryw<*whFJ-8QNPuW?H$H6tV_z+W zi?6!5;W%omaf*!PGD4b=`%&(B*J`+npy1AcnbgJ`>%7C%ckkL7ZYw@gy3|vh2U-I& z<=T1h`YJn@vqOFVBPZC(d;tWnwX+HZyhw3hufIt@qM6@bcnrr&GYrFr5UyWQbNGCc zG43)(8@w##l6=(}RF_amwgbD0D`!%c*jt zW1{<7^*hn7Dgltm8VEiSaormvGU*3AkSa>AztiwgHXD<>!6I-V?n4ct%8@i_n~>13 zdzDCBhl8oKcwm?mWW&Qpg+qtE_g?6RvOu5|zA;vs3Hk?{gWq>xLRMVXZ<_Mdy^75_ zuCU&ctjtwTh@aHuP{-eRxI)eq*_`9l^lH#)zHDfScuHRJYb>~4CXmtdSKFTBHG%ch zKBw>wi{z6(;f9v~?z@~Q3iPKH$|vm6(i1VZ$WKqnXJdaXx?I|2EXLc$F+jF$TPO;$ zmj-DMVErcI(1`P?AJ&RE`7)_bNxg9kht`peKpY# zTwLD#QV%u^%wVR;upx{#A3l40{TKL{99B~!&=1(`2>hX^vfKE#D!AJLMnDLKDAtIplnSEZx z5FSBcp!rLD9I_!&ExnG8v=MHNA~uhV9)q|!rxR?9?~wgx!~dxCKcK-I+y9?t!4)0Z zQe(nRL1>2?arI<;NJ`OA4;Q$viF-kiIv6qUZVZJSjg4~(Trk3W1g`s_3nEo=QkNhZ zxZBobx`RosNP_0Mx;OzUNmBW}u-q=joD& zUxU@RaQ2@Mj1NVkBURO)!h(da2c3wUPKs^`gg>-y1hr2WOXzq+avaqa$|uRV5ZCDt z*M;8Ylx zTM14IGGw(e{2e2JGXmnL*fVipQ__`pU(}BTsp+NqulXO1=KWe&`X~?{--3$0lIBYs zSb`%&$kR&I!KNH**{J%b>jck9g5bMjBmz0Q4JQl>;YaCo3s04p40^qCpkOy8xNK7L zG@*F~hD24%@)1pey>r@%RhYA+ZJ@*9hE7Uc{n9{m1AIr=;C#s|0%vc=n`!GR{_=d zW~{{d+oK(|mgSP)1N|hU|4x0(*P(f7s_gS|;^XtY*`izOgSJ`{3*-dtF7SA-+bv&l zQ0azksrQ|5cz6=2&)30CWCSNZuE^=yANl?Wy{s6VqJL+q_dDT8boK0nznrf7(SZyK zJQvRAAKhP`+>m1PZ{lOi6vJ}I@M5PjobSe9$HVSN|8yD#6lp>*npv{n-m;Aj{fh_l`WAqKK7<8(XHs3Zmnvw`3MR4LCC+|C=r{b;#Zh9 zt9G5JgR+$O*#GB2vHR8Px{1tHwz{cG>^jH)OtXXyeA^R^IhZ>)mATItBzbsecYp{j z6a_+Jdu>W+$}(1TD^+(&>+U}W{Y1UxyhdY0w@PZdwKvS>JlkJh-d-pVTja&48IX*p{GMdJ?!GN|kk8ei_V5h*l&AoM@lE(vlSm z`Ti5CA_fle)VkqPSpSXnxStJ(VD>Oj4}T`RSK7%KGzyV*k}5a*O_&Lc0NAN=^_NSv zq-e{^`xt}FY0Q2*x~}rc5$ELaV@hj+VQ<7CM;7Cjnw}Md9e1mwW^zViI~<9Ig5V}s zh4+;jNYO67{sz8pq+9V-qNjT4#y{>F(OR%gvLE4D`54RxyS_>txS|t0mIxDvG+aFLV7x>H;)CyE`iBF%2N~Sv;KUb7! zrGkWlV?T1~|HkM7ftgn!6wrM#f14mruLg-}Y1uWf5_=r~_eEiEwp!Fkr?Q9pGIfwS zA8X*5bAO82d*E$Q_zz2 zBVAs{UL@+Gv<_{O@c_UbYr}j;p2<8%#dcP|$s7#(I}o=ZzDD1_m+5?Z|9h6zis*`P z-Soh(y&r$4GQ$8DliuW))73FH#;RMDi+fhk{qffxvI%xhz{af}$(4hC`N>x|oRmw^+F9v0H1p@4ie;Vxl(lR@EXK3GT}=^}nZU!u`LP zixswi-p*tGe&f9gXz>{DQ=;-oL+6AITzcA*@9&np2@Y2c0Didak!C7#|T~gCvC1$4{*VAC*iR<+_*!GYz@(PDO z(Yn^DdL6EM6=#9{WEyBdPbi&3UL{@Jd=BZ*SP0 zgl#&1GvHoHZPws)2$%QHNc*&rMw`N+NgToL24*G>Nc%el(`N2n)^X$i4;cM{9>@33u^z%cFxQld(?u3_lkt3GxJV=Ny+ zpy3pi>-+Ec9OUqEsqtbX73>TdvrQanu^^ui>na+ahqD)v&>rN8kOCceh5 z7;+vru7EE>O!=$=Wk)3wk!q>P(7b=shA|RrY+j)f(T9GPj_1HzjXkP-mnmVt?5&v6 zqlt&a^Lx)+FV|E3z^GT^g-nbvMtsM#y7Yg=g56r(0$h`d!V-KR4|r3^fm zfikT@o9zaFP2NMtv{Ed8+^kF)AaFK#9pQcEkmphOd7Snm1-c{3%E5zz@ex6@MXR-< z69fEp9K6z{llR-dK^CT{!QHov!Md5w#GeY`B`>UtEzjRk?*(yh+MWZt=tB+5B63o% zhRlej5Xv)4*~(LqA=H7)gp>1Us85GP`%c`<-4vU%d%|c_kjXzOd&X?heZ7dcdmtr; z0D+Wh^rZgrCYDwRtLK`S23{Zeqv~jN>}_+9%~6MR4Kf5;!c-IePObX+m$}2Ajg;zw zcSZWcS1~2^t9@WE1)R&5!()!F1pdgPkLQF|D@3-O9uc9%8)@K*1foL~)szs*3Awri z;b?&5OYy7eE=FBm#WFnLe7{c3`DN3Bs^niTUi`^|wubL*@x+W?!RuL0*m?8S^RIE+ zYPxF**&*V*O>fHZCmg&#RGvssi~K|4BTn#X``l}6c{ZB)*ZK?N242YUfTeYv7WJ}c z9G#(#VaGum{@AiEumc6guq~c7X|Lncd%hc=VC$`eEL2ojs=jY8D>Nd0s^)XH#wb6W z$eehLKTd=p`O1t|X4=~>J)xi1hFIdE*!cb*Zk5^*Kr46acvOf&gP=lGE*z9;&;uc8 ze!PucrPvgK?sh24-r=!Ruk6;YxO*P9TlL9m?cmlaUq#P=7OG|Z4=V6AhCZJa-c { //========================================================================\\ // Getting battery state (percentage / state) ===\\ -const getBatteryState = async () => { +const getBatteryState = () => { return bu .batteryState() .then((data) => { diff --git a/main.js b/main.js index 3b3df40..64c1f11 100644 --- a/main.js +++ b/main.js @@ -35,6 +35,20 @@ const createMainWin = () => { // Dev tools if (isDev) mainWin.webContents.openDevTools({ mode: "detach" }); + /*------ Mem garbage collection ------*/ + mainWin.on("close", () => { + mainWin = null; + }); + + /*------ Disabling keyboard shortcuts ------*/ + mainWin.webContents.on("before-input-event", (event, input) => { + if (input.control && input.key.toLowerCase() === "r") { + event.preventDefault(); + } else if (input.control && input.key.toLowerCase() === "w") { + event.preventDefault(); + } + }); + console.timeEnd("app_startup_time"); }; @@ -128,3 +142,12 @@ ipc.on("check_updates_user", () => { checkUpdates(); }); //===================================================\\ + +ipc.on("open_website", () => { + const shell = require("electron").shell; + shell.openExternal("https://energize-app.netlify.app"); +}); +ipc.on("open_github", () => { + const shell = require("electron").shell; + shell.openExternal("https://github.com/Malick-Tammal/ENERGIZE.git"); +}); diff --git a/package-lock.json b/package-lock.json index bc52c8f..a56db77 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,13 +9,13 @@ "version": "1.0.1", "license": "MIT", "dependencies": { - "battery_util": "^2.1.5", + "battery_util": "^2.2.5", "electron-store": "^8.2.0", "electron-updater": "^6.3.9", "v8-compile-cache": "^2.4.0" }, "devDependencies": { - "electron": "^33.1.0", + "electron": "^33.2.1", "electron-builder": "^25.1.8" } }, @@ -1371,13 +1371,16 @@ "license": "MIT" }, "node_modules/battery_util": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/battery_util/-/battery_util-2.1.5.tgz", - "integrity": "sha512-RaPkhmbTApcEB+7NonWPMc/scBivJ6BDVFekD00qcDqxzZWjFEctOEPeJ4PhrXXAgw9EhQQ3MvKd2a/av5D0Ew==", + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/battery_util/-/battery_util-2.2.5.tgz", + "integrity": "sha512-8PwgWJj//Ori4JN/r0MOAKT29wr/8m202fedP2PxtWSSsKvp/9C2UCcoxN9YT4g3svAqk8o6L25t8k/aWsyF9Q==", "license": "MIT", "os": [ "win32" ], + "dependencies": { + "execa": "^1.0.0" + }, "bin": { "battery_util": "lib/cli.js" } @@ -2126,6 +2129,31 @@ "node": ">= 10" } }, + "node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, "node_modules/debounce-fn": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/debounce-fn/-/debounce-fn-4.0.0.tgz", @@ -2525,9 +2553,9 @@ } }, "node_modules/electron": { - "version": "33.1.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-33.1.0.tgz", - "integrity": "sha512-7KiY6MtRo1fVFLPGyHS7Inh8yZfrbUTy43nNwUgMD2CBk729BgSwOC2WhmcptNJVlzHJpVxSWkiVi2hp9mH/bw==", + "version": "33.2.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-33.2.1.tgz", + "integrity": "sha512-SG/nmSsK9Qg1p6wAW+ZfqU+AV8cmXMTIklUL18NnOKfZLlum4ZsDoVdmmmlL39ZmeCaq27dr7CgslRPahfoVJg==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2819,7 +2847,6 @@ "version": "1.4.4", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, "dependencies": { "once": "^1.4.0" } @@ -2878,6 +2905,36 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", @@ -3642,6 +3699,15 @@ "node": ">=8" } }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -3679,8 +3745,7 @@ "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/jackspeak": { "version": "3.4.3", @@ -4285,6 +4350,12 @@ "node": ">= 0.6" } }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "license": "MIT" + }, "node_modules/node-abi": { "version": "3.71.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", @@ -4436,6 +4507,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/npmlog": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", @@ -4467,7 +4550,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, "dependencies": { "wrappy": "1" } @@ -4529,6 +4611,15 @@ "node": ">=8" } }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/p-limit": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", @@ -4607,6 +4698,15 @@ "node": ">=0.10.0" } }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/path-scurry": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", @@ -4716,7 +4816,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -4999,11 +5098,31 @@ "dev": true, "license": "ISC" }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/simple-update-notifier": { "version": "2.0.0", @@ -5218,6 +5337,15 @@ "node": ">=8" } }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/sumchecker": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", @@ -5489,6 +5617,18 @@ "defaults": "^1.0.3" } }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", @@ -5538,8 +5678,7 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" }, "node_modules/y18n": { "version": "5.0.8", diff --git a/package.json b/package.json index e852705..5d80684 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "energize", - "version": "1.0.1", - "description": "Get instant insights into your laptop battery's health with our diagnostic tool", + "version": "1.1.1", + "description": "ENERGIZE", "main": "main.js", "scripts": { "start": "electron .", @@ -15,7 +15,7 @@ "url": "https://github.com/Malick-Tammal/ENERGIZE.git" }, "devDependencies": { - "electron": "^33.1.0", + "electron": "^33.2.1", "electron-builder": "^25.1.8" }, "build": { @@ -33,7 +33,7 @@ } }, "dependencies": { - "battery_util": "^2.1.5", + "battery_util": "^2.2.5", "electron-store": "^8.2.0", "electron-updater": "^6.3.9", "v8-compile-cache": "^2.4.0" diff --git a/preload.js b/preload.js index 78c7e00..7be3e2f 100644 --- a/preload.js +++ b/preload.js @@ -37,6 +37,10 @@ const API = { checkUpdates: () => ipc.send("check_updates"), checkUpdatesUser: () => ipc.send("check_updates_user"), }, + externalLinks: { + openGithub: () => ipc.send("open_github"), + openWebsite: () => ipc.send("open_website"), + }, }; contextBridge.exposeInMainWorld("bridge", API); diff --git a/src/css/main.css b/src/css/main.css index 6eaae30..0a7c4c6 100644 --- a/src/css/main.css +++ b/src/css/main.css @@ -2,7 +2,7 @@ width: 100%; height: 100%; background: var(--primary-color); - border-radius: 15px; + border-radius: 20px; overflow: hidden; display: flex; flex-direction: column; @@ -190,17 +190,26 @@ nav.top_bar { flex-wrap: wrap; align-items: center; justify-content: center; - gap: 0rem 1rem; } .battery_page.hide { opacity: 0; visibility: hidden; } +.battery_page_container { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 15px; + gap: 15px; +} .box_1 { - width: 95%; - height: 51%; + width: 100%; + height: 50%; background: var(--secondary-color); - border-radius: 25px; + border-radius: 10px; transform: translate(0); transition: transform 0.5s 0.2s ease; display: flex; @@ -234,20 +243,36 @@ nav.top_bar { .text_col p:nth-child(2) { margin-left: 0.5rem; } +.details-overlay { + position: absolute; + right: -1.2rem; + bottom: -2rem; + width: 55%; + z-index: -1; + mix-blend-mode: soft-light; + opacity: 0.2; +} + +.small-box-container { + width: 100%; + height: 50%; + overflow: hidden; + display: flex; + align-items: center; + justify-content: space-between; +} .box_2, .box_3 { - width: 46%; - height: 40%; + width: 48.5%; + height: 100%; background: var(--secondary-color); - margin-top: -1rem; - border-radius: 25px; + border-radius: 10px; transform: translate(0); transition: transform 0.5s 0.3s ease; overflow: hidden; position: relative; display: flex; flex-direction: column; - justify-content: end; } .battery_page.hide .box_1 { transform: translate(0, -100%); @@ -260,18 +285,8 @@ nav.top_bar { .parallax > use { animation: move-forever 12s linear infinite; &:nth-child(1) { - animation-delay: -2s; - fill: #0f730f; - } - &:nth-child(2) { - animation-delay: -2s; - animation-duration: 5s; - fill: #109810; - } - &:nth-child(3) { - animation-delay: -4s; - animation-duration: 3s; - fill: #19c219; + animation-duration: 4s; + fill: var(--lime-green); } } @@ -299,8 +314,11 @@ svg.waves.hide { .percent_box { width: 100%; height: 0; - background: #19c219; + background: var(--lime-green); margin-bottom: 0rem; + position: absolute; + z-index: -1; + bottom: 0; } .charging_con { width: 100%; @@ -337,13 +355,29 @@ svg.waves.hide { letter-spacing: 0.5rem; margin-left: 0.5rem; } +.battery-overlay { + position: absolute; + right: -9rem; + bottom: -6.5rem; + width: 155%; + mix-blend-mode: soft-light; + opacity: 0.5; +} +.health-overlay { + position: absolute; + right: -3.1rem; + bottom: -2.5rem; + width: 115%; + mix-blend-mode: soft-light; + opacity: 0.5; +} .unsupported_device { position: absolute; bottom: 0; width: 100%; height: 94%; background: var(--primary-color); - z-index: 10; + z-index: 7; display: flex; align-items: center; justify-content: center; @@ -357,15 +391,15 @@ svg.waves.hide { .settings_panel { width: 22rem; position: absolute; - top: 3.1rem; - left: 1rem; + top: 3.2rem; + left: 0.9rem; font-size: 0.9rem; background: var(--secondary-color); z-index: 9; - border-radius: 15px; + border-radius: 10px; display: flex; flex-direction: column; - padding: 2rem 1rem; + padding: 1rem 1rem; box-shadow: 10px 4px 9px 0px rgb(0 0 0 / 12%); transform: translateY(0%); transition: all 0.8s cubic-bezier(0.23, 0.01, 0.23, 1.02); @@ -373,31 +407,26 @@ svg.waves.hide { .settings_panel.hide { transform: translateY(-150%); } -.top_panel, -.bottom_panel { - width: 100%; -} .top_panel { - margin-bottom: 3rem; + margin-bottom: 1rem; } .con { display: flex; justify-content: space-between; position: relative; - margin-top: 1.5rem; + margin-top: 1.8rem; } .con:first-of-type { margin-top: 0; } .separator { - width: 2px; + width: 3px; height: 100%; border-radius: 2px; - background: var(--white-color); + background: var(--primary-color); position: absolute; left: 60%; transform: translate(-50%); - opacity: 0.3; } .radio_btn { width: 2.5rem; @@ -421,6 +450,7 @@ svg.waves.hide { border-radius: 100%; transition: all 0.1s linear; transform: translateX(0.2rem); + margin-bottom: 1px; } .radio_btn.active span { transform: translateX(1.3rem); @@ -431,7 +461,7 @@ svg.waves.hide { var(--yallow-color) 0%, var(--red-color) 100% ); - padding: 0.1rem 0.5rem; + padding: 0.1rem 0.3rem; font-size: 0.85rem; font-family: "Poppins Medium"; border-radius: 0.2rem; @@ -444,44 +474,72 @@ svg.waves.hide { } .about_text { text-align: center; -} -.about_text h2 { - margin-bottom: 10px; - letter-spacing: 0.5px; + margin-top: 1.5rem; } .about_text p { line-height: 25px; } -.settings_title { - position: relative; - top: -1rem; - letter-spacing: 1.5px; - font-family: "Poppins Regular"; - opacity: 0.7; - font-size: 1.1rem; -} .about_social { width: 100%; display: flex; - justify-content: space-evenly; - margin-top: 1.5rem; - margin-bottom: 1.5rem; + justify-content: space-around; + margin-top: 1rem; } .about_social img { width: 3.2rem; cursor: pointer; } -.big_separator { - width: 90%; - height: 2px; - position: absolute; - left: 50%; - top: 57%; - transform: translate(-50%); - background: var(--white-color); - border-radius: 1rem; - opacity: 0.3; +.about_title { + display: flex; + height: 2rem; + align-items: center; +} +.about_title span { + height: 100%; + width: 0.4rem; + background: var(--primary-color); +} +.about_title h1 { + font-size: 1.2rem; + font-family: "Poppins Bold"; + letter-spacing: 1px; + margin-left: 0.8rem; } .app_version { - letter-spacing: 2px; + letter-spacing: 3px; +} +.settings_overlay { + position: absolute; + width: 100%; + height: 100%; + background: #000000; + z-index: 8; + opacity: 0.5; + visibility: visible; + transition: all 0.3s; +} +.settings_overlay.hide { + opacity: 0; + visibility: hidden; +} +.settings_title { + display: flex; + height: 2rem; + align-items: center; +} +.settings_title span { + height: 100%; + width: 0.4rem; + background: var(--primary-color); } +.settings_title h1 { + font-size: 1.2rem; + font-family: "Poppins Bold"; + letter-spacing: 1px; + margin-left: 0.8rem; +} +.settings_container { + width: 90%; + margin: 0 auto; + margin-top: 1.5rem; +} \ No newline at end of file diff --git a/src/css/root.css b/src/css/root.css index 9d0e855..a16200b 100644 --- a/src/css/root.css +++ b/src/css/root.css @@ -3,6 +3,7 @@ --secondary-color: #1d2a33; --yallow-color: #ff9501; --red-color: #fd4449; + --lime-green: #06eb70; --font-size: 14px; --white-color: #ffffff; } diff --git a/src/index.html b/src/index.html index ee746bb..6083afb 100644 --- a/src/index.html +++ b/src/index.html @@ -49,75 +49,92 @@

Loading
-
-

?????

-
-
-

Battery ID :

-

?????

+
+
+

?????

+
+
+

Battery ID :

+

?????

+
+
+

Model :

+

?????

+
-
-

Model :

-

?????

+
+
+

Serial Number :

+

?????

+
+
+

Cycle Count :

+

?????

+
+

+ Full Charge Capacity : + ????? +

+

+ Design Capacity : ????? +

+ Details_Icon
-
-
-

Serial Number :

-

?????

-
-
-

Cycle Count :

-

?????

+
+
+
+

+

+
+ Health_icon
-
-

- Full Charge Capacity : - ????? -

-

- Design Capacity : ????? -

-
-
-
-

-

-
-
-
- - - + + + + + + + + +
+
+

+ Thunder_icon +
+ Battery_icon - - - - - - - -
-
-

- Thunder_icon +
@@ -125,11 +142,13 @@

Battery not present or your device is unsupported

-

Settings

+
+ +

About

+
-

About

Meet Energize: Your laptop's essential battery diagnostic tool. Optimize performance, prolong battery life effortlessly. @@ -149,34 +168,40 @@

About

-
-
-

Auto scan resources

- -
- -
+
+ +

Settings

-
-

Auto check for updates

- -
- +
+
+

Auto scan resources

+ +
+ +
+
+
+

Auto updates

+ +
+ +
+
+
+

Check for updates

+ + check +
+
+

App version

+ +

????

-
-
-

Check for updates

- - check -
-
-

App version

- -

????

+
diff --git a/src/js/app.js b/src/js/app.js index c57b720..2ae406f 100644 --- a/src/js/app.js +++ b/src/js/app.js @@ -8,12 +8,7 @@ console.log("\n"); console.log( - " _____ _ _ _____ ____ ____ ___ __________ \n", - " | ____| \\ | | ____| _ \\ / ___|_ _|__ / ____|\n", - " | _| | \\| | _| | |_) | | _ | | / /| _| \n", - " | |___| |\\ | |___| _ <| |_| || | / /_| |___ \n", - " |_____|_| \\_|_____|_| \\_\\____ |___/____|_____|\n", - " \n" + " ______ _ _ ______ _____ _____ _____ ____________ \r\n | ____| \\ | | ____| __ \\ / ____|_ _|___ / ____|\r\n | |__ | \\| | |__ | |__) | | __ | | / /| |__ \r\n | __| | . ` | __| | _ /| | |_ | | | / / | __| \r\n | |____| |\\ | |____| | \\ \\| |__| |_| |_ / /__| |____ \r\n |______|_| \\_|______|_| \\_\\\\_____|_____/_____|______|\r\n \r\n " ); console.log( "====================================================================" @@ -25,12 +20,11 @@ console.log( "===================== Consider to contribute ======================" ); console.log( - "======= Github repo : https://github.com/ADAMSKI-DZ/ENERGIZE =======" + "======= Github repo : https://github.com/Malick-Tammal/ENERGIZE.git =======" ); console.log( "====================================================================" ); -console.log("\n"); // Getting app name ========================================\\ const appTitle = document.querySelector(".app_title"); @@ -64,6 +58,7 @@ document.addEventListener("DOMContentLoaded", () => { const settingsBtn = document.querySelector(".settings"); const settingsBtnIcon = document.querySelector(".settings img"); const settingsPanel = document.querySelector(".settings_panel"); +const SettingsOverlay = document.querySelector(".settings_overlay"); settingsBtn.addEventListener("mouseenter", () => { settingsBtnIcon.src = "../asset/icons/Setting_icon_colored.png"; @@ -77,6 +72,12 @@ settingsBtn.addEventListener("mouseleave", () => { }); settingsBtn.addEventListener("click", () => { settingsPanel.classList.toggle("hide"); + SettingsOverlay.classList.toggle("hide"); +}); +SettingsOverlay.addEventListener("click", () => { + settingsPanel.classList.toggle("hide"); + SettingsOverlay.classList.toggle("hide"); + settingsBtnIcon.src = "../asset/icons/Setting_icon.png"; }); const autoScanBtn = document.querySelector(".auto_scan"); @@ -140,9 +141,11 @@ const batteryPage = document.querySelector(".battery_page"); scanBtn.addEventListener("click", () => { console.time("Getting_data_time"); console.log("Started scanning..."); - loadingPage.classList.remove("hide"); bridge.batterySys.scanPC(); + getBatteryState(); + + loadingPage.classList.remove("hide"); }); //=============================================================\\ @@ -152,7 +155,7 @@ const percentBox = document.querySelector(".percent_box"); const chargingPer = document.querySelector(".charging_per"); const thunderIcon = document.querySelector(".thunder_icon"); -const getBatteryState = async () => { +const getBatteryState = () => { setInterval(async () => { const batteryState = await bridge.batterySys.batteryState(); @@ -167,7 +170,7 @@ const getBatteryState = async () => { waves.style.bottom = `${batteryState.level}%`; percentBox.style.height = `${batteryState.level}%`; - chargingPer.innerText = `${Math.round(batteryState.level)}%`; + chargingPer.innerText = `${batteryState.level}%`; }, 1000); }; //===========================================================\\ @@ -208,14 +211,8 @@ bridge.batterySys.batteryData((data) => { data.fullChargeCapacity + data.measureUnit; designCapacityDom.innerText = data.designCapacity + data.measureUnit; batteryHealthNumDom.innerText = `${data.health}%`; - batteryHealthTxtDom.innerText = healthStatus( - data.fullChargeCapacity, - data.designCapacity - ); - boxTwo.style.background = healthStatusColor( - data.fullChargeCapacity, - data.designCapacity - ); + batteryHealthTxtDom.innerText = healthStatus(data.health); + boxTwo.style.background = healthStatusColor(data.health); loadingPage.classList.add("hide"); batteryPage.classList.remove("hide"); @@ -250,15 +247,15 @@ const healthStatus = (health) => { // Adding health status color based on battery health percentage ==\\ const healthStatusColor = (health) => { if (health >= 90) { - return "#19c219"; + return "#06EB70"; } else if (health >= 70 && health < 90) { - return "#84c219"; + return "#E6DD11"; } else if (health >= 50 && health < 70) { - return "#c2af19"; + return "#E6A211"; } else if (health >= 20 && health < 50) { - return "#c23819"; + return "#E63B11"; } else { - return "#000000"; + return "#1D2A33"; } }; //===========================================================\\ @@ -280,6 +277,13 @@ githubButton.addEventListener("mouseenter", () => { githubButton.addEventListener("mouseleave", () => { githubButton.src = "../asset/icons/Github_icon.png"; }); + +websiteButton.addEventListener("click", () => { + bridge.externalLinks.openWebsite(); +}); +githubButton.addEventListener("click", () => { + bridge.externalLinks.openGithub(); +}); //===========================================================\\ // Update listeners (click / auto) ===========================\\