211 changes: 195 additions & 16 deletions steamcommunity.com/public/css/applications/community/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@



@import url(https://p.typekit.net/p.css?s=1&k=sxp5lha&ht=tk&f=1785.1786.24726&a=8491078&app=typekit&e=css);

.throbber_LoadingWrapper_2wAKy {
display: flex;
Expand Down Expand Up @@ -728,11 +729,15 @@ body.modals_BodyNoScrollDialog_105OB {
flex-wrap: wrap;
justify-content: flex-start; }

.partnereventshared_SaveBackground_V0mbI {
position: fixed;
bottom: 0;
width: 100vw; }

.partnereventshared_SaveBackground_V0mbI .partnereventshared_FlexRowWrapFlexStartContainer_tyP_c {
background: #353941;
padding: 12px;
margin-top: 20px;
margin-bottom: 20px; }
margin-top: 20px; }

.partnereventshared_LangaugeWithContent_16xEW {
color: #a3cf06; }
Expand Down Expand Up @@ -2156,6 +2161,10 @@ textarea:-webkit-autofill:focus,
align-items: center;
margin-right: 3px; }

.broadcastwidgets_StoreSalePriceBox_2A_NW {
background: black;
padding: 3px 5px; }

.broadcastwidgets_StoreSalePriceBox_2A_NW {
font-size: 14px;
padding: 5px;
Expand Down Expand Up @@ -2192,6 +2201,7 @@ textarea:-webkit-autofill:focus,
overflow: hidden;
position: relative;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
background: #1F2126;
transition: all 0.2s ease-out; }
.broadcastwidgets_CapsuleContainer_1gET8:hover {
box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); }
Expand Down Expand Up @@ -2305,6 +2315,28 @@ textarea:-webkit-autofill:focus,
.broadcastwidgets_Banner_3ikQa.broadcastwidgets_Blue_3hfTG {
background-color: #66c0f4; }

.broadcastwidgets_LiveIcon_1iKjC {
position: absolute;
left: 0;
top: 36px; }

.broadcastwidgets_CapsuleMenuButton_2hdaQ {
position: absolute;
right: 4px;
top: 4px;
height: 16px;
width: 16px;
border-radius: 4px;
padding: 3px;
box-sizing: border-box;
background: white;
display: flex;
border: 1px solid black; }
.broadcastwidgets_CapsuleMenuButton_2hdaQ:hover {
background: #67c1f5; }
.broadcastwidgets_CapsuleMenuButton_2hdaQ > img {
width: 100%; }

.broadcastwidgets_BundleContent_TGX3I {
margin-left: 40px;
padding: 4px;
Expand All @@ -2316,8 +2348,8 @@ textarea:-webkit-autofill:focus,
padding: 4px;
display: inline-block;
cursor: pointer;
color: #67c1f5;
background: rgba(103, 193, 245, 0.2); }
color: #285b9a;
background: rgba(103, 193, 245, 0.9); }
.broadcastwidgets_ShowContentsButton_1cu3o:hover {
color: #fff;
background: #417a9b;
Expand Down Expand Up @@ -5546,28 +5578,36 @@ ol {
margin-top: 14px;
margin-bottom: 14px; }

Table {
.eventbbcodeparser_Table_3sT80 {
display: table;
border-collapse: collapse;
font-size: 12px; }

.eventbbcodeparser_TableHeader_3WcB- {
display: table-cell;
font-weight: bold;
border: 1px solid #4d4d4d;
padding: 4px; }
padding: 4px;
border-right: 1px solid #77797e; }
.eventbbcodeparser_TableHeader_3WcB-:first-of-type {
border-left: 1px solid #77797e; }

.eventbbcodeparser_TableHeader_3WcB- img.eventbbcodeparser_sharedFilePreviewImage_2bwhK,
.eventbbcodeparser_TableData_1skQk img.eventbbcodeparser_sharedFilePreviewImage_2bwhK {
margin: 0px; }

.eventbbcodeparser_TableRow_sc_Sn {
display: table-row; }
display: table-row;
border-bottom: 1px solid #77797e; }
.eventbbcodeparser_TableRow_sc_Sn:first-of-type {
border-top: 1px solid #77797e; }

.eventbbcodeparser_TableData_1skQk {
display: table-cell;
vertical-align: middle;
border: 1px solid #4d4d4d;
padding: 4px; }
padding: 4px;
border-right: 1px solid #77797e; }
.eventbbcodeparser_TableData_1skQk:first-of-type {
border-left: 1px solid #77797e; }

iframe.eventbbcodeparser_StoreWidget_36Y-l {
height: 190px;
Expand Down Expand Up @@ -6290,7 +6330,23 @@ iframe.eventbbcodeparser_MedalTVWidget_1j2vi {
margin-right: 4px; }

.eventrow_AppCapsuleImage_3OzV3.eventrow_AppCapsuleImage_3OzV3.eventrow_AppCapsuleImage_3OzV3 {
width: 150px; }
width: 120px;
box-shadow: 2px 2px 10px #000; }

.eventrow_AppCapsuleCtn_16au- {
display: flex;
align-items: center;
position: relative;
top: -10px;
left: 10px;
width: calc(100% - 20px); }

.eventrow_AppCapsulePrice_2-l2M {
background: black;
display: flex;
position: absolute;
right: 0;
top: 15px; }

.apppartnereventspage_AppPartnerEventsPage_3CJsg {
transition: all 0.32s ease-in-out;
Expand Down Expand Up @@ -6480,14 +6536,20 @@ div.apppartnereventspage_EventDetailsBody_3NW5v {
.partnersaledisplay_SaleSection_1cOoC {
padding: 16px;
max-width: 940px;
border-radius: 19px;
margin-left: auto;
margin-right: auto;
margin-bottom: 20px;
box-sizing: border-box; }
.partnersaledisplay_SaleSection_1cOoC.partnersaledisplay_EventSection_2c00B {
max-width: 1020px; }

.partnersaledisplay_SaleOverlay_1sZo8 {
margin-top: 20px;
max-width: 100vw; }
@media screen and (max-width: 1200px) {
.partnersaledisplay_SaleOverlay_1sZo8 {
margin-top: 100px; } }

.partnersaledisplay_AppSummaryWidgetCtn_2H8Bm {
flex-grow: 2;
flex-basis: 0;
Expand All @@ -6510,11 +6572,11 @@ div.apppartnereventspage_EventDetailsBody_3NW5v {
.partnersaledisplay_ShowContentsButton_2EjTW {
border-radius: 2px;
border: none;
padding: 4px;
padding: 10px;
display: inline-block;
cursor: pointer;
color: #67c1f5;
background: rgba(103, 193, 245, 0.2); }
color: #285b9a;
background: rgba(103, 193, 245, 0.9); }
.partnersaledisplay_ShowContentsButton_2EjTW:hover {
color: #fff;
background: #417a9b;
Expand Down Expand Up @@ -6795,6 +6857,7 @@ div.apppartnereventspage_EventDetailsBody_3NW5v {
right: initial;
position: initial; }

@charset "UTF-8";
/* latin-ext */
@font-face {
font-family: 'Jolly Lodger';
Expand Down Expand Up @@ -6849,6 +6912,48 @@ div.apppartnereventspage_EventDetailsBody_3NW5v {
src: local("Chonburi"), local("Chonburi-Regular"), url(https://fonts.gstatic.com/s/chonburi/v4/8AtqGs-wOpGRTBq66LWSHLzriA.woff2) format("woff2");
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }

/*
* The Typekit service used to deliver this font or fonts for use on websites
* is provided by Adobe and is subject to these Terms of Use
* http://www.adobe.com/products/eulas/tou_typekit. For font license
* information, see the list below.
*
* blenny:
* - http://typekit.com/eulas/00000000000000003b9acd86
* kulturista-web:
* - http://typekit.com/eulas/00000000000000003b9afb5a
* - http://typekit.com/eulas/00000000000000003b9afb59
*
* © 2009-2019 Adobe Systems Incorporated. All Rights Reserved.
*/
/*{"last_published":"2019-11-01 01:37:51 UTC"}*/
@font-face {
font-family: "kulturista-web";
src: url("https://use.typekit.net/af/40f7d5/00000000000000003b9afb5a/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n6&v=3") format("woff2"), url("https://use.typekit.net/af/40f7d5/00000000000000003b9afb5a/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n6&v=3") format("woff"), url("https://use.typekit.net/af/40f7d5/00000000000000003b9afb5a/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n6&v=3") format("opentype");
font-display: auto;
font-style: normal;
font-weight: 600; }

@font-face {
font-family: "kulturista-web";
src: url("https://use.typekit.net/af/cc438d/00000000000000003b9afb59/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i6&v=3") format("woff2"), url("https://use.typekit.net/af/cc438d/00000000000000003b9afb59/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i6&v=3") format("woff"), url("https://use.typekit.net/af/cc438d/00000000000000003b9afb59/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i6&v=3") format("opentype");
font-display: auto;
font-style: italic;
font-weight: 600; }

@font-face {
font-family: "blenny";
src: url("https://use.typekit.net/af/a32eca/00000000000000003b9acd86/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n9&v=3") format("woff2"), url("https://use.typekit.net/af/a32eca/00000000000000003b9acd86/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n9&v=3") format("woff"), url("https://use.typekit.net/af/a32eca/00000000000000003b9acd86/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n9&v=3") format("opentype");
font-display: auto;
font-style: normal;
font-weight: 900; }

.tk-kulturista-web {
font-family: "kulturista-web",serif; }

.tk-blenny {
font-family: "blenny",sans-serif; }

.partnereventdashboard_DisplaySectionHeaderContainer_1xnIX {
display: flex;
flex-direction: row;
Expand Down Expand Up @@ -7328,6 +7433,15 @@ div.apppartnereventspage_EventDetailsBody_3NW5v {
margin-top: 10px;
color: #d7d79d; }

.partnereventeditor_ExceptionDocsLink_1iykQ {
margin-top: 6px; }
.partnereventeditor_ExceptionDocsLink_1iykQ > a {
color: #b0e9ff;
text-decoration: none;
border-bottom: 1px dotted rgba(176, 233, 255, 0.5); }
.partnereventeditor_ExceptionDocsLink_1iykQ > a:hover {
color: white; }

.partnereventeditor_EventVisibility_Title_jWhiI {
font-size: 14px;
color: white;
Expand Down Expand Up @@ -8530,6 +8644,15 @@ input.clanimagepicker_SearchInput_lwt4u {
.partnereventemails_ButtonSettingContainer_3jwD2 .partnereventemails_ButtonSettingRow_1mF5p {
margin-bottom: 8px; }

.partnereventemails_DevHeader_35PpK {
width: 800px;
min-width: 800px;
font-size: 0pt;
line-height: 0pt;
padding: 0;
margin: 0;
font-weight: normal; }

.partnereventemails_EmailTabCtn_fDsyX {
position: relative; }

Expand Down Expand Up @@ -8628,6 +8751,10 @@ input.partnereventemails_HeadlineInput_2lHX9 {
margin-top: 20px;
padding-left: 10px; }

.partnereventemails_ImgCrossCtn_59gyF {
display: flex;
flex-direction: row-reverse; }

.partnereventemails_FullImageCtn_uv6NV {
width: 100%;
height: 300px;
Expand Down Expand Up @@ -8712,6 +8839,59 @@ input.partnereventemails_HeadlineInput_2lHX9 {
align-self: center;
width: 90%; }

.partnereventemails_DevEmailTemplate_sC9ZV {
width: 100%;
border-top-width: 0px;
border-right-width: 0px;
border-bottom-width: 0px;
border-left-width: 0px;
-webkit-border-horizontal-spacing: 0px;
-webkit-border-vertical-spacing: 0px;
background-color: #1748a7; }

.partnereventemails_DevEmail_Content_25Gtl {
padding-top: 40px;
padding-bottom: 40px;
padding-left: 78px;
padding-right: 78px; }

.partnereventemails_DevEmail_HearComes_3nvmQ {
color: #ffffff;
font-family: Arial, sans-serif;
font-size: 36px;
line-height: 50px;
text-align: left;
font-weight: normal;
letter-spacing: 1px;
min-width: auto !important;
padding-bottom: 5px;
text-transform: uppercase; }

.partnereventemails_DevEmail_TopLogo_1dbBh {
width: 203px;
height: 43px;
/** To get the right placement in the editor tool */
padding-top: 70px;
padding-left: 450px; }

.partnereventemails_DevEmail_TopHeader_2lmZl {
background-image: url(https://steamcommunity-a.akamaihd.net/public/images/events/devemailblue/header_bg.jpg);
background-size: 100% auto;
background-repeat: no-repeat;
height: 180px; }

.partnereventemails_DevEmail_Subject_37Wbo {
color: #ffffff;
font-family: Arial, sans-serif;
font-size: 50px;
line-height: 64px;
text-align: left;
font-weight: bold;
letter-spacing: 1px;
min-width: auto !important;
padding-bottom: 45px;
text-transform: uppercase; }

.progressutils_ErrorMessaage_13sZc {
color: red;
font-weight: bold; }
Expand Down Expand Up @@ -9871,7 +10051,6 @@ button.TextButton:focus {

.DialogMenuPosition {
position: absolute;
transition: opacity 200ms;
z-index: 1600; }

.DialogMenuPosition:not(.visible) {
Expand Down
616 changes: 484 additions & 132 deletions steamcommunity.com/public/css/webui/friends.css

Large diffs are not rendered by default.

17,606 changes: 9,203 additions & 8,403 deletions steamcommunity.com/public/javascript/applications/community/main.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion steamcommunity.com/public/javascript/broadcast_chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ CBroadcastChat.s_regexEmoticons = new RegExp( '\u02D0([^\u02D0]*)\u02D0', 'g' );
CBroadcastChat.s_regexLinks = new RegExp( '(^|[^=\\]\'"])(https?://[^ \'"<>]*)', 'gi' );
CBroadcastChat.s_regexDomain = new RegExp( '^(?:https?://)?([^/?#]+?\\.)?(([^/?#.]+?)\\.([^/?#]+?))(?=[/?#]|$)', 'i' );
CBroadcastChat.s_regexValveDomains = new RegExp( '^https?://(?:[^/?#]+?\\.)?(?:valvesoftware|steamcommunity|steampowered)\\.com(?:/?#|$)', 'i' );
CBroadcastChat.m_rgWhitelistedDomains = ["vimeo.com","youtu.be","youtube.com","digg.com","reddit.com","twitter.com","developconference.com","diygamer.com","gdconf.com","indiecade.com","kickstarter.com","indiegogo.com","moddb.com","oculusvr.com","tigsource.com","indiedb.com","gdcvault.com","1up.com","destructoid.com","engadget.com","escapistmagazine.com","gametrailers.com","gizmodo.com","guardiannews.com","guardian.co.uk","ifanzine.com","igf.com","ign.com","indiegamemag.com","kotaku.com","mobot.net","modojo.com","pcgamer.com","rockpapershotgun.com","shacknews.com","toucharcade.com","wired.com","wired.co.uk","imageshack.com","imageshack.us","games-workshop.com","steamcontroller.buka.ru","steamlink.buka.ru","e-clubmalaysia.com","gameplanet.com","degica.com","community.csgo.com.cn","steamcdn-a.akamaihd.net","steamusercontent.com","steamstatic.com","steamuserimages-a.akamaihd.net","steamstore-a.akamaihd.net","steamcommunity-a.akamaihd.net","itunes.apple.com"];
CBroadcastChat.m_rgWhitelistedDomains = ["vimeo.com","youtu.be","youtube.com","digg.com","reddit.com","twitter.com","developconference.com","diygamer.com","gdconf.com","indiecade.com","kickstarter.com","indiegogo.com","moddb.com","oculusvr.com","tigsource.com","indiedb.com","gdcvault.com","1up.com","destructoid.com","engadget.com","escapistmagazine.com","gametrailers.com","gizmodo.com","guardiannews.com","guardian.co.uk","ifanzine.com","igf.com","ign.com","indiegamemag.com","kotaku.com","mobot.net","modojo.com","pcgamer.com","rockpapershotgun.com","shacknews.com","toucharcade.com","wired.com","wired.co.uk","imageshack.com","imageshack.us","games-workshop.com","steamcontroller.buka.ru","steamlink.buka.ru","e-clubmalaysia.com","gameplanet.com","degica.com","community.csgo.com.cn","steamcdn-a.akamaihd.net","steamusercontent.com","steamstatic.com","steamuserimages-a.akamaihd.net","steamstore-a.akamaihd.net","steamcommunity-a.akamaihd.net","steampowered-a.akamaihd.net","itunes.apple.com"];

// If we are embedded within an iframe this will be set to non-null
CBroadcastChat.prototype.SetIFrameHelper = function ( iframehelper )
Expand Down
2 changes: 1 addition & 1 deletion steamcommunity.com/public/javascript/chat.js
Original file line number Diff line number Diff line change
Expand Up @@ -651,7 +651,7 @@ CWebChatDialog.s_regexEmoticons = new RegExp( '\u02D0([^\u02D0]*)\u02D0', 'g' );
CWebChatDialog.s_regexMyEmoticons = null;

CWebChatDialog.s_regexValveDomains = new RegExp( '^https?://(?:[^/?#]+?\\.)?(?:valvesoftware|steamcommunity|steampowered)\\.com(?:/?#|$)', 'i' );
CWebChatDialog.m_rgWhitelistedDomains = ["vimeo.com","youtu.be","youtube.com","digg.com","reddit.com","twitter.com","developconference.com","diygamer.com","gdconf.com","indiecade.com","kickstarter.com","indiegogo.com","moddb.com","oculusvr.com","tigsource.com","indiedb.com","gdcvault.com","1up.com","destructoid.com","engadget.com","escapistmagazine.com","gametrailers.com","gizmodo.com","guardiannews.com","guardian.co.uk","ifanzine.com","igf.com","ign.com","indiegamemag.com","kotaku.com","mobot.net","modojo.com","pcgamer.com","rockpapershotgun.com","shacknews.com","toucharcade.com","wired.com","wired.co.uk","imageshack.com","imageshack.us","games-workshop.com","steamcontroller.buka.ru","steamlink.buka.ru","e-clubmalaysia.com","gameplanet.com","degica.com","community.csgo.com.cn","steamcdn-a.akamaihd.net","steamusercontent.com","steamstatic.com","steamuserimages-a.akamaihd.net","steamstore-a.akamaihd.net","steamcommunity-a.akamaihd.net","itunes.apple.com"];
CWebChatDialog.m_rgWhitelistedDomains = ["vimeo.com","youtu.be","youtube.com","digg.com","reddit.com","twitter.com","developconference.com","diygamer.com","gdconf.com","indiecade.com","kickstarter.com","indiegogo.com","moddb.com","oculusvr.com","tigsource.com","indiedb.com","gdcvault.com","1up.com","destructoid.com","engadget.com","escapistmagazine.com","gametrailers.com","gizmodo.com","guardiannews.com","guardian.co.uk","ifanzine.com","igf.com","ign.com","indiegamemag.com","kotaku.com","mobot.net","modojo.com","pcgamer.com","rockpapershotgun.com","shacknews.com","toucharcade.com","wired.com","wired.co.uk","imageshack.com","imageshack.us","games-workshop.com","steamcontroller.buka.ru","steamlink.buka.ru","e-clubmalaysia.com","gameplanet.com","degica.com","community.csgo.com.cn","steamcdn-a.akamaihd.net","steamusercontent.com","steamstatic.com","steamuserimages-a.akamaihd.net","steamstore-a.akamaihd.net","steamcommunity-a.akamaihd.net","steampowered-a.akamaihd.net","itunes.apple.com"];

CWebChatDialog.prototype.AppendChatMessage = function( Sender, timestamp, strMessage, eMessageType )
{
Expand Down
167 changes: 50 additions & 117 deletions steamcommunity.com/public/javascript/webui/chathelpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,47 +123,44 @@
n.d(t, "a", function() {
return o;
}),
n.d(t, "o", function() {
n.d(t, "n", function() {
return s;
}),
n.d(t, "p", function() {
n.d(t, "o", function() {
return u;
}),
n.d(t, "h", function() {
n.d(t, "g", function() {
return c;
}),
n.d(t, "i", function() {
n.d(t, "h", function() {
return p;
}),
n.d(t, "n", function() {
n.d(t, "m", function() {
return l;
}),
n.d(t, "j", function() {
n.d(t, "i", function() {
return m;
}),
n.d(t, "k", function() {
n.d(t, "j", function() {
return h;
}),
n.d(t, "m", function() {
n.d(t, "l", function() {
return d;
}),
n.d(t, "l", function() {
n.d(t, "k", function() {
return _;
}),
n.d(t, "e", function() {
n.d(t, "d", function() {
return f;
}),
n.d(t, "g", function() {
n.d(t, "f", function() {
return v;
}),
n.d(t, "f", function() {
n.d(t, "e", function() {
return E;
}),
n.d(t, "c", function() {
return b;
}),
n.d(t, "d", function() {
return S;
});
var i,
a,
Expand All @@ -180,70 +177,6 @@
v = 0,
E = 2147483647;
function b(e, t) {
switch ((void 0 === t && (t = ""), e)) {
case 0:
return "english";
case 1:
return "german";
case 2:
return "french";
case 3:
return "italian";
case 4:
return "korean";
case 5:
return "spanish";
case 6:
return "schinese";
case 7:
return "tchinese";
case 8:
return "russian";
case 9:
return "thai";
case 10:
return "japanese";
case 11:
return "portuguese";
case 12:
return "polish";
case 13:
return "danish";
case 14:
return "dutch";
case 15:
return "finnish";
case 16:
return "norwegian";
case 17:
return "swedish";
case 18:
return "hungarian";
case 19:
return "czech";
case 20:
return "romanian";
case 21:
return "turkish";
case 25:
return "arabic";
case 22:
return "brazilian";
case 23:
return "bulgarian";
case 24:
return "greek";
case 26:
return "ukrainian";
case 27:
return "latam";
case 28:
return "vietnamese";
default:
return t;
}
}
function S(e, t) {
switch ((void 0 === t && (t = 0), e)) {
case "english":
return 0;
Expand Down Expand Up @@ -341,7 +274,7 @@
(a[(a.k_ESeasonRelease = 32)] = "k_ESeasonRelease"),
(a[(a.k_ECrosspostEvent = 34)] = "k_ECrosspostEvent"),
(a[(a.k_EInGameEventGeneral = 35)] = "k_EInGameEventGeneral");
var y, g;
var S, y;
i.k_EOtherEvent,
i.k_EGameEvent,
i.k_EPartyEvent,
Expand Down Expand Up @@ -374,63 +307,63 @@
i.k_ESeasonRelease,
i.k_ECrosspostEvent,
i.k_EInGameEventGeneral;
((g = y || (y = {}))[(g.k_ELaunchSource_None = 0)] =
((y = S || (S = {}))[(y.k_ELaunchSource_None = 0)] =
"k_ELaunchSource_None"),
(g[(g.k_ELaunchSource_2ftLibraryDetails = 100)] =
(y[(y.k_ELaunchSource_2ftLibraryDetails = 100)] =
"k_ELaunchSource_2ftLibraryDetails"),
(g[(g.k_ELaunchSource_2ftLibraryListView = 101)] =
(y[(y.k_ELaunchSource_2ftLibraryListView = 101)] =
"k_ELaunchSource_2ftLibraryListView"),
(g[(g.k_ELaunchSource_2ftLibraryGrid = 103)] =
(y[(y.k_ELaunchSource_2ftLibraryGrid = 103)] =
"k_ELaunchSource_2ftLibraryGrid"),
(g[(g.k_ELaunchSource_InstallSubComplete = 104)] =
(y[(y.k_ELaunchSource_InstallSubComplete = 104)] =
"k_ELaunchSource_InstallSubComplete"),
(g[(g.k_ELaunchSource_DownloadsPage = 105)] =
(y[(y.k_ELaunchSource_DownloadsPage = 105)] =
"k_ELaunchSource_DownloadsPage"),
(g[(g.k_ELaunchSource_RemoteClientStartStreaming = 106)] =
(y[(y.k_ELaunchSource_RemoteClientStartStreaming = 106)] =
"k_ELaunchSource_RemoteClientStartStreaming"),
(g[(g.k_ELaunchSource_2ftMiniModeList = 107)] =
(y[(y.k_ELaunchSource_2ftMiniModeList = 107)] =
"k_ELaunchSource_2ftMiniModeList"),
(g[(g.k_ELaunchSource_10ft = 200)] = "k_ELaunchSource_10ft"),
(g[(g.k_ELaunchSource_DashAppLaunchCmdLine = 300)] =
(y[(y.k_ELaunchSource_10ft = 200)] = "k_ELaunchSource_10ft"),
(y[(y.k_ELaunchSource_DashAppLaunchCmdLine = 300)] =
"k_ELaunchSource_DashAppLaunchCmdLine"),
(g[(g.k_ELaunchSource_DashGameIdLaunchCmdLine = 301)] =
(y[(y.k_ELaunchSource_DashGameIdLaunchCmdLine = 301)] =
"k_ELaunchSource_DashGameIdLaunchCmdLine"),
(g[(g.k_ELaunchSource_RunByGameDir = 302)] =
(y[(y.k_ELaunchSource_RunByGameDir = 302)] =
"k_ELaunchSource_RunByGameDir"),
(g[(g.k_ELaunchSource_SubCmdRunDashGame = 303)] =
(y[(y.k_ELaunchSource_SubCmdRunDashGame = 303)] =
"k_ELaunchSource_SubCmdRunDashGame"),
(g[(g.k_ELaunchSource_SteamURL_Launch = 400)] =
(y[(y.k_ELaunchSource_SteamURL_Launch = 400)] =
"k_ELaunchSource_SteamURL_Launch"),
(g[(g.k_ELaunchSource_SteamURL_Run = 401)] =
(y[(y.k_ELaunchSource_SteamURL_Run = 401)] =
"k_ELaunchSource_SteamURL_Run"),
(g[(g.k_ELaunchSource_SteamURL_JoinLobby = 402)] =
(y[(y.k_ELaunchSource_SteamURL_JoinLobby = 402)] =
"k_ELaunchSource_SteamURL_JoinLobby"),
(g[(g.k_ELaunchSource_SteamURL_RunGame = 403)] =
(y[(y.k_ELaunchSource_SteamURL_RunGame = 403)] =
"k_ELaunchSource_SteamURL_RunGame"),
(g[(g.k_ELaunchSource_SteamURL_RunGameIdOrJumplist = 404)] =
(y[(y.k_ELaunchSource_SteamURL_RunGameIdOrJumplist = 404)] =
"k_ELaunchSource_SteamURL_RunGameIdOrJumplist"),
(g[(g.k_ELaunchSource_SteamURL_RunSafe = 405)] =
(y[(y.k_ELaunchSource_SteamURL_RunSafe = 405)] =
"k_ELaunchSource_SteamURL_RunSafe"),
(g[(g.k_ELaunchSource_TrayIcon = 500)] = "k_ELaunchSource_TrayIcon"),
(g[(g.k_ELaunchSource_LibraryLeftColumnContextMenu = 600)] =
(y[(y.k_ELaunchSource_TrayIcon = 500)] = "k_ELaunchSource_TrayIcon"),
(y[(y.k_ELaunchSource_LibraryLeftColumnContextMenu = 600)] =
"k_ELaunchSource_LibraryLeftColumnContextMenu"),
(g[(g.k_ELaunchSource_LibraryLeftColumnDoubleClick = 601)] =
(y[(y.k_ELaunchSource_LibraryLeftColumnDoubleClick = 601)] =
"k_ELaunchSource_LibraryLeftColumnDoubleClick"),
(g[(g.k_ELaunchSource_Dota2Launcher = 700)] =
(y[(y.k_ELaunchSource_Dota2Launcher = 700)] =
"k_ELaunchSource_Dota2Launcher"),
(g[(g.k_ELaunchSource_IRunGameEngine = 800)] =
(y[(y.k_ELaunchSource_IRunGameEngine = 800)] =
"k_ELaunchSource_IRunGameEngine"),
(g[(g.k_ELaunchSource_DRMFailureResponse = 801)] =
(y[(y.k_ELaunchSource_DRMFailureResponse = 801)] =
"k_ELaunchSource_DRMFailureResponse"),
(g[(g.k_ELaunchSource_DRMDataRequest = 802)] =
(y[(y.k_ELaunchSource_DRMDataRequest = 802)] =
"k_ELaunchSource_DRMDataRequest"),
(g[(g.k_ELaunchSource_CloudFilePanel = 803)] =
(y[(y.k_ELaunchSource_CloudFilePanel = 803)] =
"k_ELaunchSource_CloudFilePanel"),
(g[(g.k_ELaunchSource_DiscoveredAlreadyRunning = 804)] =
(y[(y.k_ELaunchSource_DiscoveredAlreadyRunning = 804)] =
"k_ELaunchSource_DiscoveredAlreadyRunning"),
(g[(g.k_ELaunchSource_GameActionJoinParty = 900)] =
(y[(y.k_ELaunchSource_GameActionJoinParty = 900)] =
"k_ELaunchSource_GameActionJoinParty"),
(g[(g.k_ELaunchSource_AppPortraitContextMenu = 1e3)] =
(y[(y.k_ELaunchSource_AppPortraitContextMenu = 1e3)] =
"k_ELaunchSource_AppPortraitContextMenu");
},
"1VtQ": function(e, t, n) {
Expand Down Expand Up @@ -664,7 +597,7 @@
return this.m_strInviteCode;
}),
(e.prototype.BNeverExpires = function() {
return this.m_rtTimeExpires == i.f;
return this.m_rtTimeExpires == i.e;
}),
(e.prototype.GetChatRoomGroupID = function() {
return this.m_ulChatRoomGroupID;
Expand Down Expand Up @@ -701,7 +634,7 @@
(this.m_ulChatID = t),
(this.m_bIsBanned = n),
(this.m_rtKickExpires = r),
(this.m_rtTimeExpires = i.f),
(this.m_rtTimeExpires = i.e),
(this.m_bValid = !0),
(this.m_bReady = !0);
}),
Expand Down Expand Up @@ -1742,7 +1675,7 @@
var r = n("mrSG"),
o = n("0N1H");
n.d(t, "k", function() {
return o.d;
return o.c;
});
var i = n("2vnA"),
a = (function() {
Expand Down Expand Up @@ -2163,9 +2096,9 @@ and limitations under the License.
(e.prototype.GetELanguageFallbackOrder = function() {
var t = new Array();
return (
t.push(Object(o.d)(i.b.LANGUAGE)),
t.push(Object(o.c)(i.b.LANGUAGE)),
(i.b.SUPPORTED_LANGUAGES || []).forEach(function(e) {
e.value != i.b.LANGUAGE && t.push(Object(o.d)(e.value));
e.value != i.b.LANGUAGE && t.push(Object(o.c)(e.value));
}),
t
);
Expand Down Expand Up @@ -2741,7 +2674,7 @@ and limitations under the License.
}
return (
(o.InitFromAccountID = function(e) {
return new o(Number(e), s.b.EUNIVERSE, 1, i.o);
return new o(Number(e), s.b.EUNIVERSE, 1, i.n);
}),
(o.InitFromClanID = function(e) {
return new o(Number(e), s.b.EUNIVERSE, 7, 0);
Expand Down Expand Up @@ -2815,7 +2748,7 @@ and limitations under the License.
var t = this.GetUniverse();
if (t <= 0 || 5 <= t) return !1;
if (1 == e) {
if (0 == this.GetAccountID() || this.GetInstance() > i.p)
if (0 == this.GetAccountID() || this.GetInstance() > i.o)
return !1;
} else if (7 == e) {
if (0 == this.GetAccountID() || 0 != this.GetInstance())
Expand Down
6,040 changes: 3,418 additions & 2,622 deletions steamcommunity.com/public/javascript/webui/friends.js

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -875,6 +875,8 @@ LocalizationReady("shared", "english", {
Sale_HiddenItems: "%1$s item(s) are hidden due to %2$s",
Sale_StorePreferences: "your store preferences",
Sale_SeeAllSpecials: "See All Specials",
Sale_AddToWishlist: "Add to Wishlist",
Sale_Preferences: "Preferences",
Sale_default_label: "(no title)",
Sale_default_label_OnSale: "On Sale",
Sale_default_label_TopSellers: "Top Sellers",
Expand All @@ -893,6 +895,8 @@ LocalizationReady("shared", "english", {
Sale_default_label_RemotePlay_Phone: "Play Anywhere - On your Phone",
Sale_default_label_RemotePlay_Tablet: "Play Anywhere - On your Tablet",
Sale_default_label_RemotePlay_TV: "Play Anywhere - On your TV",
Sale_default_label_OnYourWishlist: "On Your Wishlist",
Sale_default_label_RecommendedForYou: "Recommended For You",

Steam_Settings_Compat_Launch_Prefix: "Runs on this computer via",
Steam_Settings_Compat_Launch_Name: "Steam Play.",
Expand Down
199 changes: 66 additions & 133 deletions steamcommunity.com/public/javascript/webui/profile.js
Original file line number Diff line number Diff line change
Expand Up @@ -406,47 +406,44 @@
n.d(t, "a", function() {
return o;
}),
n.d(t, "o", function() {
n.d(t, "n", function() {
return a;
}),
n.d(t, "p", function() {
n.d(t, "o", function() {
return s;
}),
n.d(t, "h", function() {
n.d(t, "g", function() {
return l;
}),
n.d(t, "i", function() {
n.d(t, "h", function() {
return u;
}),
n.d(t, "n", function() {
n.d(t, "m", function() {
return m;
}),
n.d(t, "j", function() {
n.d(t, "i", function() {
return p;
}),
n.d(t, "k", function() {
n.d(t, "j", function() {
return h;
}),
n.d(t, "m", function() {
n.d(t, "l", function() {
return d;
}),
n.d(t, "l", function() {
n.d(t, "k", function() {
return f;
}),
n.d(t, "e", function() {
n.d(t, "d", function() {
return v;
}),
n.d(t, "g", function() {
n.d(t, "f", function() {
return _;
}),
n.d(t, "f", function() {
n.d(t, "e", function() {
return y;
}),
n.d(t, "c", function() {
return b;
}),
n.d(t, "d", function() {
return E;
});
var i,
c,
Expand All @@ -463,70 +460,6 @@
_ = 0,
y = 2147483647;
function b(e, t) {
switch ((void 0 === t && (t = ""), e)) {
case 0:
return "english";
case 1:
return "german";
case 2:
return "french";
case 3:
return "italian";
case 4:
return "korean";
case 5:
return "spanish";
case 6:
return "schinese";
case 7:
return "tchinese";
case 8:
return "russian";
case 9:
return "thai";
case 10:
return "japanese";
case 11:
return "portuguese";
case 12:
return "polish";
case 13:
return "danish";
case 14:
return "dutch";
case 15:
return "finnish";
case 16:
return "norwegian";
case 17:
return "swedish";
case 18:
return "hungarian";
case 19:
return "czech";
case 20:
return "romanian";
case 21:
return "turkish";
case 25:
return "arabic";
case 22:
return "brazilian";
case 23:
return "bulgarian";
case 24:
return "greek";
case 26:
return "ukrainian";
case 27:
return "latam";
case 28:
return "vietnamese";
default:
return t;
}
}
function E(e, t) {
switch ((void 0 === t && (t = 0), e)) {
case "english":
return 0;
Expand Down Expand Up @@ -624,7 +557,7 @@
(c[(c.k_ESeasonRelease = 32)] = "k_ESeasonRelease"),
(c[(c.k_ECrosspostEvent = 34)] = "k_ECrosspostEvent"),
(c[(c.k_EInGameEventGeneral = 35)] = "k_EInGameEventGeneral");
var g, w;
var E, g;
i.k_EOtherEvent,
i.k_EGameEvent,
i.k_EPartyEvent,
Expand Down Expand Up @@ -657,63 +590,63 @@
i.k_ESeasonRelease,
i.k_ECrosspostEvent,
i.k_EInGameEventGeneral;
((w = g || (g = {}))[(w.k_ELaunchSource_None = 0)] =
((g = E || (E = {}))[(g.k_ELaunchSource_None = 0)] =
"k_ELaunchSource_None"),
(w[(w.k_ELaunchSource_2ftLibraryDetails = 100)] =
(g[(g.k_ELaunchSource_2ftLibraryDetails = 100)] =
"k_ELaunchSource_2ftLibraryDetails"),
(w[(w.k_ELaunchSource_2ftLibraryListView = 101)] =
(g[(g.k_ELaunchSource_2ftLibraryListView = 101)] =
"k_ELaunchSource_2ftLibraryListView"),
(w[(w.k_ELaunchSource_2ftLibraryGrid = 103)] =
(g[(g.k_ELaunchSource_2ftLibraryGrid = 103)] =
"k_ELaunchSource_2ftLibraryGrid"),
(w[(w.k_ELaunchSource_InstallSubComplete = 104)] =
(g[(g.k_ELaunchSource_InstallSubComplete = 104)] =
"k_ELaunchSource_InstallSubComplete"),
(w[(w.k_ELaunchSource_DownloadsPage = 105)] =
(g[(g.k_ELaunchSource_DownloadsPage = 105)] =
"k_ELaunchSource_DownloadsPage"),
(w[(w.k_ELaunchSource_RemoteClientStartStreaming = 106)] =
(g[(g.k_ELaunchSource_RemoteClientStartStreaming = 106)] =
"k_ELaunchSource_RemoteClientStartStreaming"),
(w[(w.k_ELaunchSource_2ftMiniModeList = 107)] =
(g[(g.k_ELaunchSource_2ftMiniModeList = 107)] =
"k_ELaunchSource_2ftMiniModeList"),
(w[(w.k_ELaunchSource_10ft = 200)] = "k_ELaunchSource_10ft"),
(w[(w.k_ELaunchSource_DashAppLaunchCmdLine = 300)] =
(g[(g.k_ELaunchSource_10ft = 200)] = "k_ELaunchSource_10ft"),
(g[(g.k_ELaunchSource_DashAppLaunchCmdLine = 300)] =
"k_ELaunchSource_DashAppLaunchCmdLine"),
(w[(w.k_ELaunchSource_DashGameIdLaunchCmdLine = 301)] =
(g[(g.k_ELaunchSource_DashGameIdLaunchCmdLine = 301)] =
"k_ELaunchSource_DashGameIdLaunchCmdLine"),
(w[(w.k_ELaunchSource_RunByGameDir = 302)] =
(g[(g.k_ELaunchSource_RunByGameDir = 302)] =
"k_ELaunchSource_RunByGameDir"),
(w[(w.k_ELaunchSource_SubCmdRunDashGame = 303)] =
(g[(g.k_ELaunchSource_SubCmdRunDashGame = 303)] =
"k_ELaunchSource_SubCmdRunDashGame"),
(w[(w.k_ELaunchSource_SteamURL_Launch = 400)] =
(g[(g.k_ELaunchSource_SteamURL_Launch = 400)] =
"k_ELaunchSource_SteamURL_Launch"),
(w[(w.k_ELaunchSource_SteamURL_Run = 401)] =
(g[(g.k_ELaunchSource_SteamURL_Run = 401)] =
"k_ELaunchSource_SteamURL_Run"),
(w[(w.k_ELaunchSource_SteamURL_JoinLobby = 402)] =
(g[(g.k_ELaunchSource_SteamURL_JoinLobby = 402)] =
"k_ELaunchSource_SteamURL_JoinLobby"),
(w[(w.k_ELaunchSource_SteamURL_RunGame = 403)] =
(g[(g.k_ELaunchSource_SteamURL_RunGame = 403)] =
"k_ELaunchSource_SteamURL_RunGame"),
(w[(w.k_ELaunchSource_SteamURL_RunGameIdOrJumplist = 404)] =
(g[(g.k_ELaunchSource_SteamURL_RunGameIdOrJumplist = 404)] =
"k_ELaunchSource_SteamURL_RunGameIdOrJumplist"),
(w[(w.k_ELaunchSource_SteamURL_RunSafe = 405)] =
(g[(g.k_ELaunchSource_SteamURL_RunSafe = 405)] =
"k_ELaunchSource_SteamURL_RunSafe"),
(w[(w.k_ELaunchSource_TrayIcon = 500)] = "k_ELaunchSource_TrayIcon"),
(w[(w.k_ELaunchSource_LibraryLeftColumnContextMenu = 600)] =
(g[(g.k_ELaunchSource_TrayIcon = 500)] = "k_ELaunchSource_TrayIcon"),
(g[(g.k_ELaunchSource_LibraryLeftColumnContextMenu = 600)] =
"k_ELaunchSource_LibraryLeftColumnContextMenu"),
(w[(w.k_ELaunchSource_LibraryLeftColumnDoubleClick = 601)] =
(g[(g.k_ELaunchSource_LibraryLeftColumnDoubleClick = 601)] =
"k_ELaunchSource_LibraryLeftColumnDoubleClick"),
(w[(w.k_ELaunchSource_Dota2Launcher = 700)] =
(g[(g.k_ELaunchSource_Dota2Launcher = 700)] =
"k_ELaunchSource_Dota2Launcher"),
(w[(w.k_ELaunchSource_IRunGameEngine = 800)] =
(g[(g.k_ELaunchSource_IRunGameEngine = 800)] =
"k_ELaunchSource_IRunGameEngine"),
(w[(w.k_ELaunchSource_DRMFailureResponse = 801)] =
(g[(g.k_ELaunchSource_DRMFailureResponse = 801)] =
"k_ELaunchSource_DRMFailureResponse"),
(w[(w.k_ELaunchSource_DRMDataRequest = 802)] =
(g[(g.k_ELaunchSource_DRMDataRequest = 802)] =
"k_ELaunchSource_DRMDataRequest"),
(w[(w.k_ELaunchSource_CloudFilePanel = 803)] =
(g[(g.k_ELaunchSource_CloudFilePanel = 803)] =
"k_ELaunchSource_CloudFilePanel"),
(w[(w.k_ELaunchSource_DiscoveredAlreadyRunning = 804)] =
(g[(g.k_ELaunchSource_DiscoveredAlreadyRunning = 804)] =
"k_ELaunchSource_DiscoveredAlreadyRunning"),
(w[(w.k_ELaunchSource_GameActionJoinParty = 900)] =
(g[(g.k_ELaunchSource_GameActionJoinParty = 900)] =
"k_ELaunchSource_GameActionJoinParty"),
(w[(w.k_ELaunchSource_AppPortraitContextMenu = 1e3)] =
(g[(g.k_ELaunchSource_AppPortraitContextMenu = 1e3)] =
"k_ELaunchSource_AppPortraitContextMenu");
},
"1VtQ": function(e, t, n) {
Expand Down Expand Up @@ -1236,10 +1169,10 @@
return w;
}),
n.d(t, "f", function() {
return k;
return S;
}),
n.d(t, "i", function() {
return S;
return k;
}),
n.d(t, "h", function() {
return M;
Expand Down Expand Up @@ -1580,13 +1513,13 @@
(!c.bPreferPopLeft && g) || !b
? (a.menuLeft = c.bOverlapHorizontal ? f : v)
: (a.menuRight = u - (c.bOverlapHorizontal ? v : f));
var k = l || r.top,
S = l || r.bottom,
var S = l || r.top,
k = l || r.bottom,
x = o.height;
c.bMatchHeight && ((x = S - k), (a.menuHeight = x));
var M = (c.bOverlapVertical ? S : k) - x,
c.bMatchHeight && ((x = k - S), (a.menuHeight = x));
var M = (c.bOverlapVertical ? k : S) - x,
C = 0 < M,
P = m - (c.bOverlapVertical ? k : S) - x,
P = m - (c.bOverlapVertical ? S : k) - x,
L = 0 < P,
O = (c.bPreferPopTop || !L) && C && !c.bDisablePopTop;
if (!C && !L) {
Expand All @@ -1603,8 +1536,8 @@
void 0 === a.menuBottom &&
void 0 === a.menuTop &&
(O
? (a.menuBottom = m - (c.bOverlapVertical ? S : k))
: (a.menuTop = c.bOverlapVertical ? k : S)),
? (a.menuBottom = m - (c.bOverlapVertical ? k : S))
: (a.menuTop = c.bOverlapVertical ? S : k)),
i
? (a.menuHeight || (a.menuHeight = o.height),
a.menuWidth || (a.menuWidth = o.width),
Expand Down Expand Up @@ -1780,10 +1713,10 @@
i
);
})(u.a);
function k(e) {
function S(e) {
return a.createElement("div", { className: f.a.ContextMenuMouseOverlay });
}
function S(e) {
function k(e) {
var t = [],
n = N.n(e),
r = n.getSelection(),
Expand Down Expand Up @@ -2984,7 +2917,7 @@
return (
(t = e.strReadOnlySetting
? i.createElement(P, { strLabel: e.strReadOnlySetting })
: i.createElement(S, {
: i.createElement(k, {
PrivacyStore: e.PrivacyStore,
PrivacyKey: e.PrivacyKey,
LimitPrivacyKey: e.LimitPrivacyKey
Expand All @@ -2993,7 +2926,7 @@
i.Fragment,
null,
i.createElement(w, null, e.strLabel, ":", t),
i.createElement(k, null, e.children)
i.createElement(S, null, e.children)
)
);
}
Expand All @@ -3004,14 +2937,14 @@
e.children
);
}
function k(e) {
function S(e) {
return i.createElement(
"div",
{ className: "ProfilePrivacyDesc" },
e.children
);
}
var S = (function(e) {
var k = (function(e) {
function t() {
return (null !== e && e.apply(this, arguments)) || this;
}
Expand Down Expand Up @@ -3139,7 +3072,7 @@
Object(s.c)([v.a], t.prototype, "OnCheckboxChecked", null),
(t = Object(s.c)([b.a], t))
);
})(S),
})(k),
C = (function(n) {
function e(e) {
var t = n.call(this, e) || this;
Expand Down Expand Up @@ -3443,10 +3376,10 @@
return w;
}),
n.d(t, "w", function() {
return k;
return S;
}),
n.d(t, "v", function() {
return S;
return k;
}),
n.d(t, "N", function() {
return x;
Expand Down Expand Up @@ -4303,7 +4236,7 @@
})
);
}
function k(e) {
function S(e) {
var t = "SVGIcon_Button SVGIcon_Headphones";
return (
e.className && (t += " " + e.className),
Expand Down Expand Up @@ -4366,7 +4299,7 @@
)
);
}
function S() {
function k() {
return o.createElement(
"svg",
{
Expand Down Expand Up @@ -6753,7 +6686,7 @@
var r = n("mrSG"),
o = n("0N1H");
n.d(t, "k", function() {
return o.d;
return o.c;
});
var i = n("2vnA"),
c = (function() {
Expand Down Expand Up @@ -7174,9 +7107,9 @@ and limitations under the License.
(e.prototype.GetELanguageFallbackOrder = function() {
var t = new Array();
return (
t.push(Object(o.d)(i.b.LANGUAGE)),
t.push(Object(o.c)(i.b.LANGUAGE)),
(i.b.SUPPORTED_LANGUAGES || []).forEach(function(e) {
e.value != i.b.LANGUAGE && t.push(Object(o.d)(e.value));
e.value != i.b.LANGUAGE && t.push(Object(o.c)(e.value));
}),
t
);
Expand Down
643 changes: 435 additions & 208 deletions steamcommunity.com/public/javascript/webui/steammessages.js

Large diffs are not rendered by default.

8 changes: 2 additions & 6 deletions steamcommunity.com/public/shared/javascript/shared_global.js
Original file line number Diff line number Diff line change
Expand Up @@ -1885,11 +1885,7 @@ function CAjaxInfiniteScrollingControls( rgSearchData, url )
this.m_strClassPrefix = "";
this.m_StrRowsId = "";
this.m_rgStaticParams = null;

this.m_strQuery = null;
this.m_cTotalCount = 0;
this.m_iCurrentPage = 0;
this.m_cMaxPages = 0;

this.m_bLoading = false;

this.m_fnPreRequestHandler = null;
Expand All @@ -1905,7 +1901,7 @@ function CAjaxInfiniteScrollingControls( rgSearchData, url )

this.m_strQuery = rgSearchData['query'];
this.m_cTotalCount = rgSearchData['total_count'];
this.m_iCurrentPage = 0;
this.m_iCurrentPage = rgSearchData['page'] || 0;
this.m_cPageSize = rgSearchData['pagesize'];
this.m_cMaxPages = Math.ceil( this.m_cTotalCount / this.m_cPageSize );

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -495,7 +495,7 @@ a:link {
font-size: 16px;
font-weight: 100;
line-height: 22px;
letter-spacing: 0.8px; }
letter-spacing: 0px; }
@media screen and (max-width: 414px) {
.app_App_2uHYt .app_Container_3wbt9 .app_TopSection_2GV0T .app_Body_3BvIC {
font-size: 10px;
Expand Down
112 changes: 98 additions & 14 deletions store.steampowered.com/public/css/applications/store/main.css
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@



@import url(https://p.typekit.net/p.css?s=1&k=sxp5lha&ht=tk&f=1785.1786.24726&a=8491078&app=typekit&e=css);
.app_app_Mn5qz.app_app_Mn5qz.app_app_Mn5qz {
font-family: "Motiva Sans", Arial, Helvetica, sans-serif; }

Expand Down Expand Up @@ -875,11 +876,15 @@ html.contextmenu_ContextMenuPopup_14wqd .contextmenu_contextMenuItem_1n7Wl {
flex-wrap: wrap;
justify-content: flex-start; }

.partnereventshared_SaveBackground_V0mbI {
position: fixed;
bottom: 0;
width: 100vw; }

.partnereventshared_SaveBackground_V0mbI .partnereventshared_FlexRowWrapFlexStartContainer_tyP_c {
background: #353941;
padding: 12px;
margin-top: 20px;
margin-bottom: 20px; }
margin-top: 20px; }

.partnereventshared_LangaugeWithContent_16xEW {
color: #a3cf06; }
Expand Down Expand Up @@ -1744,6 +1749,7 @@ body.modals_BodyNoScrollDialog_105OB {
overflow: hidden;
position: relative;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.7);
background: #1F2126;
transition: all 0.2s ease-out; }
.broadcastwidgets_CapsuleContainer_1gET8:hover {
box-shadow: 0 0 10px rgba(255, 255, 255, 0.5); }
Expand Down Expand Up @@ -1857,6 +1863,28 @@ body.modals_BodyNoScrollDialog_105OB {
.broadcastwidgets_Banner_3ikQa.broadcastwidgets_Blue_3hfTG {
background-color: #66c0f4; }

.broadcastwidgets_LiveIcon_1iKjC {
position: absolute;
left: 0;
top: 36px; }

.broadcastwidgets_CapsuleMenuButton_2hdaQ {
position: absolute;
right: 4px;
top: 4px;
height: 16px;
width: 16px;
border-radius: 4px;
padding: 3px;
box-sizing: border-box;
background: white;
display: flex;
border: 1px solid black; }
.broadcastwidgets_CapsuleMenuButton_2hdaQ:hover {
background: #67c1f5; }
.broadcastwidgets_CapsuleMenuButton_2hdaQ > img {
width: 100%; }

.broadcastwidgets_BundleContent_TGX3I {
margin-left: 40px;
padding: 4px;
Expand All @@ -1868,8 +1896,8 @@ body.modals_BodyNoScrollDialog_105OB {
padding: 4px;
display: inline-block;
cursor: pointer;
color: #67c1f5;
background: rgba(103, 193, 245, 0.2); }
color: #285b9a;
background: rgba(103, 193, 245, 0.9); }
.broadcastwidgets_ShowContentsButton_1cu3o:hover {
color: #fff;
background: #417a9b;
Expand Down Expand Up @@ -5648,28 +5676,36 @@ ol {
margin-top: 14px;
margin-bottom: 14px; }

Table {
.eventbbcodeparser_Table_3sT80 {
display: table;
border-collapse: collapse;
font-size: 12px; }

.eventbbcodeparser_TableHeader_3WcB- {
display: table-cell;
font-weight: bold;
border: 1px solid #4d4d4d;
padding: 4px; }
padding: 4px;
border-right: 1px solid #77797e; }
.eventbbcodeparser_TableHeader_3WcB-:first-of-type {
border-left: 1px solid #77797e; }

.eventbbcodeparser_TableHeader_3WcB- img.eventbbcodeparser_sharedFilePreviewImage_2bwhK,
.eventbbcodeparser_TableData_1skQk img.eventbbcodeparser_sharedFilePreviewImage_2bwhK {
margin: 0px; }

.eventbbcodeparser_TableRow_sc_Sn {
display: table-row; }
display: table-row;
border-bottom: 1px solid #77797e; }
.eventbbcodeparser_TableRow_sc_Sn:first-of-type {
border-top: 1px solid #77797e; }

.eventbbcodeparser_TableData_1skQk {
display: table-cell;
vertical-align: middle;
border: 1px solid #4d4d4d;
padding: 4px; }
padding: 4px;
border-right: 1px solid #77797e; }
.eventbbcodeparser_TableData_1skQk:first-of-type {
border-left: 1px solid #77797e; }

iframe.eventbbcodeparser_StoreWidget_36Y-l {
height: 190px;
Expand Down Expand Up @@ -6729,14 +6765,20 @@ h4 {
.partnersaledisplay_SaleSection_1cOoC {
padding: 16px;
max-width: 940px;
border-radius: 19px;
margin-left: auto;
margin-right: auto;
margin-bottom: 20px;
box-sizing: border-box; }
.partnersaledisplay_SaleSection_1cOoC.partnersaledisplay_EventSection_2c00B {
max-width: 1020px; }

.partnersaledisplay_SaleOverlay_1sZo8 {
margin-top: 20px;
max-width: 100vw; }
@media screen and (max-width: 1200px) {
.partnersaledisplay_SaleOverlay_1sZo8 {
margin-top: 100px; } }

.partnersaledisplay_AppSummaryWidgetCtn_2H8Bm {
flex-grow: 2;
flex-basis: 0;
Expand All @@ -6759,11 +6801,11 @@ h4 {
.partnersaledisplay_ShowContentsButton_2EjTW {
border-radius: 2px;
border: none;
padding: 8px;
padding: 10px;
display: inline-block;
cursor: pointer;
color: #285b9a;
background: rgba(103, 193, 245, 0.4); }
background: rgba(103, 193, 245, 0.9); }
.partnersaledisplay_ShowContentsButton_2EjTW:hover {
color: #fff;
background: #417a9b;
Expand Down Expand Up @@ -7044,6 +7086,7 @@ h4 {
right: initial;
position: initial; }

@charset "UTF-8";
/* latin-ext */
@font-face {
font-family: 'Jolly Lodger';
Expand Down Expand Up @@ -7098,6 +7141,48 @@ h4 {
src: local("Chonburi"), local("Chonburi-Regular"), url(https://fonts.gstatic.com/s/chonburi/v4/8AtqGs-wOpGRTBq66LWSHLzriA.woff2) format("woff2");
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB; }

/*
* The Typekit service used to deliver this font or fonts for use on websites
* is provided by Adobe and is subject to these Terms of Use
* http://www.adobe.com/products/eulas/tou_typekit. For font license
* information, see the list below.
*
* blenny:
* - http://typekit.com/eulas/00000000000000003b9acd86
* kulturista-web:
* - http://typekit.com/eulas/00000000000000003b9afb5a
* - http://typekit.com/eulas/00000000000000003b9afb59
*
* © 2009-2019 Adobe Systems Incorporated. All Rights Reserved.
*/
/*{"last_published":"2019-11-01 01:37:51 UTC"}*/
@font-face {
font-family: "kulturista-web";
src: url("https://use.typekit.net/af/40f7d5/00000000000000003b9afb5a/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n6&v=3") format("woff2"), url("https://use.typekit.net/af/40f7d5/00000000000000003b9afb5a/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n6&v=3") format("woff"), url("https://use.typekit.net/af/40f7d5/00000000000000003b9afb5a/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n6&v=3") format("opentype");
font-display: auto;
font-style: normal;
font-weight: 600; }

@font-face {
font-family: "kulturista-web";
src: url("https://use.typekit.net/af/cc438d/00000000000000003b9afb59/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i6&v=3") format("woff2"), url("https://use.typekit.net/af/cc438d/00000000000000003b9afb59/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i6&v=3") format("woff"), url("https://use.typekit.net/af/cc438d/00000000000000003b9afb59/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=i6&v=3") format("opentype");
font-display: auto;
font-style: italic;
font-weight: 600; }

@font-face {
font-family: "blenny";
src: url("https://use.typekit.net/af/a32eca/00000000000000003b9acd86/27/l?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n9&v=3") format("woff2"), url("https://use.typekit.net/af/a32eca/00000000000000003b9acd86/27/d?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n9&v=3") format("woff"), url("https://use.typekit.net/af/a32eca/00000000000000003b9acd86/27/a?primer=f592e0a4b9356877842506ce344308576437e4f677d7c9b78ca2162e6cad991a&fvd=n9&v=3") format("opentype");
font-display: auto;
font-style: normal;
font-weight: 900; }

.tk-kulturista-web {
font-family: "kulturista-web",serif; }

.tk-blenny {
font-family: "blenny",sans-serif; }

/* reset browser styles */
button.DialogButton {
-webkit-box-sizing: content-box;
Expand Down Expand Up @@ -7881,7 +7966,6 @@ button.TextButton:focus {

.DialogMenuPosition {
position: absolute;
transition: opacity 200ms;
z-index: 1600; }

.DialogMenuPosition:not(.visible) {
Expand Down
4 changes: 3 additions & 1 deletion store.steampowered.com/public/css/labs/divingbell.css
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ body.v6 .page_content {

.page_content .grid-container {
width: calc(100% - 33%);
height: 847px;
display: inline-block;
vertical-align: top;
}
Expand Down Expand Up @@ -209,6 +210,7 @@ body.v6 .page_content {
display: flex;
flex: 3;
flex-wrap: wrap;
height: calc(100% / 3 - 13.333px)
}

.page_content .header-container {
Expand Down Expand Up @@ -283,7 +285,7 @@ body.v6 .page_content {
}

.page_content .box-wrapper.sink{
margin: 10px 10px 10px 10px;
margin: 0px 0px 0px 0px;
transition-timing-function: ease-in;
transition-duration: 1.0s;
}
Expand Down
29 changes: 29 additions & 0 deletions store.steampowered.com/public/css/v6/search.css
Original file line number Diff line number Diff line change
Expand Up @@ -285,6 +285,35 @@
font-weight: bold;
}

#search_infiniscroll_reload_container {
display: none;
}

#search_infiniscroll_reload_notice {
display: table;
padding: 10px;
height: 45px;
background: rgba(0, 0, 0, 0.2);
text-align: center;
cursor: pointer;
}

#search_infiniscroll_reload_notice > img,
#search_infiniscroll_reload_notice > span {
display: table-cell;
vertical-align: middle
}

#search_infiniscroll_reload_notice > img {
height: 40px;
}

#search_infiniscroll_reload_notice > span {
padding-left: 10px;
width: 100%;
font-size: larger;
}

#search_results_loading {
text-align: center;
font-size: 20px;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1892,12 +1892,6 @@
w("#HeaderBody1")
),
D.a.createElement("div", { className: j.a.Spacer }),
D.a.createElement(
"div",
{ className: j.a.Body },
w("#HeaderBody2")
),
D.a.createElement("div", { className: j.a.Spacer }),
D.a.createElement(
"div",
{ className: j.a.Body },
Expand Down
12,498 changes: 6,357 additions & 6,141 deletions store.steampowered.com/public/javascript/applications/store/main.js

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion store.steampowered.com/public/javascript/dynamicstore.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ GDynamicStore = {
s_bUserOnLinux: false,
s_bUserOnWindows: false,

s_rgRecommendedApps: [],


s_ImpressionTracker: false,

Expand Down Expand Up @@ -150,7 +152,6 @@ GDynamicStore = {
}
);


if ( accountid )
{
if ( bForceRefresh )
Expand Down Expand Up @@ -215,6 +216,7 @@ GDynamicStore = {

GDynamicStore.s_nRemainingCartDiscount = data.nRemainingCartDiscount ? data.nRemainingCartDiscount : 0;
GDynamicStore.s_nTotalCartDiscount = data.nTotalCartDiscount ? data.nTotalCartDiscount : 0;
GDynamicStore.s_rgRecommendedApps = data.rgRecommendedApps || [];

}).always( function() { $J(fnRunOnLoadCallbacks); } );
}
Expand Down
11 changes: 8 additions & 3 deletions store.steampowered.com/public/javascript/home.js
Original file line number Diff line number Diff line change
Expand Up @@ -1166,7 +1166,6 @@ GHomepage = {

RenderRecommendedByDeepDiveApps: function()
{

// Do nothing if deep-dive not loaded
if ( GHomepage.recommendedByDeepDiveFocusedApp <= 0 )
return;
Expand All @@ -1193,8 +1192,14 @@ GHomepage = {
focusedAppTitle = $J('<textarea/>').html(focusedAppTitle).text();

var $DeepDiveSearchText = $J('.deep_dive_search_text');

$DeepDiveSearchText.attr("placeholder",focusedAppTitle);
$DeepDiveSearchText.focusin(function(){
$DeepDiveSearchText.attr("placeholder","");
});
$DeepDiveSearchText.focusout(function(){
$DeepDiveSearchText.attr("placeholder",focusedAppTitle);
});

var bottomText = "";
if(g_AccountID == 0){
Expand Down Expand Up @@ -3529,7 +3534,7 @@ function InitTopGrossingDateSlider( InitArgs )
else
{
$TabItems.html( ItemsByReleaseDate[nTimeValue] );
GHomepage.FilterTab( '#tab_topgrossing_content', { games_already_in_library: !bFilterLibraryItems } );
GHomepage.FilterTab( '#tab_topgrossing_content', { games_already_in_library: !bFilterLibraryItems, dlc_for_you: true } );
}
};

Expand Down
8 changes: 3 additions & 5 deletions store.steampowered.com/public/javascript/labs/divingbell.js
196 changes: 162 additions & 34 deletions store.steampowered.com/public/javascript/searchpage.js
Original file line number Diff line number Diff line change
Expand Up @@ -189,6 +189,25 @@ function AjaxSearchResults()
AjaxSearchResultsInternal( false, false );
}

// Sets the URL to include all the params from rgParameters, and places
// them in the history interface under the 'params' key if supported.
//
// If oHistoryStash is set, those options will also be stored in the
// history interface, but will *not* appear in the URL.
function UpdateUrl( rgParameters, oHistoryStash = {}, bPushState = true )
{

var fnUpdateState = bPushState ? history.pushState : history.replaceState;

if ( g_bUseHistoryAPI )
{
oHistoryStash.params = rgParameters;
fnUpdateState.call( history, oHistoryStash, '', '?' + Object.toQueryString( rgParameters ) );
}
else
window.location = '#' + Object.toQueryString( rgParameters );
}

function AjaxSearchResultsInternal( bOnLocationChange, bInitialLoad )
{
// we're in the middle of filling in all the controls from the hash parameter
Expand All @@ -209,23 +228,8 @@ function AjaxSearchResultsInternal( bOnLocationChange, bInitialLoad )
var hide_filtered_results_warning = rgParameters['hide_filtered_results_warning'];
delete rgParameters['hide_filtered_results_warning'];

if ( !bOnLocationChange )
{
if ( g_bUseHistoryAPI )
{
history.pushState( { params: rgParameters}, '', '?' + Object.toQueryString( rgParameters ) );
}
else
{

window.location = '#' + Object.toQueryString( rgParameters );
}
}
else if ( bInitialLoad && g_bUseHistoryAPI )
{
history.replaceState( { params: rgParameters}, '', '?' + Object.toQueryString( rgParameters ) );
}

if ( ( bInitialLoad && g_bUseHistoryAPI ) || !bOnLocationChange )
UpdateUrl( rgParameters, {}, !bOnLocationChange );

if ( snr )
rgParameters['snr'] = snr;
Expand Down Expand Up @@ -322,6 +326,85 @@ LocationHashObserver = Class.create(Abstract.TimedObserver, {
}
} );

// Function generator that stashes the current page number so we can get back there if navigated back to the page.
function fnStashSearchPositionHistory( nPageNo, sItemKey )
{
return function()
{
// Grab our search params from the form.
var rgParams = GatherSearchParameters();

// Inject our PageNo
if ( nPageNo > 1 )
rgParams['page'] = nPageNo;

// Update the URL, stashing infiniscroll + itemKey in history storage.
UpdateUrl( rgParams, { infiniscroll: true, itemkey: sItemKey } );
};
}

function IsNavFromBackButton()
{
// '2' is a magic number in the spec for back/forward. The important thing for us
// is it's not reload or direct navigation.
// https://www.w3.org/TR/navigation-timing/#performancenavigation
return g_bUseHistoryAPI && window.performance && window.performance.navigation.type == 2;
}

// Smoothly scrolls us to the last element the user was viewing.
function HandleBackReposition()
{
// Nothing to do unless we've an itemkey stashed and they hit the back button.
if ( !( IsNavFromBackButton() && history.state && history.state.itemkey ) )
return;

// Find the item we want to be scrolling to.
var sItemKey = history.state.itemkey;
var nodeItem = $J( "a[data-ds-itemkey='" + history.state.itemkey + "']" );

if ( nodeItem.length == 0 )
return;

// 'html, body' makes Firefox happy, as well as working in other browsers.
$J('html, body').animate({
// Scroll to just before the element we're after.
scrollTop: nodeItem.offset().top - nodeItem[0].offsetHeight
});

var origBackground = nodeItem.css('background-color');

// Pulse the item's colour to draw attention to it.
nodeItem.css({
'background-color': '#aaaaaa',
'transition': 'background-color ease-in 1s'
});

setTimeout( function() {
nodeItem.css({ 'background-color': origBackground });
}, 1000 );

// Remove our itemkey from the state to avoid risk of double-scrolls.
delete history.state.itemkey;
}

// Returns a boolean as to whether InfiniScroll should be used.
// Does not examine user preferences.
function BShouldUseInfiniscroll()
{
// InfiniScroll is enabled by default.
var bEnable = true;

// If we see a page number, we'd normally disable InfiniScroll...
if ( new URL( window.location.href ).searchParams.get('page') )
bEnable = false;

// But if the user has hit back and originally came from infiniscroll, reanable it.
if ( IsNavFromBackButton() && history.state && history.state.infiniscroll )
bEnable = true;

return bEnable;
}

function InitSearchPage()
{
if ( g_bUseHistoryAPI )
Expand Down Expand Up @@ -363,30 +446,51 @@ InitInfiniteScroll.nScrollSize = 25; // Default, can be modified by calling page

function InitInfiniteScroll( rgParameters )
{
var self = InitInfiniteScroll;

// Stop if disabled by preferences.
if ( ! self.bEnabled )
return null;

// Stop if overriden by navigation.
if (! BShouldUseInfiniscroll() )
return null;

// Copy our params so we don't surprise our caller by changing theirs.
rgParameters = Object.assign({}, rgParameters);

// Is there a better way to find our current function?
var self = InitInfiniteScroll;

// Clear any existing infinite scroll so we don't mix search results.
if (typeof( self.oController ) != "undefined" && self.oController !== null )
self.oController.Stop();

// If we're not enabled, or see a page parameter, then we don't want to use infiniscroll.
if ( ! self.bEnabled || new URL( window.location.href ).searchParams.get('page') )
{
return null;
}

var oScrollOptions = {
"pagesize": self.nScrollSize,
"total_count": 1000, // Gets filled with real value after our first load.
"prefix": "search_results"
"page": parseInt( rgParameters['page'] ),
"total_count": 1000, // Gets filled with real value after our first load.
"prefix": "search_results", // Where to put our results
};

self.oController = new CAjaxInfiniteScrollingControls( oScrollOptions, 'https://store.steampowered.com/search/results' );

// We may have stashed a 'page' param in the URL to make sure we fetch the right page when the user
// hits the back button. We remove that now because the pageno usually gets interpreted as paginated
// search.

var url = new URL( location.href );
var params = new URLSearchParams( url.search );

if ( params.has('page') )
{
params.delete('page');
url.search = params.toString();
history.replaceState( history.state, "", url.toString() );
var $reloadNotice = $J("#search_infiniscroll_reload_container");
$reloadNotice.show();
$reloadNotice.click( function() {
location.href = url.toString();
});
}

// Make sure our backend knows we're infinite scrolling, and don't need a whole page.
rgParameters['infinite'] = "1";

Expand All @@ -404,7 +508,6 @@ function InitInfiniteScroll( rgParameters )
// cycles by calculating what's newly loaded and just checking those.
self.oController.SetPageChangedHandler(function( iPageNo, oUpdatedDom )
{

if ( GDynamicStore != null )
{
GDynamicStore.DecorateDynamicItems($J(oUpdatedDom));
Expand All @@ -423,13 +526,16 @@ function InitInfiniteScroll( rgParameters )

oUpdatedDom.childNodes.forEach( function ( item )
{
// No attributes? Not a node we can work with.
if ( ! item["attributes"] )
return;

// Some nodes will be text or otherwise attributeless.
if ( ! item["attributes"] ) return;
AddSearchPositionClickHandler( item );

// Check our duplicate params.
for (var i = 0; i < arrayAttrs.length; i++)
{

// Remove duplicate results.
var strAttr = arrayAttrs[i];
var node = null;
if ( node = item.attributes[ strAttr ] )
Expand Down Expand Up @@ -457,6 +563,23 @@ function InitInfiniteScroll( rgParameters )
return self.oController;
}

// Decorates the given node with a click handler to support smoothly returning
// to it on navigation back through the browser history.
// Does nothing if the node is not a store item.
function AddSearchPositionClickHandler( item )
{
var attrPageNo = item.attributes[ 'data-search-page' ];
var sItemKey = item.attributes[ 'data-ds-itemkey' ].value;

if ( attrPageNo && sItemKey )
{
$J(item).click( fnStashSearchPositionHistory( parseInt( attrPageNo.value ), sItemKey ) );

// Remove the page number, so we don't try to attach a click handler again.
item.removeAttributeNode(attrPageNo);
}
}

function AddSearchTag( strParam, strValue, strLabel, fnOnClick )
{
if( $J('#searchtag_tmpl').length == 0 )
Expand Down Expand Up @@ -539,11 +662,14 @@ function UpdateTags()
function EnableClientSideFilters( CUserPreferences )
{
var rgFilterNames = [ 'hide_owned', 'hide_ignored', 'hide_wishlist' ];

var oFilters = {};

var results_container = $J("#search_results");

// If we're using the dynamic store, hide our results until it finishes loading,
// otherwise they can appear and then disappear.
if ( GDynamicStore )
results_container.addClass('results_loading');

for ( var strFilter of rgFilterNames )
{
// Find our control widget for this filter.
Expand All @@ -565,6 +691,8 @@ function EnableClientSideFilters( CUserPreferences )
$Control.click( OnClickClientFilter($Control, strFilter, results_container) );
}

// Schedule our results to appear once we've finished decorating them.
// Dynamic store will trigger the event immediately if it's already finished loading.
GDynamicStore.OnReady( function() {
results_container.removeClass( 'results_loading' );
} );
Expand Down