diff options
Diffstat (limited to 'app/src')
44 files changed, 1672 insertions, 532 deletions
diff --git a/app/src/main/assets/.babelrc b/app/src/main/assets/.babelrc new file mode 100644 index 00000000..7302f727 --- /dev/null +++ b/app/src/main/assets/.babelrc @@ -0,0 +1,9 @@ +{ + "presets": [ + ["env",{ + "targets": { + "browsers": ["android >= 36", "chrome >= 51"] + } + }] + ] +}
\ No newline at end of file diff --git a/app/src/main/assets/.gitignore b/app/src/main/assets/.gitignore index 0d3aee97..1fe1b00e 100644 --- a/app/src/main/assets/.gitignore +++ b/app/src/main/assets/.gitignore @@ -1,2 +1,2 @@ .idea/ -js/search_query.min.js +node_modules/ diff --git a/app/src/main/assets/css/components/round_icons.compact.css b/app/src/main/assets/css/components/round_icons.css index 98c05584..98c05584 100644 --- a/app/src/main/assets/css/components/round_icons.compact.css +++ b/app/src/main/assets/css/components/round_icons.css diff --git a/app/src/main/assets/css/core/core.compact.css b/app/src/main/assets/css/core/core.css index c489b1f0..3b505c57 100644 --- a/app/src/main/assets/css/core/core.compact.css +++ b/app/src/main/assets/css/core/core.css @@ -70,24 +70,17 @@ a, ._5fpq { color: #d59ed5 !important; } @-webkit-keyframes highlightFade { 0%, 50% { background: rgba(199, 70, 70, 0.35); } 100% { background: rgba(255, 0, 255, 0.02); } } - @-moz-keyframes highlightFade { 0%, 50% { background: rgba(199, 70, 70, 0.35); } 100% { background: rgba(255, 0, 255, 0.02); } } - @-ms-keyframes highlightFade { 0%, 50% { background: rgba(199, 70, 70, 0.35); } 100% { background: rgba(255, 0, 255, 0.02); } } - @keyframes highlightFade { 0%, 50% { background: rgba(199, 70, 70, 0.35); } 100% { background: rgba(255, 0, 255, 0.02); } } - @-webkit-keyframes chatHighlightAnimation { 0%, 100% { background: rgba(255, 0, 255, 0.02); } 50% { background: rgba(199, 70, 70, 0.35); } } - @-moz-keyframes chatHighlightAnimation { 0%, 100% { background: rgba(255, 0, 255, 0.02); } 50% { background: rgba(199, 70, 70, 0.35); } } - @-ms-keyframes chatHighlightAnimation { 0%, 100% { background: rgba(255, 0, 255, 0.02); } 50% { background: rgba(199, 70, 70, 0.35); } } - @keyframes chatHighlightAnimation { 0%, 100% { background: rgba(255, 0, 255, 0.02); } 50% { background: rgba(199, 70, 70, 0.35); } } diff --git a/app/src/main/assets/css/core/core.scss b/app/src/main/assets/css/core/core.scss index dd7a9078..745ca671 100644 --- a/app/src/main/assets/css/core/core.scss +++ b/app/src/main/assets/css/core/core.scss @@ -170,7 +170,6 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: $text !important; } - //these are links a, ._5fpq { @@ -196,9 +195,8 @@ a, } } - @include keyframes(chatHighlightAnimation) { - 0%,100% { + 0%, 100% { background: $bg_transparent; } diff --git a/app/src/main/assets/css/themes/custom.compact.css b/app/src/main/assets/css/themes/custom.css index 64e8d61b..bbceca76 100644 --- a/app/src/main/assets/css/themes/custom.compact.css +++ b/app/src/main/assets/css/themes/custom.css @@ -1,6 +1,8 @@ #viewport { background: $B$ !important; } -body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1 { background: $BT$ !important; } +body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._3jcf, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1, ._35au, ._cwy, ._1rfn ._1rfk ._4vc-, ._1rfk, ._1rfk ._2v9s, ._301x { background: $BT$ !important; } + +._31nf { background: $BT$ !important; } ._cv_, ._2sq8 { background-color: $BT$ !important; } @@ -12,7 +14,7 @@ body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9 button:not([style*=image]), button::before, .touch ._56bt, ._56be::before, .btnS, .touch::before, ._590n, ._4g8h, ._2cpp, article._55wo, .timeline .timelinePublisher, .touched, .sharerAttachment, .item a.primary.touched .primarywrap, ._38nq, ._537a, ._5xo2, ._5u5a::before, ._4u3j, ._15ks, ._5hua, ._59tt, ._41ft, .jx-tokenizer, ._55fj, .excessItem, .acr, ._5-lx, ._3g9-, ._55ws, ._4e8n, ._5pxa._3uj9, ._5n_5, ._u2d, ._56bu::before, ._5h8f, ._d00, ._2066, ._2k51, ._10sb li.selected, ._2z4j, ._ib-, ._1bhl, ._2b06, ._14v5 ._14v8, ._4qax, .aclb, ._4756, ._w34, ._56bv::before, ._5769, ._34iv, ._z-w, ._t21, .mToken, #addMembersTypeahead .mToken.mTokenWeakReference, .acbk { background: $BBT$ !important; } -[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: $T$ !important; } +[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, ._1440, ._1442, ._1448, ._4ks_, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: $T$ !important; } strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: $A$ !important; } @@ -26,7 +28,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: $A$ !important; } ._1mx0, ._1rbr, ._5yt8, ._idb, ._cld, ._1e8h, ._z-w, ._1ha, ._1n8h ._1oby, ._5f99, ._2t39, ._2pbp, ._5rou:first-child, ._egf:first-child, ._15n_, ._3-2-, ._27ve, ._2s20, ._gui, ._2s21 > *::after, ._32qk, ._d00, ._d01, ._38o9, ._3u9t, ._55fj, ._52x1, ._3wjp, ._usq, ._2cul:before, ._13e_, .jewel .flyout, ._3bg5 ._52x6, ._56d8, .al { border-top: 1px solid $D$ !important; } -._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid $D$ !important; } +._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._301x, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid $D$ !important; } .item a.primary.touched .primarywrap, ._5fjv, ._3on6, ._2u4w, ._2om3, ._2ol-, ._5fjw, ._4z83, ._1gkq { border-top: 1px solid $D$ !important; border-bottom: 1px solid $D$ !important; } @@ -36,7 +38,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: $A$ !important; } ._4o58::after, .acr, ._t21, .acw, .aclb, ._4qax, ._5h8f { border-color: $D$ !important; } -._220g, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: $D$ !important; } +._220g, ._1_y8:after, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: $D$ !important; } ._56bf, .touch .btn { border-radius: 0 !important; border: 0 !important; } @@ -68,28 +70,20 @@ a, ._5fpq { color: $TT$ !important; } @-webkit-keyframes highlightFade { 0%, 50% { background: $BBT$; } 100% { background: $BT$; } } - @-moz-keyframes highlightFade { 0%, 50% { background: $BBT$; } 100% { background: $BT$; } } - @-ms-keyframes highlightFade { 0%, 50% { background: $BBT$; } 100% { background: $BT$; } } - @keyframes highlightFade { 0%, 50% { background: $BBT$; } 100% { background: $BT$; } } - @-webkit-keyframes chatHighlightAnimation { 0%, 100% { background: $BT$; } 50% { background: $BBT$; } } - @-moz-keyframes chatHighlightAnimation { 0%, 100% { background: $BT$; } 50% { background: $BBT$; } } - @-ms-keyframes chatHighlightAnimation { 0%, 100% { background: $BT$; } 50% { background: $BBT$; } } - @keyframes chatHighlightAnimation { 0%, 100% { background: $BT$; } 50% { background: $BBT$; } } - ._50uu { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='$T$' viewBox='0 -10 50 50'%3E%3Ccircle cx='25' cy='23' r='3.2'/%3E%3Cpath d='M22 13l-1.83 2H17c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V17c0-1.1-.9-2-2-2h-3.17L28 13h-6zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3Cpath fill='none' d='M13 11h24v24H13z'/%3E%3C/svg%3E") no-repeat !important; } ._50uw { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='$T$' viewBox='0 0 50 50'%3E%3Cpath fill='none' d='M13 26h24v24H13z'/%3E%3Cpath d='M30 31.5V28c0-.55-.45-1-1-1H17c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z'/%3E%3C/svg%3E") no-repeat !important; } diff --git a/app/src/main/assets/css/themes/material_amoled.compact.css b/app/src/main/assets/css/themes/material_amoled.css index 2dbae161..100dbd17 100644 --- a/app/src/main/assets/css/themes/material_amoled.compact.css +++ b/app/src/main/assets/css/themes/material_amoled.css @@ -1,6 +1,8 @@ #viewport { background: #000 !important; } -body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1 { background: #000 !important; } +body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._3jcf, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1, ._35au, ._cwy, ._1rfn ._1rfk ._4vc-, ._1rfk, ._1rfk ._2v9s, ._301x { background: #000 !important; } + +._31nf { background: #000 !important; } ._cv_, ._2sq8 { background-color: #000 !important; } @@ -12,7 +14,7 @@ body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9 button:not([style*=image]), button::before, .touch ._56bt, ._56be::before, .btnS, .touch::before, ._590n, ._4g8h, ._2cpp, article._55wo, .timeline .timelinePublisher, .touched, .sharerAttachment, .item a.primary.touched .primarywrap, ._38nq, ._537a, ._5xo2, ._5u5a::before, ._4u3j, ._15ks, ._5hua, ._59tt, ._41ft, .jx-tokenizer, ._55fj, .excessItem, .acr, ._5-lx, ._3g9-, ._55ws, ._4e8n, ._5pxa._3uj9, ._5n_5, ._u2d, ._56bu::before, ._5h8f, ._d00, ._2066, ._2k51, ._10sb li.selected, ._2z4j, ._ib-, ._1bhl, ._2b06, ._14v5 ._14v8, ._4qax, .aclb, ._4756, ._w34, ._56bv::before, ._5769, ._34iv, ._z-w, ._t21, .mToken, #addMembersTypeahead .mToken.mTokenWeakReference, .acbk { background: rgba(89, 89, 89, 0.35) !important; } -[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #fff !important; } +[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, ._1440, ._1442, ._1448, ._4ks_, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #fff !important; } strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } @@ -26,7 +28,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } ._1mx0, ._1rbr, ._5yt8, ._idb, ._cld, ._1e8h, ._z-w, ._1ha, ._1n8h ._1oby, ._5f99, ._2t39, ._2pbp, ._5rou:first-child, ._egf:first-child, ._15n_, ._3-2-, ._27ve, ._2s20, ._gui, ._2s21 > *::after, ._32qk, ._d00, ._d01, ._38o9, ._3u9t, ._55fj, ._52x1, ._3wjp, ._usq, ._2cul:before, ._13e_, .jewel .flyout, ._3bg5 ._52x6, ._56d8, .al { border-top: 1px solid rgba(255, 255, 255, 0.3) !important; } -._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } +._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._301x, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } .item a.primary.touched .primarywrap, ._5fjv, ._3on6, ._2u4w, ._2om3, ._2ol-, ._5fjw, ._4z83, ._1gkq { border-top: 1px solid rgba(255, 255, 255, 0.3) !important; border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } @@ -36,7 +38,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } ._4o58::after, .acr, ._t21, .acw, .aclb, ._4qax, ._5h8f { border-color: rgba(255, 255, 255, 0.3) !important; } -._220g, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(255, 255, 255, 0.3) !important; } +._220g, ._1_y8:after, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(255, 255, 255, 0.3) !important; } ._56bf, .touch .btn { border-radius: 0 !important; border: 0 !important; } @@ -68,28 +70,20 @@ a, ._5fpq { color: #eee !important; } @-webkit-keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: #000; } } - @-moz-keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: #000; } } - @-ms-keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: #000; } } - @keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: #000; } } - @-webkit-keyframes chatHighlightAnimation { 0%, 100% { background: #000; } 50% { background: rgba(89, 89, 89, 0.35); } } - @-moz-keyframes chatHighlightAnimation { 0%, 100% { background: #000; } 50% { background: rgba(89, 89, 89, 0.35); } } - @-ms-keyframes chatHighlightAnimation { 0%, 100% { background: #000; } 50% { background: rgba(89, 89, 89, 0.35); } } - @keyframes chatHighlightAnimation { 0%, 100% { background: #000; } 50% { background: rgba(89, 89, 89, 0.35); } } - ._50uu { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 -10 50 50'%3E%3Ccircle cx='25' cy='23' r='3.2'/%3E%3Cpath d='M22 13l-1.83 2H17c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V17c0-1.1-.9-2-2-2h-3.17L28 13h-6zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3Cpath fill='none' d='M13 11h24v24H13z'/%3E%3C/svg%3E") no-repeat !important; } ._50uw { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 50 50'%3E%3Cpath fill='none' d='M13 26h24v24H13z'/%3E%3Cpath d='M30 31.5V28c0-.55-.45-1-1-1H17c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z'/%3E%3C/svg%3E") no-repeat !important; } diff --git a/app/src/main/assets/css/themes/material_dark.compact.css b/app/src/main/assets/css/themes/material_dark.css index 98b9bebd..dcd51b65 100644 --- a/app/src/main/assets/css/themes/material_dark.compact.css +++ b/app/src/main/assets/css/themes/material_dark.css @@ -1,6 +1,8 @@ #viewport { background: #303030 !important; } -body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1 { background: #303030 !important; } +body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._3jcf, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1, ._35au, ._cwy, ._1rfn ._1rfk ._4vc-, ._1rfk, ._1rfk ._2v9s, ._301x { background: #303030 !important; } + +._31nf { background: #303030 !important; } ._cv_, ._2sq8 { background-color: #303030 !important; } @@ -12,7 +14,7 @@ body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9 button:not([style*=image]), button::before, .touch ._56bt, ._56be::before, .btnS, .touch::before, ._590n, ._4g8h, ._2cpp, article._55wo, .timeline .timelinePublisher, .touched, .sharerAttachment, .item a.primary.touched .primarywrap, ._38nq, ._537a, ._5xo2, ._5u5a::before, ._4u3j, ._15ks, ._5hua, ._59tt, ._41ft, .jx-tokenizer, ._55fj, .excessItem, .acr, ._5-lx, ._3g9-, ._55ws, ._4e8n, ._5pxa._3uj9, ._5n_5, ._u2d, ._56bu::before, ._5h8f, ._d00, ._2066, ._2k51, ._10sb li.selected, ._2z4j, ._ib-, ._1bhl, ._2b06, ._14v5 ._14v8, ._4qax, .aclb, ._4756, ._w34, ._56bv::before, ._5769, ._34iv, ._z-w, ._t21, .mToken, #addMembersTypeahead .mToken.mTokenWeakReference, .acbk { background: rgba(137, 137, 137, 0.35) !important; } -[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #fff !important; } +[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, ._1440, ._1442, ._1448, ._4ks_, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #fff !important; } strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } @@ -26,7 +28,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } ._1mx0, ._1rbr, ._5yt8, ._idb, ._cld, ._1e8h, ._z-w, ._1ha, ._1n8h ._1oby, ._5f99, ._2t39, ._2pbp, ._5rou:first-child, ._egf:first-child, ._15n_, ._3-2-, ._27ve, ._2s20, ._gui, ._2s21 > *::after, ._32qk, ._d00, ._d01, ._38o9, ._3u9t, ._55fj, ._52x1, ._3wjp, ._usq, ._2cul:before, ._13e_, .jewel .flyout, ._3bg5 ._52x6, ._56d8, .al { border-top: 1px solid rgba(255, 255, 255, 0.3) !important; } -._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } +._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._301x, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } .item a.primary.touched .primarywrap, ._5fjv, ._3on6, ._2u4w, ._2om3, ._2ol-, ._5fjw, ._4z83, ._1gkq { border-top: 1px solid rgba(255, 255, 255, 0.3) !important; border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } @@ -36,7 +38,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } ._4o58::after, .acr, ._t21, .acw, .aclb, ._4qax, ._5h8f { border-color: rgba(255, 255, 255, 0.3) !important; } -._220g, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(255, 255, 255, 0.3) !important; } +._220g, ._1_y8:after, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(255, 255, 255, 0.3) !important; } ._56bf, .touch .btn { border-radius: 0 !important; border: 0 !important; } @@ -68,28 +70,20 @@ a, ._5fpq { color: #eee !important; } @-webkit-keyframes highlightFade { 0%, 50% { background: rgba(137, 137, 137, 0.35); } 100% { background: #303030; } } - @-moz-keyframes highlightFade { 0%, 50% { background: rgba(137, 137, 137, 0.35); } 100% { background: #303030; } } - @-ms-keyframes highlightFade { 0%, 50% { background: rgba(137, 137, 137, 0.35); } 100% { background: #303030; } } - @keyframes highlightFade { 0%, 50% { background: rgba(137, 137, 137, 0.35); } 100% { background: #303030; } } - @-webkit-keyframes chatHighlightAnimation { 0%, 100% { background: #303030; } 50% { background: rgba(137, 137, 137, 0.35); } } - @-moz-keyframes chatHighlightAnimation { 0%, 100% { background: #303030; } 50% { background: rgba(137, 137, 137, 0.35); } } - @-ms-keyframes chatHighlightAnimation { 0%, 100% { background: #303030; } 50% { background: rgba(137, 137, 137, 0.35); } } - @keyframes chatHighlightAnimation { 0%, 100% { background: #303030; } 50% { background: rgba(137, 137, 137, 0.35); } } - ._50uu { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 -10 50 50'%3E%3Ccircle cx='25' cy='23' r='3.2'/%3E%3Cpath d='M22 13l-1.83 2H17c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V17c0-1.1-.9-2-2-2h-3.17L28 13h-6zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3Cpath fill='none' d='M13 11h24v24H13z'/%3E%3C/svg%3E") no-repeat !important; } ._50uw { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 50 50'%3E%3Cpath fill='none' d='M13 26h24v24H13z'/%3E%3Cpath d='M30 31.5V28c0-.55-.45-1-1-1H17c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z'/%3E%3C/svg%3E") no-repeat !important; } diff --git a/app/src/main/assets/css/themes/material_glass.compact.css b/app/src/main/assets/css/themes/material_glass.css index 23624457..726fcca7 100644 --- a/app/src/main/assets/css/themes/material_glass.compact.css +++ b/app/src/main/assets/css/themes/material_glass.css @@ -1,6 +1,8 @@ #viewport { background: rgba(0, 0, 0, 0.3) !important; } -body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1 { background: transparent !important; } +body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._3jcf, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1, ._35au, ._cwy, ._1rfn ._1rfk ._4vc-, ._1rfk, ._1rfk ._2v9s, ._301x { background: transparent !important; } + +._31nf { background: transparent !important; } ._cv_, ._2sq8 { background-color: transparent !important; } @@ -12,7 +14,7 @@ body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9 button:not([style*=image]), button::before, .touch ._56bt, ._56be::before, .btnS, .touch::before, ._590n, ._4g8h, ._2cpp, article._55wo, .timeline .timelinePublisher, .touched, .sharerAttachment, .item a.primary.touched .primarywrap, ._38nq, ._537a, ._5xo2, ._5u5a::before, ._4u3j, ._15ks, ._5hua, ._59tt, ._41ft, .jx-tokenizer, ._55fj, .excessItem, .acr, ._5-lx, ._3g9-, ._55ws, ._4e8n, ._5pxa._3uj9, ._5n_5, ._u2d, ._56bu::before, ._5h8f, ._d00, ._2066, ._2k51, ._10sb li.selected, ._2z4j, ._ib-, ._1bhl, ._2b06, ._14v5 ._14v8, ._4qax, .aclb, ._4756, ._w34, ._56bv::before, ._5769, ._34iv, ._z-w, ._t21, .mToken, #addMembersTypeahead .mToken.mTokenWeakReference, .acbk { background: rgba(89, 89, 89, 0.35) !important; } -[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #fff !important; } +[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, ._1440, ._1442, ._1448, ._4ks_, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #fff !important; } strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } @@ -26,7 +28,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } ._1mx0, ._1rbr, ._5yt8, ._idb, ._cld, ._1e8h, ._z-w, ._1ha, ._1n8h ._1oby, ._5f99, ._2t39, ._2pbp, ._5rou:first-child, ._egf:first-child, ._15n_, ._3-2-, ._27ve, ._2s20, ._gui, ._2s21 > *::after, ._32qk, ._d00, ._d01, ._38o9, ._3u9t, ._55fj, ._52x1, ._3wjp, ._usq, ._2cul:before, ._13e_, .jewel .flyout, ._3bg5 ._52x6, ._56d8, .al { border-top: 1px solid rgba(255, 255, 255, 0.3) !important; } -._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } +._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._301x, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } .item a.primary.touched .primarywrap, ._5fjv, ._3on6, ._2u4w, ._2om3, ._2ol-, ._5fjw, ._4z83, ._1gkq { border-top: 1px solid rgba(255, 255, 255, 0.3) !important; border-bottom: 1px solid rgba(255, 255, 255, 0.3) !important; } @@ -36,7 +38,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #5d86dd !important; } ._4o58::after, .acr, ._t21, .acw, .aclb, ._4qax, ._5h8f { border-color: rgba(255, 255, 255, 0.3) !important; } -._220g, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(255, 255, 255, 0.3) !important; } +._220g, ._1_y8:after, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(255, 255, 255, 0.3) !important; } ._56bf, .touch .btn { border-radius: 0 !important; border: 0 !important; } @@ -68,28 +70,20 @@ a, ._5fpq { color: #eee !important; } @-webkit-keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: transparent; } } - @-moz-keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: transparent; } } - @-ms-keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: transparent; } } - @keyframes highlightFade { 0%, 50% { background: rgba(89, 89, 89, 0.35); } 100% { background: transparent; } } - @-webkit-keyframes chatHighlightAnimation { 0%, 100% { background: transparent; } 50% { background: rgba(89, 89, 89, 0.35); } } - @-moz-keyframes chatHighlightAnimation { 0%, 100% { background: transparent; } 50% { background: rgba(89, 89, 89, 0.35); } } - @-ms-keyframes chatHighlightAnimation { 0%, 100% { background: transparent; } 50% { background: rgba(89, 89, 89, 0.35); } } - @keyframes chatHighlightAnimation { 0%, 100% { background: transparent; } 50% { background: rgba(89, 89, 89, 0.35); } } - ._50uu { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 -10 50 50'%3E%3Ccircle cx='25' cy='23' r='3.2'/%3E%3Cpath d='M22 13l-1.83 2H17c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V17c0-1.1-.9-2-2-2h-3.17L28 13h-6zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3Cpath fill='none' d='M13 11h24v24H13z'/%3E%3C/svg%3E") no-repeat !important; } ._50uw { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 50 50'%3E%3Cpath fill='none' d='M13 26h24v24H13z'/%3E%3Cpath d='M30 31.5V28c0-.55-.45-1-1-1H17c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z'/%3E%3C/svg%3E") no-repeat !important; } diff --git a/app/src/main/assets/css/themes/material_light.compact.css b/app/src/main/assets/css/themes/material_light.css index 9ecd9732..1076f734 100644 --- a/app/src/main/assets/css/themes/material_light.compact.css +++ b/app/src/main/assets/css/themes/material_light.css @@ -1,6 +1,8 @@ #viewport { background: #fff !important; } -body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1 { background: #fff !important; } +body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9, ._5pz4, ._5lp4, ._5lp5, .container, .subpage, ._5n_f, #static_templates, ._22_8, ._1t4h, ._uoq, ._6-l ._2us7, ._6-l ._6-p, ._333v, ._55wo, ._1g05, .acy, ._51-g, ._533c, ._ib-, .sharerAttachmentEmpty, .sharerBottomWrapper, ._3bg5 ._56do, ._5hfh, ._52e-, .mQuestionsPollResultsBar, ._5hoc, ._5oxw, ._32_4, ._1hiz, .tlBody, #timelineBody, .timelineX, .timeline, .feed, .tlPrelude, .tlFeedPlaceholder, ._4_d0, .al, ._1gkq, ._5c5b, ._1qxg, ._5luf, ._2new, ._cld, ._3zvb, ._2nk0, .btnD, .btnI, ._11ub, ._5p7j, ._55wm, ._5rgs, ._5xuj, ._1sv1, ._45fu, ._18qg, ._1_ac, ._5w3g, ._3e18, ._10c_, ._2jl2, ._5q_r, ._5yt8, ._idb, ._2ip_, ._f6s, ._2l5v, ._8i2, ._kr5, ._2q7u, ._2q7v, ._d4i, ._577z, ._2u4w, ._3u9p, ._3u9t, ._2v9s, ._cw4, ._5_y-, ._5_y_, ._5_z3, ._cwy, ._5_z0, ._5_z1, ._5_z2, ._2mtc, ._206a, ._1_-1, ._1ybg, .appCenterCategorySelectorButton, ._5c9u, div._5y57::before, ._59f6._55so::before, .structuredPublisher, ._94v, ._vqv, ._5lp5, ._55wm, ._2om3, ._2ol-, ._1f9d, ._vee, ._31a-, ._3r8b, ._3r9d, .acw, ._4_xl, ._1p70, ._1p70, ._1ih_, ._51v6, ._u2c, ._484w, ._3ils, ._rm7, ._32qk, ._d01, ._2y60, ._5fu3, ._2foa, ._2y5_, ._38o9, ._1kb, .mAppCenterFatLabel, ._3f50, .mentions-placeholder, .mentions, .mentions-shadow, .mentions-measurer, .acg, ._59tu, ._52z5, ._4l9b, ._4gj3, .groupChromeView, ._i3g, ._3jcf, ._uww, textarea, ._15n_, ._skt, ._5f28, ._14_j, ._3bg5, ._53_-, ._52x1, ._35au, ._cwy, ._1rfn ._1rfk ._4vc-, ._1rfk, ._1rfk ._2v9s, ._301x { background: #fff !important; } + +._31nf { background: #fff !important; } ._cv_, ._2sq8 { background-color: #fff !important; } @@ -12,7 +14,7 @@ body, #root, #header, [style*="background-color"], ._1upc, input, ._2f9r, ._59e9 button:not([style*=image]), button::before, .touch ._56bt, ._56be::before, .btnS, .touch::before, ._590n, ._4g8h, ._2cpp, article._55wo, .timeline .timelinePublisher, .touched, .sharerAttachment, .item a.primary.touched .primarywrap, ._38nq, ._537a, ._5xo2, ._5u5a::before, ._4u3j, ._15ks, ._5hua, ._59tt, ._41ft, .jx-tokenizer, ._55fj, .excessItem, .acr, ._5-lx, ._3g9-, ._55ws, ._4e8n, ._5pxa._3uj9, ._5n_5, ._u2d, ._56bu::before, ._5h8f, ._d00, ._2066, ._2k51, ._10sb li.selected, ._2z4j, ._ib-, ._1bhl, ._2b06, ._14v5 ._14v8, ._4qax, .aclb, ._4756, ._w34, ._56bv::before, ._5769, ._34iv, ._z-w, ._t21, .mToken, #addMembersTypeahead .mToken.mTokenWeakReference, .acbk { background: rgba(166, 166, 166, 0.35) !important; } -[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #000 !important; } +[style*="color"], body, input, ._42rv, ._4qau, ._dwm .descArea, ._eu5, ._1tcc, ._3g9-, ._29z_, ._3xz7, ._ib-, ._3bg5 ._56dq, ._477i, ._2vxk, .touched *, ._1_yj, ._1_yl, ._4pj9, ._z-z, ._z-v, ._1e8d, ._36nl, ._36nm, ._2_11, ._2_rf, ._2ip_, ._403p, ._5xu2, ._3ml8, ._3mla, ._50vk, ._1m2u, ._31y7, ._4kcb, ._1lf6, ._1lf5, ._1lf4, ._1hiz, ._xod, ._5ag5, ._43mh, .touch .btn, p, span, .fcg, button, ._52j9, ._52jb, ._52ja, ._5j35, ._rnk, ._24u0, ._1g06, ._14ye, .fcb, ._56cz._56c_, ._1gk_, ._55fj, ._45fu, ._18qg, ._1_ac, ._5aga, ._5ag9, ._537a, .acy, ._5ro_, ._6-l ._2us7, ._4mp, ._2b08, ._14v5 ._14v8, ._1440, ._1442, ._1448, ._4ks_, textarea, ._24pi, ._4en9, ._1kb, ._5p7j, ._2klz, ._5780, ._5781, ._5782, ._3u9u, ._3u9_, ._3u9s, ._1hcx, ._2066, ._1_-1, ._cv_, ._1nbx, ._2cuh, ._4ms9, ._4ms5, ._4ms6, ._31b4, ._31b5, ._5q_r, ._idb, ._27vp, ._4nwe, ._4nw9, ._27vi, .appCenterAppInfo, .appCenterPermissions, ._3c9l, ._3c9m, ._4jn_, ._32qt, ._3mom, ._3moo, ._-7o, ._d00, ._d01, ._559g, ._2new, .appCenterCategorySelectorButton, .mentions-input, .mentions-placeholder, .largeStatusBox .placeHolder, .fcw, ._5-7t, .fcl, ._4qas, .thread-title, .title, ._46pa, ._336p, ._1rrd, ._2om4, ._3m1m, ._2om2, ._5n_e, .appListExplanation, ._5yt8, ._8he, ._2luw, ._5rgs, h1, h2, h3, h4, h5, h6 { color: #000 !important; } strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #3b5998 !important; } @@ -26,7 +28,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #3b5998 !important; } ._1mx0, ._1rbr, ._5yt8, ._idb, ._cld, ._1e8h, ._z-w, ._1ha, ._1n8h ._1oby, ._5f99, ._2t39, ._2pbp, ._5rou:first-child, ._egf:first-child, ._15n_, ._3-2-, ._27ve, ._2s20, ._gui, ._2s21 > *::after, ._32qk, ._d00, ._d01, ._38o9, ._3u9t, ._55fj, ._52x1, ._3wjp, ._usq, ._2cul:before, ._13e_, .jewel .flyout, ._3bg5 ._52x6, ._56d8, .al { border-top: 1px solid rgba(0, 0, 0, 0.3) !important; } -._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(0, 0, 0, 0.3) !important; } +._15ny::after, ._z-w, ._8i2, ._2nk0, ._22_8, ._1t4h, ._37fd, ._1ha, ._3bg5 ._56do, ._8he, ._400s, ._5hoc, ._1bhn, ._5ag6, ._301x, ._577z:not(:last-child) ._ygd, ._3u9u, ._3mgz, ._52x6, ._2066, ._5luf, .mAppCenterFatLabel, .appCenterCategorySelectorButton, ._1q6v, ._5q_r, ._5yt8, ._ap1, ._52x1, ._59tu, ._usq, ._13e_, ._59f6._55so::before, ._4gj3, .jx-result, ._1f9d, ._vef, ._55x2 > *, .al, ._44qk, ._5rgs, ._5xuj, ._1sv1, ._idb, ._5lp5, ._3-2-, ._3to6, ._ir5, ._4nw6, ._4nwh, ._27ve, div._51v6::before, ._3c9h::before, ._2s20, ._gui, ._5jku, ._2foa, ._2y60, ._5fu3, ._4en9, ._1kb:not(:last-child) ._1kc, ._5pz4, ._5lp4, ._5lp5, ._5h6z, ._5h6x, ._2om4, ._5fjw > div, ._5fjv > :first-child, ._5fjw > :first-child { border-bottom: 1px solid rgba(0, 0, 0, 0.3) !important; } .item a.primary.touched .primarywrap, ._5fjv, ._3on6, ._2u4w, ._2om3, ._2ol-, ._5fjw, ._4z83, ._1gkq { border-top: 1px solid rgba(0, 0, 0, 0.3) !important; border-bottom: 1px solid rgba(0, 0, 0, 0.3) !important; } @@ -36,7 +38,7 @@ strong > a, ._15ks ._2q8z._2q8z, ._1e3e { color: #3b5998 !important; } ._4o58::after, .acr, ._t21, .acw, .aclb, ._4qax, ._5h8f { border-color: rgba(0, 0, 0, 0.3) !important; } -._220g, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(0, 0, 0, 0.3) !important; } +._220g, ._1_y8:after, ._2zh4::before, ._2ip_ ._2zh4::before, ._2ip_ ._15kk::before, ._2ip_ ._15kk + ._4u3j::before, ._58a0:before, ._43mh::before, ._43mh::after, ._1_-1::before, ._1kmv:after, ._1_ac:before { background: rgba(0, 0, 0, 0.3) !important; } ._56bf, .touch .btn { border-radius: 0 !important; border: 0 !important; } @@ -68,28 +70,20 @@ a, ._5fpq { color: #111 !important; } @-webkit-keyframes highlightFade { 0%, 50% { background: rgba(166, 166, 166, 0.35); } 100% { background: #fff; } } - @-moz-keyframes highlightFade { 0%, 50% { background: rgba(166, 166, 166, 0.35); } 100% { background: #fff; } } - @-ms-keyframes highlightFade { 0%, 50% { background: rgba(166, 166, 166, 0.35); } 100% { background: #fff; } } - @keyframes highlightFade { 0%, 50% { background: rgba(166, 166, 166, 0.35); } 100% { background: #fff; } } - @-webkit-keyframes chatHighlightAnimation { 0%, 100% { background: #fff; } 50% { background: rgba(166, 166, 166, 0.35); } } - @-moz-keyframes chatHighlightAnimation { 0%, 100% { background: #fff; } 50% { background: rgba(166, 166, 166, 0.35); } } - @-ms-keyframes chatHighlightAnimation { 0%, 100% { background: #fff; } 50% { background: rgba(166, 166, 166, 0.35); } } - @keyframes chatHighlightAnimation { 0%, 100% { background: #fff; } 50% { background: rgba(166, 166, 166, 0.35); } } - ._50uu { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 -10 50 50'%3E%3Ccircle cx='25' cy='23' r='3.2'/%3E%3Cpath d='M22 13l-1.83 2H17c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V17c0-1.1-.9-2-2-2h-3.17L28 13h-6zm3 15c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5z'/%3E%3Cpath fill='none' d='M13 11h24v24H13z'/%3E%3C/svg%3E") no-repeat !important; } ._50uw { background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23000' viewBox='0 0 50 50'%3E%3Cpath fill='none' d='M13 26h24v24H13z'/%3E%3Cpath d='M30 31.5V28c0-.55-.45-1-1-1H17c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4z'/%3E%3C/svg%3E") no-repeat !important; } diff --git a/app/src/main/assets/js/click-debugger.js b/app/src/main/assets/js/click-debugger.js deleted file mode 100644 index 702a62c9..00000000 --- a/app/src/main/assets/js/click-debugger.js +++ /dev/null @@ -1,13 +0,0 @@ -//for desktop only -var _frostAContext = function(e) { - /* - * Commonality; check for valid target - */ - var element = e.target || e.currentTarget || e.srcElement; - if (!element) return; - console.log("Clicked element:"); - console.log(element.tagName); - console.log(element.className); -} - -document.addEventListener('contextmenu', _frostAContext, true); diff --git a/app/src/main/assets/js/click-debugger.min.js b/app/src/main/assets/js/click-debugger.min.js deleted file mode 100644 index 0f986b07..00000000 --- a/app/src/main/assets/js/click-debugger.min.js +++ /dev/null @@ -1,6 +0,0 @@ -var _frostAContext=function(e){ -var t=e.target||e.currentTarget||e.srcElement -;t&&(console.log("Clicked element:"), -console.log(t.tagName),console.log(t.className)) -} -;document.addEventListener("contextmenu",_frostAContext,!0);
\ No newline at end of file diff --git a/app/src/main/assets/js/click_a.coffee b/app/src/main/assets/js/click_a.coffee new file mode 100644 index 00000000..e032b4ad --- /dev/null +++ b/app/src/main/assets/js/click_a.coffee @@ -0,0 +1,48 @@ +prevented = false + +_frostAClick = (e) -> + + ### + # Commonality; check for valid target + ### + element = e.target or e.srcElement + if element.tagName != "A" + element = element.parentNode + # Notifications is two layers under + if element.tagName != "A" + element = element.parentNode + if element.tagName == "A" + if !prevented + url = element.getAttribute("href") + console.log "Click Intercept #{url}" + # if frost is injected, check if loading the url through an overlay works + if Frost?.loadUrl(url) == true + e.stopPropagation() + e.preventDefault() + else + console.log "Click Intercept Prevented" + return + +### +# On top of the click event, we must stop it for long presses +# Since that will conflict with the context menu +# Note that we only override it on conditions where the context menu +# Will occur +### + +_frostPreventClick = -> + console.log "Click prevented" + prevented = true + return + +document.addEventListener "click", _frostAClick, true +clickTimeout = undefined +document.addEventListener "touchstart", ((e) -> + clickTimeout = setTimeout(_frostPreventClick, 400) + return +), true +document.addEventListener "touchend", ((e) -> + prevented = false + clearTimeout clickTimeout + return +), true diff --git a/app/src/main/assets/js/click_a.js b/app/src/main/assets/js/click_a.js index 1ced820a..e3ea7f31 100644 --- a/app/src/main/assets/js/click_a.js +++ b/app/src/main/assets/js/click_a.js @@ -1,57 +1,60 @@ -// we will handle click events -if (!window.hasOwnProperty('frost_click_a')) { - console.log('Registering frost_click_a'); - window.frost_click_a = true; +"use strict"; - var prevented = false; +(function () { - var _frostAClick = function(e) { + /* + * On top of the click event, we must stop it for long presses + * Since that will conflict with the context menu + * Note that we only override it on conditions where the context menu + * Will occur + */ + var _frostAClick, _frostPreventClick, clickTimeout, prevented; + prevented = false; + _frostAClick = function _frostAClick(e) { /* * Commonality; check for valid target */ - var element = e.target || e.srcElement; - - if (element.tagName !== 'A') element = element.parentNode; - //Notifications is two layers under - if (element.tagName !== 'A') element = element.parentNode; - if (element.tagName === 'A') { + var element, url; + element = e.target || e.srcElement; + if (element.tagName !== "A") { + element = element.parentNode; + } + // Notifications is two layers under + if (element.tagName !== "A") { + element = element.parentNode; + } + if (element.tagName === "A") { if (!prevented) { - var url = element.getAttribute('href'); - console.log('Click Intercept', url); + url = element.getAttribute("href"); + console.log("Click Intercept " + url); // if frost is injected, check if loading the url through an overlay works - if (typeof Frost !== 'undefined' && Frost.loadUrl(url)) { - e.stopPropagation(); - e.preventDefault(); + if ((typeof Frost !== "undefined" && Frost !== null ? Frost.loadUrl(url) : void 0) === true) { + e.stopPropagation(); + e.preventDefault(); } } else { - console.log('Click Intercept Prevented'); + console.log("Click Intercept Prevented"); } } - } + }; - /* - * On top of the click event, we must stop it for long presses - * Since that will conflict with the context menu - * Note that we only override it on conditions where the context menu - * Will occur - */ - var _frostPreventClick = function() { - console.log('Click prevented') + _frostPreventClick = function _frostPreventClick() { + console.log("Click prevented"); prevented = true; - } + }; - document.addEventListener('click', _frostAClick, true); + document.addEventListener("click", _frostAClick, true); - var clickTimeout; + clickTimeout = void 0; - document.addEventListener('touchstart', function _frostStart(e) { + document.addEventListener("touchstart", function (e) { clickTimeout = setTimeout(_frostPreventClick, 400); }, true); - document.addEventListener('touchend', function _frostEnd(e) { + document.addEventListener("touchend", function (e) { prevented = false; clearTimeout(clickTimeout); }, true); -} +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/click_a.min.js b/app/src/main/assets/js/click_a.min.js deleted file mode 100644 index 7abaaac6..00000000 --- a/app/src/main/assets/js/click_a.min.js +++ /dev/null @@ -1,22 +0,0 @@ -if(!window.hasOwnProperty("frost_click_a")){ -console.log("Registering frost_click_a"), -window.frost_click_a=!0 -;var prevented=!1,_frostAClick=function(e){ -var t=e.target||e.srcElement -;if("A"!==t.tagName&&(t=t.parentNode),"A"!==t.tagName&&(t=t.parentNode), -"A"===t.tagName)if(prevented)console.log("Click Intercept Prevented");else{ -var o=t.getAttribute("href") -;console.log("Click Intercept",o),"undefined"!=typeof Frost&&Frost.loadUrl(o)&&(e.stopPropagation(), -e.preventDefault()) -} -},_frostPreventClick=function(){ -console.log("Click prevented"),prevented=!0 -} -;document.addEventListener("click",_frostAClick,!0) -;var clickTimeout -;document.addEventListener("touchstart",function(e){ -clickTimeout=setTimeout(_frostPreventClick,400) -},!0),document.addEventListener("touchend",function(e){ -prevented=!1,clearTimeout(clickTimeout) -},!0) -}
\ No newline at end of file diff --git a/app/src/main/assets/js/click_debugger.coffee b/app/src/main/assets/js/click_debugger.coffee new file mode 100644 index 00000000..057bb207 --- /dev/null +++ b/app/src/main/assets/js/click_debugger.coffee @@ -0,0 +1,14 @@ +# for desktop only + +_frostAContext = (e) -> + + ### + # Commonality; check for valid target + ### + element = e.target or e.currentTarget or e.srcElement + if !element + return + console.log "Clicked element: #{element.tagName} #{element.className}" + return + +document.addEventListener 'contextmenu', _frostAContext, true diff --git a/app/src/main/assets/js/click_debugger.js b/app/src/main/assets/js/click_debugger.js new file mode 100644 index 00000000..71db586a --- /dev/null +++ b/app/src/main/assets/js/click_debugger.js @@ -0,0 +1,20 @@ +'use strict'; + +(function () { + // for desktop only + var _frostAContext; + + _frostAContext = function _frostAContext(e) { + /* + * Commonality; check for valid target + */ + var element; + element = e.target || e.currentTarget || e.srcElement; + if (!element) { + return; + } + console.log('Clicked element: ' + element.tagName + ' ' + element.className); + }; + + document.addEventListener('contextmenu', _frostAContext, true); +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/context_a.coffee b/app/src/main/assets/js/context_a.coffee new file mode 100644 index 00000000..0dca1b7f --- /dev/null +++ b/app/src/main/assets/js/context_a.coffee @@ -0,0 +1,59 @@ +# context menu for links +# largely mimics click_a.js +# we will also bind a listener here to notify the activity not to deal with viewpager scrolls +longClick = false + +_frostAContext = (e) -> + Frost?.longClick true + longClick = true + + ### + # Commonality; check for valid target + ### + + element = e.target or e.currentTarget or e.srcElement + if !element + return + if element.tagName != "A" + element = element.parentNode + #Notifications is two layers under + if element.tagName != "A" + element = element.parentNode + if element.tagName == "A" and element.getAttribute("href") != "#" + url = element.getAttribute("href") + if !url + return + text = element.parentNode.innerText + # check if image item exists, first in children and then in parent + image = element.querySelector("[style*=\"background-image: url(\"]") + if !image + image = element.parentNode.querySelector("[style*=\"background-image: url(\"]") + if image + imageUrl = window.getComputedStyle(image, null).backgroundImage.trim().slice(4, -1) + console.log "Context image: #{imageUrl}" + Frost?.loadImage imageUrl, text + e.stopPropagation() + e.preventDefault() + return + # check if true img exists + img = element.querySelector("img[src*=scontent]") + if img + imgUrl = img.src + console.log "Context img #{imgUrl}" + Frost?.loadImage imgUrl, text + e.stopPropagation() + e.preventDefault() + return + console.log "Context Content #{url} #{text}" + Frost?.contextMenu url, text + e.stopPropagation() + e.preventDefault() + return + +document.addEventListener "contextmenu", _frostAContext, true +document.addEventListener "touchend", ((e) -> + if longClick + Frost?.longClick false + longClick = false + return +), true diff --git a/app/src/main/assets/js/context_a.js b/app/src/main/assets/js/context_a.js index dfc75a80..b39a6542 100644 --- a/app/src/main/assets/js/context_a.js +++ b/app/src/main/assets/js/context_a.js @@ -1,67 +1,83 @@ -//context menu for links -//largely mimics click_a.js -//we will also bind a listener here to notify the activity not to deal with viewpager scrolls -//since the long press is also associated witho -if (!window.hasOwnProperty('frost_context_a')) { - console.log('frost_context_a frost_click_a'); - window.frost_context_a = true; +"use strict"; - var longClick = false; +(function () { + // context menu for links + // largely mimics click_a.js + // we will also bind a listener here to notify the activity not to deal with viewpager scrolls + var _frostAContext, longClick; - var _frostAContext = function(e) { - if (typeof Frost !== 'undefined') Frost.longClick(true); - longClick = true; + longClick = false; + _frostAContext = function _frostAContext(e) { /* * Commonality; check for valid target */ - var element = e.target || e.currentTarget || e.srcElement; - if (!element) return; - if (element.tagName !== 'A') element = element.parentNode; + var element, image, imageUrl, img, imgUrl, text, url; + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.longClick(true); + } + longClick = true; + element = e.target || e.currentTarget || e.srcElement; + if (!element) { + return; + } + if (element.tagName !== "A") { + element = element.parentNode; + } //Notifications is two layers under - if (element.tagName !== 'A') element = element.parentNode; - if (element.tagName === 'A' && element.getAttribute('href') !== '#') { - var url = element.getAttribute('href'); - if (!url) return; - var text = element.parentNode.innerText; - - //check if image item exists, first in children and then in parent - var image = element.querySelector('[style*="background-image: url("]'); - if (!image) image = element.parentNode.querySelector('[style*="background-image: url("]'); + if (element.tagName !== "A") { + element = element.parentNode; + } + if (element.tagName === "A" && element.getAttribute("href") !== "#") { + url = element.getAttribute("href"); + if (!url) { + return; + } + text = element.parentNode.innerText; + // check if image item exists, first in children and then in parent + image = element.querySelector("[style*=\"background-image: url(\"]"); + if (!image) { + image = element.parentNode.querySelector("[style*=\"background-image: url(\"]"); + } if (image) { - var imageUrl = window.getComputedStyle(image, null).backgroundImage.trim().slice(4, -1); - console.log('Context image: ' + imageUrl); - if (typeof Frost !== 'undefined') Frost.loadImage(imageUrl, text); + imageUrl = window.getComputedStyle(image, null).backgroundImage.trim().slice(4, -1); + console.log("Context image: " + imageUrl); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.loadImage(imageUrl, text); + } e.stopPropagation(); e.preventDefault(); return; } - - //check if true img exists - var img = element.querySelector('img[src*=scontent]') + // check if true img exists + img = element.querySelector("img[src*=scontent]"); if (img) { - var imgUrl = img.src; - console.log('Context img', imgUrl); - if (typeof Frost !== 'undefined') Frost.loadImage(imgUrl, text); + imgUrl = img.src; + console.log("Context img " + imgUrl); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.loadImage(imgUrl, text); + } e.stopPropagation(); e.preventDefault(); return; } - - console.log('Context Content', url, text); - if (typeof Frost !== 'undefined') Frost.contextMenu(url, text); - + console.log("Context Content " + url + " " + text); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.contextMenu(url, text); + } e.stopPropagation(); e.preventDefault(); } - } + }; - document.addEventListener('contextmenu', _frostAContext, true); + document.addEventListener("contextmenu", _frostAContext, true); - document.addEventListener('touchend', function _frostEnd(e) { + document.addEventListener("touchend", function (e) { if (longClick) { - if (typeof Frost !== 'undefined') Frost.longClick(false); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.longClick(false); + } longClick = false; } }, true); -} +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/context_a.min.js b/app/src/main/assets/js/context_a.min.js deleted file mode 100644 index 260b41ff..00000000 --- a/app/src/main/assets/js/context_a.min.js +++ /dev/null @@ -1,36 +0,0 @@ -if(!window.hasOwnProperty("frost_context_a")){ -console.log("frost_context_a frost_click_a"), -window.frost_context_a=!0 -;var longClick=!1,_frostAContext=function(e){ -"undefined"!=typeof Frost&&Frost.longClick(!0), -longClick=!0 -;var t=e.target||e.currentTarget||e.srcElement -;if(t&&("A"!==t.tagName&&(t=t.parentNode), -"A"!==t.tagName&&(t=t.parentNode),"A"===t.tagName&&"#"!==t.getAttribute("href"))){ -var o=t.getAttribute("href") -;if(!o)return -;var n=t.parentNode.innerText,r=t.querySelector('[style*="background-image: url("]') -;if(r||(r=t.parentNode.querySelector('[style*="background-image: url("]')), -r){ -var a=window.getComputedStyle(r,null).backgroundImage.trim().slice(4,-1) -;return console.log("Context image: "+a), -"undefined"!=typeof Frost&&Frost.loadImage(a,n), -e.stopPropagation(),void e.preventDefault() -} -var i=t.querySelector("img[src*=scontent]") -;if(i){ -var l=i.src -;return console.log("Context img",l),"undefined"!=typeof Frost&&Frost.loadImage(l,n), -e.stopPropagation(), -void e.preventDefault() -} -console.log("Context Content",o,n),"undefined"!=typeof Frost&&Frost.contextMenu(o,n), -e.stopPropagation(), -e.preventDefault() -} -} -;document.addEventListener("contextmenu",_frostAContext,!0),document.addEventListener("touchend",function(e){ -longClick&&("undefined"!=typeof Frost&&Frost.longClick(!1), -longClick=!1) -},!0) -}
\ No newline at end of file diff --git a/app/src/main/assets/js/header_badges.coffee b/app/src/main/assets/js/header_badges.coffee new file mode 100644 index 00000000..e9702751 --- /dev/null +++ b/app/src/main/assets/js/header_badges.coffee @@ -0,0 +1,4 @@ +# bases the header contents if it exists +header = document.getElementById("mJewelNav") +if header != null + Frost?.handleHeader header.outerHTML diff --git a/app/src/main/assets/js/header_badges.js b/app/src/main/assets/js/header_badges.js index 26315a5f..13447229 100644 --- a/app/src/main/assets/js/header_badges.js +++ b/app/src/main/assets/js/header_badges.js @@ -1,3 +1,14 @@ -//bases the header contents if it exists -var header = document.getElementById('mJewelNav'); -if (header !== null) Frost.handleHeader(header.outerHTML); +"use strict"; + +(function () { + // bases the header contents if it exists + var header; + + header = document.getElementById("mJewelNav"); + + if (header !== null) { + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.handleHeader(header.outerHTML); + } + } +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/header_badges.min.js b/app/src/main/assets/js/header_badges.min.js deleted file mode 100644 index 7d5b45ea..00000000 --- a/app/src/main/assets/js/header_badges.min.js +++ /dev/null @@ -1,2 +0,0 @@ -var header=document.getElementById("mJewelNav"); -if(header!==null)Frost.handleHeader(header.outerHTML);
\ No newline at end of file diff --git a/app/src/main/assets/js/media.coffee b/app/src/main/assets/js/media.coffee new file mode 100644 index 00000000..810c09b7 --- /dev/null +++ b/app/src/main/assets/js/media.coffee @@ -0,0 +1,29 @@ +# we will handle media events +_frostMediaClick = (e) -> + + ### + # Commonality; check for valid target + ### + + element = e.target or e.srcElement + if !element.hasAttribute("data-sigil") or !element.getAttribute("data-sigil").toLowerCase().includes("inlinevideo") + return + console.log "Found inline video" + element = element.parentNode + if !element.hasAttribute("data-store") + return + dataStore = undefined + try + dataStore = JSON.parse(element.getAttribute("data-store")) + catch e + return + if !dataStore.src + return + console.log "Inline video #{dataStore.src}" + Frost?.loadVideo dataStore.src, dataStore.animatedGifVideo + e.stopPropagation() + e.preventDefault() + return + +document.addEventListener "click", _frostMediaClick, true + diff --git a/app/src/main/assets/js/media.js b/app/src/main/assets/js/media.js index f1a5ac3c..5ec7f472 100644 --- a/app/src/main/assets/js/media.js +++ b/app/src/main/assets/js/media.js @@ -1,31 +1,40 @@ -// we will media events -if (!window.hasOwnProperty('frost_media')) { - console.log('Registering frost_media'); - window.frost_media = true; +"use strict"; - var _frostMediaClick = function(e) { +(function () { + // we will handle media events + var _frostMediaClick; + _frostMediaClick = function _frostMediaClick(e) { /* * Commonality; check for valid target */ - var element = e.target || e.srcElement; - if (!element.hasAttribute("data-sigil") || !element.getAttribute("data-sigil").toLowerCase().includes("inlinevideo")) return; + var dataStore, element; + element = e.target || e.srcElement; + if (!element.hasAttribute("data-sigil") || !element.getAttribute("data-sigil").toLowerCase().includes("inlinevideo")) { + return; + } console.log("Found inline video"); element = element.parentNode; - if (!element.hasAttribute("data-store")) return; - var dataStore; + if (!element.hasAttribute("data-store")) { + return; + } + dataStore = void 0; try { dataStore = JSON.parse(element.getAttribute("data-store")); - } catch (e) { + } catch (error) { + e = error; + return; + } + if (!dataStore.src) { return; } - if (!dataStore.src) return; console.log("Inline video " + dataStore.src); - if (typeof Frost !== 'undefined') Frost.loadVideo(dataStore.src, dataStore.animatedGifVideo); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.loadVideo(dataStore.src, dataStore.animatedGifVideo); + } e.stopPropagation(); e.preventDefault(); - return; - } + }; - document.addEventListener('click', _frostMediaClick, true); -} + document.addEventListener("click", _frostMediaClick, true); +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/media.min.js b/app/src/main/assets/js/media.min.js deleted file mode 100644 index 767b8a36..00000000 --- a/app/src/main/assets/js/media.min.js +++ /dev/null @@ -1,21 +0,0 @@ -if(!window.hasOwnProperty("frost_media")){ -console.log("Registering frost_media"), -window.frost_media=!0 -;var _frostMediaClick=function(e){ -var t=e.target||e.srcElement -;if(t.hasAttribute("data-sigil")&&t.getAttribute("data-sigil").toLowerCase().includes("inlinevideo")&&(console.log("Found inline video"), -t=t.parentNode, -t.hasAttribute("data-store"))){ -var i -;try{ -i=JSON.parse(t.getAttribute("data-store")) -}catch(e){ -return -} -i.src&&(console.log("Inline video "+i.src),"undefined"!=typeof Frost&&Frost.loadVideo(i.src,i.animatedGifVideo), -e.stopPropagation(), -e.preventDefault()) -} -} -;document.addEventListener("click",_frostMediaClick,!0) -}
\ No newline at end of file diff --git a/app/src/main/assets/js/menu.coffee b/app/src/main/assets/js/menu.coffee new file mode 100644 index 00000000..8072eeab --- /dev/null +++ b/app/src/main/assets/js/menu.coffee @@ -0,0 +1,42 @@ +# click menu and move contents to main view +viewport = document.querySelector("#viewport") +root = document.querySelector("#root") +if !viewport + console.log "Menu.js: viewport is null" +if !root + console.log "Menu.js: root is null" +y = new MutationObserver((mutations) -> + viewport.removeAttribute "style" + root.removeAttribute "style" + return +) +y.observe viewport, attributes: true +y.observe root, attributes: true +x = new MutationObserver((mutations) -> + menu = document.querySelector(".mSideMenu") + if menu != null + x.disconnect() + console.log "Found side menu" + while root.firstChild + root.removeChild root.firstChild + while menu.childNodes.length + console.log "append" + viewport.appendChild menu.childNodes[0] + Frost?.emit 0 + setTimeout (-> + y.disconnect() + console.log "Unhook styler" + return + ), 500 + return +) +jewel = document.querySelector("#mJewelNav") +if !jewel + console.log "Menu.js: jewel is null" +x.observe jewel, + childList: true + subtree: true +menuA = document.querySelector("#bookmarks_jewel").querySelector("a") +if !menuA + console.log "Menu.js: jewel is null" +menuA.click()
\ No newline at end of file diff --git a/app/src/main/assets/js/menu.js b/app/src/main/assets/js/menu.js index a43b1820..49534c7e 100644 --- a/app/src/main/assets/js/menu.js +++ b/app/src/main/assets/js/menu.js @@ -1,46 +1,73 @@ -//click menu and move contents to main view -if (!window.hasOwnProperty('frost_menu')) { - console.log('Registering frost_menu'); - window.frost_menu = true; - var viewport = document.querySelector('#viewport'); - var root = document.querySelector('#root'); - if (!viewport) console.log('Menu.js: viewport is null'); - if (!root) console.log('Menu.js: root is null'); - var y = new MutationObserver(function(mutations) { - viewport.removeAttribute('style'); - root.removeAttribute('style'); +"use strict"; + +(function () { + // click menu and move contents to main view + var jewel, menuA, root, viewport, x, y; + + viewport = document.querySelector("#viewport"); + + root = document.querySelector("#root"); + + if (!viewport) { + console.log("Menu.js: viewport is null"); + } + + if (!root) { + console.log("Menu.js: root is null"); + } + + y = new MutationObserver(function (mutations) { + viewport.removeAttribute("style"); + root.removeAttribute("style"); }); + y.observe(viewport, { attributes: true }); + y.observe(root, { attributes: true }); - var x = new MutationObserver(function(mutations) { - var menu = document.querySelector('.mSideMenu'); + + x = new MutationObserver(function (mutations) { + var menu; + menu = document.querySelector(".mSideMenu"); if (menu !== null) { x.disconnect(); - console.log('Found side menu'); - while (root.firstChild) + console.log("Found side menu"); + while (root.firstChild) { root.removeChild(root.firstChild); + } while (menu.childNodes.length) { - console.log('append'); + console.log("append"); viewport.appendChild(menu.childNodes[0]); } - if (typeof Frost !== 'undefined') Frost.emit(0); - setTimeout(function() { + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.emit(0); + } + setTimeout(function () { y.disconnect(); - console.log('Unhook styler'); + console.log("Unhook styler"); }, 500); } }); - var jewel = document.querySelector('#mJewelNav'); - if (!jewel) console.log('Menu.js: jewel is null'); + + jewel = document.querySelector("#mJewelNav"); + + if (!jewel) { + console.log("Menu.js: jewel is null"); + } + x.observe(jewel, { childList: true, subtree: true }); - var menuA = document.querySelector('#bookmarks_jewel').querySelector('a'); - if (!menuA) console.log('Menu.js: jewel is null') + + menuA = document.querySelector("#bookmarks_jewel").querySelector("a"); + + if (!menuA) { + console.log("Menu.js: jewel is null"); + } + menuA.click(); -} +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/menu.min.js b/app/src/main/assets/js/menu.min.js deleted file mode 100644 index 5b65ac9b..00000000 --- a/app/src/main/assets/js/menu.min.js +++ /dev/null @@ -1,33 +0,0 @@ -if(!window.hasOwnProperty("frost_menu")){ -console.log("Registering frost_menu"),window.frost_menu=!0 -;var viewport=document.querySelector("#viewport"),root=document.querySelector("#root") -;viewport||console.log("Menu.js: viewport is null"), -root||console.log("Menu.js: root is null") -;var y=new MutationObserver(function(e){ -viewport.removeAttribute("style"),root.removeAttribute("style") -}) -;y.observe(viewport,{ -attributes:!0 -}),y.observe(root,{ -attributes:!0 -}) -;var x=new MutationObserver(function(e){ -var o=document.querySelector(".mSideMenu") -;if(null!==o){ -for(x.disconnect(),console.log("Found side menu");root.firstChild;)root.removeChild(root.firstChild) -;for(;o.childNodes.length;)console.log("append"), -viewport.appendChild(o.childNodes[0]) -;"undefined"!=typeof Frost&&Frost.emit(0),setTimeout(function(){ -y.disconnect(),console.log("Unhook styler") -},500) -} -}),jewel=document.querySelector("#mJewelNav") -;jewel||console.log("Menu.js: jewel is null"), -x.observe(jewel,{ -childList:!0, -subtree:!0 -}) -;var menuA=document.querySelector("#bookmarks_jewel").querySelector("a") -;menuA||console.log("Menu.js: jewel is null"), -menuA.click() -}
\ No newline at end of file diff --git a/app/src/main/assets/js/menu_debug.coffee b/app/src/main/assets/js/menu_debug.coffee new file mode 100644 index 00000000..54b265f4 --- /dev/null +++ b/app/src/main/assets/js/menu_debug.coffee @@ -0,0 +1,42 @@ +# click menu and move contents to main view +viewport = document.querySelector("#viewport") +root = document.querySelector("#root") +if !viewport + console.log "Menu.js: viewport is null" +if !root + console.log "Menu.js: root is null" +y = new MutationObserver((mutations) -> + viewport.removeAttribute "style" + root.removeAttribute "style" + return +) +y.observe viewport, attributes: true +y.observe root, attributes: true +x = new MutationObserver((mutations) -> + menu = document.querySelector(".mSideMenu") + if menu != null + x.disconnect() + console.log "Found side menu" + while root.firstChild + root.removeChild root.firstChild + while menu.childNodes.length + console.log "append" + viewport.appendChild menu.childNodes[0] + Frost?.handleHtml viewport.outerHTML + setTimeout (-> + y.disconnect() + console.log "Unhook styler" + return + ), 500 + return +) +jewel = document.querySelector("#mJewelNav") +if !jewel + console.log "Menu.js: jewel is null" +x.observe jewel, + childList: true + subtree: true +menuA = document.querySelector("#bookmarks_jewel").querySelector("a") +if !menuA + console.log "Menu.js: jewel is null" +menuA.click() diff --git a/app/src/main/assets/js/menu_debug.js b/app/src/main/assets/js/menu_debug.js index 552dc909..7ecbf276 100644 --- a/app/src/main/assets/js/menu_debug.js +++ b/app/src/main/assets/js/menu_debug.js @@ -1,46 +1,73 @@ -//click menu and move contents to main view -if (!window.hasOwnProperty('frost_menu')) { - console.log('Registering frost_menu'); - window.frost_menu = true; - var viewport = document.querySelector('#viewport'); - var root = document.querySelector('#root'); - if (!viewport) console.log('Menu.js: viewport is null'); - if (!root) console.log('Menu.js: root is null'); - var y = new MutationObserver(function(mutations) { - viewport.removeAttribute('style'); - root.removeAttribute('style'); +"use strict"; + +(function () { + // click menu and move contents to main view + var jewel, menuA, root, viewport, x, y; + + viewport = document.querySelector("#viewport"); + + root = document.querySelector("#root"); + + if (!viewport) { + console.log("Menu.js: viewport is null"); + } + + if (!root) { + console.log("Menu.js: root is null"); + } + + y = new MutationObserver(function (mutations) { + viewport.removeAttribute("style"); + root.removeAttribute("style"); }); + y.observe(viewport, { attributes: true }); + y.observe(root, { attributes: true }); - var x = new MutationObserver(function(mutations) { - var menu = document.querySelector('.mSideMenu'); + + x = new MutationObserver(function (mutations) { + var menu; + menu = document.querySelector(".mSideMenu"); if (menu !== null) { x.disconnect(); - console.log('Found side menu'); - while (root.firstChild) + console.log("Found side menu"); + while (root.firstChild) { root.removeChild(root.firstChild); + } while (menu.childNodes.length) { - console.log('append'); + console.log("append"); viewport.appendChild(menu.childNodes[0]); } - if (typeof Frost !== 'undefined') Frost.handleHtml(viewport.outerHTML); - setTimeout(function() { + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.handleHtml(viewport.outerHTML); + } + setTimeout(function () { y.disconnect(); - console.log('Unhook styler'); + console.log("Unhook styler"); }, 500); } }); - var jewel = document.querySelector('#mJewelNav'); - if (!jewel) console.log('Menu.js: jewel is null'); + + jewel = document.querySelector("#mJewelNav"); + + if (!jewel) { + console.log("Menu.js: jewel is null"); + } + x.observe(jewel, { childList: true, subtree: true }); - var menuA = document.querySelector('#bookmarks_jewel').querySelector('a'); - if (!menuA) console.log('Menu.js: jewel is null') + + menuA = document.querySelector("#bookmarks_jewel").querySelector("a"); + + if (!menuA) { + console.log("Menu.js: jewel is null"); + } + menuA.click(); -} +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/menu_debug.min.js b/app/src/main/assets/js/menu_debug.min.js deleted file mode 100644 index df51c13b..00000000 --- a/app/src/main/assets/js/menu_debug.min.js +++ /dev/null @@ -1,34 +0,0 @@ -if(!window.hasOwnProperty("frost_menu")){ -console.log("Registering frost_menu"),window.frost_menu=!0 -;var viewport=document.querySelector("#viewport"),root=document.querySelector("#root") -;viewport||console.log("Menu.js: viewport is null"), -root||console.log("Menu.js: root is null") -;var y=new MutationObserver(function(e){ -viewport.removeAttribute("style"),root.removeAttribute("style") -}) -;y.observe(viewport,{ -attributes:!0 -}),y.observe(root,{ -attributes:!0 -}) -;var x=new MutationObserver(function(e){ -var o=document.querySelector(".mSideMenu") -;if(null!==o){ -for(x.disconnect(),console.log("Found side menu");root.firstChild;)root.removeChild(root.firstChild) -;for(;o.childNodes.length;)console.log("append"), -viewport.appendChild(o.childNodes[0]) -;"undefined"!=typeof Frost&&Frost.handleHtml(viewport.outerHTML), -setTimeout(function(){ -y.disconnect(),console.log("Unhook styler") -},500) -} -}),jewel=document.querySelector("#mJewelNav") -;jewel||console.log("Menu.js: jewel is null"), -x.observe(jewel,{ -childList:!0, -subtree:!0 -}) -;var menuA=document.querySelector("#bookmarks_jewel").querySelector("a") -;menuA||console.log("Menu.js: jewel is null"), -menuA.click() -}
\ No newline at end of file diff --git a/app/src/main/assets/js/notif_msg.coffee b/app/src/main/assets/js/notif_msg.coffee new file mode 100644 index 00000000..1c3f8e38 --- /dev/null +++ b/app/src/main/assets/js/notif_msg.coffee @@ -0,0 +1,22 @@ +# binds callbacks to an invisible webview to take in the search events +finished = false +x = new MutationObserver((mutations) -> + _f_thread = document.querySelector("#threadlist_rows") + if !_f_thread + return + console.log "Found message threads #{_f_thread.outerHTML}" + Frost?.handleHtml _f_thread.outerHTML + finished = true + x.disconnect() + return +) +x.observe document, + childList: true + subtree: true +setTimeout (-> + if !finished + finished = true + console.log "Message thread timeout cancellation" + Frost?.handleHtml "" + return +), 20000 diff --git a/app/src/main/assets/js/notif_msg.js b/app/src/main/assets/js/notif_msg.js index 83405f39..134ad4f0 100644 --- a/app/src/main/assets/js/notif_msg.js +++ b/app/src/main/assets/js/notif_msg.js @@ -1,25 +1,37 @@ -//binds callbacks to an invisible webview to take in the search events -if (!window.hasOwnProperty('frost_notif_msg')) { - console.log('Registering frost_notif_msg'); - window.frost_notif_msg = true; - var finished = false; - var x = new MutationObserver(function(mutations) { - var _f_thread = document.querySelector('#threadlist_rows'); - if (!_f_thread) return; - console.log('Found message threads', _f_thread.outerHTML); - if (typeof Frost !== 'undefined') Frost.handleHtml(_f_thread.outerHTML); +"use strict"; + +(function () { + // binds callbacks to an invisible webview to take in the search events + var finished, x; + + finished = false; + + x = new MutationObserver(function (mutations) { + var _f_thread; + _f_thread = document.querySelector("#threadlist_rows"); + if (!_f_thread) { + return; + } + console.log("Found message threads " + _f_thread.outerHTML); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.handleHtml(_f_thread.outerHTML); + } finished = true; x.disconnect(); }); + x.observe(document, { childList: true, subtree: true }); - setTimeout(function() { + + setTimeout(function () { if (!finished) { finished = true; - console.log('Message thread timeout cancellation') - if (typeof Frost !== 'undefined') Frost.handleHtml(""); + console.log("Message thread timeout cancellation"); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.handleHtml(""); + } } }, 20000); -} +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/notif_msg.min.js b/app/src/main/assets/js/notif_msg.min.js deleted file mode 100644 index cb965d02..00000000 --- a/app/src/main/assets/js/notif_msg.min.js +++ /dev/null @@ -1,17 +0,0 @@ -if(!window.hasOwnProperty("frost_notif_msg")){ -console.log("Registering frost_notif_msg"), -window.frost_notif_msg=!0 -;var finished=!1,x=new MutationObserver(function(e){ -var o=document.querySelector("#threadlist_rows") -;o&&(console.log("Found message threads",o.outerHTML), -"undefined"!=typeof Frost&&Frost.handleHtml(o.outerHTML), -finished=!0,x.disconnect()) -}) -;x.observe(document,{ -childList:!0, -subtree:!0 -}),setTimeout(function(){ -finished||(finished=!0,console.log("Message thread timeout cancellation"), -"undefined"!=typeof Frost&&Frost.handleHtml("")) -},2e4) -}
\ No newline at end of file diff --git a/app/src/main/assets/js/search.js b/app/src/main/assets/js/search.js deleted file mode 100644 index 0a8954ef..00000000 --- a/app/src/main/assets/js/search.js +++ /dev/null @@ -1,19 +0,0 @@ -//binds callbacks to an invisible webview to take in the search events -if (!window.hasOwnProperty('frost_search')) { - console.log('Registering frost_search'); - window.frost_search = true; - var _f_page = document.querySelector('#page'); - // var _f_input = document.querySelector('#main-search-input') - if (!_f_page) Frost.emit(1); - else { - Frost.emit(0); - var x = new MutationObserver(function(mutations) { - Frost.handleHtml(page.innerHTML); - Frost.emit(2); - }); - x.observe(_f_page, { - childList: true, - subtree: true - }); - } -} diff --git a/app/src/main/assets/js/search.min.js b/app/src/main/assets/js/search.min.js deleted file mode 100644 index 109bfb13..00000000 --- a/app/src/main/assets/js/search.min.js +++ /dev/null @@ -1,15 +0,0 @@ -if(!window.hasOwnProperty("frost_search")){ -console.log("Registering frost_search"), -window.frost_search=!0 -;var _f_page=document.querySelector("#page") -;if(_f_page){ -Frost.emit(0) -;var x=new MutationObserver(function(e){ -Frost.handleHtml(page.innerHTML),Frost.emit(2) -}) -;x.observe(_f_page,{ -childList:!0, -subtree:!0 -}) -}else Frost.emit(1) -}
\ No newline at end of file diff --git a/app/src/main/assets/js/search_query.js b/app/src/main/assets/js/search_query.js deleted file mode 100644 index 806519de..00000000 --- a/app/src/main/assets/js/search_query.js +++ /dev/null @@ -1,10 +0,0 @@ -var e = document.getElementById('main-search-input'); -if (e) { - e.value = '$input'; - var n = new Event('input', { - bubbles: !0, - cancelable: !0 - }); - e.dispatchEvent(n); - e.dispatchEvent(new Event('focus')); -} else console.log('Input field not found') diff --git a/app/src/main/assets/js/textarea_listener.coffee b/app/src/main/assets/js/textarea_listener.coffee new file mode 100644 index 00000000..950f663e --- /dev/null +++ b/app/src/main/assets/js/textarea_listener.coffee @@ -0,0 +1,22 @@ +# focus listener for textareas +# since swipe to refresh is quite sensitive, we will disable it +# when we detect a user typing +# note that this extends passed having a keyboard opened, +# as a user may still be reviewing his/her post +# swiping should automatically be reset on refresh + +_frostFocus = (e) -> + element = e.target or e.srcElement + console.log "Frost focus", element.tagName + if element.tagName == "TEXTAREA" + Frost?.disableSwipeRefresh true + return + +_frostBlur = (e) -> + element = e.target or e.srcElement + console.log "Frost blur", element.tagName + Frost?.disableSwipeRefresh false + return + +document.addEventListener "focus", _frostFocus, true +document.addEventListener "blur", _frostBlur, true diff --git a/app/src/main/assets/js/textarea_listener.js b/app/src/main/assets/js/textarea_listener.js index e6951411..41d77159 100644 --- a/app/src/main/assets/js/textarea_listener.js +++ b/app/src/main/assets/js/textarea_listener.js @@ -1,27 +1,35 @@ -//focus listener for textareas -//since swipe to refresh is quite sensitive, we will disable it -//when we detect a user typing -//note that this extends passed having a keyboard opened, -//as a user may still be reviewing his/her post -//swiping should automatically be reset on refresh -if (!window.hasOwnProperty('frost_textarea_listener')) { - console.log('Registering frost_textarea_listener'); - window.frost_textarea_listener = true; +"use strict"; - var _frostFocus = function(e) { - var element = e.target || e.srcElement; - console.log('Frost focus', element.tagName); - if (element.tagName === 'TEXTAREA') - if (typeof Frost !== 'undefined') Frost.disableSwipeRefresh(true); - } +(function () { + // focus listener for textareas + // since swipe to refresh is quite sensitive, we will disable it + // when we detect a user typing + // note that this extends passed having a keyboard opened, + // as a user may still be reviewing his/her post + // swiping should automatically be reset on refresh + var _frostBlur, _frostFocus; - var _frostBlur = function(e) { - var element = e.target || e.srcElement; - console.log('Frost blur', element.tagName); - if (typeof Frost !== 'undefined') Frost.disableSwipeRefresh(false); - } + _frostFocus = function _frostFocus(e) { + var element; + element = e.target || e.srcElement; + console.log("Frost focus", element.tagName); + if (element.tagName === "TEXTAREA") { + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.disableSwipeRefresh(true); + } + } + }; - document.addEventListener('focus', _frostFocus, true); - document.addEventListener('blur', _frostBlur, true); + _frostBlur = function _frostBlur(e) { + var element; + element = e.target || e.srcElement; + console.log("Frost blur", element.tagName); + if (typeof Frost !== "undefined" && Frost !== null) { + Frost.disableSwipeRefresh(false); + } + }; -} + document.addEventListener("focus", _frostFocus, true); + + document.addEventListener("blur", _frostBlur, true); +}).call(undefined);
\ No newline at end of file diff --git a/app/src/main/assets/js/textarea_listener.min.js b/app/src/main/assets/js/textarea_listener.min.js deleted file mode 100644 index 44ae9ceb..00000000 --- a/app/src/main/assets/js/textarea_listener.min.js +++ /dev/null @@ -1,12 +0,0 @@ -if(!window.hasOwnProperty("frost_textarea_listener")){ -console.log("Registering frost_textarea_listener"), -window.frost_textarea_listener=!0 -;var _frostFocus=function(e){ -var t=e.target||e.srcElement -;console.log("Frost focus",t.tagName),"TEXTAREA"===t.tagName&&"undefined"!=typeof Frost&&Frost.disableSwipeRefresh(!0) -},_frostBlur=function(e){ -var t=e.target||e.srcElement -;console.log("Frost blur",t.tagName),"undefined"!=typeof Frost&&Frost.disableSwipeRefresh(!1) -} -;document.addEventListener("focus",_frostFocus,!0),document.addEventListener("blur",_frostBlur,!0) -}
\ No newline at end of file diff --git a/app/src/main/assets/package-lock.json b/app/src/main/assets/package-lock.json new file mode 100644 index 00000000..9bea5fd3 --- /dev/null +++ b/app/src/main/assets/package-lock.json @@ -0,0 +1,986 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } + }, + "babel-core": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", + "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-generator": "6.26.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "convert-source-map": "1.5.1", + "debug": "2.6.9", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.8", + "slash": "1.0.0", + "source-map": "0.5.7" + } + }, + "babel-generator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", + "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.7", + "trim-right": "1.0.1" + } + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-define-map": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", + "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-regex": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", + "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", + "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "lodash": "4.17.4" + } + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.26.0", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", + "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0" + } + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.26.0", + "babel-template": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.26.0", + "babel-runtime": "6.26.0", + "regexpu-core": "2.0.0" + } + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.26.0" + } + }, + "babel-plugin-transform-regenerator": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", + "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", + "dev": true, + "requires": { + "regenerator-transform": "0.10.1" + } + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0" + } + }, + "babel-preset-env": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/babel-preset-env/-/babel-preset-env-1.6.1.tgz", + "integrity": "sha512-W6VIyA6Ch9ePMI7VptNn2wBM6dbG0eSz25HEiL40nQXCsXGTGZSTZu1Iap+cj3Q0S5a7T9+529l/5Bkvd+afNA==", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.26.0", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-regenerator": "6.26.0", + "browserslist": "2.10.0", + "invariant": "2.2.2", + "semver": "5.4.1" + } + }, + "babel-register": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", + "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", + "dev": true, + "requires": { + "babel-core": "6.26.0", + "babel-runtime": "6.26.0", + "core-js": "2.5.2", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.18" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "2.5.2", + "regenerator-runtime": "0.11.1" + } + }, + "babel-template": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", + "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-traverse": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "lodash": "4.17.4" + } + }, + "babel-traverse": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", + "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", + "dev": true, + "requires": { + "babel-code-frame": "6.26.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "babylon": "6.18.0", + "debug": "2.6.9", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } + }, + "babel-types": { + "version": "6.26.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", + "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } + }, + "babylon": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", + "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "browserslist": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-2.10.0.tgz", + "integrity": "sha512-WyvzSLsuAVPOjbljXnyeWl14Ae+ukAT8MUuagKVzIDvwBxl4UAwD1xqtyQs2eWYPGUKMeC3Ol62goqYuKqTTcw==", + "dev": true, + "requires": { + "caniuse-lite": "1.0.30000782", + "electron-to-chromium": "1.3.28" + } + }, + "caniuse-lite": { + "version": "1.0.30000782", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30000782.tgz", + "integrity": "sha1-W4K4w4XyU0h0XEccpRMgr7G38lQ=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "convert-source-map": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz", + "integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=", + "dev": true + }, + "core-js": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.2.tgz", + "integrity": "sha1-vEZIZW59ydyA19PHu8Fy2W50TmM=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } + }, + "electron-to-chromium": { + "version": "1.3.28", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.28.tgz", + "integrity": "sha1-jdTmRYCGZE6fnwoc8y4qH53/2e4=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "private": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", + "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==", + "dev": true + }, + "regenerate": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", + "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==", + "dev": true + }, + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz", + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg==", + "dev": true + }, + "regenerator-transform": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", + "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", + "dev": true, + "requires": { + "babel-runtime": "6.26.0", + "babel-types": "6.26.0", + "private": "0.1.8" + } + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.3", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + }, + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "dev": true, + "requires": { + "source-map": "0.5.7" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true + } + } +} diff --git a/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssAssets.kt b/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssAssets.kt index 3155b11a..d9542cba 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssAssets.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssAssets.kt @@ -2,6 +2,7 @@ package com.pitchedapps.frost.injectors import android.graphics.Color import android.webkit.WebView +import ca.allanwang.kau.kotlin.lazyContext import ca.allanwang.kau.utils.* import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.Prefs @@ -17,42 +18,41 @@ enum class CssAssets(val folder: String = "themes") : InjectorContract { MATERIAL_LIGHT, MATERIAL_DARK, MATERIAL_AMOLED, MATERIAL_GLASS, CUSTOM, ROUND_ICONS("components") ; - var file = "${name.toLowerCase(Locale.CANADA)}.compact.css" - var injector: JsInjector? = null - - override fun inject(webView: WebView, callback: ((String) -> Unit)?) { - if (injector == null) { - try { - var content = webView.context.assets.open("css/$folder/$file").bufferedReader().use { it.readText() } - if (this == CUSTOM) { - val bt: String - if (Color.alpha(Prefs.bgColor) == 255) { - bt = Prefs.bgColor.toRgbaString() - } else { - bt = "transparent" - } - content = content - .replace("\$T\$", Prefs.textColor.toRgbaString()) - .replace("\$TT\$", Prefs.textColor.colorToBackground(0.05f).toRgbaString()) - .replace("\$A\$", Prefs.accentColor.toRgbaString()) - .replace("\$B\$", Prefs.bgColor.toRgbaString()) - .replace("\$BT\$", bt) - .replace("\$BBT\$", Prefs.bgColor.withAlpha(51).colorToForeground(0.35f).toRgbaString()) - .replace("\$O\$", Prefs.bgColor.withAlpha(255).toRgbaString()) - .replace("\$OO\$", Prefs.bgColor.withAlpha(255).colorToForeground(0.35f).toRgbaString()) - .replace("\$D\$", Prefs.textColor.adjustAlpha(0.3f).toRgbaString()) + var file = "${name.toLowerCase(Locale.CANADA)}.css" + var injector = lazyContext { + try { + var content = it.assets.open("css/$folder/$file").bufferedReader().use { it.readText() } + if (this == CUSTOM) { + val bt: String + if (Color.alpha(Prefs.bgColor) == 255) { + bt = Prefs.bgColor.toRgbaString() + } else { + bt = "transparent" } - injector = JsBuilder().css(content).build() - } catch (e: FileNotFoundException) { - L.e(e, "CssAssets file not found") - injector = JsInjector(JsActions.EMPTY.function) + content = content + .replace("\$T\$", Prefs.textColor.toRgbaString()) + .replace("\$TT\$", Prefs.textColor.colorToBackground(0.05f).toRgbaString()) + .replace("\$A\$", Prefs.accentColor.toRgbaString()) + .replace("\$B\$", Prefs.bgColor.toRgbaString()) + .replace("\$BT\$", bt) + .replace("\$BBT\$", Prefs.bgColor.withAlpha(51).colorToForeground(0.35f).toRgbaString()) + .replace("\$O\$", Prefs.bgColor.withAlpha(255).toRgbaString()) + .replace("\$OO\$", Prefs.bgColor.withAlpha(255).colorToForeground(0.35f).toRgbaString()) + .replace("\$D\$", Prefs.textColor.adjustAlpha(0.3f).toRgbaString()) } + JsBuilder().css(content).build() + } catch (e: FileNotFoundException) { + L.e(e, "CssAssets file not found") + JsInjector(JsActions.EMPTY.function) } - injector!!.inject(webView, callback) + } + + override fun inject(webView: WebView, callback: ((String) -> Unit)?) { + injector(webView.context).inject(webView, callback) } fun reset() { - injector = null + injector.invalidate() } } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt b/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt index 8e30346b..0e46225c 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/injectors/JsAssets.kt @@ -1,6 +1,7 @@ package com.pitchedapps.frost.injectors import android.webkit.WebView +import ca.allanwang.kau.kotlin.lazyContext import com.pitchedapps.frost.utils.L import java.io.FileNotFoundException import java.util.* @@ -11,22 +12,30 @@ import java.util.* * The enum name must match the css file name */ enum class JsAssets : InjectorContract { - MENU, MENU_DEBUG, CLICK_A, CONTEXT_A, MEDIA, HEADER_BADGES, SEARCH, TEXTAREA_LISTENER, NOTIF_MSG + MENU, MENU_DEBUG, CLICK_A, CONTEXT_A, MEDIA, HEADER_BADGES, TEXTAREA_LISTENER, NOTIF_MSG ; - var file = "${name.toLowerCase(Locale.CANADA)}.min.js" - var injector: JsInjector? = null + var file = "${name.toLowerCase(Locale.CANADA)}.js" + var injector = lazyContext { + try { + val content = it.assets.open("js/$file").bufferedReader().use { it.readText() } + JsBuilder().js(singleInjector(content)).build() + } catch (e: FileNotFoundException) { + L.e(e, "JsAssets file not found") + JsInjector(JsActions.EMPTY.function) + } + } override fun inject(webView: WebView, callback: ((String) -> Unit)?) { - if (injector == null) { - try { - val content = webView.context.assets.open("js/$file").bufferedReader().use { it.readText() } - injector = JsBuilder().js(content).build() - } catch (e: FileNotFoundException) { - L.e(e, "JsAssets file not found") - injector = JsInjector(JsActions.EMPTY.function) - } - } - injector!!.inject(webView, callback) + injector(webView.context).inject(webView, callback) } + + private fun singleInjector(content: String) = StringBuilder().apply { + val name = "_frost_$name" + append("if (!window.hasOwnProperty(\"$name\")) {") + append("console.log(\"Registering $name\");") + append("window.$name = true;") + append(content) + append("}") + }.toString() } |