From aa25bff4988ab55066e4262bde84a73166b41179 Mon Sep 17 00:00:00 2001 From: SirStendec Date: Sat, 8 Jun 2019 17:35:48 -0400 Subject: [PATCH] 4.3.0 * Added: Setting to hide the "Not Live" bar beneath videos and clips that appears when the channel is currently live. * Fixed: Handling of `https://www.twitch.tv//clip/` urls for rich chat embeds and rich link tool-tips. * Fixed: Lower the priority of custom highlight terms so they will not break links. * Fixed: Holding multiple modifier keys to display in-line chat actions. * Fixed: Clean up out-dated avatar display setting for the directory. * API Added: Allow add-ons to access the Popper JS library via `FrankerFaceZ.utilities.popper`. * API Added: `` Vue component for selecting an icon. * API Added: `` Vue component for creating links that cause the React app to navigate without a page load. * API Added: `` Vue component for translating text including Vue elements. * API Added: `maybeLoad(icon)` function for font awesome to only load the font if the icon is from font awesome. * API Added: `generateUUID()` function to `FrankerFaceZ.utilities.object` * API Added: The `vue-observe-visibility` module is now loaded with Vue and made available in all Vue contexts. --- package-lock.json | 5 + package.json | 1 + res/font/ffz-fontello.eot | Bin 23208 -> 23712 bytes res/font/ffz-fontello.svg | 6 + res/font/ffz-fontello.ttf | Bin 23024 -> 23528 bytes res/font/ffz-fontello.woff | Bin 14476 -> 14792 bytes res/font/ffz-fontello.woff2 | Bin 12112 -> 12380 bytes src/main.js | 5 +- .../chat/actions/components/edit-icon.vue | 140 +----------------- src/modules/chat/rich_providers.js | 12 +- src/modules/chat/tokenizers.jsx | 2 +- .../twitch-twilight/modules/chat/scroller.js | 30 +--- .../modules/css_tweaks/index.js | 9 +- .../modules/directory/index.jsx | 21 +-- src/std-components/icon-picker.vue | 93 ++++++++---- src/std-components/react-link.vue | 14 +- src/utilities/font-awesome.js | 6 + src/utilities/object.js | 22 +++ src/utilities/vue.js | 46 +++++- styles/icons.scss | 3 + styles/widgets.scss | 1 + styles/widgets/icon-picker.scss | 12 ++ 22 files changed, 210 insertions(+), 218 deletions(-) create mode 100644 styles/widgets/icon-picker.scss diff --git a/package-lock.json b/package-lock.json index 8f147eab..3c4cf1d8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9887,6 +9887,11 @@ } } }, + "vue-observe-visibility": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/vue-observe-visibility/-/vue-observe-visibility-0.4.4.tgz", + "integrity": "sha512-2eDYHgL2MJ2wkkNZnus56D0CG8m80BFLuvEcGnD7rQ9jxFogpXMsM9aM5Md+XT8AmYGYCqVfOVBaWFtVvwbpmw==" + }, "vue-style-loader": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/vue-style-loader/-/vue-style-loader-3.1.2.tgz", diff --git a/package.json b/package.json index d934e736..4b80f682 100755 --- a/package.json +++ b/package.json @@ -74,6 +74,7 @@ "vue": "^2.5.16", "vue-clickaway": "^2.2.2", "vue-color": "^2.4.6", + "vue-observe-visibility": "^0.4.4", "vue-template-compiler": "^2.5.16", "vuedraggable": "^2.16.0" } diff --git a/res/font/ffz-fontello.eot b/res/font/ffz-fontello.eot index 886e3abe289b2ac99d1c30b4dc5e35a39f968d43..90ba00980e7b01a43b7cabaa36d246ca396b027c 100644 GIT binary patch delta 1218 zcmYL{Urbw79LImZbN>`tEL85jEl}Fpu`*yVSD_^> zVw26x=mXj`Cg|ou6b*@H*=*F9EK7_pYRH1y6E8mbhX*thHPgzdzq{*VPd@qH?>WEw zy*W&8ZNPp3R9@1ZR-~hmH zHXS%fYJWfuz)ueptN{ViLpl&7-Ozzv(tA44NBWlz^ppOh10jH|1|1k6rS56~kbtS7uO8ktvM|3l&^DRoQc}e8}hd!3Y7@RB6JcQ0+#`fA;+dc zphFSxI53`P&j4fmbHFn`*4$j%+|(%w^=&9iVjH?W{pi`{HZ#e=I=#N0K6Ii34Q4dB zJ6Ipr=~b*fK7|{TYD(5xOFVZ(^-sk*I$~4)LuXrfix?A_7`%Gy*(Ei~hvpZ@k1X~^ zEqmElC9~3A6OU72mg@c8A_{TdEFK=kq3o5bSF%HW2cwVH(!Q`(ekeU89 z&eHUR>}7(|wp$XLA9HtLKl;2*R9G$`Rqs?)ORTD7bQnv6+8FyJsk7n7T16b!R~IAN8$C0?+#p;V2cdmmaP(Xh+y>9!a&=jrO9Z&^{{ zF32rPK>A>hGva7nmV#2NETd;y3d%SwW0zeazr1s4RzV4@niiQvE%zmQL)wt?7;FO#(=bUrZMfX_SFocT>(Evwb-#&R!#9<6$ qq&ON&qlG2Ui7%?{Cr{03a^h6F@Ok`ph1Ox}d3AoEw)p;2Le;;;>nYs; delta 712 zcmYL`OK1~O6o&tsNhie)L};uviD?!tv=ObgovMvB4~?pwNvn71S70^h~be9KQMPIrlZ3S$fVY&zM-b z2pI9AC|iRzv9lN`&Hn`01b|o~tEi`=z6HuFKwB4aijKod9{r3HnoGOMzxq)~2O;LR!7q(7Y8rrZE5+v@a8KKlJ} z3>Y=@ntCOvehT_lfOtl$vPm#r-hj}iA71%tal`RR^ z9R9@({EwTU(44{o9U*E@g{Ed$Y<9^!SJ-d9=?Up8R@pLd+@lT?=p#Si;0U?I!BO%@ z4*JQTIT#>+;b0Khq9&O@Cc8NpBGVod93zJ~I8NSdkpxcA;0Fi8Hu4ZNbZS|2K39^aa31wOsq_4_YBQ z#KPK(=u7SHxn*CuOX_Oue$wsiF6?nQW#=1LpKH-Q?r!W&c|xA+o+VGCXR`H=!g_9W XSfH(s#%}BKc$#U;=hyUG6Ft%&c8101 diff --git a/res/font/ffz-fontello.svg b/res/font/ffz-fontello.svg index 4e2b57a3..5dad7d65 100644 --- a/res/font/ffz-fontello.svg +++ b/res/font/ffz-fontello.svg @@ -100,6 +100,12 @@ + + + + + + diff --git a/res/font/ffz-fontello.ttf b/res/font/ffz-fontello.ttf index 43ab3c1f49ab0922886cb27962c840df31f2c1f7..ee9319bd1841fb06a6be6e8422d496df02805aea 100644 GIT binary patch delta 1199 zcmYL{UrbY19LImZb8l~H`pnA zSrc7cwg)F`mau=uENn5^VrKfVm&Ih+%a#zsG+DySp4`R*+mL0^b=vNCy))~{C*S)$ z=XbxS=XcLm88^PdtL?=<0q`gQoJi+V>aG`WA0mGPz_6S?UvLZSk3Rr7vPSFfX*HXB zd+F)~`7HpmnoXTkX}*d4ccgXM`PZiB?rhEi7-Imj`I$`Ww0t{5S&1)bJv2iTb!D!H z{C)BrGr7Xz-;oowb%60Y+SERuPp5X@Y4HQR;HH8rxzwVH<%SaZFUh;lrgE9+NahLo zH30TR&7Ui*dupEmD4Kt$E@af75BRJtR<3d( zR@~T2aRfY1`XA7zZJ`5n!mTSh5FmYD2l`1r)PW!=wMhd)q`&DvnDloY*az^yt^@l? z9Zx9&4A27wYe0nbpbkVyH*{c-^q~$6kv`IaVbXteAO^7Assjf|sm&TddD}nezzFGG z9qJ8i-=lB2eUFO9%64P0yNI=F?G`t|nW-Ivv4I{$Lp=hr1a*-^;Bvq**_ckTU?$zwmdj)-NU}E zSmd6jWReOCR6h_D(2(RU!l9!$TDW%eT48i(|M-q(Iv3VzbbTWDJy^gRv(UfBJWWqa zerAw;yF{V$IZrPRW61A9nH3{qW3{1CWDOOQ(^N5iZjn)Rnkyz##jJ$^P-eC8k*ocB>FIq*x*zWNLtwzmx`@^)C4Q1|<)Fns6 zPj|Z#&h8a4Dt1c}dgsKbgmV)1J7n@J)eCJM=yl**E0WYLMYJWU`kq`?`aTjJk;g|y zPc}yX0y9U~1Yq60^zkz-@$oRmOVRi@^%J!!i_~h|^-?8%D{xV|A#KWM<)3V;_Sfy3 zEw8lv(puO0nS(i|+T3lc&V4S?rMMPct8Ti-+JPZn{xK2ZC~U{!%L0yJ924c`!&$Vl a^abHnwdeGi1x=>TWJ@*WZh0-~Zul2~;w4W2 delta 682 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 E4^_#)SO5S3 diff --git a/res/font/ffz-fontello.woff2 b/res/font/ffz-fontello.woff2 index e74652b7c2afa3514d150908354d5313426a0d87..7028f3935235bb9fc888a3ceca53d06eccaafe23 100644 GIT binary patch literal 12380 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 O@WQL&9i+MVM9~T!B?@T( literal 12112 zcmV-WFR##dPew8T0RR91054Dg4*&oF09o(=0510c0RR9100000000000000000000 z0000SR0dW6if#xX36^jX2nzj3=~4@U2mk>#0we>13Z;yJ5IJ3yJ@TG0=cF3@+SBG%(TxW$u6v=V ze)9!_cI2Q*6L_T}!PHtX>cS229}mRIf>u5h9Qz=LS$LsSzWA>zl1N$-BpvgVSmo1M z)JV!8NjyQ4q6~W~edrMy`y?0s`CqHN??cru?m_I?*&%9JZd#@Qfv|usZgunuxiX}4 zA`=&#dFS#|P7nQ5+_~?Dy@*Z)W%F?$d9i@JmGO z39gBR-%FgSm?YE0p^^Amj4|L2zy`xvCfFt&2x9%i*cfb#t$8(Q>wjO<&jS};w`6;W zVELgxXeOkZc(?pjWJ)06FyOKVQyh*Wo=_?XYb(X zDh&rNyXd+sOHll;*B6^5E zVt^PTMu;(Df|w#^h&f_`SRz)4HDZIfA(H~xnWOy|);LRw2cjFp-7+=7r@o)GtzJhO45d4^y z;Ma5){!I7a-*o?z18+^>4f=ZTHD`@%;V<`H>w$xRl=lNhkB^Q=d#*jh6zRUB@%TST zkk>~#G$Q0N>1)#?=?7a<;Nojq(g0)dS?SWpeoYg$qxSrh6BUylfwxY#&5k#i?Wg_p z$OtEnxpp3Ry_9>khZWCWm?C`_w@7EW)M9d_aW4}u&zD!#RCx{dVdpa9=uW9MhnG2^To_nXh z;B+pW;if@qsRR%7V9e(|hAt4XSojK}Ymw$NCH-p!eQDhos9-ST=%16x=8_e_8a+bz z=j8QNf4_M)1JWz3%z{SMaB%6e`!)VSz4X`bZ0NH2%pF|JEhBbh8%kQqX$GGv!RWvzNX@kxnW4M7!oq8W<9lRnRl%fCUg{iEdg+=k?7n zq76lIwwLPi7>D8GU^|A;L{r$T(ne|HP+4M>tZq5Acxw-F4jv_Pi zyyTe1f^lqM0$Z5G4yLe&X&k`}j$sxDn8S&f$BekXqY`KV&7(!?!4fvGj4jl$gB9%I z7>-~S$8a16Si?zm9atYqu+b1$d!a6#*X$V8Ii$!+#8)QVdrwS3tyV}~Kjzpm~A@9L=Um2W|nvqwdN%O+JA|3&!gGuYJSysOo- zlKa3q26YsquVqs^Ky`b4zD|c|CdHE4@DZ|+@rS6COX@sZ+e_aKG}I&9(5Snx+5S+$ za`BmLX@HE=`JlXyX2R!_v}3?}YUkdhIfW{Fh0ZL7yz*B@a=3Hmewxet)=c#@-+C+E zwg)2BF@<(Px21^iAYoJ`9$^^9O3OIbB(b7F9;C~X_ya`+=#qAE*(d`$8lROCZZRO> z3Up<8V7ucz#w8J4y3`uOE0Fe}%CD=H!~7RoX~t!m_No0s*O%``+GPf_JnMiKM0<*# zNKz`FV`eM&T!nQNbJ6B^0zJL0$PY*C=~cCpmL0UYUg5^O{N$E0T3hj8c9(3P){Wv6 zw1qNEbm#68^i|$e{`_w2^qZZwIfJ=;`X@dMHX_I1Ij|XN@j^M}mQvfFL&u7nbsIZ_ z3nh*JWMi(w6_)ezyG0J4>)Z0-U&UbH(W+CG^3m(MY^1NJ#n+GbD513-_oqeS&FFG- z(I7uIGVLA_WD8t+zkFNH*De$pB^D2`e6irs4400_c&n(;rTUvi_T_>XEneE@Tq%0! zDs&YKu4N?XI##$b0X=jR3vOj3=r&fkGXZDOT`ahlk)Zon;lTuS&_gVEl#!svSmC(| z=%eSc;Dw9?y@(ZFnt*fYWh{6lBSEiX-S%3+7LEDqHx^HskvGt3h=^@44$vBqja^Kj zsV;=6E{{BA1M!#*Ny>&aWkZ&-As=&~NI6iZ9H>&xKCGBCbK?{-LDvY2N89KQQ_^7@ zi7F>bVWuzr6{SCUJbU;XqH;vU40}S-V$X0p?T)6?1G0vjeso2m6a`;do#R=> z^MW|`yjxU&rgM)+JxVaX|Bqyq=i6jkmY7n3{xPgZNHj5`sr?c2C=Lf>qKY19trU8= zLXS6jafpf_op6p1xeqw@zl5ep(<}-7xN%lDeu7B1OOqJQ2$7#CAqg=di*rT*Iy_Ys727r%+1?+7ODJNJ;P-joFCV9QEW6 z>I5@q5}k~f0GAw?E+RU)^U2`NAlppW<6MQ;*gdgp(yVK~(1IsvYC5QinA(xNkev0v9Ip6s3>y(RI!~Ap)e_WE$qG`pi+Y zWfRi{Wz-mGRuzQ&Nfl-bM&QKRV*O8}u2a}d4VK4xpP-SF+6PTtRC>F3D|M8pH~T~- zr3aI_KuoS8_x0lzSu;$~Bkc+Nczgf+%Bj>k`wThoWH~tNoGt?|xi(qu(2-)SKQXk0 zkWN$pa4}tpwcmbHB~}EX9eOP#Vl8)vMy4iKIQwt_|Dsk+=$=Ou`kE0WJ8#@{2_obw zYi6S)bL7pgrwbTF=D3O7bGQ;`oR;q~1+9}*ULv8en?`yzd8mr0M{31og zN+TJdVvvR~D?LFqsB34MbrhD<=*4a6+)W~9KZi9&7?IL}IokDVvr>z*D6&d)uYt4S zqLd~Y1LbsVa}OaEY1ZOI1*-J%>v`Ht_~`!b_K~^~8k9E*7H^t|;Sg ziJz>&rQYuT<>4PNv(&O@mph@N9A=Tr+}3sqXD=F|H4??HwaLTv`X#tzjd_H49*W62 z)nUast!!BxA70>MFKYq%_}W_Ms>(SC+1s6m%y@s|AOjgCtP3BwLd>}HZfgb4vpD4v zSY_3D5UNBnjzZ!ev=Uu~J4o}Wf%yt>z*}E41xyy|p&oRgL=I8@X#AY>qiC*+TuOka zsQ6P^r~U(vz-K#&H5*t5h_CR@6NfIie;SOb=6JiJ#`mjjDOKmZNvsu5} z-N|yOFr?{l_z=CNtF#7)AdIxbx8fGYwp$d z(P8%k(Jp2&G|N+GVAPP#J)>k{hn4eC2apbo=CeGrGxmBEMQ0 z3i0UT2wJJ}$w$TiC6$pQDJYa@hJwN$c|0PHhE~@jSvJ9ND23ms>6}XIwt{J2e&|H+ z`p>FGo|hAl{6I6pxhmdrpHi>BrfhE)Z25Kl{c;$NeNBBUNHn%3XPYM#y!A^jWc4je zzaXFjPZO*vo?Sgw^Hr?4X z9g)6^YFbz3zFU~?9z7QDqE(71pspfsZq7s1Zf$QD*f|!X$h*uW=B4$U6g7?=EVQBz zo!6N$6g5+PfDSL3lAGmMMRa}&^OfBL6S$Ac;p@-YI3IjpCC#j_X|+@>b?Jjf#v>V( ztM&A}rqc*wJ-%}~NG7}429Z^d;o2ByZ@%cGKhMjLiKm2?t_Pm8M1qsM!NOx)6S2!% z!+C)SLxt~dbaM0G(X!=XTU;gX_(nAFhl+{+{Of;u)k;SH|Nnnkr7#Y{$5Go}o^>z) zHg@P!E;Iw}JsE}>2Sd1k0tC%h7-IWg69SIWwh<2R-rjt=QYr>zT-}3n z*7>HCju_4gLuwDKq0={eKfM~FdGE(HKJR+Ltu?C3^mXKIz$GddwOf7vmKNTgRc|TJ z{)Un|@)#8m2S7LLAi%}7j6OOx%L2ioFc2B5odbc~7rQqxg8R>JeyAu1F$A|pbZxWi z8_&{;mP)1kZx7(dwS;c#?~xn-x1O0H+f~uO&z}jcC#7Un&D8w$%I-s-t=yH%uAnXl zeSv42S8ooZDeH}+&v@5TsVnw-Pdhj8p{IKQvVZ;f^Q{TDW}it^JA~LSHz2GXJ628~ zKZ$k;RMREh9gL#yed6JgNc-M6mK)}Izv0$jv}$HE>(zME;K0^*Jby;J9ta!#YNLkf zv0D?{q>QF_9x1#oE`u@F4Eh{4mMDxWK3o1teom@TGB%njRcn{3HO zhYK)|-%NDR#?)2Rs#>)ag_ZieB!Et6$$#M}HV8?oH`i(yt>+S`6OKW#xXah1i6 zM71e+tJfEbotT0=ZQl_&niexnKCJJa_~?#*5N8 zKQU@IO^t)_7@W-_KOJXy057lNtL|%VjUD@&r4~%x8-~KU;y1qs2L9T3=zqVgFM+e8 zt}o;%&3nXy_FgT!GTRsnnyto98P0>qn?c}f;y_-h)YFcp`5_A&u~ZdO1=5#$qoWtI zI(n;63oYZFCH7^!ef)0P$+hLAH0hfO)SZ@68f#;9cMSKQTW3F*9_Pas*E{#i;2so& zX4&dk)R9Yv>X$1mSQN)$g~oY_0(Dc#@GYVrsaPq1j>IArMk3n%x|pbkCE}0yC_DT0 zme*tBfz0w=cEUO4iCDrrYdvxOf6DdXs0F!eDRwVr{I^p-$zI8V%%8J(^skRKM3Mtw zN$)Q8vm!}kEQ(%=L7<78!jVs`iyQl@G3%#KuI`*>wVyvy99?>lE5ODQ0{KWxkr_6x ze{-%k<#y9oKBM#%dd0ncJfp`*^WU4ixI8RR?Ls_I(ed$ev!kx7kq&mi}qrOBy$XO(Wh(In=?Thed?zdZ@ zssR_pss&{2-|A+?j7NFMQIp_E}Tig8M`3!hF-l^``a(9tZc(d;P{@ z64Bf11KyRF9gdDG#2HUFL=y4l;&cjNrOxE{@O!Dl&<9v=DbU4nE&u&9%^aff@;_1%0J0AnioHJ`eo}By|B!s9% zKu80n-`XMAG745g17fF#MTkVccE4I`L|#T<0vGUf!CoA;2v6u2&;#$|_Y$HA04JYF zbgr(x-tyYd@6nb=!|3esy86&-3P;CPfjfq0!!2sC`D+=}x(m@(YQ&rxk29;$;-3|Y z4-pkP+@2H2Y*Qw77xFp+Q#ozQ;}&4m;!GVAEp9Xa>yMoVbZMK%qx2B()pmTwo3=pMjoz?2S&Y1FGGqEor{khrN_Lv9b( zNGl#DQc_!6Bd(Glz3MKH31a!SOdR1q-?pivqx6LL;I8v)hzzfM@b97}z|4p_b-;VL z!TlL>Ib+U?flp#e`f9C1?#kXGGPl#}S1m5teo z$TU#M?u9rYw7s|c`JO#Rc@UL@cTXe=HRV8EzS-mGIX+ypB!4NqCI5fqFVY?jCWY-r&1v7ED0xq+!PehSY)+o@2 z4;Lm%Z#y#rqr6NG7Tvc}d`~}icNcL*MH#0k?X#y;lzhVzG1N$MSK-59L2!i$19)0z z?dL-0XY8G1aLKgHM~Mqf%!(g;tQYZa==tuyo;65~HZ2QKlENCM57g-IrouFNXTUSMCnrC&-!>BDKK$=e0Cy^*0k%kf!B^OhHsmc6cJWfU4H7 zoIK~rmZgyd1slF^C?noHqLfrkI+~fM*W|i-vc0{;aen;if`9Z#6x9hscvLLZh-#W% zese08Jj7B_YgJU%5IJ^YiULtyazU^K1i3HwZ|K##Nnp4RcNm^i&|#~>$h}CLGf(`y zSBz*pR>%c?wmnIvz- z2N#EDM`jnprTjZKl&Mht5nH zb6J!1TN|tmTT|-UxvgLNmNy3u@N>>zNxPh{S#wwJiN9!=9jDZCLC^vR72bD-1;kAy ziL~k_AUc(}+REd{Zx0-Y8*1^Sl{gL_*N*|0BG77dKUW2|!d2BDQwxw*Jm#g=TJxTy ze;}DTF(yV>*I&Ev3w+T7qbCsJ0u*nrw zPGfeko-xO}0Wt6H7C!LHbw~vfcnB69eW^Em?IS~Mt08gw7IrRI@gJ^|owGe5)z_^^ zNX>ySgiaLl&(-f+Gh3s-(HAAj$H%g1MHvk=g@R^Is2U&7qLqN|!ar=7s`#6tLg8t% z`Ly^Pe1zX%5f8!V_)t^psq}Z;hvXJh=0sdt1ZgGSIX%t!;}6c%bj!unuv3j}?UuCm z!}^LlOA`B$-5Fa7S#@M!f85H}Rp&!BJyK3L98G{qVDC*%6F>cwI6XyMxfsY3A1kL# ziXxJYF1ANlT9yxt_n(bb4bnYlR{jmv~`TD0ivG)7KP0D*G zn8elZzZYq1iO!`Ra|j3tXj0G%zlQ*rh`IO`Lq2E7r8ROfH7!tDEGZ65V@l<4Lv}Xq zITA9=4&!%5b%l3DbsakYtY6b5h2z5+5xDTL{Brmdt>Vvc{6fgmYD?Oe=c>}?UwtC0 ze(>kdYpANhFUc)4kIzWSH@d15_gX&fy0(Ap>p}sHiTZEqt83lF*--cK4iR$q^zShj z99v<6!mr2nU+enRvNy51>jqhR#>&BQ3Oe@i0)$4}@jGx^f3+}R5APB`%e;En?T5oM znU`}|QeH0hauS_h$wFZ=M16USFq*p;0YxDoRU3^O%iRO(M#2%Na@)rwKvi7cQ&zQi z4j(|*UtO6sbfeh~&Z&Ah5x)m#WS$6N)Im=~ry~4dD=lX@ZbZHR)rk}IfL~;uuJ#GW z1nhvXOP*$rEbt_W?a&cM!CFxNP4%uAc?;^Z4p9}ayd*PGSXTCYRP#<`tHaTbbRN3w zV5sRdbtOn@S|y|ZfF7XJ9f1s{{{s{;g`&autT8e`9?OEYgx(JIkB)9Fm)`SU^8ZLv z;dk3_-j08NbH4GgEeWg&`HNbXq`?|6(-;GG99M~(z_wt2P4V=Vq57Lqq~iejcnT?m zM$MTO>U6@TBM4#$V4VmE8G(closkT;rAROtt3bpo^4Yb2MX^((%F0Y8F&1zZpw+9K z(2*>2|GNPq_WpXYgd~scS08LGpUNzSpV+0O`tL5w87>z4g<}sPNrjXszE5?A_!24d!pEQ{lEInhZd*gmw@oY)?{3)e9C_ow_{6NsR zaXB|9qdw1a*YQgq{R3eVNlIyRs!)AtAd0j+@_csKyD7jDM!(#yE2#)*Re66*C&N8A z@9m8nTkWwlEqv5;+(-~8ajpXy^s|N`CV1+tQ*(^lowsD}Zd`W|5$Y5A(gRQNtFiwt z7~)(HYQ0-r>lbXz&~m>}z54wT`$2+ZU_OcUz@@nHY<#wcBu}`x_p~~q?Tyl`L08S+ z828RR&x_;zd&QR5cGMT`do*w7u}a0&j>Gf0pAYgZZ(hZX>|ZW9Yu{XKr#e=&upl~q zb;T7HZCjfbrZ*n9!HlxpHa-Q>GBwqr=`Raaya8}QkQ-kn#p*1A8x6=0+F|m#9V*_= z;facOID7>SU@zRPAc)exx;B*gO*U(rob^Y>dypgGXEw})1hw+daL-wJYKKmLkkxmX zRjlWBz-_D!y{?06bKS=%GXQO}9KE@Z!2Stw7n2S(5}aHGqVlDa#Z}a|J`MYH?(LreEXW5tMNgRVW}|kP z;NnSy!?5SI?qc(l{(S`|V$qf`&DG+cm&bEVRK z*H%TUYyoUdsLB3y=_ySzf*xnnLI;aN+}v=H}4DkQ%CxEb7KxW8{oq~cgJG1Ej$ z`=fPBJC!E&)1VX;eVI2e+yss;PDV0#DG_SdXzxfMB4clh>5%}7gb)MQ=W#yxJa@1! z^z)8$p5m{qf=@=%KjO3KrZu&{QK?j;)%!e|S9`rVow)2S$z{Vl>JbGm8RpM%K5}{B za%iddxV>=AeyX^n!T$mm!uc-k7r9Qjye+M{<~BKNTo+xzw6l#ayF9CFev)(6#SYJX z&(-AOBu6;$GOq#mYL{B?po`XX4!9Jy%)amumxbk$8P|(hfAHKITtS}Y9;76W0^(vR z=p+JvAMH8!^ND#y|BoND%0)4*K?awr7jJGA^87qQu#QMqK4@TzyE7~9N_cd#e4-z@ zzdz<-0Q_HW6E#L04fC;iO_~64PE!lAt_gsF724cG`V!N-3C$S|^2vEkFGx)k&>3|r zj})vjm4V>PY-ENMk%5fdjfoJ@PDlB)oA3EhIfoOfJdzXMq<*dT-|Ftn>WM~&9$y|t z>rFmRzu~xE^5Se7U1@H!CE}r8HMO94laI`+uSbx}$vRPJY;c&5&Hr8eQIL=Jb$Umj zo0K7*olf~B4A3Ab;wNz3ZQh-D-0z(Z^Qn0aED1`Yw0ynMnpZcWz@W|HyCJ?#M0~Q= zVc+yZ3+EJ(lTLs#!yb1x(mAx-hO{c)>I??Xa@`!ydTKW5*dDV+nHye=`e@ef={s=Aw zqd0V%xfx@Ql>yiAN`WZ;;w4NIejg>objgHi*GYf8tKCA_3n4ho?JAhE7`WA`!GBXo z>Rq-JO!`SiI_l~7G!3e<1ni9yUyYQNKGp%v2)ZeUe!=K4k;aPp338Ks z+Vbv4wMIipkvdHGmFTWw zvc9CFcW;%K>f)@i<4(SHDYU&ILnfBB?&-LF^(Tt)()1>h)gM3yL9oCZ@877HXu3n_K3VG39Do@Bd zVfX|{{3RkI`1^=t{E=YXpIM_;w}4ZS#>JWfX^w zi;YbLe<^1fc!ph+?YM|-5ZT{HO78_0>xXw+#Ine^Zo7h<@xFH;r{OS z`trEfYWD}i+J6$vg&zQ`;90qynP3C1+nLMt`RS;)vPrUE@6$Pu52^6aX~D~yc?tn^ zyKxEoR$ynJvZ>}sK#KHXG*dj9avzgYFGh-Jpg2c z=3SlHdxl4>o#3Mg3c3L%d{7(nNiz3j;zG(;z0;Ke-`pZ$B&_Luko7pQ2I*LsMvbYC zF|$;uqoZ8%0U9Qb3{;Ly{R+=L=`HsS9>Qfgab zdvt1Cu~@w2>=7Amx1{fE)09A5GF+3t#NHd zRHy1=NA8r{IY54|hc#)*xd~|6c=Z>Oi=|?g_5JoGr@`V>E9}mN@;~sAXY-AofS>XD zc)#4-T%C?iZ%0{Iyf~X5OdnhbuGklxPEy5HaW*}eJQxH9 z$AuyJC4^p5=#21q1OOC;*K(ksD1A0$(gJ|Z6T+-}y)4#{Jy2Hp?&{`&6U@JsO}LPT4-w}z@I9>T%IUYCRH&qMI7Ty^v0`u* z{w~qI@d}NnWHpGPJRgssM;MNo>iO}=pyeExI{&_U1CthR!zE|hCN^4l0oPi5QRnFj zsuyYzx=CyLg}o;wLY2CyCk;^!AI^diUz>O(?4JFWB{go0{iKm0`1w(g$n?A^Ux zXg*+8;@N2nGwVqZ`51+c4Jjj4ma@Jy95!3d@-xtXl+nQE6(KZH2awDdF?N+7{97UG z-|AYFU7u%D3|$~o6&JnAHmkqzo$Nf2c@+o}`#^w~5Znp>{mk4b5wRbxug>P7_x_+i zB+VY6ECHxKLvp|3iSQDRewVt-wyW)gL!*j=Be#6P4{T7{)auE3=H8Q>FPS;-uIGpa z>90?Zx69S#eA+w48O;QCVde?2KGcD2|7TY+YdAyDgpVYM@((d#+zlDE1%yT^LpX>eztgCX9`4}(e7z3TANIr$1z}X0r1N~_v z5+4eMXM}YD3`wR?$oaEOq7X(g;hf>&*>}!P4Ud^G*XYRUlY?&$9P97tJk+tbeP?U4 zx!zP|*sd?pZp~NbW=Tc-3@)1yl<1)@P*Apy25LQgp|O~&o_c@4 zcn~RZ&Q32Z?R}klV~R-Pm!gz%6f!0e^LHiZc^h|YI35we15-gY?q+-eFLt)w%+c9O z*nY5dh8{uCk5RUW@~43HB0zvbEUgBXYlv{tSdSIOID$~%ZxjL*P)em__XXWsw~52M zbvi=o9Ew{50_g^L%w65p*{N{Un>$Gm%cc4PY|*vtHRV8!eX&u61Qu3rahkY~6f3$n zr`_X1b-p53DiQLc6mwxo7r&Xl(9v$!M1^un> z9uw?Hbv~Fj6u`mD3gPHM;yoq*a|e-Tg=0CQxTtYU@L}k$X}s8LiUx7%&_`LB z+EYj=pJ2^$)>yyx98tatq&PyUJAfBQdP#+8d5fdRJi_b?7{uLA6$>%}4Oldx?)l`Jp*Q)NHd zv~ftAep-cT%a;mHA>pweXz9vxyYj%3r-IXL(vm1?jr^1f@8--K89hm4&puE7!LOAa z7H6aNq8=qLFKY7X{Ke08*LgZYC^aL9$cJwp$LvTXgFI!Hz;{go#ig!7|P0GmEh-{LyXact%s9IG{C>bEPcM zd(B3;QRkpG?B`HDeXm^XfR%0XuHf4mk@?B9Ea_N0 z5FHr#!G^nGWAIuI*H`+o@C5P#27BPUv+SSlS<20Ne9?W*=zK6;bdF;otmxIJWbOAM z_5VXZWLY_RMT!-aC{?Chg-TVb!NDW&<%fvGUw}YC$S8t^2t^epT!ctbqQ!_6C*Bqb z5+zASL&v}bNWsFEii0anx(u0k(w4L>?MS;oug0vSz%j!~?lPkDUxvoMaW#{Zv~M7^ zj6>LKJF2K==6|nDCRwm~a*-&0K~+$!R3}O^j!3W~REc?duM8N$EoC{Pq^@3RRuL{$+=1?)&(vvuoUrF<)a_B+`ZxttPEx$_iL^Oe z<8r_%Oz?_#`L`efWoSyKrXJli%<0Y*r zxEo5X(d^s&kwim$8l7mx;JM<++C6rDJkqeitAX$Ep#1E @@ -174,7 +174,8 @@ FrankerFaceZ.utilities = { time: require('utilities/time'), tooltip: require('utilities/tooltip'), i18n: require('utilities/translation-core'), - dayjs: require('dayjs') + dayjs: require('dayjs'), + popper: require('popper.js').default } diff --git a/src/modules/chat/actions/components/edit-icon.vue b/src/modules/chat/actions/components/edit-icon.vue index 0bb3afd5..ffddbf6a 100644 --- a/src/modules/chat/actions/components/edit-icon.vue +++ b/src/modules/chat/actions/components/edit-icon.vue @@ -4,140 +4,15 @@ {{ t('setting.actions.icon', 'Icon') }} -
-
- -
-
-
- -
-
- - -
- -
-
- {{ t('setting.actions.empty-search', 'no results') }} -
-
-
+ - - \ No newline at end of file + \ No newline at end of file diff --git a/src/modules/chat/rich_providers.js b/src/modules/chat/rich_providers.js index 9e3ad375..8b580604 100644 --- a/src/modules/chat/rich_providers.js +++ b/src/modules/chat/rich_providers.js @@ -5,6 +5,7 @@ // ============================================================================ const CLIP_URL = /^(?:https?:\/\/)?clips\.twitch\.tv\/(\w+)(?:\/)?(\w+)?(?:\/edit)?/; +const NEW_CLIP_URL = /^(?:https?:\/\/)?(?:www\.)?twitch\.tv\/\w+\/clip\/(\w+)/; const VIDEO_URL = /^(?:https?:\/\/)?(?:www\.)?twitch\.tv\/(?:\w+\/v|videos)\/(\w+)/; import GET_CLIP from './clip_info.gql'; @@ -74,13 +75,18 @@ export const Clips = { hide_token: true, test(token) { - return token.type === 'link' && CLIP_URL.test(token.url) + if ( token.type !== 'link' ) + return false; + + return CLIP_URL.test(token.url) || NEW_CLIP_URL.test(token.url); }, process(token) { - const match = CLIP_URL.exec(token.url), - apollo = this.resolve('site.apollo'); + let match = CLIP_URL.exec(token.url); + if ( ! match ) + match = NEW_CLIP_URL.exec(token.url); + const apollo = this.resolve('site.apollo'); if ( ! apollo || ! match || match[1] === 'create' ) return; diff --git a/src/modules/chat/tokenizers.jsx b/src/modules/chat/tokenizers.jsx index 0d68c88b..7be519ac 100644 --- a/src/modules/chat/tokenizers.jsx +++ b/src/modules/chat/tokenizers.jsx @@ -415,7 +415,7 @@ export const BlockedBadges = { export const CustomHighlights = { type: 'highlight', - priority: 100, + priority: 35, component: () => import(/* webpackChunkName: 'vue-chat' */ './components/chat-highlight.vue'), diff --git a/src/sites/twitch-twilight/modules/chat/scroller.js b/src/sites/twitch-twilight/modules/chat/scroller.js index 84f7d4fc..16f494e9 100644 --- a/src/sites/twitch-twilight/modules/chat/scroller.js +++ b/src/sites/twitch-twilight/modules/chat/scroller.js @@ -319,18 +319,8 @@ export default class Scroller extends Module { } inst.ffzHandleKey = inst.ffzHandleKey.bind(inst); - - Mousetrap.bindGlobal('alt', inst.ffzHandleKey, 'keydown'); - Mousetrap.bindGlobal('alt', inst.ffzHandleKey, 'keyup'); - - Mousetrap.bindGlobal('shift', inst.ffzHandleKey, 'keydown'); - Mousetrap.bindGlobal('shift', inst.ffzHandleKey, 'keyup'); - - Mousetrap.bindGlobal('ctrl', inst.ffzHandleKey, 'keydown'); - Mousetrap.bindGlobal('ctrl', inst.ffzHandleKey, 'keyup'); - - Mousetrap.bindGlobal('command', inst.ffzHandleKey, 'keydown'); - Mousetrap.bindGlobal('command', inst.ffzHandleKey, 'keyup'); + window.addEventListener('keydown', inst.ffzHandleKey); + window.addEventListener('keyup', inst.ffzHandleKey); inst.hoverPause = inst.ffzMouseMove.bind(inst); inst.hoverResume = inst.ffzMouseLeave.bind(inst); @@ -624,18 +614,8 @@ export default class Scroller extends Module { inst.ffzInstallHandler(); } - onUnmount() { // eslint-disable-line class-methods-use-this - const Mousetrap = this.web_munch.getModule('mousetrap') || window.Mousetrap; - if ( Mousetrap != null ) { - Mousetrap.unbind('alt', 'keydown'); - Mousetrap.unbind('alt', 'keyup'); - Mousetrap.unbind('shift', 'keydown'); - Mousetrap.unbind('shift', 'keyup'); - Mousetrap.unbind('ctrl', 'keydown'); - Mousetrap.unbind('ctrl', 'keyup'); - Mousetrap.unbind('command', 'keydown'); - Mousetrap.unbind('command', 'keyup'); - } - + onUnmount(inst) { // eslint-disable-line class-methods-use-this + window.removeEventListener('keydown', inst.ffzHandleKey); + window.removeEventListener('keyup', inst.ffzHandleKey); } } \ No newline at end of file diff --git a/src/sites/twitch-twilight/modules/css_tweaks/index.js b/src/sites/twitch-twilight/modules/css_tweaks/index.js index 3230a2ca..326be42e 100644 --- a/src/sites/twitch-twilight/modules/css_tweaks/index.js +++ b/src/sites/twitch-twilight/modules/css_tweaks/index.js @@ -230,14 +230,15 @@ export default class CSSTweaks extends Module { changed: val => this.toggle('square-avatars', !val) }); - this.settings.add('channel.not-live-bar', { + this.settings.add('channel.hide-not-live-bar', { default: true, ui: { path: 'Channel > Appearance >> General', - title: 'Show notification below clips and videos if the streamer is live.', + title: 'Hide the "Not Live" bar.', + description: 'Hide the bar which appears beneath clips and videos when the streamer is live, telling you they are live.', component: 'setting-check-box' }, - changed: val => this.toggle('not-live-bar', !val) + changed: val => this.toggleHide('not-live-bar', val) }); } @@ -254,7 +255,7 @@ export default class CSSTweaks extends Module { this.toggleHide('top-discover', !this.settings.get('layout.discover')); this.toggle('square-avatars', ! this.settings.get('channel.round-avatars')); - this.toggleHide('not-live-bar', ! this.settings.get('channel.not-live-bar')); + this.toggleHide('not-live-bar', this.settings.get('channel.hide-not-live-bar')); const recs = this.settings.get('layout.side-nav.show-rec-channels'); this.toggleHide('side-rec-channels', recs === 0); diff --git a/src/sites/twitch-twilight/modules/directory/index.jsx b/src/sites/twitch-twilight/modules/directory/index.jsx index b86f4a67..fcf75c4b 100644 --- a/src/sites/twitch-twilight/modules/directory/index.jsx +++ b/src/sites/twitch-twilight/modules/directory/index.jsx @@ -85,26 +85,15 @@ export default class Directory extends SiteModule { this.settings.add('directory.show-channel-avatars', { - default: 1, + default: true, ui: { path: 'Directory > Channels >> Appearance', - title: 'Channel Avatars', - description: 'Show channel avatars next to stream titles or directly on their thumbnails.', - component: 'setting-select-box', - - data: [ - {value: 0, title: 'Disabled'}, - {value: 1, title: 'By Title'}, - {value: 2, title: 'Over Thumbnail (Hidden on Hover)'}, - {value: 3, title: 'Over Thumbnail'} - ] + title: 'Display channel avatars.', + component: 'setting-check-box' }, - changed: value => { - this.css_tweaks.toggleHide('profile-hover', value === 2); - this.DirectoryCard.forceUpdate(); - } + changed: () => this.DirectoryCard.forceUpdate() }); @@ -225,7 +214,7 @@ export default class Directory extends SiteModule { cls.prototype.renderIconicImage = function() { if ( this.props.context !== CARD_CONTEXTS.SingleChannelList && - t.settings.get('directory.show-channel-avatars') !== 1 ) + ! t.settings.get('directory.show-channel-avatars') ) return; return old_render_iconic.call(this); diff --git a/src/std-components/icon-picker.vue b/src/std-components/icon-picker.vue index b2e51421..db152489 100644 --- a/src/std-components/icon-picker.vue +++ b/src/std-components/icon-picker.vue @@ -2,7 +2,7 @@
-