From c3412fe4eb0926710e2c36f9c08d61701ba81923 Mon Sep 17 00:00:00 2001 From: Victor Savinov Date: Fri, 18 Sep 2020 01:13:12 +0300 Subject: [PATCH] 1.0 --- _locales/en/messages.json | 18 ++ assets/icons/128.png | Bin 0 -> 8782 bytes assets/icons/128.png~ | Bin 0 -> 12310 bytes assets/icons/16.png | Bin 0 -> 658 bytes assets/icons/16.png~ | Bin 0 -> 8782 bytes assets/icons/32.png | Bin 0 -> 1333 bytes assets/icons/32.png~ | Bin 0 -> 12310 bytes assets/icons/48.png | Bin 0 -> 2286 bytes assets/icons/48.png~ | Bin 0 -> 12310 bytes content-scripts.js | 78 +++++++- manifest.json | 8 +- popup/popup.js | 371 ++++++++++++++++++++++++++------------ satus/satus.js | 172 ++++++++++-------- 13 files changed, 443 insertions(+), 204 deletions(-) create mode 100644 assets/icons/128.png create mode 100644 assets/icons/128.png~ create mode 100644 assets/icons/16.png create mode 100644 assets/icons/16.png~ create mode 100644 assets/icons/32.png create mode 100644 assets/icons/32.png~ create mode 100644 assets/icons/48.png create mode 100644 assets/icons/48.png~ diff --git a/_locales/en/messages.json b/_locales/en/messages.json index 1747985..476b392 100644 --- a/_locales/en/messages.json +++ b/_locales/en/messages.json @@ -145,5 +145,23 @@ }, "empty": { "message": "Empty" + }, + "cut": { + "message": "Cut" + }, + "copy": { + "message": "Copy" + }, + "paste": { + "message": "Paste" + }, + "clipboard": { + "message": "Clipboard" + }, + "select": { + "message": "Select" + }, + "dragAndDrop": { + "message": "Drag & Drop" } } diff --git a/assets/icons/128.png b/assets/icons/128.png new file mode 100644 index 0000000000000000000000000000000000000000..5b6d17911f1ca3989bad44f9d2fc131d10ca742f GIT binary patch literal 8782 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 literal 0 HcmV?d00001 diff --git a/assets/icons/48.png~ b/assets/icons/48.png~ new file mode 100644 index 0000000000000000000000000000000000000000..14227f9906f6f40c01a7fe9c86ef9fb369cadb69 GIT binary patch literal 12310 zcmWk!WmHsM6umPv3JgdiFcMNq2uMf_NQ-odlF}eZNXGyQLr6+@cZig9Nk~a|BQ4$e z%{ObkdB5I!>z;ehK4z|{ed7mb%nmy)CG_Y+m zS?d#8xZ7TEfd>1W^G3At!nzmD&*s%9vE57-Ha=`^8P*8Dvp}fXPFteSk>F zu`GV)*WqDbVt>k1a~H3GOvfGuV;I%zPKIARp_O+*^CCeDM`@{=k4=?Gau{_%!PM z5hm9y?L~v}uVCIpe(Uju^z?K~Z*TARot>S_R>N{a{VMLzt#i-Vn5A#uzS*?6;k?ZF zL@vP>M1T zk+`IZxH;s|*w$vejA7Rt80_t}#%bF{X(wr@;UK?fY+ajY%j zb4T>?!adgP4>OB|a0KmvSj)cBO6S)&g%FD8YmYnABE>1RlONuo_B8#GuxKUn!8@L~Gc=IZocGcUw%`yYk?MhnSOjqRK}A5{IN zsB)FOD*|&~f2!7gg^vrPwFE5A#Z?~nCA}2(hIwCg&eeUQxfdqRfaerxANN@*{-@Pg zVe`rEoJSIz*fnb^#wv0Kz*jE&%9)9j_G=crlT@m##;%@)DX8zaptsk(7`@8qk40+# zq}gG1eD#Ewwov2~QHj6juBQLy8?Wl>K5Y*uLTF8{pPuea@n-5bx|dnQBdB^yA$~L< zz3W7??QS(%S@+Y<jiOsk!&TvleV_JAE6mydhyez%jE^D5D z)98NElSmNJ_V>&#ryp^?*y_JxJ(_<|`8G#F7y}WT*Y0@JteP689Q;=tBLce@POxjA z#V02VQ0zo@t7iY^>d)5DsWAA*>F&_L%Lmg2TM`{Rnm2h$DO18S4!VU>o7g}!CQw9V z3Z)_TH8~~8Gx5~|6(Vft6{>O}h&cA6Rir-O&sln=6p&tY2(P(ma2ya?_lc-k`CYl{ zVDOie2wX^8H(%}6-$@eu5_nuK5iCpYQSSsnhMos)oBu;+j*34vfmzIz;sr*zC`L1S zyZ6zDZ(v0uvoeG#8w0p5n|ph?56bLb3c6C#m5UzT5)GSSFBW)^@{=oDuoFX&eirUk zIBfJTZWsueYsG~$Y%d?z-{u|787sV?-jIC9Z^%y%u9YL?ZNNeCL>Y9W#Ow9yo!#Vm zQeJAl(V}Y+@1o^JT219>wG6V`$*((;V_5c8oqJ zg$mKI7;QO{OVGI2banb_2U@4`d!(or127yEb?zn$Ia2Gn%ze7Iv?(+*kX?5;tMZ*h z?2{B;T(ZWI4#t}c1$f!BibRKZ7lO{%1Vls420k|@x9tH0S(!Ak8rrr|@G%fUa@XK? zlz6&5u}5I{z()sd3Wo@bP0cNb~{+MLo9FfQQ%93jY-=ala(2T&0BgtwlaBl_pCQdSU&K4lQEkT zlbX#uOpZ(*EHRIRMW$B5{>O0J2nYEHb|4qzv)mC>)%BI;tVvtQr*;FSR<~`Pll?J> zgj0-A5+?_Tn{2CI=9~fWSrM&jsZ=DLsa8wE^XdxT`kK|Ls>ut9n56m}Y#Hr?MaNU3UIV6CIKE6Ns-hB%NaQw*-BnWekV*Z5E661F5%lM;tjD z^*_IdcOhHi6ALf}y(DexjTE%n2NH)C8xvkQtagk4$qVu`#e_Dks_nd5-Dqcd1x5W7 zEi8Ia_K+`|I^@qerfeF+S5ESPR*yq{2xtg@`G!8YoI`d;* zZuLs>Z6q?tLBHSBXBDL=fj0uLDgH zE>hyG9{~}>KF{rabgt+#YHlx-2*u_~HPvc$*yax<5-u6Zz}oKMMjD{lPiX_4gSsT(jkH{RKaN2?1((raPxHdqr7HmCAHm+8aZKDJeA&F&-eC; zku6|v@Le$2x{I3vLqv-9zO&8(vA-UOc&fDPAG>7!ezr!nJd#fv4OJRo7`aH8FLUs& zTx_}sgK6T;{Z$kCS6H{Fw^onJ@-}9E4uNvwi!qfBDV#G-IY0(r zxhNu&7Gm9U!`3et*!SUOl4?5;7LcBIww{@{3dI!U>_vWwdIe^@eV(gdl88k!fqrag zE`3IqwT}duLm%Boe4uz^bbI@5)PMd>v-gcGuiv>Q8OjF8A@vNHrO(Wd;>Xf?Z9o)I zdXn-&%Y33#k0_lpIngdsb;ly&$U!Kf?Pb`AfH@KB^_{MRl*_?CB&1a8& z>yu&mQfAig0_EFat?~!1>?N1UQvK`9&b!7jw^Pe~a|He!l-%HAo_mBPwT}FP5_RrUOd^VfJt8lZl zo>yMJUmg4OZPVj?$z?jM>U>sx(A^-WF&G!pn43S(`<{rO`g-#{t4sE^&uhHVD$D+x zTN?%pA+k!=k7jls0vhM6jFfbYL|>(ay)fb=2KxbJzi);FZoQ8K8d%;J76Wdru-gASW5CQC0r+bD7gQAJ3NBQJW3n24E-g3OTQeS zT}{1u6{7C9#kG97dUj^@`Xhq|(DtZ#^fEx@Nbe0Ian$qr{6OPp^eCgJ zr+9Fmf!2#6tbAVR0bF`er!RsZg%K$gJ}-V~<&Wi~S=-U>t{&YaoemCBfcI zFBA0+?Uuh(wNknJJ?689q;j#UXtB(mXqKAhyW6XpP7bUc0GB!IS|cNRByVX_k@n2V zFiY*Y--f@IbWyiJI_jw<@O{XvQo>eOm{L$peqX~fG}LJAdB>kIma5Cz9`8)2W--eA zLg~1I;n7YWPm32e@sdt8Gx^od8ggGogyf#7&obz27iWvJMsb=OJ_rl6&#JY7aF9N_ zycv_EXgE}O^-2KSzjf8w1{xE$qm%Q^MhDm#pF6$hkF`vXwud2FQH75+3yG98?qM^J zK3*MWogy0*OU5ry-l$B!O@aJkR#T874xi2;3y)Hk-5w+cJG6I)`GOidTGwx&Db?JQZ-(u zDF}C{TBtP`HK_#?TB`vI&tPneRTGUnS{WxeQQh<4-Z9%gUF|glos(TQb^e`9q2}|J zNOh`pi8+TCf~f8giOF9os&d*~V%Rj8r#Ovi!k;IGo@H|R>G?HpimHwDIV4On%m9S* z%Bz^<>X&M2wf>?woyi`%KY#Ej1{3nWZBcWYBm|=$Lil#m!i_1m);>uLL%^;R$xr^@ zK^U=#Poyv)Bp7$CJE3mj)BjkMpc7VGZ#tgZK7zUYbMu6 z-XUT))>BUJn>5QZ9{ar(^6op-aVFXpNo;{ihv6n=Df%HC@^^JBL|X(jxLfH|=V}u< zw6Wg3dGkIV6^&B$in*aB^tA{w)Ex82rTcuZOqDYEo#q?L8!Apew%+G&B#oLB^SCZQ zivYL|)%Q@+hq#^kzSN{nOcBmee`tNl0IGCQL}Np-Si5Zg1Dh*nHi>5@>77Tat-7gD zmwA8OYr*Do5UM|URxOk{kM)!!bLobFs?_{wFYQ z8gR8PiDv;%>!rQ|IInk4NfeQuC(FFLT8!6LNWs3?wFxl@-G2{>*ub~C*etqMAZ zel{OFJZDCxT*>DRt$M569eRlAuX(*{_1*Pq8pa}1#F!%(W6FRm!pBOSB+xcEEEUp;OGym2LO5#;WD zehb3Ube@Mm@t)Z+n)KYFb%tX91%BqI!J235r{M&%N#ubaGsK?Rw@nCy5 zui3Qr*(W2NL|Q_L6Xr;(?wb=;bH{fmOT4pEc6NTQNf0T}9Yt+|2`&ZP3sO=Je*5Rl z(OM4Pdq7|Kg`=fk`?&v=g2kS@<6YBp6}2EGj!p7iBj@1aT!DgzI+PK8M0SE}m}%mW z=H~hG{NSfGH$J&GIDKF4QJl*1R+DLs!Fj=c)13%ugZO8^vlo3Eo!@;}T;SJtIUeIn zCnY4p73z3~ktW_=YkM_P^u*Y?7n&=lr#h;?@5_86r4><4>XKX5iTL>Eij9k-NZ+GD zIR5~tVYZ*yc*$!~c8hw9b*>9ByC?M&MFkj|e6EB24CvwKpGx0j+8#+(*4S?RQQpV@ zAWcGEogm$v+IF_(UB6YG<@`zC9ti8h^q1e#If}fOKfXPf9a&sD=9F!v40cmdfk7m( zh>s05nV7V!RbvCCA?*&rFw(c->62vCz~obVE-*}AY!v^QfA%4?ZsEA#A_sQYvq1Wr zl$nh|}aX+v#lOuSowaoI`7NiOY8? z4=%K-4yZN_3xfULg7NN1#zCLU&Agfw4KaSnX))=?koes}47kt5;a`k;m%ZEKFIRDc zY}wS02oMtUA&HC9s_IBaCr|pQx`;_>A9Xct4e~7b@QCWVa$*0YNI_PUjGG{~7$GEP z8=RSx9A1)8EBg0LT>;l2fA}Z=N-!CR?cPvU7fmvC_S>gs*q~}LWi;)>O!aHa*;<}U zhx&7P1VT+EC{wq=9&^uXoDo5ii~n>PXyyAFZ za_R5;o&DiwH}vAE#Hppj_-RP?FCe*4vY^N0Jc%hJG08uh*Zt9J9dD*g{|9Th$k~|J zTonDSV+umB=Q(a1-J%RiC1#CkZTb=f8{6F z4V`32!fo0Fn#3f+IFgnhJypKO)>JCYC}GZ0br0xIMpam%ey_cMI2Cp`rvqKp6O<`( zLj*DBII;X>;z^kx-*PWP(>J;nO4FYbkr}-Ju^_#9$12uzKf(EE_`+BH`SVE%7BQ3l zJ(A=45c_*c)G?FxMd=hsc`UKp4ETFDSR%h?HUwFv8LsLd3SdKb&9|4^FUnJHFm4-+ zu{FSKzdZ1NBOf%ed3@sql2b#_TA|o*#>>FFrBS%0?q@m>f0s5XFBTeXUOqTcB?c&g zD_%r*F|I<>2VasK4|~Anfc?2 z(bS6%QcxXNhL?EAg|3{#jVo#N=ky;4e(>%a9Nf!*Ahfvc@B#lFP8ojpo$Tb8_$XC5 z1~Q&)BtmKRkq+r%wtGNaGL=No9Rl+-wEcaLZf-!LHHU2!p%hBec|;%7rlYySmBsXvUI5m zIdPamPy__71__`igJW~w<3Z|+f#vUzim!dUAel)hErn7=_VWiyEODJHsiG7s5 zh|@axj;0fmJbF>$=>43}04jw6h0M~cwoX1+$W%6w!eUT{{eZMJ;CFNZR;)y<*6NGd zv?K@}C@9?|qmZm^CPL~cNOKqC;UMF)1sOpEzLe@>nkU!*a5H1IqN6MJ2q9A|0B4M^ zQV1#}jE2BTFd50Zagf|Sg_!WN^7uhJmbTtf%fUhV5CQgdqe3;r0W(qq%16e8(BSU7 z511g;i7QY12T&D|Lw=mNru`Xj1Q+m4 zFaZM!n0z326c7U@d{mKu3DK(v*><}b*t#BiyVhcO1cCi9ehAK;aMeM6j3N5{aJVt% z%p=dpl^0n@A$m-nK<)#04DkdVStcFVor+MYo0e)6s!4BDtQ=FYe>-bLVgLu}2+|Sp zh0qN84RWcGhZ(fW@1&HWI_`oqGJdU^U*a*I#+N~*`zb0YNssZq&S1mI@);a_W8oCt z%3loCITXOlHs#U*u4y_kkV%2@6Cut(fg%y=0o5PSLKjA_(fJr_wR@pZ!hTd$(ud#g%(O3mK3y8>W8 zi~`;~d)L~0ds0@iK$L;luc zxXgzzQ{4w5P8)y7(Zc&7e%fUf6*s?MN@9VIc=OcbcyvV9Z#!x1c6^((lCXeIAzs)q z)~|352FmIlqJRTX`)Y+2kNPLx)-}VZCmKJApW=?=FFafUh}i`gU?PqufCXVQl9ywC zN0KWYJl8gm)y8sIE(pE3&U}DA^0*eWPWgk7=(4#&RhXEUQ6)ur=*ob(@3&;xAl~n z(uTv|9v_}mxhQ{?13_W7R|T&%Sd*w@iI5}r_IK;|#JtBewMEMy2x_d{AEqS858>Ii zVS(DM50piQ-tSC)=bF+t;JSq~K$cwv(cd(HZj?cU6BqbwXKVi^UNU}##6#c};w=~J zX$D6>2F2cn+#>9Y>$<$7Z~=qu!w*U(^^()US$Jedjd@pOM)A7G7;2nN=gX(t<0VE#z^xTjfI*0mhCA>q_PZM~e(J@@#eKY6fv!u&|V`l*4eIp#H=bZXFMcgb-jvj0&mg-h* zjiE7aI5#YS4z3CAJY4b_{+f7)GC<_;4*2P&jCnRzASRy9L{AG_LgR$8#ieOGsH6&sauyS&0 z!G6@)w|&MdV!HGh9pKhN53?Yv1ckMZ>jPv2)O`6V8LM{7SWzBse*C%|ZWLkF{HA$L z@wuM~uNN^|I*V`671M*}xy>YoxDnn*8}-omxkn{XcqgGwljlXp?p!@lB@d@viUNrt z9!hAK=G*4^Wu3P%C>Qfe;Dl%u>m100(}_OT8M`xm4(?L;==RT7!p}ZaAG=g0|7d!q zFUAa?Oa_{XBHsU8r!tH0-7J-2?`*j}S%LvqI0YgP!?#p@V`8 zPjJ~#0E%Cf(#LTShdm}|yK@&M0zI%)ojTE2@Jo&_#@^U=&(%A;Z2%Qjn^JUbpkw1w3Q zzWAd{tvK|_+68LN+eIreyo@A>w3U#Y5P1w_gkE9+5OhDzKkQ}%H(Y;J5XVFBT`_NHF*d|1(Ajr`O)yfd8hl}@d*}Iqq)gDiTeul z=9$L_cF;5P-N9}pZg)N_GT=nFDf~o0jz6I6=USo}SHpfAjzwCk5GCvbxTj1<4{{ku z8irQ4hQ0?XVu0y1j{j#oWda&EB%J^dwf^q~SnzZ#!Upr_U#E%1hyk}|P-dH|2krx0 zv>JQLdda1Bs%Q4F4?9AvL<9yC2RiJZoq2!I8b4EnrrZ5%OBMAv{K92?P+xi$_%tm6 z)39T36wbq+xp+EbXNN;E>W7|9qdUz6-)D#pbQcSy)c$4~g(>)P5ee14t{N1(+HqHW zHUnO2U0TFTT9bjwN@J_f(>#*V&~OR->qm?*7&9c)%1PPWJ{HnqMf`f|N$Mq({g1aC zpb?Tyzyu%f&RTBXY&&Y58z)}Ehx5^@g&NW>^%Y>P{Z~CBhu_!b%s1bKWF|x9F7d74 zjoUnseV*Tk4U11ObTr2YK>05bfVKyq3k#k42nv(_0ex3~A7hpMI_txAqw*YzpN-X<&_AKB|*?W1@3{ ztLJqx_Btc{sZ0s-grn|2Q5|%MXAa z1b`HncU}1+;g1d3ByNv$^R{vHkr~wrijlvEjid~R`5N}dKHWy|gV{;q?h7s%XuP;ZLJ(MmVWc;Y!Jh<_o)ZmQP5)lcdfjGA|rd3+hu7QCA$2Mzdx=} z5#t$p?aRl2S?-4W$OZ4K*R3*7&tBfRy;AX79=@5Xoca!NZQ0)>E)HaM3?Vmktk`6I zy={~t_0Gvm1faSIE`{8Dy9o-jpz^tWXyV1T>tHi3SI4q)`(&$EgZ^!uPXmaMhmg~T z$w5qlssr9SJtFzL1ATH6X@~=KSD$m@rQ;y;se;2^x{?7o*L&^%rs&_Kky5St>o+Vc zRICT4wYlPctHJ6B{*EF&Ul+f-kaZ2%EmX@;^UyiuylpHpSE*#dM1HQ!?*8VfRAcW zIhM{V62rg0W74wj^`tQu5~Up!?4IYdg;dL-XBPW~5jtE5pdtZAquBZAO9~s+5q3C0 zNe;CC4RvlOKX#i|-~40IL!XJ_s>I8^gsoE~&2{$QxGCA*9E7FY0)?m`OSKUf*Q?3K#uVHtnDDV9|?K(J~G$FZAq4$dBpZC3=mhg zmOQx**Dor9N3f{Bmzu>oJap+f6LvQ8K#XS83?4cKa!D4C@$@0!ldDX{%v)9`H=WGO za;3qBi7vjst(G)MJ!Q1w&yUeZ*L}Af!nNj%HdhoMXRZm#Jir3JjIWr%u!S|8YQUCB z2Ma_4;Tx^bOCDIj!29BFz&$kjV85O-N=OYW6k~vNN#I4Mal^R%!xCuab}M!KWST?W%fexK?KWr{ zT>mbY5)ymuH%9d19C3TRIa2mnl$)49u{SMZh1M4z8F|i6H?~Y?IG_M-eCug}MT4UI z-DlM-nMRI}KIH$%&Msb~&Qq{KJ>4D|$v!F!Dq3ofCbYk(r8@ERBM`hvNVkG>2(rhjMNU|YbdDwRx*kmpJf$wc; zAH{GCNaT*q=42uS)}aF>AYFw1{EC9%qpc0)8U?BE(FC|4rs zqf^n#X0>uX%nae&(*NmTdaqqEOWhTqw(^vk{x96OJGPiDk&Lq6(AeaO64CmT-Z#epafU%6HMN32e(Q;{Tu zH7(d~Nrsx!HhZ+NGS zqYe{@#w`j~ozJ7cn)?2&S=&?Cn4te~^Z4#rW!E6XqogLBm20$LtLfEDZ=A9{dMG^` zWUFQN=nVVMOsC00Gu#}8F9g{>m4xOtZ_Vl|NIqP=HnYh>w`sOR$1^H->_x%7v z8jp55fDUK$-^`^%VQd|(bt0X~erAdHQdYQ_Lb6X@=S9%Qn{V1X+tC`!>pz{I<%JSO z9h_if3V(BH#iAH(dmg6_$D6JnmQL(@<8)EgGlrMq^ABwu>hwMt)4n-R z`*n3mtL<@KpjeFw(|pAHi8Z|8rG?vp>;I0gpU-vH9E?A?pOdcY{xIuT;8Sm+V28c> zU|6c8|BpCHmpSHKof)!&L{4G-v}-&W_d!#bO=|7D*MhI*IUDG51Uzp}ChY$Af|OB; z6$pwfg$Oq@Ql&cQvXPM>zsj!BnbPLDeL^A9o7Vagc$cGIab84kKiJqQMg!G$yViQj(NfFUiHSj@d=Shx);s--vpWp9NWWwVW7$?J+7Hi%c55u8; z=vgYC>`_VmpzwC_fJM{a7Lv<2lneHsN`)!3wiRcgd$L+o)}%n2M3uLWmzE7#Xnpz= z)!bkM>`SHP)6E|qSrOl)@H(#bZAYrObWxcn6Ypb~A4GlhY|d&K52Jn2CTHSd)`24C zvc?>6^iKHANL~Lo^EBI^ARPyat-$liZ#KJ__5~NQ0}c`0?8BQtTRU`q3MjkegoP_b zA98FBU!(J=SgJYI+`!`>f9f`Grg=cAPS39zZZ?-?WePkv1`}`S#en0JNKSlkpOQ6u z7h`7e|4yAFbs?LP&E$i(>U6R(+Dm}%bQ3tVX!t#M7Z!Q+nak0>!kAp<*izzp6Bl?Z zdYV!du^G~`NLjXsnYZ6K-y_+&)hW{#{iU44&0@u2uEO4qCL(N+|L8x;Hlr3I9`)kt zb)LwN8F76N5cq%+*Mq<@d^gxlhmpi$cd0KEawZWMx#J~o4fJYk^_bsRf2@-1e?E{= zB6qekm1Q$qd+={P)nk{Lv_u`7h1bFjl<(nE_SJCRv&|tp$m0ba--FnRk4UH>k7yp9 zYoYBHl+zWay<(rXMpdujiTqo6hU4>%9x-SS0+&ouR9wckx)GH4xw^}_OYZv7Zhxhw zTWF}V^^fSwA0`LTq34UfEw3<6Jit;PTFfJ|LAw@WFrjK+D}HRIUHkVV&<($2AtAAk zkLvkEku|2{k?%1bauNxC>-DnTj4ccUq~oy z-@d3QC9upptVL68o+HD*1ST8^LlVCe_TQ;I?>l3EoYAbo>Ul%tE2-4+fYPC;I{RNINHlqj??SP7 zM`07g{w&B?oY)imY9J- zY|ENLTU-H|t%=Js%N7K@P^KXT#*D>R&;qiW!l`)IuF=_}ADXVqk}p@%qm@p#hEy#0U#THQz)x&3qLJubjH?6fxr@fq4`+ zuccYxm;d%xiv!$`o<3)ObJW99Elu{)*WDyvS z}e5t(25PWNK8s9TK)T%?O2Jcf^kEd zbE3HTNiY17ALrAjn%(^JbuSu&gM&vW(Ej037uc;b8WgS}oi>l4nn{b**8&Q#g2iOw zhR}T~SiCM{p+M-q>1-;C^TdOu2_|IZ2SyC29S6z~rS^sIg`ZcKzc1AsvHS>nELA7h zZh_hvy#&&2SPafKM9V*sT9^|T@ESC2B zhwt`w@tWwsPOQd>)IH;fo8+!DF(YnX_|Q%@PEv}tAAA+eAzND=ca(acK+LF|exH=V z=%|B}M9hnPgs+403uVWOFMNQ72sBX@cgMJeaa|>8n@Ux6qBbl=QrFHC@PTMh7fKTo zlL$Mq?H;3Mk#ehN-vWIrD?x+71a;lplUTI9Xf*VClcGpN(K#<;$Vxi zJ#uhYEislFNc?m-5ho9c#Fe&$M?;NC#}#uT3v^Po9YawJ(GWuuoXvu#nGzpP-+X%_ zbGAB0B&sPl`1sG&d}zCeR!z-sJTJ7U`prg6>Pmvo#5C%q*?uBbOXlrUk}_QUspeik zb%scDks-8puX*}$+B(bpMNg', onClickRender: { type: 'dialog', class: 'satus-dialog--vertical-menu', - + rate_us: { type: 'folder', before: '', @@ -70,18 +69,18 @@ var Menu = { var self = (this === window ? document.querySelector('.satus-main') : this), item = self.history[self.history.length - 1], id = item.appearanceKey; - + if (!Satus.isset(container)) { container = document.querySelector('.satus-main__container'); } - + document.querySelector('.satus-text--title').innerText = Satus.locale.getMessage(this.history[this.history.length - 1].label) || 'HID control prevention'; document.body.dataset.appearance = id; container.dataset.appearance = id; } }, - + tooltip: { type: 'section', class: 'satus-section--tooltip', @@ -91,10 +90,10 @@ var Menu = { value: true } }, - + section: { type: 'section', - + filters: { type: 'folder', label: 'filters', @@ -106,19 +105,19 @@ var Menu = { label: 'websites', before: '', appearanceKey: 'websites', - + section: { type: 'section', - + onrender: function() { var data = satus.storage.get('websites') || {}, list = {}; - + for (var key in data) { list[key] = { type: 'folder', label: key, - + section: { type: 'section', class: 'satus-section--shortcuts', @@ -127,12 +126,12 @@ var Menu = { var data = satus.storage.get(this.storage_key) || {}, list = {}, length = 0; - + for (var key in data) { list[key] = { type: 'section', class: 'satus-section--row', - + shortcut: { type: 'shortcut', storage_key: this.storage_key + key @@ -144,19 +143,19 @@ var Menu = { storage_key: this.storage_key + key, onclick: function() { satus.storage.set(this.storage_key, undefined); - + this.parentNode.style.height = 0; - - setTimeout(function(){ + + setTimeout(function() { this.parentNode.remove(); }, .2); } } }; - + length++; } - + if (length > 0) { satus.render(list, this); } else { @@ -173,7 +172,7 @@ var Menu = { footer: { type: 'div', class: 'satus-div--create', - + button: { type: 'shortcut', class: 'satus-shortcut--create', @@ -185,7 +184,7 @@ var Menu = { } }; } - + if (Object.keys(list).length > 0) { satus.render(list, this); } else { @@ -503,7 +502,7 @@ var Menu = { } } }, - + made_with_love: { type: 'text', class: 'made-with-love', @@ -522,10 +521,10 @@ var Menu = { function init(response) { HOSTNAME = response || ''; - + satus.storage.import(function() { var language = satus.storage.get('language') || 'en'; - + satus.locale.import('../_locales/' + language + '/messages.json', function() { satus.modules.updateStorageKeys(Menu, function() { if (HOSTNAME === '') { @@ -538,70 +537,118 @@ function init(response) { Menu.main.tooltip.enable.label = HOSTNAME; Menu.main.tooltip.enable.storage_key = 'websites/' + HOSTNAME + '/enabled'; } - + if (HOSTNAME !== '') { Menu.main.section.filters.tabs = { type: 'tabs', - + global: { type: 'tab', label: 'global', - + + section_00: { + type: 'section', + + clipboard: { + type: 'folder', + label: 'clipboard', + + section: { + type: 'section', + + cut: { + type: 'switch', + label: 'cut', + value: true, + storage_key: 'global/cut' + }, + copy: { + type: 'switch', + label: 'copy', + value: true, + storage_key: 'global/copy' + }, + paste: { + type: 'switch', + label: 'paste', + value: true, + storage_key: 'global/paste' + } + } + }, + select: { + type: 'switch', + label: 'select', + value: true, + storage_key: 'global/select' + }, + drag_and_drop: { + type: 'switch', + label: 'dragAndDrop', + value: true, + storage_key: 'global/drag_and_drop' + } + }, + section: { type: 'section', class: 'satus-section--shortcuts global', onrender: function() { var data = satus.storage.get('global') || {}, - list = {}, - length = 0; - - for (var key in data) { - list[key] = { - type: 'section', - class: 'satus-section--row', - - shortcut: { + list = { + search: { type: 'shortcut', - storage_key: 'global/' + key - }, - remove: { - type: 'button', - class: 'satus-button--remove', - before: '', - storage_key: 'global/' + key, - onclick: function() { - satus.storage.set(this.storage_key, undefined); - - this.parentNode.style.height = 0; - - setTimeout(function(){ - this.parentNode.remove(); - }, .2); - } + value: { + key: "f", + keyCode: 70, + shiftKey: false, + ctrlKey: true, + altKey: false, + click: false, + context: false, + wheel: false + }, + storage_key: 'global/search' } }; - - length++; - } - - if (length > 0) { - satus.render(list, this); - } else { - satus.render({ - type: 'text', - label: 'empty', - style: { - margin: '0 16px' - } - }, this); + + for (var key in data) { + if (['cut', 'copy', 'paste', 'select', 'drag_and_drop'].indexOf(key) === -1) { + list[key] = { + type: 'section', + class: 'satus-section--row', + + shortcut: { + type: 'shortcut', + storage_key: 'global/' + key + }, + remove: { + type: 'button', + class: 'satus-button--remove', + before: '', + storage_key: 'global/' + key, + onclick: function() { + satus.storage.set(this.storage_key, undefined); + + this.parentNode.style.height = 0; + + setTimeout(function() { + this.parentNode.remove(); + }, 200); + } + } + }; + } } + + satus.render(list, this); } } }, current: { type: 'tab', label: 'current', - + section: { type: 'section', class: 'satus-section--shortcuts', @@ -609,12 +656,12 @@ function init(response) { var data = satus.storage.get('websites/' + HOSTNAME + '/items') || {}, list = {}, length = 0; - + for (var key in data) { list[key] = { type: 'section', class: 'satus-section--row', - + shortcut: { type: 'shortcut', storage_key: 'websites/' + HOSTNAME + '/items/' + key @@ -626,19 +673,19 @@ function init(response) { storage_key: 'websites/' + HOSTNAME + '/items/' + key, onclick: function() { satus.storage.set(this.storage_key, undefined); - + this.parentNode.style.height = 0; - - setTimeout(function(){ + + setTimeout(function() { this.parentNode.remove(); }, .2); } } }; - + length++; } - + if (length > 0) { satus.render(list, this); } else { @@ -660,63 +707,111 @@ function init(response) { class: 'satus-section--label', label: 'global' }; - + + Menu.main.section.filters.section_00 = { + type: 'section', + + clipboard: { + type: 'folder', + label: 'clipboard', + + section: { + type: 'section', + + cut: { + type: 'switch', + label: 'cut', + value: true, + storage_key: 'global/cut' + }, + copy: { + type: 'switch', + label: 'copy', + value: true, + storage_key: 'global/copy' + }, + paste: { + type: 'switch', + label: 'paste', + value: true, + storage_key: 'global/paste' + } + } + }, + select: { + type: 'switch', + label: 'select', + value: true, + storage_key: 'global/select' + }, + drag_and_drop: { + type: 'switch', + label: 'dragAndDrop', + value: true, + storage_key: 'global/drag_and_drop' + } + }; + Menu.main.section.filters.section = { type: 'section', - class: 'satus-section--shortcuts', + class: 'satus-section--shortcuts global', onrender: function() { var data = satus.storage.get('global') || {}, - list = {}, - length = 0; - - for (var key in data) { - list[key] = { - type: 'section', - class: 'satus-section--row', - - shortcut: { + list = { + search: { type: 'shortcut', - storage_key: 'global/' + key - }, - remove: { - type: 'button', - class: 'satus-button--remove', - before: '', - storage_key: 'global/' + key, - onclick: function() { - satus.storage.set(this.storage_key, undefined); - - this.parentNode.style.height = 0; - - setTimeout(function(){ - this.parentNode.remove(); - }, .2); - } + value: { + key: "f", + keyCode: 70, + shiftKey: false, + ctrlKey: true, + altKey: false, + click: false, + context: false, + wheel: false + }, + storage_key: 'global/search' } }; - - length++; - } - - if (length > 0) { - satus.render(list, this); - } else { - satus.render({ - type: 'text', - label: 'empty', - style: { - margin: '0 16px' - } - }, this); + + for (var key in data) { + if (['cut', 'copy', 'paste', 'select', 'drag_and_drop'].indexOf(key) === -1) { + list[key] = { + type: 'section', + class: 'satus-section--row', + + shortcut: { + type: 'shortcut', + storage_key: 'global/' + key + }, + remove: { + type: 'button', + class: 'satus-button--remove', + before: '', + storage_key: 'global/' + key, + onclick: function() { + satus.storage.set(this.storage_key, undefined); + + this.parentNode.style.height = 0; + + setTimeout(function() { + this.parentNode.remove(); + }, .2); + } + } + }; + } } + + satus.render(list, this); } }; } - + Menu.main.section.filters.footer = { type: 'div', class: 'satus-div--create', - + button: { type: 'shortcut', class: 'satus-shortcut--create', @@ -727,10 +822,46 @@ function init(response) { } else { this.skelet.storage_key = 'websites/' + HOSTNAME + '/items/' + new Date().getTime(); } + }, + onchange: function(object, value) { + var item = { + type: 'section', + class: 'satus-section--row', + + shortcut: { + type: 'shortcut', + storage_key: object.storage_key + }, + remove: { + type: 'button', + class: 'satus-button--remove', + before: '', + storage_key: object.storage_key, + onclick: function() { + satus.storage.set(this.storage_key, undefined); + + this.parentNode.style.height = 0; + + setTimeout(function() { + this.parentNode.remove(); + }, 200); + } + } + }; + + if (document.querySelector('.global')) { + satus.render(item, document.querySelector('.global')); + } else { + if (document.querySelector('.satus-section--shortcuts .satus-text')) { + document.querySelector('.satus-section--shortcuts .satus-text').remove(); + } + + satus.render(item, document.querySelector('.satus-section--shortcuts')); + } } } }; - + satus.render(Menu); }); }); diff --git a/satus/satus.js b/satus/satus.js index 9590690..bcd4825 100644 --- a/satus/satus.js +++ b/satus/satus.js @@ -525,26 +525,26 @@ Satus.modules.user = function() { return data; }; -/*-------------------------------------------------------------- +/*--------------------------------------------------------------- >>> CHROMIUM STORAGE ----------------------------------------------------------------- +----------------------------------------------------------------- 1.0 Get 2.0 Set 3.0 Import 4.0 Clear ---------------------------------------------------------------*/ +---------------------------------------------------------------*/ -Satus.storage = { +satus.storage = { data: {} }; -/*-------------------------------------------------------------- -# GET ---------------------------------------------------------------*/ +/*--------------------------------------------------------------- +1.0 GET +---------------------------------------------------------------*/ -Satus.storage.get = function(name) { +satus.storage.get = function(name) { if (satus.isset(name)) { - var target = Satus.storage; + var target = satus.storage.data; name = name.split('/').filter(function(value) { return value != ''; @@ -563,15 +563,15 @@ Satus.storage.get = function(name) { }; -/*-------------------------------------------------------------- -# SET ---------------------------------------------------------------*/ +/*--------------------------------------------------------------- +2.0 SET +---------------------------------------------------------------*/ -Satus.storage.set = function(name, value) { +satus.storage.set = function(name, value) { var items = {}, - target = Satus.storage; + target = Satus.storage.data; - if (!Satus.isset(name)) { + if (!satus.isset(name)) { return false; } @@ -596,25 +596,21 @@ Satus.storage.set = function(name, value) { } } - for (var key in Satus.storage) { - if (typeof Satus.storage[key] !== 'function') { - items[key] = Satus.storage[key]; - } + for (var key in satus.storage.data) { + items[key] = satus.storage.data[key]; } chrome.storage.local.set(items); }; -/*-------------------------------------------------------------- -# IMPORT ---------------------------------------------------------------*/ +/*--------------------------------------------------------------- +3.0 IMPORT +---------------------------------------------------------------*/ -Satus.storage.import = function(callback) { +satus.storage.import = function(callback) { chrome.storage.local.get(function(items) { - for (var key in items) { - Satus.storage[key] = items[key]; - } + satus.storage.data = items; if (callback) { callback(); @@ -623,18 +619,14 @@ Satus.storage.import = function(callback) { }; -/*-------------------------------------------------------------- -# CLEAR ---------------------------------------------------------------*/ +/*--------------------------------------------------------------- +4.0 CLEAR +---------------------------------------------------------------*/ -Satus.storage.clear = function() { +satus.storage.clear = function() { chrome.storage.local.clear(); - for (var key in Satus.storage) { - if (typeof Satus.storage[key] !== 'function') { - delete Satus.storage[key]; - } - } + delete satus.storage.data; }; /*----------------------------------------------------------------------------- @@ -868,25 +860,27 @@ Satus.components.table = function(item) { } function sortArray(array, index, mode) { - if (mode === 'asc') { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { - return a[index].text - b[index].text; - }); - } else { - sorted = array.sort(function(a, b) { - return a[index].text.localeCompare(b[index].text); - }); - } - } else { - if (typeof array[0][index].text === 'number') { - sorted = array.sort(function(a, b) { - return b[index].text - a[index].text; - }); + if (array[0]) { + if (mode === 'asc') { + if (typeof array[0][index].text === 'number') { + sorted = array.sort(function(a, b) { + return a[index].text - b[index].text; + }); + } else { + sorted = array.sort(function(a, b) { + return a[index].text.localeCompare(b[index].text); + }); + } } else { - sorted = array.sort(function(a, b) { - return b[index].text.localeCompare(a[index].text); - }); + if (typeof array[0][index].text === 'number') { + sorted = array.sort(function(a, b) { + return b[index].text - a[index].text; + }); + } else { + sorted = array.sort(function(a, b) { + return b[index].text.localeCompare(a[index].text); + }); + } } } @@ -940,7 +934,7 @@ Satus.components.table = function(item) { component.data = item.data; component.paging = item.paging; - component.pagingIndex = 0; + component.pagingIndex = 1; component.update = function(data, index, mode) { if (Satus.isset(data)) { @@ -971,35 +965,54 @@ Satus.components.table = function(item) { // PAGING + function pagingButton(i, c) { + var button = document.createElement('button'); + + if (i === component.pagingIndex) { + button.className = 'active'; + } - function pagingUpdate() { - if (typeof this.paging === 'number') { - var pages = Math.ceil(this.data.length / this.paging); - - this.querySelector('.satus-table__paging').innerHTML = ''; - - for (var i = 1; i <= pages; i++) { - var button = document.createElement('button'); - - if (i === (this.pagingIndex || 1)) { - button.className = 'active'; - } + button.innerText = i; + button.parentComponent = component; + button.addEventListener('click', function() { + this.parentComponent.pagingIndex = Number(this.innerText); + this.parentComponent.update(this.parentComponent.data); + this.parentComponent.pagingUpdate(); + }); - button.innerText = i; - button.parentComponent = this; - button.addEventListener('click', function() { - if (this.parentNode.querySelector('button.active')) { - this.parentNode.querySelector('button.active').classList.remove('active'); - } + c.appendChild(button); + } - this.classList.add('active'); + function pagingUpdate() { + if (typeof this.paging === 'number') { + var pages = Math.ceil(this.data.length / this.paging), + c = this.querySelector('.satus-table__paging'); - this.parentComponent.pagingIndex = Number(this.innerText); - this.parentComponent.update(this.parentComponent.data); - }); + c.innerHTML = ''; + + pagingButton(1, c); + + if (component.pagingIndex - 2 > 2) { + var span = document.createElement('span'); + + span.innerText = '...'; + + c.appendChild(span); + } - this.querySelector('.satus-table__paging').appendChild(button); + for (var i = component.pagingIndex - 2 < 2 ? 2 : component.pagingIndex - 2, l = component.pagingIndex + 2 > pages - 1 ? pages - 1 : component.pagingIndex + 2; i <= l; i++) { + pagingButton(i, c); } + + if (component.pagingIndex + 2 < pages - 1) { + var span = document.createElement('span'); + + span.innerText = '...'; + + c.appendChild(span); + } + + pagingButton(pages, c); } resize(); @@ -2315,6 +2328,11 @@ satus.components.shortcut = function(object) { component_button_save.addEventListener('click', function() { Satus.storage.set(object.storage_key, JSON.stringify(value)); + + if (typeof object.onchange === 'function') { + object.onchange(object, value); + } + close(); });