! function() {
var n = {
870: function(e, t) {
var n;
/*!
Copyright (c) 2018 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
! function() { "use strict"; var i = {}.hasOwnProperty;
function c() { for (var e = [], t = 0; t < arguments.length; t++) { var n = arguments[t]; if (n) { var r, a = typeof n; if ("string" == a || "number" == a) e.push(n);
else if (Array.isArray(n)) !n.length || (r = c.apply(null, n)) && e.push(r);
else if ("object" == a)
if (n.toString === Object.prototype.toString || n.toString.toString().includes("[native code]"))
for (var o in n) i.call(n, o) && n[o] && e.push(o);
else e.push(n.toString()) } } return e.join(" ") } e.exports ? (c.default = c, e.exports = c) : void 0 === (n = function() { return c }.apply(t, [])) || (e.exports = n) }()
},
74: function(e) { e.exports = 'module.exports = __webpack_public_path__ + "../html/navigation.html";' },
371: function(e) { e.exports = "https://images.rbxcdn.com/71975c43056b748bbfd281482146bf11-Thumbnail_AR.png" },
692: function(e) { e.exports = "https://images.rbxcdn.com/fbbf5f9570aef401b5dcaf4abddfcefe-Thumbnail_CHS.png" },
851: function(e) { e.exports = "https://images.rbxcdn.com/ddd9004a44b57fedbb64d7597b4ea73f-Thumbnail_EN.png" },
141: function(e) { e.exports = "https://images.rbxcdn.com/06c814c14910d4d77d8e3c943252af16-Thumbnail_ESMX.png" },
124: function(e) { e.exports = "https://images.rbxcdn.com/51ccf919e916d4336585a0ae1cd58676-Thumbnail_JP.png" },
248: function(e) { e.exports = "https://images.rbxcdn.com/df9a0778547b82ac41a36de78f4fd413-Thumbnail_KO.png" },
458: function(e) { e.exports = "https://images.rbxcdn.com/d130f851bd9658b8c4700bdf28b9325f-Thumbnail_PL.png" },
242: function(e) { e.exports = "https://images.rbxcdn.com/87803d524f6da870469a32f77af15ce0-Thumbnail_PTBR.png" },
160: function(e) { e.exports = "https://images.rbxcdn.com/658e1bad3342927f72cb901b6c796d8a-Thumbnail_TR.png" },
550: function(e) { e.exports = "https://images.rbxcdn.com/5e2135c08cbb83ba22bc5b65e94d9475-Thumbnail_VN.png" }
},
r = {};
function jo(e) { var t = r[e]; if (void 0 !== t) return t.exports;
t = r[e] = { exports: {} }; return n[e](t, t.exports, jo), t.exports } jo.n = function(e) { var t = e && e.__esModule ? function() { return e.default } : function() { return e }; return jo.d(t, { a: t }), t }, jo.d = function(e, t) { for (var n in t) jo.o(t, n) && !jo.o(e, n) && Object.defineProperty(e, n, { enumerable: !0, get: t[n] }) }, jo.o = function(e, t) { return Object.prototype.hasOwnProperty.call(e, t) },
function() { "use strict"; var B = React,
q = jo.n(B),
F = CoreUtilities,
e = ReactDOM,
G = Roblox,
t = jo.n(G),
L = HeaderScripts,
V = ReactUtilities,
K = { arrowUp: 38, arrowDown: 40, tab: 9, enter: 13 },
n = "container-main",
r = { name: "Roblox.Logout" },
a = 1,
o = { clickMerchandise: "clickMerchandiseInLeftNav", goToAmazonStore: "clickContinueToAmazonStore" },
i = { friendshipNotifications: "FriendshipNotifications", requestCountChanged: "Roblox.Friends.CountChanged", friendshipCreated: "FriendshipCreated", friendshipDestroyed: "FriendshipDestroyed", friendshipDeclined: "FriendshipDeclined", friendshipRequested: "FriendshipRequested" },
c = { name: "Roblox.Messages.CountChanged" },
y = "?",
j = "Response.InternalServerErrorDescription",
u = { name: "headerMenuIconClick" },
l = { quickLogin: "quickLogin", logout: "logout", settings: "settings", switchAccountKey: "switchAccountKey" },
S = { robuxTruncateThreshold: 1e4, creditTruncateThreshold: 1e4 },
D = { control: "control", hideCreditAndRobux: "hideCreditAndRobux", showCreditAndRobux: "showCreditAndRobux" },
_ = { accountSwitchedFlag: "RBXASAccountSwitched", accountSwitchedMessage: "Description.AccountSwitchedConfirmationBannerText" },
s = { common: ["CommonUI.Features", "CommonUI.Messages", "Common.AlertsAndOptions"], feature: "Feature.ShopDialog" },
d = PropTypes,
f = jo.n(d),
m = jo(870),
O = jo.n(m),
A = ReactStyleGuide,
p = RobloxThumbnails,
v = RobloxBadges,
b = function(e, t) { for (var n = 0, r = t.length, a = e.length; n < r; n++, a++) e[a] = t[n]; return e },
g = G.Endpoints.getAbsoluteUrl,
h = G.EnvironmentUrls.authApi,
E = { url: g("/discover/?Keyword="), label: "Label.Experience", pageSort: ["home", "games", "discover"], icon: "icon-menu-games-off" },
w = { url: g("/catalog?CatalogContext=1&Keyword="), label: "Heading.Marketplace", pageSort: ["catalog", "inventory", "bundles", "my/avatar", "trades"], icon: "icon-menu-shop" },
C = [{ url: g("/search/users?keyword="), label: "Label.Players", pageSort: ["users"], icon: "icon-menu-profile" }, w, { url: g("/search/communities?keyword="), label: "Label.sGroups", pageSort: ["groups"], icon: "icon-menu-groups" }, { url: g("/develop/library?CatalogContext=2&Category=6&Keyword="), label: "Label.CreatorStore", pageSort: ["develop"], icon: "icon-menu-library" }],
W = { creatorStoreUrl: "https://create." + G.EnvironmentUrls.domain + "/store/models?keyword=", scrollListItems: { home: { url: g("/home"), idSelector: "nav-home", iconClass: "icon-nav-home", name: "home", labelTranslationKey: "Label.sHome" }, profile: { url: g("/users/" + L.authenticatedUser.id + "/profile"), idSelector: "nav-profile", iconClass: "icon-nav-profile", name: "profile", labelTranslationKey: "Label.sProfile" }, messages: { url: g("/my/messages/#!/inbox"), urlForNotification: g("/my/messages/#!/inbox"), idSelector: "nav-message", iconClass: "icon-nav-message", name: "messages", labelTranslationKey: "Label.sMessages" }, friends: { url: g("/users/friends"), urlForNotification: g("/users/friends#!/friend-requests"), idSelector: "nav-friends", iconClass: "icon-nav-friends", name: "friends", labelTranslationKey: "Label.sFriends" }, avatar: { url: g("/my/avatar"), idSelector: "nav-character", iconClass: "icon-nav-charactercustomizer", name: "avatar", labelTranslationKey: "Label.sAvatar" }, inventory: { url: g("/users/" + L.authenticatedUser.id + "/inventory"), idSelector: "nav-inventory", iconClass: "icon-nav-inventory", name: "inventory", labelTranslationKey: "Label.sInventory" }, trade: { url: g("/trades"), urlForNotification: g("/trades"), idSelector: "nav-trade", iconClass: "icon-nav-trade", name: "trade", labelTranslationKey: "Label.sTrade" }, groups: { url: g("/my/communities"), idSelector: "nav-group", iconClass: "icon-nav-group", name: "groups", labelTranslationKey: "Label.sGroups" }, blog: { url: g("https://blog.roblox.com"), idSelector: "nav-blog", iconClass: "icon-nav-blog", name: "blog", labelTranslationKey: "Label.sBlog", blankTarget: !0 }, shop: { isModal: !0, idSelector: "nav-shop", iconClass: "icon-nav-shop", name: "shop", labelTranslationKey: "Label.OfficialStore" }, giftcards: { url: g("/giftcards-us"), idSelector: "nav-giftcards", iconClass: "icon-nav-giftcards", name: "giftcards", labelTranslationKey: "Label.GiftCards" } }, upgradeButton: { url: g("/premium/membership?ctx=leftnav"), labelTranslationKey: L.authenticatedUser.isPremiumUser ? "ActionsPremium" : "ActionsGetPremium" }, sponsorEvents: { label: { labelTranslationKey: "Label.sEvents" }, events: {} }, gameSearchLink: E, avatarSearchLink: w, miscSearchLink: C, universalSearchUrls: [{ url: g("/search/users?keyword="), label: "Label.Players", pageSort: [] }, { url: g("/discover/?Keyword="), label: "Label.Experience", pageSort: ["home", "games", "discover"] }, { url: g("/catalog?CatalogContext=1&Keyword="), label: "Label.sCatalog", pageSort: ["catalog", "inventory", "bundles"] }, { url: g("/search/communities?keyword="), label: "Label.sGroups", pageSort: ["groups"] }, { url: g("/develop/library?CatalogContext=2&Category=6&Keyword="), label: "Label.CreatorStore", pageSort: ["develop"] }], newUniversalSearchUrls: b([E], C), settingsUrl: { settings: { url: g("/my/account"), label: "Label.sSettings" }, quickLogin: { url: g("/home"), label: "Label.sQuickLogin" }, safetySupport: { url: g("/help-safety"), label: "Label.HelpAndSafety" }, switchAccountKey: { url: g("/home"), label: "Label.sSwitchAccount" }, logout: { url: h + "/v2/logout", label: "Label.sLogout" } }, buyRobuxUrl: { myTransactions: { url: g("/transactions"), label: "Label.MyMoney" }, buyRobux: { url: g("/upgrades/robux?ctx=navpopover"), label: "Label.sBuyRobux", name: "Label.sRobux" }, buyRobuxOnVng: { url: G.EnvironmentUrls.vngGamesShopUrl, label: "Label.sBuyRobux", cacheKey: "isEligibleForVng" } }, userDataUrl: g("/navigation/userData"), quickLoginUrl: g("/crossdevicelogin/ConfirmCode"), redeemUrl: { url: g("/redeem"), label: "Heading.RedeemRobloxCodes" }, buyGiftCardUrl: { url: "https://roblox.cashstar.com/gift-card/buy/?ref=1023buygc", label: "Label.sBuyGiftCard", cacheKey: "giftCardExp" } },
x = G.Endpoints.getAbsoluteUrl,
N = G.EnvironmentUrls.authApi,
T = (G.EnvironmentUrls.accountSettingsApi, G.EnvironmentUrls.websiteUrl, G.EnvironmentUrls.adsApi, G.EnvironmentUrls.economyApi),
R = G.EnvironmentUrls.privateMessagesApi,
I = G.EnvironmentUrls.tradesApi,
U = G.EnvironmentUrls.friendsApi,
k = G.EnvironmentUrls.apiGatewayUrl,
P = G.EnvironmentUrls.universalAppConfigurationApi,
M = function() { return x("/account/signupredir") },
H = function() { return x("/home") },
Q = function(e, t) { return x("/".concat(e.toLowerCase(), "/").concat(t)) },
z = function() { return x("/login") },
X = function() { return x("/newLogin") },
$ = function() { return x("/CreateAccount") },
Y = function() { return "".concat(P, "/v1/behaviors/intl-auth-compliance/content") },
J = function() { return "".concat(N, "/v2/logout") },
Z = function() { return "".concat(R, "/v1/messages/unread/count") },
ee = function(e) { return "".concat(T, "/v1/users/").concat(e, "/currency") },
te = function() { return "".concat(k, "/universal-app-configuration/v1/behaviors/navigation-header-ui/content") },
ne = function() { return "".concat(I, "/v1/trades/inbound/count") },
re = function() { return "".concat(U, "/v1/user/friend-requests/count") },
ae = function() { return "".concat(k, "/credit-balance/v1/get-credit-balance-for-navigation") },
oe = function() { return "".concat(k, "/credit-balance/v1/get-conversion-metadata") },
ie = function() { return "".concat(k, "/credit-balance/v1/get-gift-card-visibility") },
ce = function() { return "".concat(k, "/vng-payments/v1/getVngShopUrl") },
ue = function() { return "".concat(k, "/robuxbadge/v1/robuxbadge") },
le = function() { var e = { url: Z(), withCredentials: !0 }; return F.httpService.get(e) },
se = function(e) { e = { url: ee(e), withCredentials: !0 }; return F.httpService.get(e) },
de = function() { var e = { url: te(), withCredentials: !0 }; return F.httpService.get(e) },
fe = function() { var e = { url: ne(), withCredentials: !0 }; return F.httpService.get(e) },
me = function() { var e = { url: re(), withCredentials: !0 }; return F.httpService.get(e) },
pe = function() { var e = { url: J(), withCredentials: !0 }; return F.httpService.post(e) },
ve = function() { var e = { url: ae(), withCredentials: !0 }; return F.httpService.get(e) },
be = function() { var e = { url: oe(), withCredentials: !0 }; return F.httpService.get(e) },
ge = function() { var e = { url: ie(), withCredentials: !0 }; return F.httpService.get(e) },
he = function() { var e = { url: ce(), withCredentials: !0 }; return F.httpService.get(e) },
ye = function() { var e = { url: ue(), withCredentials: !0 }; return F.httpService.get(e) },
Se = CoreRobloxUtilities;
function Ee(e, t, n) { return t in e ? Object.defineProperty(e, t, { value: n, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = n, e } var we = Se.dataStores.userDataStore.maxFriendRequestNotificationCount,
Ce = Se.dataStores.userDataStore.maxMessagesNotificationCount;
function xe(e) { var t = e.translate,
n = e.idSelector,
r = e.isModal,
a = e.name,
o = e.iconClass,
i = e.labelTranslationKey,
c = e.url,
u = e.urlForNotification,
l = e.onClickShopLink,
s = e.friendsData,
d = e.messagesData,
f = e.tradeData,
m = e.blankTarget,
e = (Ee(e = {}, W.scrollListItems.friends.name, s), Ee(e, W.scrollListItems.messages.name, d), Ee(e, W.scrollListItems.trade.name, f), e)[a],
c = null != e && e.count ? u : c,
m = m ? "_blank" : "_self"; return r ? q().createElement("li", { key: a }, q().createElement("button", { id: n, type: "button", onClick: l, className: "dynamic-overflow-container text-nav" }, q().createElement("div", null, q().createElement("span", { className: o })), q().createElement("span", { className: "font-header-2 dynamic-ellipsis-item", title: t(i) }, t(i)))) : q().createElement("li", { key: a }, q().createElement(A.Link, { url: c, id: n, className: "dynamic-overflow-container text-nav", target: m }, q().createElement("div", null, q().createElement("span", { className: o })), q().createElement("span", { className: "font-header-2 dynamic-ellipsis-item", title: t(i) }, t(i)), e && 0 < e.count && q().createElement("div", { className: "dynamic-width-item align-right" }, q().createElement("span", { className: "notification-blue notification", title: F.numberFormat.getNumberFormat(e.count) }, function(e, t) { if (e === W.scrollListItems.friends.name && we <= t) return "".concat(we, "+"); if (e === W.scrollListItems.messages.name && Ce <= t) return "".concat(Ce, "+"); return F.abbreviateNumber.getTruncValue(t, 1e3) }(a, e.count))))) } xe.defaultProps = { idSelector: "", url: "", urlForNotification: "", isModal: !1, blankTarget: !1, friendsData: { count: 0 }, messagesData: { count: 0 }, tradeData: { count: 0 } }, xe.propTypes = { idSelector: f().string, translate: f().func.isRequired, isModal: f().bool, name: f().string.isRequired, iconClass: f().string.isRequired, labelTranslationKey: f().string.isRequired, url: f().string, urlForNotification: f().string, onClickShopLink: f().func.isRequired, blankTarget: f().bool, friendsData: f().shape({ count: f().number }), messagesData: f().shape({ count: f().number }), tradeData: f().shape({ count: f().number }) }; var Ae = xe;
function Ne(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || Oe(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Te(e) { return function(e) { if (Array.isArray(e)) return Re(e) }(e) || function(e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) }(e) || Oe(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Oe(e, t) { if (e) { if ("string" == typeof e) return Re(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Re(e, t) : void 0 } }
function Re(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function Ie() { return document.getElementById("navigation-container") }(d = Se.eventStreamService.eventTypes).pageLoad, f().func.isRequired, f().instanceOf(Array); var Ue = W.universalSearchUrls,
ke = W.newUniversalSearchUrls,
Pe = W.avatarSearchLink,
Le = !L.authenticatedUser.isAuthenticated,
m = function() { return Promise.resolve(0) },
je = function(e) { G.EventStream && G.EventStream.SendEventWithTarget(e, "click", {}, G.EventStream.TargetTypes.WWW) },
De = function(e) { if (Le || !G.RealTime) return function() {};
document.addEventListener(i.requestCountChanged, e); var t = G.RealTime.Factory.GetClient(); return t.Subscribe(i.friendshipNotifications, e),
function() { document.removeEventListener(i.requestCountChanged, e), t.Unsubscribe(i.friendshipNotifications, e) } },
_e = function(e) { return Le || !G.RealTime ? function() {} : (document.addEventListener(c, e), function() { document.removeEventListener(c, e) }) },
Me = function() { var e; return null !== (e = (null === (e = window) || void 0 === e ? void 0 : e.innerWidth) < 543) && e },
Be = function() { var e = Te(Ue); return e.sort(function(e) { return e.pageSort.reduce(function(e, t) { return e || -1 < window.location.href.indexOf(t) }, !1) ? -1 : 1 }), e },
qe = function() { var e = Te(ke),
t = e.filter(function(e) { return e.pageSort.some(function(e) { return -1 < window.location.pathname.indexOf(e) }) }),
e = e.filter(function(e) { return e.pageSort.every(function(e) { return -1 === window.location.pathname.indexOf(e) }) }); return [].concat(Te(t), Te(e)) },
Fe = function() { return Pe.pageSort.some(function(e) { return -1 < window.location.pathname.indexOf(e) }) },
Ge = function() { return document.getElementById("navigation-container") && document.getElementById("navigation-container").className },
Ve = function(e) { var n = {}; return ("?" === e[0] ? e.substr(1) : e).split("&").forEach(function(e) { var t;
e.includes("=") && (e = (t = Ne(e.split("="), 2))[0], t = t[1], n[null === (e = decodeURIComponent(e)) || void 0 === e ? void 0 : e.toLowerCase()] = decodeURIComponent(t)) }), n },
w = G.EnvironmentUrls.apiGatewayUrl,
b = G.EnvironmentUrls.apiGatewayCdnUrl,
Ke = (G.EnvironmentUrls.localeApi, { debounceTimeout: 100, debouncedSearchInputMaxLength: 35, expiryTimeout: 5e3, variationId: 1, trendingVariationId: 0, avatarAutocompleteQueryPaddingAmount: 10, requestSuggestionUrl: { url: w + "/games-autocomplete/v1/request-suggestion", withCredentials: !0 }, getSuggestionUrl: { url: w + "/games-autocomplete/v1/get-suggestion/", withCredentials: !0 }, avatarRequestSuggestionUrl: { url: w + "/autocomplete-avatar/v2/suggest", withCredentials: !0 }, avatarRequestSuggestionCdnUrl: { url: b + "/autocomplete-avatar/v2/suggest", withCredentials: !0 }, englishLanguageCode: "en", avatarAutocompleteUrlLocations: ["Catalog", "Trades", "Inventory", "Avatar", "CatalogItem"], avatarAutocompleteSuggestionLimit: 5, isSpecialTreatmentAutocompleteRestricted: function() { return 7 === parseInt(Ie().dataset.numberOfAutocompleteSuggestions, 10) && W.miscSearchLink.reduce(function(e, t) { return e.push.apply(e, t.pageSort), e }, []).reduce(function(e, t) { return e || -1 < window.location.pathname.indexOf(t) }, !1) }, isSpecialTreatment: function() { var e; return 7 === parseInt(null === (e = Ie()) || void 0 === e ? void 0 : e.dataset.numberOfAutocompleteSuggestions, 10) }, numberOfSpecialTreatmentAutocompleteSuggestions: 3, isAutocompleteSuggestionsIXPTestEnabled: function() { var e; return 0 < parseInt(null === (e = Ie()) || void 0 === e ? void 0 : e.dataset.numberOfAutocompleteSuggestions, 10) }, numberOfAutocompleteSuggestions: function() { var e; return parseInt(null === (e = Ie()) || void 0 === e ? void 0 : e.dataset.numberOfAutocompleteSuggestions, 10) || 0 } }),
E = jo(550),
C = jo.n(E),
h = jo(160),
g = jo.n(h),
Q = jo(242),
d = jo.n(Q),
a = jo(458),
w = jo.n(a),
b = jo(248),
E = jo.n(b),
h = jo(124),
Q = jo.n(h),
a = jo(141),
b = jo.n(a),
h = jo(851),
We = jo.n(h),
a = jo(692),
h = jo.n(a),
a = jo(371),
a = jo.n(a),
He = { vi_vn: C(), tr_tr: g(), pt_br: d(), pl_pl: w(), ko_kr: E(), ja_jp: Q(), es_es: b(), en_us: We(), zh_cn: h(), ar_001: a() },
Qe = function() { var e; return null !== (e = Ie()) && void 0 !== e && e.dataset.platformEventLeftNavEntryStartTime ? new Date(Date.parse("".concat(null === (e = Ie()) || void 0 === e ? void 0 : e.dataset.platformEventLeftNavEntryStartTime, " UTC"))) : new Date("01/01/2001") },
ze = function() { var e; return null !== (e = Ie()) && void 0 !== e && e.dataset.platformEventLeftNavEntryEndTime ? new Date(Date.parse("".concat(null === (e = Ie()) || void 0 === e ? void 0 : e.dataset.platformEventLeftNavEntryEndTime, " UTC"))) : new Date("01/01/2001") },
Xe = function() { var e; return null !== (e = Ie()) && void 0 !== e && e.dataset.platformEventLeftNavUrl ? null === (e = Ie()) || void 0 === e ? void 0 : e.dataset.platformEventLeftNavUrl : "" },
$e = function(e) { return He[e] || We() };
function Ye() { return (Ye = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n, r = arguments[t]; for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) } return e }).apply(this, arguments) }
function Je(t, e) { var n, r = Object.keys(t); return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function(e) { return Object.getOwnPropertyDescriptor(t, e).enumerable })), r.push.apply(r, n)), r }
function Ze(r) { for (var e = 1; e < arguments.length; e++) { var a = null != arguments[e] ? arguments[e] : {};
e % 2 ? Je(Object(a), !0).forEach(function(e) { var t, n;
t = r, e = a[n = e], n in t ? Object.defineProperty(t, n, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : t[n] = e }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(a)) : Je(Object(a)).forEach(function(e) { Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(a, e)) }) } return r }
function et(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return tt(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return tt(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function tt(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function nt(e, t) { if (null == e) return {}; var n, r = function(e, t) { if (null == e) return {}; var n, r, a = {},
o = Object.keys(e); for (r = 0; r < o.length; r++) n = o[r], 0 <= t.indexOf(n) || (a[n] = e[n]); return a }(e, t); if (Object.getOwnPropertySymbols)
for (var a = Object.getOwnPropertySymbols(e), o = 0; o < a.length; o++) n = a[o], 0 <= t.indexOf(n) || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]); return r } var rt = o;
function at(e) { var t = e.translate,
n = nt(e, ["translate"]),
r = et((0, B.useState)(!1), 2),
a = r[0],
o = r[1],
i = (0, B.useCallback)(function() { o(function(e) { return !e }), je(rt.clickMerchandise) }, []),
c = function() { o(!1) },
u = Object.values(W.scrollListItems).map(function(e) { return q().createElement(Ae, Ye({ key: e.name }, Ze(Ze({ translate: t, onClickShopLink: i }, e), n))) }),
l = q().createElement("li", { className: "rbx-upgrade-now" }, q().createElement("a", { href: W.upgradeButton.url, className: "btn-growth-md btn-secondary-md", onClick: function() { Se.paymentFlowAnalyticsService.sendUserPurchaseFlowEvent(Se.paymentFlowAnalyticsService.ENUM_TRIGGERING_CONTEXT.WEB_PREMIUM_PURCHASE, !1, Se.paymentFlowAnalyticsService.ENUM_VIEW_NAME.LEFT_NAVIGATION_BAR, Se.paymentFlowAnalyticsService.ENUM_PURCHASE_EVENT_TYPE.USER_INPUT, L.authenticatedUser.isPremiumUser ? Se.paymentFlowAnalyticsService.ENUM_VIEW_MESSAGE.PREMIUM : Se.paymentFlowAnalyticsService.ENUM_VIEW_MESSAGE.GET_PREMIUM) }, id: "upgrade-now-button" }, t(W.upgradeButton.labelTranslationKey))),
s = q().createElement(q().Fragment, null, q().createElement("p", { className: "shop-description" }, t("Description.RetailWebsiteRedirect")), q().createElement("p", { className: "shop-warning" }, t("Description.PurchaseAgeWarning"))),
d = q().createElement(A.SimpleModal, { title: t("Heading.LeavingRoblox"), body: s, show: a, actionButtonShow: !0, actionButtonText: t("Action.Continue"), neutralButtonText: t("Action.Cancel"), onAction: function() { var e = decodeURIComponent(G.EnvironmentUrls.amazonWebStoreLink);
window.open(e, "_blank"), je(rt.goToAmazonStore) }, onNeutral: c, onClose: c }),
e = new Date,
r = Qe(),
s = ze(),
a = Xe(),
c = G.Intl && new G.Intl,
c = $e(c.getRobloxLocale()),
c = q().createElement("a", { href: a, className: "rbx-platform-event-container" }, q().createElement("div", { className: "rbx-platform-event-header dynamic-overflow-container" }, q().createElement("span", { className: "rbx-event-icon" }), q().createElement("span", { className: "rbx-event-header-text dynamic-ellipsis-item" }, t("Label.sEvents"))), q().createElement("img", { className: "rbx-platform-event-thumbnail", src: c, alt: t("Label.TheHunt") })); return q().createElement("ul", { className: "left-col-list" }, u, l, !1, d, r < e && e < s && a && c) } at.defaultProps = { sponsoredPagesData: [] }, at.propTypes = { sponsoredPagesData: f().instanceOf(Array), translate: f().func.isRequired }; var ot = at;
function it(t, e) { var n, r = Object.keys(t); return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function(e) { return Object.getOwnPropertyDescriptor(t, e).enumerable })), r.push.apply(r, n)), r }
function ct(r) { for (var e = 1; e < arguments.length; e++) { var a = null != arguments[e] ? arguments[e] : {};
e % 2 ? it(Object(a), !0).forEach(function(e) { var t, n;
t = r, e = a[n = e], n in t ? Object.defineProperty(t, n, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : t[n] = e }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(a)) : it(Object(a)).forEach(function(e) { Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(a, e)) }) } return r }
function ut(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return lt(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return lt(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function lt(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function st(e) { var n = L.authenticatedUser.isAuthenticated,
t = ut((0, B.useState)({}), 2),
r = t[0],
a = t[1],
o = (c = ut((0, B.useState)({}), 2))[0],
i = c[1],
c = (t = ut((0, B.useState)({}), 2))[0],
u = t[1]; return (0, B.useEffect)(function() { var e = function() {},
t = function() {}; return n && (e = De(function() { me().then(function(e) { e = e.data;
a(e) }, function(e) { console.debug(e) }) }), t = _e(function() { le().then(function(e) { e = e.data;
i(e) }) }), me().then(function(e) { e = e.data;
a(e) }, function(e) { console.debug(e) }), le().then(function(e) { e = e.data;
i(e) }, function(e) { console.debug(e) }), fe().then(function(e) { e = e.data;
u(e) }, function(e) { console.debug(e) })),
function() { e(), t() } }, []), q().createElement(ot, ct({ friendsData: r, messagesData: o, tradeData: c }, e)) } var h = L.authenticatedUser.name,
a = L.authenticatedUser.displayName,
dt = { nameForDisplay: null !== G.DisplayNames && void 0 !== G.DisplayNames && G.DisplayNames.Enabled() ? a : h, nameForHeader: null !== G.DisplayNames && void 0 !== G.DisplayNames && G.DisplayNames.Enabled() ? F.concatTexts.concat(["", h]) : h };
function ft(e, t, n, r, a, o, i) { try { var c = e[o](i),
u = c.value } catch (e) { return void n(e) } c.done ? t(u) : Promise.resolve(u).then(r, a) }
function mt(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return pt(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return pt(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function pt(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function vt(e, t) { if (null == e) return {}; var n, r = function(e, t) { if (null == e) return {}; var n, r, a = {},
o = Object.keys(e); for (r = 0; r < o.length; r++) n = o[r], 0 <= t.indexOf(n) || (a[n] = e[n]); return a }(e, t); if (Object.getOwnPropertySymbols)
for (var a = Object.getOwnPropertySymbols(e), o = 0; o < a.length; o++) n = a[o], 0 <= t.indexOf(n) || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]); return r }
function bt(e) { var t = e.isLeftNavOpen,
n = vt(e, ["isLeftNavOpen"]),
r = mt((0, B.useState)(!1), 2),
e = r[0],
a = r[1],
o = (0, B.useRef)(null);
(0, B.useEffect)(function() {
(function() { var c, e = (c = regeneratorRuntime.mark(function e() { return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
e.next = 4; break;
case 4:
return e.prev = 4, e.next = 7, (0, v.robloxBadgesReadyForRender)();
case 7:
e.sent && a((0, v.currentUserHasVerifiedBadge)()), e.next = 14; break;
case 11:
e.prev = 11, e.t0 = e.catch(4), a(!1);
case 14:
case "end":
return e.stop() } }, e, null, [
[4, 11]
]) }), function() { var e = this,
i = arguments; return new Promise(function(t, n) { var r = c.apply(e, i);
function a(e) { ft(r, t, n, a, o, "next", e) }
function o(e) { ft(r, t, n, a, o, "throw", e) } a(void 0) }) }); return function() { return e.apply(this, arguments) } })()().catch(function() {}) }, [t, o]);
r = e && v.VerifiedBadgeIconContainer ? q().createElement("section", { ref: function(e) { o.current = e } }, q().createElement(v.VerifiedBadgeIconContainer, { overrideImgClass: "verified-badge-icon-header", size: v.BadgeSizes.CAPTIONHEADER })) : null, t = O()("rbx-left-col", { "nav-show": t }), e = O()("font-header-2 dynamic-ellipsis-item", { "verified-badge-left-nav": e }); return q().createElement("div", { id: "navigation", className: t }, q().createElement("ul", null, q().createElement("li", { key: "username" }, q().createElement(A.Link, { className: "dynamic-overflow-container text-nav", role: "link", url: W.scrollListItems.profile.url }, q().createElement("span", { className: "avatar avatar-headshot-xs" }, q().createElement(p.Thumbnail2d, { containerClass: "avatar-card-image", targetId: L.authenticatedUser.id, type: p.ThumbnailTypes.avatarHeadshot, altName: L.authenticatedUser.name })), q().createElement("div", { className: e }, dt.nameForDisplay), r)), q().createElement("li", { key: "divider", className: "rbx-divider" })), q().createElement(A.ScrollBar, { className: "rbx-scrollbar" }, q().createElement(st, n))) } bt.propTypes = { isLeftNavOpen: f().bool.isRequired }; var gt = bt;
function ht(t, e) { var n, r = Object.keys(t); return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function(e) { return Object.getOwnPropertyDescriptor(t, e).enumerable })), r.push.apply(r, n)), r }
function yt(r) { for (var e = 1; e < arguments.length; e++) { var a = null != arguments[e] ? arguments[e] : {};
e % 2 ? ht(Object(a), !0).forEach(function(e) { var t, n;
t = r, e = a[n = e], n in t ? Object.defineProperty(t, n, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : t[n] = e }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(a)) : ht(Object(a)).forEach(function(e) { Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(a, e)) }) } return r }
function St(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return Et(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Et(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Et(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } var wt, Ct = u,
xt = (0, V.withTranslations)(function(e) { var t = L.authenticatedUser.isAuthenticated,
n = St((0, B.useState)(!1), 2),
r = n[0],
a = n[1],
o = (0, B.useCallback)(function() { a(!r) }, [r]); return (0, B.useEffect)(function() { return document.addEventListener(Ct.name, o),
function() { document.removeEventListener(Ct.name, o) } }, [o]), t ? q().createElement(gt, yt({ isLeftNavOpen: r }, e)) : null }, s),
At = window.EventTracker ? EventTracker : { fireEvent: console.log, start: console.log, endSuccess: console.log, endCancel: console.log, endFailure: console.log },
Nt = function() { return (Nt = Object.assign || function(e) { for (var t, n = 1, r = arguments.length; n < r; n++)
for (var a in t = arguments[n]) Object.prototype.hasOwnProperty.call(t, a) && (e[a] = t[a]); return e }).apply(this, arguments) },
Tt = function(e, i, c, u) { return new(c = c || Promise)(function(n, t) {
function r(e) { try { o(u.next(e)) } catch (e) { t(e) } }
function a(e) { try { o(u.throw(e)) } catch (e) { t(e) } }
function o(e) { var t;
e.done ? n(e.value) : ((t = e.value) instanceof c ? t : new c(function(e) { e(t) })).then(r, a) } o((u = u.apply(e, i || [])).next()) }) },
Ot = function(n, r) { var a, o, i, c = { label: 0, sent: function() { if (1 & i[0]) throw i[1]; return i[1] }, trys: [], ops: [] },
e = { next: t(0), throw: t(1), return: t(2) }; return "function" == typeof Symbol && (e[Symbol.iterator] = function() { return this }), e;
function t(t) { return function(e) { return function(t) { if (a) throw new TypeError("Generator is already executing."); for (; c;) try { if (a = 1, o && (i = 2 & t[0] ? o.return : t[0] ? o.throw || ((i = o.return) && i.call(o), 0) : o.next) && !(i = i.call(o, t[1])).done) return i; switch (o = 0, i && (t = [2 & t[0], i.value]), t[0]) {
case 0:
case 1:
i = t; break;
case 4:
return c.label++, { value: t[1], done: !1 };
case 5:
c.label++, o = t[1], t = [0]; continue;
case 7:
t = c.ops.pop(), c.trys.pop(); continue;
default:
if (!(i = 0 < (i = c.trys).length && i[i.length - 1]) && (6 === t[0] || 2 === t[0])) { c = 0; continue } if (3 === t[0] && (!i || t[1] > i[0] && t[1] < i[3])) { c.label = t[1]; break } if (6 === t[0] && c.label < i[1]) { c.label = i[1], i = t; break } if (i && c.label < i[2]) { c.label = i[2], c.ops.push(t); break } i[2] && c.ops.pop(), c.trys.pop(); continue } t = r.call(n, c) } catch (e) { t = [6, e], o = 0 } finally { a = i = 0 }
if (5 & t[0]) throw t[1]; return { value: t[0] ? t[1] : void 0, done: !0 } }([t, e]) } } },
Rt = F.httpService.createCancelToken();
function It(e) { return void 0 === (null == e ? void 0 : e.label) }
function Ut(e) { return void 0 !== (null == e ? void 0 : e.Query) }
function kt(e) { if (Ut(e)) return "avatar"; switch (e.type) {
case wt.QuerySuggestion:
return "keyword";
case wt.GameSuggestion:
return "game";
default:
throw Error("Unrecognized autocomplete suggestion, ".concat(JSON.stringify(e))) } }
function Pt(e) { switch (e.label) {
case "Label.Players":
return "defaultPlayers";
case "Heading.Marketplace":
case "Label.AvatarShop":
case "Label.sCatalog":
return "defaultShops";
case "Label.sGroups":
return "defaultGroups";
case "Label.CreatorStore":
return "defaultLibrary";
case "Label.Experience":
return "defaultGames";
default:
throw Error("Unrecognized default suggestion, ".concat(JSON.stringify(e))) } }(o = wt = wt || {})[o.GameSuggestion = 0] = "GameSuggestion", o[o.QuerySuggestion = 1] = "QuerySuggestion", o[o.TrendingQuerySuggestion = 2] = "TrendingQuerySuggestion"; var Lt = function(t) { return Tt(void 0, void 0, Promise, function() { return Ot(this, function(e) { switch (e.label) {
case 0:
return Rt.cancel(), Rt = F.httpService.createCancelToken(), [4, F.httpService.get(Nt(Nt({}, Ke.getSuggestionUrl), { url: Ke.getSuggestionUrl.url + encodeURIComponent(t.toLowerCase()), cancelToken: Rt.token }))];
case 1:
return [2, e.sent().data] } }) }) },
jt = function(n, r, a, o, i) { return void 0 === i && (i = !1), Tt(void 0, void 0, Promise, function() { var t; return Ot(this, function(e) { switch (e.label) {
case 0:
return null === (t = r) && (t = Ke.englishLanguageCode), t = { prefix: n.toLowerCase(), limit: a, lang: t, q: o }, Rt.cancel(), Rt = F.httpService.createCancelToken(), i ? [4, F.httpService.get(Nt(Nt({}, Ke.avatarRequestSuggestionUrl), { timeout: Ke.expiryTimeout, cancelToken: Rt.token, fullError: !0 }), t)] : [3, 2];
case 1:
return [2, e.sent().data];
case 2:
return [4, F.httpService.get(Nt(Nt({}, Ke.avatarRequestSuggestionCdnUrl), { timeout: Ke.expiryTimeout, cancelToken: Rt.token, fullError: !0 }), t)];
case 3:
return [2, e.sent().data] } }) }) },
Dt = It,
_t = Ut,
Mt = kt,
Bt = Pt,
qt = function(e, t) { var n; return It(e) && Ut(e) ? W.avatarSearchLink.url + encodeURIComponent(e.Query) : It(e) ? W.gameSearchLink.url + encodeURIComponent(e.searchQuery) : null != t && null !== (n = t.target) && void 0 !== n && n.value ? e.url + encodeURIComponent(t.target.value) : "" },
Ft = function() { var e = (new G.TranslationResourceProvider).intl.locale,
t = e.indexOf("-"); return (e = e.substring(0, -1 !== t ? t : e.length)) !== Ke.englishLanguageCode && (e += ",".concat(Ke.englishLanguageCode)), e },
Gt = function(e, t) { return e.map(function(e) { return It(e) ? "".concat(kt(e), "|").concat(e.searchQuery) : "".concat(Pt(e), "|").concat(t) }).join(",") },
Vt = Se.eventStreamService.eventTypes,
Kt = "searchAutocomplete",
o = F.uuidService.generateRandomUuid,
Wt = { contexts: { searchAutocomplete: Kt, searchLandingPage: "searchLandingPage" }, actionTypes: { open: "open", submit: "submit", close: "close", cancel: "cancel" }, generateSessionInfo: o, searchTextTrim: function(e, t, n, r) { return [{ name: "searchTextTrim", type: Vt.formInteraction, context: Kt }, { kwd: e, resultingKwd: t, searchType: n, sessionInfo: r }] }, searchClear: function(e, t, n, r) { return [{ name: "searchClear", type: Vt.formInteraction, context: Kt }, { kwd: e, searchType: t, sessionInfo: n, page: r }] }, searchSuggestionClicked: function(e, t, n, r, a, o, i) { return [{ name: "searchSuggestionClicked", type: Vt.formInteraction, context: Kt }, { kwd: e, searchType: t, suggestionPosition: n, suggestionClicked: r, suggestionType: a, suggestions: o, sessionInfo: i }] }, searchAutocomplete: function(e, t, n, r, a, o, i, c, u, l) { return [{ name: "searchAutocomplete", type: Vt.formInteraction, context: Kt }, { kwd: e, previousKwd: t, fromLocalCache: n, suggestions: r, algorithm: a, latency: o, timeoutDelayMs: i, sessionInfo: c, page: u, isPersonalizedBasedOnPreviousQuery: l }] }, search: function(e, t, n, r, a) { return [{ name: "search", type: Vt.formInteraction, context: t }, { kwd: e, actionType: n, sessionInfo: r, searchLandingPageSessionInfo: a }] }, catalogSearch: function(e, t) { return [{ name: "catalogSearch", type: Vt.formInteraction, context: Kt }, { autocompleteFlag: e, previousPage: t }] } };
function Ht(e) { return function(e) { if (Array.isArray(e)) return Xt(e) }(e) || function(e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) }(e) || zt(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Qt(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || zt(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function zt(e, t) { if (e) { if ("string" == typeof e) return Xt(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Xt(e, t) : void 0 } }
function Xt(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function $t(e) { var o = e.translate,
i = e.searchInput,
c = e.indexOfSelectedOption,
u = e.autocompleteSessionInfo,
l = e.resetSessionInfo,
s = Be(); return q().createElement(q().Fragment, null, Object.entries(s).map(function(e) { var t = Qt(e, 2),
n = t[0],
r = t[1],
a = r.url,
e = r.label,
t = O()("navbar-search-option rbx-clickable-li", parseInt(n, 10) === c ? " selected" : ""); return q().createElement("li", { key: n, className: t }, q().createElement(A.Link, { className: "navbar-search-anchor", url: a + i, onClick: function() { Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Ht(Wt.searchSuggestionClicked(i, void 0, n, i, Bt(r), Gt(s, i), u))), l() } }, o("Label.sSearchPhrase", { phrase: i, location: o(e) }))) })) } $t.propTypes = { translate: f().func.isRequired, searchInput: f().string.isRequired, indexOfSelectedOption: f().number.isRequired, autocompleteSessionInfo: f().string.isRequired, resetSessionInfo: f().func.isRequired }; var Yt = $t;
function Jt(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return Zt(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Zt(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Zt(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } var en = W.gameSearchLink,
tn = W.avatarSearchLink,
nn = W.creatorStoreUrl;
function rn(e) { var t = e.translate,
n = e.selected,
r = e.suggestion,
a = e.onClick,
o = O()("navbar-search-option rbx-clickable-li", { "new-selected": n }),
i = r.type,
c = r.universeId,
e = r.searchQuery,
n = Jt((0, B.useState)(!1), 2),
r = n[0],
u = n[1]; return i === wt.GameSuggestion ? q().createElement("li", { className: o }, q().createElement(A.Link, { className: "new-navbar-search-anchor", url: en.url + encodeURIComponent(e), onClick: a }, q().createElement("span", { className: O()(en.icon, "navbar-list-option-icon") }), q().createElement("span", { className: "navbar-list-option-text" }, e), q().createElement("span", { className: "navbar-list-option-suffix" }, t("Label.sSearchPhraseV2", { location: t(en.label) })), q().createElement("span", { className: O()("navbar-list-option-thumbnail", { "navbar-list-option-thumbnail-visible": r }) }, q().createElement("span", { className: "background-icon" }), q().createElement(p.Thumbnail2d, { type: p.ThumbnailTypes.gameIcon, size: p.DefaultThumbnailSize, targetId: c, containerClass: "thumbnail-icon", format: p.ThumbnailFormat.jpeg, onLoad: function() { u(!0) } })))) : q().createElement("li", { className: o }, q().createElement(A.Link, { className: "new-navbar-search-anchor", url: en.url + encodeURIComponent(e), onClick: a }, q().createElement("span", { className: O()(en.icon, "navbar-list-option-icon") }), q().createElement("span", { className: "navbar-list-option-text" }, e), q().createElement("span", { className: "navbar-list-option-suffix" }, t("Label.sSearchPhraseV2", { location: t(en.label) })))) }
function an(e) { var t = e.translate,
n = e.selected,
r = e.suggestion,
e = e.onClick,
n = O()("navbar-search-option rbx-clickable-li", { "new-selected": n }),
r = r.Query; return q().createElement("li", { className: n }, q().createElement(A.Link, { className: "new-navbar-search-anchor", url: tn.url + encodeURIComponent(r), onClick: e }, q().createElement("span", { className: O()(tn.icon, "navbar-list-option-icon") }), q().createElement("span", { className: "navbar-list-option-text" }, r), q().createElement("span", { className: "navbar-list-option-suffix" }, t("Label.sSearchPhraseV2", { location: t(tn.label) })))) }
function on(e) { var t = e.translate,
n = e.selected,
r = e.searchInput,
a = e.suggestion,
o = e.onClick,
i = a.url,
e = a.label,
a = a.icon,
i = "Label.CreatorStore" === e ? nn : i,
n = O()("navbar-search-option rbx-clickable-li", { "new-selected": n }); return q().createElement("li", { className: n }, q().createElement(A.Link, { className: "new-navbar-search-anchor", url: i + encodeURIComponent(r), onClick: o }, q().createElement("span", { className: O()(a, "navbar-list-option-icon") }), q().createElement("span", { className: "navbar-list-option-text" }, r.toLowerCase()), q().createElement("span", { className: "navbar-list-option-suffix" }, t("Label.sSearchPhraseV2", { location: t(e) })))) }
function cn(e) { return function(e) { if (Array.isArray(e)) return un(e) }(e) || function(e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) }(e) || function(e, t) { if (!e) return; if ("string" == typeof e) return un(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return un(e, t) }(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function un(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function ln(e) {
function r(t, n) { return function() { var e = c[n];
Se.eventStreamService.sendEvent.apply(Se.eventStreamService, cn(Wt.searchSuggestionClicked(o, void 0, n, Dt(e) ? e.searchQuery : o, t, Gt(c, o), u))), l();
e = t.includes("default") ? 0 : 1;
Se.eventStreamService.sendEvent.apply(Se.eventStreamService, cn(Wt.catalogSearch(e, F.pageName.PageNameProvider.getInternalPageName()))) } } var a = e.translate,
o = e.searchInput,
i = e.indexOfSelectedOption,
c = e.searchSuggestions,
u = e.autocompleteSessionInfo,
l = e.resetSessionInfo; return c.map(function(e, t) { var n = parseInt(t, 10) === i; return Dt(e) && _t(e) ? q().createElement(an, { key: e.Query, translate: a, selected: n, suggestion: e, onClick: r(Mt(e), t) }) : Dt(e) ? q().createElement(rn, { key: e.searchQuery, translate: a, selected: n, suggestion: e, onClick: r(Mt(e), t) }) : q().createElement(on, { key: e.url, translate: a, selected: n, suggestion: e, searchInput: o, onClick: r(Bt(e), t) }) }) } rn.propTypes = { translate: f().func.isRequired, selected: f().bool.isRequired, suggestion: f().shape({ type: f().number.isRequired, score: f().number.isRequired, universeId: f().number, canonicalTitle: f().string, thumbnailUrl: f().string, searchQuery: f().string.isRequired, trendingSearchStartDateTime: f().string }).isRequired, onClick: f().func.isRequired }, an.propTypes = { translate: f().func.isRequired, selected: f().bool.isRequired, suggestion: f().shape({ Query: f().string }).isRequired, onClick: f().func.isRequired }, on.propTypes = { translate: f().func.isRequired, selected: f().bool.isRequired, searchInput: f().string.isRequired, suggestion: f().shape({ url: f().string.isRequired, label: f().string.isRequired, pageSort: f().arrayOf(f().string).isRequired, icon: f().string.isRequired }).isRequired, onClick: f().func.isRequired }, ln.propTypes = { translate: f().func.isRequired, searchInput: f().string.isRequired, indexOfSelectedOption: f().number.isRequired, searchSuggestions: f().arrayOf(f().oneOfType([f().shape({ type: f().number.isRequired, score: f().number.isRequired, universeId: f().number.isRequired, canonicalTitle: f().string, thumbnailUrl: f().string, searchQuery: f().string.isRequired, trendingSearchStartDateTime: f().string }), f().shape({ url: f().string.isRequired, label: f().string.isRequired, pageSort: f().arrayOf(f().string).isRequired, icon: f().string.isRequired }), f().shape({ Query: f().string.isRequired, Score: f().number.isRequired })])).isRequired, autocompleteSessionInfo: f().string.isRequired, resetSessionInfo: f().func.isRequired }; var sn = ln;
function dn(e) { return function(e) { if (Array.isArray(e)) return pn(e) }(e) || function(e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) }(e) || mn(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function fn(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || mn(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function mn(e, t) { if (e) { if ("string" == typeof e) return pn(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? pn(e, t) : void 0 } }
function pn(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function vn(e) { var t = e.translate,
n = e.searchInput,
r = e.isMenuOpen,
a = e.handleSearchOpenOrInputChange,
o = e.closeMenu,
i = e.setIsMenuHover,
c = e.indexOfSelectedOption,
u = e.onSubmit,
l = e.onKeyDown,
s = e.onKeyUp,
d = e.isUniverseSearchShown,
f = e.searchSuggestions,
m = e.isSearchLandingEnabled,
p = e.autocompleteSessionInfo,
v = e.resetSessionInfo,
b = e.isAvatarAutocompleteEnabled,
g = (0, B.createRef)(),
h = (0, B.createRef)(),
y = (0, B.useRef)(),
S = fn((0, B.useState)(!1), 2),
E = S[0],
w = S[1],
C = fn((0, B.useState)(!0), 2),
x = C[0],
A = C[1];
(0, B.useEffect)(function() {
function e() { A(!1) } return window.addEventListener("SetSearchLandingHasContent", e),
function() { window.removeEventListener("SetSearchLandingHasContent", e) } }, []); var N = (0, B.useRef)(!1),
T = (0, B.useCallback)(function() { var e;
Se.eventStreamService.sendEvent.apply(Se.eventStreamService, dn(Wt.searchClear(n, void 0, p, null === F.pageName || void 0 === F.pageName || null === (e = F.pageName.PageNameProvider) || void 0 === e ? void 0 : e.getInternalPageName()))), N.current = !0, null == g || null !== (e = g.current) && void 0 !== e && e.focus(), a("") }, [p, g, a, n]),
e = (0, B.useCallback)(function() { w(!0), N.current ? N.current = !1 : a() }, [a]),
S = function() { w(!1) },
C = (0, B.useCallback)(function(e) { a(e.target.value) }, [a]),
r = O()("navbar-left navbar-search col-xs-5 col-sm-6 col-md-2 col-lg-3", { "navbar-search-open": m ? r && 0 < n.length : r, shown: d }),
d = O()("search-landing-root", { "search-landing-root-open": m && 0 === n.length && E }),
E = E && (!x && 0 === n.length || 0 < n.length),
x = O()("search-overlay", { "search-overlay-show": E }),
E = Ke.isAutocompleteSuggestionsIXPTestEnabled() || b,
b = (0, B.useMemo)(function() { var e = [g, h]; return m && e.push(y.current), e }, [h, g, m, y]); return (0, V.useOnClickOutside)(b, o), (0, B.useEffect)(function() { y.current && G.SearchLandingService.mountSearchLanding() }, [y]), q().createElement(q().Fragment, null, q().createElement("div", { "data-testid": "navigation-search-input", className: r, role: "search" }, q().createElement("div", { className: "input-group" }, q().createElement("form", { name: "search-form", onSubmit: u, action: "/search" }, E ? q().createElement("div", { className: "form-has-feedback" }, q().createElement("input", { ref: g, id: "navbar-search-input", type: "search", name: "search-bar", "data-testid": "navigation-search-input-field", className: "form-control input-field new-input-field", value: n, onChange: C, placeholder: t("Label.sSearch"), maxLength: "120", onFocus: e, onBlur: S, onKeyDown: l, onKeyUp: s, autoComplete: "off", autoCorrect: "off", autoCapitalize: "off", spellCheck: "false" }), 0 < n.length && q().createElement("span", { "data-testid": "navigation-search-input-clear-button", tabIndex: 0, role: "button", "aria-label": "Clear Search", onClick: T, onKeyDown: T, className: "clear-search icon-actions-clear-sm" }, q().createElement("span", null))) : q().createElement("input", { ref: g, id: "navbar-search-input", type: "search", name: "search-bar", "data-testid": "navigation-search-input-field", className: "form-control input-field", value: n, onChange: C, placeholder: t("Label.sSearch"), maxLength: "120", onFocus: e, onBlur: S, onKeyDown: l, onKeyUp: s, autoComplete: "off" })), q().createElement("div", { className: "input-group-btn" }, q().createElement("button", { "data-testid": "navigation-search-input-search-button", className: "input-addon-btn", type: "submit" }, q().createElement("span", { className: "icon-common-search-sm" })))), q().createElement("ul", { ref: h, className: O()("dropdown-menu", { "new-dropdown-menu": E }), role: "menu", onMouseEnter: function() { i(!0) }, onMouseLeave: function() { i(!1) } }, E ? q().createElement(sn, { translate: t, searchInput: n, indexOfSelectedOption: c, searchSuggestions: f, autocompleteSessionInfo: p, resetSessionInfo: v }) : q().createElement(Yt, { translate: t, searchInput: n, indexOfSelectedOption: c, autocompleteSessionInfo: p, resetSessionInfo: v })), q().createElement("div", { ref: y, id: "search-landing-root", "data-testid": "search-landing-root", className: d })), m && q().createElement("div", { className: x })) } vn.defaultProps = { isUniverseSearchShown: !0, isAvatarAutocompleteEnabled: !1, isSearchLandingEnabled: !1 }, vn.propTypes = { translate: f().func.isRequired, searchInput: f().string.isRequired, isMenuOpen: f().bool.isRequired, handleSearchOpenOrInputChange: f().func.isRequired, closeMenu: f().func.isRequired, setIsMenuHover: f().func.isRequired, indexOfSelectedOption: f().number.isRequired, onSubmit: f().func.isRequired, onKeyDown: f().func.isRequired, onKeyUp: f().func.isRequired, isUniverseSearchShown: f().bool, isAvatarAutocompleteEnabled: f().bool, searchSuggestions: f().arrayOf(f().oneOfType([f().shape({ type: f().number.isRequired, score: f().number.isRequired, universeId: f().number.isRequired, canonicalTitle: f().string, thumbnailUrl: f().string, searchQuery: f().string.isRequired, trendingSearchStartDateTime: f().string }), f().shape({ url: f().string.isRequired, label: f().string.isRequired, pageSort: f().arrayOf(f().string).isRequired, icon: f().string }), f().shape({ query: f().string.isRequired, score: f().number.isRequired })])).isRequired, isSearchLandingEnabled: f().bool, autocompleteSessionInfo: f().string.isRequired, resetSessionInfo: f().func.isRequired }; var bn = vn,
gn = { searchLandingPageExperimentFetchError: "SearchLandingPageExperimentFetchError" };
function hn(e, t, n, r, a, o, i) { try { var c = e[o](i),
u = c.value } catch (e) { return void n(e) } c.done ? t(u) : Promise.resolve(u).then(r, a) }
function yn(c) { return function() { var e = this,
i = arguments; return new Promise(function(t, n) { var r = c.apply(e, i);
function a(e) { hn(r, t, n, a, o, "next", e) }
function o(e) { hn(r, t, n, a, o, "throw", e) } a(void 0) }) } }
function Sn(e) { return function(e) { if (Array.isArray(e)) return Cn(e) }(e) || function(e) { if ("undefined" != typeof Symbol && Symbol.iterator in Object(e)) return Array.from(e) }(e) || wn(e) || function() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function En(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || wn(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function wn(e, t) { if (e) { if ("string" == typeof e) return Cn(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); return "Object" === n && e.constructor && (n = e.constructor.name), "Map" === n || "Set" === n ? Array.from(e) : "Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n) ? Cn(e, t) : void 0 } }
function Cn(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function xn(e) {
function i(e) { if (e) { if (P) { var t = -1 === a.findIndex(function(e) { return e.searchQuery === u.toLowerCase() && _t(e) }),
n = e.filter(function(e) { return e.searchQuery !== u.toLowerCase() || _t(e) }); return [].concat(Sn(O.slice(0, t ? U + 1 : U)), Sn(n), Sn(O.slice(U + 1))) } if (Ke.isSpecialTreatmentAutocompleteRestricted()) return O;
n = -1 === e.findIndex(function(e) { return e.searchQuery === u.toLowerCase() && e.type === wt.GameSuggestion }), e = e.filter(function(e) { return e.searchQuery !== u.toLowerCase() || e.type === wt.GameSuggestion }).slice(0, Ke.isSpecialTreatment() ? Ke.numberOfSpecialTreatmentAutocompleteSuggestions : Ke.numberOfAutocompleteSuggestions()); return [].concat(Sn(O.slice(0, n ? I + 1 : I)), Sn(e), Sn(O.slice(I + 1))) } return O } var t = e.translate,
n = e.isUniverseSearchShown,
r = En((0, B.useState)(Ve(window.location.search).keyword || ""), 2),
o = r[0],
c = r[1],
u = (0, V.useDebounce)(o, Ke.debounceTimeout),
l = (0, V.usePrevious)(u),
e = En((0, B.useState)(null), 2),
a = e[0],
s = e[1],
r = En((0, B.useState)(Wt.generateSessionInfo()), 2),
d = r[0],
f = r[1],
e = En((0, B.useState)(Wt.generateSessionInfo()), 2),
m = e[0],
p = e[1],
v = (0, B.useRef)(!1),
r = En((0, B.useState)(!1), 2),
b = r[0],
g = r[1],
e = En((0, B.useState)(!1), 2),
h = e[0],
y = e[1],
r = En((0, B.useState)(!0), 2),
S = r[0],
E = r[1],
e = En((0, B.useState)(!1), 2),
w = e[0],
r = e[1],
e = En((0, B.useState)(0), 2),
C = e[0],
x = e[1],
e = En((0, B.useState)(!1), 2),
A = e[0],
N = e[1],
T = K,
e = En((0, B.useState)((Ke.isAutocompleteSuggestionsIXPTestEnabled() ? qe : Be)()), 2),
O = e[0],
R = e[1],
I = O.findIndex(function(e) { return e.label === W.gameSearchLink.label }),
U = qe().findIndex(function(e) { return e.label === W.avatarSearchLink.label }),
k = Ft(),
P = Fe(),
L = (0, B.useMemo)(function() { return i(a) }, [a, O]),
j = L.length;
(0, B.useEffect)(function() { S || Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.search(o, Wt.contexts.searchAutocomplete, Wt.actionTypes.submit, d))), E(!1); var e = function() { var e = yn(regeneratorRuntime.mark(function e() { var t, n, r, a, o; return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
if (!(void 0 !== u && "" !== u && u.length <= Ke.debouncedSearchInputMaxLength)) { e.next = 34; break } if (s(null), t = Date.now(), P) return e.prev = 4, n = Date.now(), e.next = 8, jt(u, k, Ke.avatarAutocompleteQueryPaddingAmount, l, A);
e.next = 20; break;
case 8:
a = e.sent, o = function(e, t) { var n = 0,
r = []; return e.forEach(function(e) { n < Ke.avatarAutocompleteSuggestionLimit && e.Query !== t && (r.push(e), n += 1) }), r }(a.Data, u), Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.searchAutocomplete(u, l, !1, o, a.Args.Algo, n - t, Ke.debounceTimeout, "", F.pageName.PageNameProvider.getInternalPageName(), "" !== l))), s(o), e.next = 18; break;
case 14:
e.prev = 14, e.t0 = e.catch(4), F.httpService.isCancelled(e.t0) || s([]), N(!0);
case 18:
e.next = 34; break;
case 20:
if (Ke.isAutocompleteSuggestionsIXPTestEnabled()) return e.prev = 21, e.next = 24, Lt(u);
e.next = 34; break;
case 24:
r = e.sent, a = Date.now(), o = i(r.entries), Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.searchAutocomplete(u, l, !1, Gt(o, u), r.algorithmName, a - t, Ke.debounceTimeout, d, F.pageName.PageNameProvider.getInternalPageName(), !1))), s(r.entries), e.next = 34; break;
case 31:
e.prev = 31, e.t1 = e.catch(21), F.httpService.isCancelled(e.t1) || s([]);
case 34:
case "end":
return e.stop() } }, e, null, [
[4, 14],
[21, 31]
]) })); return function() { return e.apply(this, arguments) } }();
P && R(qe()), e() }, [u]);
function D() { f(Wt.generateSessionInfo()) }
function _() { y(!1) } var M = (0, B.useCallback)(yn(regeneratorRuntime.mark(function e() { var t, n; return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
if (t = b, e.prev = 1, v.current) { e.next = 7; break } return e.next = 5, G.ExperimentationService.getAllValuesForLayer("PlayerApp.HomePage.UX.WholePageRanking");
case 5:
n = e.sent, t = null !== (n = null == n ? void 0 : n.shouldShowSearchLandingPageWeb) && void 0 !== n && n;
case 7:
t && (n = Wt.generateSessionInfo(), G.SearchLandingService.showSearchLanding(n), Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.search(void 0, Wt.contexts.searchLandingPage, Wt.actionTypes.open, void 0, n))), g(t), p(n)), e.next = 13; break;
case 10:
e.prev = 10, e.t0 = e.catch(1), (0, At.fireEvent)(gn.searchLandingPageExperimentFetchError);
case 13:
return v.current = !0, e.abrupt("return", t);
case 15:
case "end":
return e.stop() } }, e, null, [
[1, 10]
]) })), [b]),
e = (0, B.useCallback)(yn(regeneratorRuntime.mark(function e() { var t, n, r, a = arguments; return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
if (c(t = 0 < a.length && void 0 !== a[0] ? a[0] : o), t.length < o.length && Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.searchTextTrim(o, t, void 0, d))), n = b, 0 === t.length) return e.next = 7, M();
e.next = 12; break;
case 7:
n = e.sent, r = Wt.generateSessionInfo(), Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.search(t, Wt.contexts.searchAutocomplete, Wt.actionTypes.open, r))), f(r), x(0);
case 12:
if (w) return e.abrupt("return");
e.next = 14; break;
case 14:
y(!!n || 0 < t.length);
case 15:
case "end":
return e.stop() } }, e) })), [d, M, w, b, o]); return (0, B.useEffect)(function() { return window.addEventListener("setSearchMenuClose", _),
function() { window.removeEventListener("setSearchMenuClose", _) } }, [h]), q().createElement(bn, { searchInput: o, handleSearchOpenOrInputChange: e, isSearchLandingEnabled: b, closeMenu: function() { h && (b && 0 === o.length ? Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.search(null, Wt.contexts.searchLandingPage, Wt.actionTypes.cancel, void 0, m))) : Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.search(o, Wt.contexts.searchAutocomplete, Wt.actionTypes.close, d))), y(!1)) }, setIsMenuHover: r, isMenuOpen: h, indexOfSelectedOption: C, onSubmit: function(e) { e.preventDefault(), e.stopPropagation() }, onKeyDown: function(e) { var t = C;!h || e.keyCode !== T.arrowUp && e.keyCode !== T.arrowDown && e.keyCode !== T.tab || (e.stopPropagation(), e.preventDefault(), e.keyCode === T.arrowUp ? --t : t += 1, (t %= j) < 0 && (t = j + t), x(t)) }, onKeyUp: function(e) { if (e.keyCode === T.enter && (e.stopPropagation(), e.preventDefault(), !b || 0 !== o.length)) { var t = L[C];
Dt(t) ? (Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.searchSuggestionClicked(u, void 0, C, t.searchQuery, Mt(t), Gt(L, o), d))), Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.catalogSearch(1, F.pageName.PageNameProvider.getInternalPageName())))) : (Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.searchSuggestionClicked(u, void 0, C, u, Bt(t), Gt(L, o), d))), Se.eventStreamService.sendEvent.apply(Se.eventStreamService, Sn(Wt.catalogSearch(0, F.pageName.PageNameProvider.getInternalPageName())))), D(); var n = qt(t, e); if (n) { var r, n = n; if ("Label.CreatorStore" === t.label && (n = W.creatorStoreUrl, null != e && null !== (r = e.target) && void 0 !== r && r.value && (n += encodeURIComponent(e.target.value))), document.getElementById("routing")) { e = new URL(n); if (e.origin === window.location.origin && "/catalog" === G.Endpoints.removeUrlLocale(e.pathname).toLowerCase()) { e = new CustomEvent("externalNavigation", { detail: { url: n } }); return window.dispatchEvent(e), y(!1), void document.getElementById("navbar-search-input").blur() } } window.location = n } } }, isUniverseSearchShown: n, translate: t, searchSuggestions: L, autocompleteSessionInfo: d, resetSessionInfo: function() { var e;
D(), e = Wt.generateSessionInfo(), p(e), G.SearchLandingService.updateSessionInfo(e) }, isAvatarAutocompleteEnabled: P }) } xn.defaultProps = { isUniverseSearchShown: !0 }, xn.propTypes = { translate: f().func.isRequired, isUniverseSearchShown: f().bool }; var An = (0, V.withTranslations)(xn, s),
o = angular,
Nn = jo.n(o);
function Tn(e) { return (Tn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) }
function On(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) } }
function Rn(e, t) { return (Rn = Object.setPrototypeOf || function(e, t) { return e.__proto__ = t, e })(e, t) }
function In(n) { var r = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})), !0 } catch (e) { return !1 } }(); return function() { var e, t = Un(n); return e = r ? (e = Un(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments), t = this, !(e = e) || "object" !== Tn(e) && "function" != typeof e ? function(e) { if (void 0 !== e) return e; throw new ReferenceError("this hasn't been initialised - super() hasn't been called") }(t) : e } }
function Un(e) { return (Un = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { return e.__proto__ || Object.getPrototypeOf(e) })(e) } var kn = function() {! function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } }), t && Rn(e, t) }(a, q().Component); var e, t, n, r = In(a);
function a() { return function(e) { if (!(e instanceof a)) throw new TypeError("Cannot call a class as a function") }(this), r.apply(this, arguments) } return e = a, (t = [{ key: "componentDidMount", value: function() { try { Nn().module("notificationStreamIcon"), Nn().bootstrap(this.container, ["notificationStreamIcon"]) } catch (e) { console.log(e) } } }, { key: "render", value: function() { var t = this; return q().createElement("span", { ref: function(e) { t.container = e }, className: "nav-robux-icon rbx-menu-item" }, q().createElement("span", { id: "notification-stream-icon-container", "notification-stream-indicator": "true" })) } }]) && On(e.prototype, t), n && On(e, n), a }();
function Pn(e) { return (Pn = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) { return typeof e } : function(e) { return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e })(e) }
function Ln(e, t) { for (var n = 0; n < t.length; n++) { var r = t[n];
r.enumerable = r.enumerable || !1, r.configurable = !0, "value" in r && (r.writable = !0), Object.defineProperty(e, r.key, r) } }
function jn(e, t) { return (jn = Object.setPrototypeOf || function(e, t) { return e.__proto__ = t, e })(e, t) }
function Dn(n) { var r = function() { if ("undefined" == typeof Reflect || !Reflect.construct) return !1; if (Reflect.construct.sham) return !1; if ("function" == typeof Proxy) return !0; try { return Date.prototype.toString.call(Reflect.construct(Date, [], function() {})), !0 } catch (e) { return !1 } }(); return function() { var e, t = _n(n); return e = r ? (e = _n(this).constructor, Reflect.construct(t, arguments, e)) : t.apply(this, arguments), t = this, !(e = e) || "object" !== Pn(e) && "function" != typeof e ? function(e) { if (void 0 !== e) return e; throw new ReferenceError("this hasn't been initialised - super() hasn't been called") }(t) : e } }
function _n(e) { return (_n = Object.setPrototypeOf ? Object.getPrototypeOf : function(e) { return e.__proto__ || Object.getPrototypeOf(e) })(e) } var Mn = function() {! function(e, t) { if ("function" != typeof t && null !== t) throw new TypeError("Super expression must either be null or a function");
e.prototype = Object.create(t && t.prototype, { constructor: { value: e, writable: !0, configurable: !0 } }), t && jn(e, t) }(a, q().Component); var e, t, n, r = Dn(a);
function a() { return function(e) { if (!(e instanceof a)) throw new TypeError("Cannot call a class as a function") }(this), r.apply(this, arguments) } return e = a, (t = [{ key: "componentDidMount", value: function() { try { Nn().module("notificationStream"), Nn().bootstrap(this.container, ["notificationStream"]) } catch (e) { console.log(e) } } }, { key: "render", value: function() { var t = this,
e = Ge(),
e = O()("notification-stream-base", e); return q().createElement("div", { ref: function(e) { t.container = e }, className: e, "notification-stream-base-view": "true" }) } }]) && Ln(e.prototype, t), n && Ln(e, n), a }(),
Bn = { name: "nsCloseContent", context: "click", additionalProperties: {} };
function qn() { var e = (0, B.useRef)(); return q().createElement("li", { id: "navbar-stream", ref: e, className: "navbar-icon-item navbar-stream notification-margins" }, q().createElement(A.Popover, { id: "notification-stream-popover", trigger: "click", placement: "bottom", closeOnClick: !1, button: q().createElement("button", { type: "button", className: "btn-uiblox-common-common-notification-bell-md" }, q().createElement(kn, null)), container: e.current, onExit: function() { window.dispatchEvent(new Event("Roblox.NotificationStream.StreamClosed")), Se.eventStreamService.sendEventWithTarget(Bn.name, Bn.context, Bn.additionalProperties) }, role: "menu" }, q().createElement(Mn, null))) } qn.propTypes = {}; var Fn = qn;
function Gn(e) { var t = e.accountNotificationCount,
e = O()("notification-red notification nav-setting-highlight", { hidden: 0 === t }); return q().createElement("span", { id: "settings-icon", className: "nav-settings-icon rbx-menu-item" }, q().createElement("span", { className: "icon-nav-settings roblox-popover-close", id: "nav-settings" }), q().createElement("span", { className: e }, t)) }
function Vn() { return Wn(void 0, void 0, Promise, function() { var t; return Hn(this, function(e) { switch (e.label) {
case 0:
return t = { url: Qn(), withCredentials: !0 }, [4, F.httpService.get(t)];
case 1:
return [2, e.sent().data] } }) }) } Gn.defaultProps = { accountNotificationCount: 0 }, Gn.propTypes = { accountNotificationCount: f().number }; var Kn = Gn,
Wn = function(e, i, c, u) { return new(c = c || Promise)(function(n, t) {
function r(e) { try { o(u.next(e)) } catch (e) { t(e) } }
function a(e) { try { o(u.throw(e)) } catch (e) { t(e) } }
function o(e) { var t;
e.done ? n(e.value) : ((t = e.value) instanceof c ? t : new c(function(e) { e(t) })).then(r, a) } o((u = u.apply(e, i || [])).next()) }) },
Hn = function(n, r) { var a, o, i, c = { label: 0, sent: function() { if (1 & i[0]) throw i[1]; return i[1] }, trys: [], ops: [] },
e = { next: t(0), throw: t(1), return: t(2) }; return "function" == typeof Symbol && (e[Symbol.iterator] = function() { return this }), e;
function t(t) { return function(e) { return function(t) { if (a) throw new TypeError("Generator is already executing."); for (; c;) try { if (a = 1, o && (i = 2 & t[0] ? o.return : t[0] ? o.throw || ((i = o.return) && i.call(o), 0) : o.next) && !(i = i.call(o, t[1])).done) return i; switch (o = 0, i && (t = [2 & t[0], i.value]), t[0]) {
case 0:
case 1:
i = t; break;
case 4:
return c.label++, { value: t[1], done: !1 };
case 5:
c.label++, o = t[1], t = [0]; continue;
case 7:
t = c.ops.pop(), c.trys.pop(); continue;
default:
if (!(i = 0 < (i = c.trys).length && i[i.length - 1]) && (6 === t[0] || 2 === t[0])) { c = 0; continue } if (3 === t[0] && (!i || t[1] > i[0] && t[1] < i[3])) { c.label = t[1]; break } if (6 === t[0] && c.label < i[1]) { c.label = i[1], i = t; break } if (i && c.label < i[2]) { c.label = i[2], c.ops.push(t); break } i[2] && c.ops.pop(), c.trys.pop(); continue } t = r.call(n, c) } catch (e) { t = [6, e], o = 0 } finally { a = i = 0 }
if (5 & t[0]) throw t[1]; return { value: t[0] ? t[1] : void 0, done: !0 } }([t, e]) } } },
Qn = Y,
zn = { schematizedEventTypes: { authButtonClick: "authButtonClick", authPageLoad: "authPageLoad" }, context: { homepage: "homepage", accountSwitcherStatus: "accountSwitcherStatus" }, btn: { logout: "logout", switchAccount: "switchAccount" } };
function Xn(e, t, n, r, a, o, i) { try { var c = e[o](i),
u = c.value } catch (e) { return void n(e) } c.done ? t(u) : Promise.resolve(u).then(r, a) }
function $n(c) { return function() { var e = this,
i = arguments; return new Promise(function(t, n) { var r = c.apply(e, i);
function a(e) { Xn(r, t, n, a, o, "next", e) }
function o(e) { Xn(r, t, n, a, o, "throw", e) } a(void 0) }) } }
function Yn() { var e = er("returnUrl") || window.location.href; return e = e === rr() || e === ir() ? "" : e }
function Jn() { var e = null !== G.AccountSwitcherService && void 0 !== G.AccountSwitcherService && G.AccountSwitcherService.isAccountSwitcherAvailable() ? Yn() : er("returnUrl") || window.location.href,
t = rr(); return "".concat(t, "?").concat(tr({ returnUrl: e })) }
function Zn() { return pe().then($n(regeneratorRuntime.mark(function e() { return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
window.location.reload();
case 1:
case "end":
return e.stop() } }, e) }))) } var er = F.urlService.getQueryParam,
tr = F.urlService.composeQueryString,
nr = M,
rr = z,
ar = X,
or = H,
ir = $,
cr = r,
r = { getSignupUrl: function(e) { var t, n, e = 0 < arguments.length && void 0 !== e && e; return n = L.authenticatedUser.isAuthenticated && e ? (t = Yn(), ir()) : (t = (n = (t = er("returnUrl") || window.location.href).toLowerCase()).startsWith(rr().toLowerCase()) || n.startsWith(ar().toLowerCase()) ? "" : t, nr()), "".concat(n, "?").concat(tr({ returnUrl: t })) }, getLoginLinkUrl: Jn, logoutUser: function(e) { e.stopPropagation(), e.preventDefault(), document.dispatchEvent(new CustomEvent(cr.name)), Se.eventStreamService.sendEventWithTarget(zn.schematizedEventTypes.authButtonClick, zn.context.homepage, { btn: zn.btn.logout }), Nn().isUndefined(Nn().element("#chat-container").scope()) || (e = Nn().element("#chat-container").scope()).$digest(e.$broadcast("Roblox.Chat.destroyChatCookie")), null !== G.EmailVerificationService && void 0 !== G.EmailVerificationService && G.EmailVerificationService.handleUserEmailUpsellAtLogout(Zn).then(function(e) { e && !e.emailAddress || Zn() }) }, logoutAndRedirect: Zn, isLoginLinkAvailable: function() { var e = (null === (e = window) || void 0 === e ? void 0 : e.location).pathname,
e = null !== (e = null == e ? void 0 : e.toLowerCase()) && void 0 !== e ? e : ""; return !e.startsWith("/login") && !e.startsWith("/newlogin") }, switchAccount: function(e) { e.stopPropagation(), e.preventDefault(), e = window.location.href, Se.eventStreamService.sendEventWithTarget(zn.schematizedEventTypes.authButtonClick, zn.context.homepage, { btn: zn.btn.switchAccount, state: e.toString() }), Nn().isUndefined(Nn().element("#chat-container").scope()) || (e = Nn().element("#chat-container").scope()).$digest(e.$broadcast("Roblox.Chat.destroyChatCookie")); var t = { containerId: "navigation-account-switcher-container", onAccountSwitched: function() { Se.localStorageService.setLocalStorage(_.accountSwitchedFlag, !0), window.location.href = or() }, handleAddAccount: function() { window.location.href = z() } };
(function() { var e = $n(regeneratorRuntime.mark(function e() { return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
return e.next = 2, null === G.AccountSwitcherService || void 0 === G.AccountSwitcherService ? void 0 : G.AccountSwitcherService.isAccountSwitcherAvailable();
case 2:
if (!e.sent) { e.next = 4; break } null === G.AccountSwitcherService || void 0 === G.AccountSwitcherService || G.AccountSwitcherService.renderAccountSwitcher(t);
case 4:
case "end":
return e.stop() } }, e) })); return function() { return e.apply(this, arguments) } })()() }, getIsVNGLandingRedirectEnabled: function() { var e = $n(regeneratorRuntime.mark(function e() { var t, n; return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
return e.prev = 0, e.next = 3, G.ExperimentationService.getAllValuesForLayer("Website.LandingPage");
case 3:
return t = e.sent, t = null !== (n = null == t ? void 0 : t.IsVngLandingPageRedirectEnabled) && void 0 !== n && n, e.next = 7, Vn();
case 7:
return n = e.sent, n = n.isVNGComplianceEnabled, e.abrupt("return", n && t);
case 12:
return e.prev = 12, e.t0 = e.catch(0), e.abrupt("return", !1);
case 15:
case "end":
return e.stop() } }, e, null, [
[0, 12]
]) })); return function() { return e.apply(this, arguments) } }(), navigateToLoginWithRedirect: function() { window.location.href = Jn() } },
ur = W.settingsUrl,
lr = W.quickLoginUrl,
sr = r.logoutUser,
dr = r.switchAccount,
fr = l.quickLogin,
mr = l.settings,
pr = l.logout,
vr = l.switchAccountKey;
function br(e) { var r = e.translate,
t = e.accountNotificationCount,
a = void 0 === t ? 0 : t,
o = void 0 !== (e = e.isCrossDeviceLoginCodeValidationDisplayed) && e,
i = O()("notification-blue notification nav-setting-highlight", { hidden: 0 === a }),
c = (null !== (e = null === G.AccountSwitcherService || void 0 === G.AccountSwitcherService ? void 0 : G.AccountSwitcherService.useIsAccountSwitcherAvailableForBrowser()) && void 0 !== e ? e : [!1])[0],
e = Object.entries(ur).map(function(e) { var t = e[0],
n = e[1],
e = n.url,
n = n.label; return q().createElement("li", { key: t }, t === pr && q().createElement(A.Link, { className: "rbx-menu-item logout-menu-item", key: t, onClick: sr, url: "#" }, r(n)), t === vr && c && q().createElement(A.Link, { className: "rbx-menu-item account-switch-menu-item", key: t, onClick: dr, url: "#" }, r(n)), t === fr && o && q().createElement(A.Link, { className: "rbx-menu-item", key: t, url: lr }, r(n)), t !== pr && t !== fr && t !== vr && q().createElement(A.Link, { cssClasses: "rbx-menu-item", key: t, url: e }, r(n), t === mr && q().createElement("span", { className: i }, a))) }); return q().createElement(q().Fragment, null, e) }
function gr(e, t, n, r, a, o, i) { try { var c = e[o](i),
u = c.value } catch (e) { return void n(e) } c.done ? t(u) : Promise.resolve(u).then(r, a) }
function hr(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return yr(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return yr(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function yr(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function Sr(e) { var t = e.translate,
n = e.accountNotificationCount,
r = hr((0, B.useState)(!1), 2),
e = r[0],
a = r[1],
r = (0, B.useRef)(); return (0, B.useEffect)(function() { var e, t = function() { var c, e = (c = regeneratorRuntime.mark(function e() { return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
return e.prev = 0, e.next = 3, null === G.AccountSwitcherService || void 0 === G.AccountSwitcherService ? void 0 : G.AccountSwitcherService.syncAccountSwitcherBlobIfNeeded();
case 3:
e.next = 8; break;
case 5:
e.prev = 5, e.t0 = e.catch(0), console.warn("account switching has issues", e.t0);
case 8:
case "end":
return e.stop() } }, e, null, [
[0, 5]
]) }), function() { var e = this,
i = arguments; return new Promise(function(t, n) { var r = c.apply(e, i);
function a(e) { gr(r, t, n, a, o, "next", e) }
function o(e) { gr(r, t, n, a, o, "throw", e) } a(void 0) }) }); return function() { return e.apply(this, arguments) } }();
a(!0), e = !(null === G.AccountSwitcherService || void 0 === G.AccountSwitcherService || !G.AccountSwitcherService.getStoredAccountSwitcherBlob()), Se.eventStreamService.sendEventWithTarget(zn.schematizedEventTypes.authPageLoad, zn.context.accountSwitcherStatus, { state: e.toString() }), t() }, []), q().createElement("li", { id: "navbar-settings", ref: r, className: "navbar-icon-item" }, q().createElement(A.Popover, { id: "settings-popover", trigger: "click", placement: "bottom", className: Ge(), containerPadding: 20, button: q().createElement("button", { type: "button", className: "btn-navigation-nav-settings-md" }, q().createElement(Kn, { accountNotificationCount: n })), container: r.current, role: "menu" }, q().createElement("div", { className: Ge() }, q().createElement("ul", { id: "settings-popover-menu", className: "dropdown-menu" }, q().createElement(br, { isCrossDeviceLoginCodeValidationDisplayed: e, translate: t, accountNotificationCount: n }))))) } Sr.defaultProps = { accountNotificationCount: 0 }, Sr.propTypes = { translate: f().func.isRequired, accountNotificationCount: f().number }; var Er = Sr,
wr = { VIRTUAL_ITEM: "VIRTUAL_ITEM", UPDATE: "UPDATE" };
function Cr(e) { var t = e.robuxAmount,
n = e.isGetCurrencyCallDone,
r = e.robuxError,
a = e.creditDisplayConfig,
e = e.robuxBadgeType,
t = r ? y : F.abbreviateNumber.getTruncValue(t),
e = O()("notification-red robux-badge", { hidden: !e }),
t = q().createElement(B.Fragment, null, q().createElement("span", { className: "icon-robux-28x28 roblox-popover-close", id: "nav-robux" }), a !== D.hideCreditAndRobux && q().createElement("span", { className: "rbx-text-navbar-right text-header", id: "nav-robux-amount" }, n && t)); return q().createElement("span", { id: "nav-robux-icon", className: "nav-robux-icon rbx-menu-item" }, r ? q().createElement(A.Tooltip, { id: "current-error", content: r, placement: "bottom", containerClassName: "nav-buy-robux-icon-tooltip-container" }, t) : t, q().createElement("span", { className: e })) }
function xr(e) { switch (e) {
case wr.VIRTUAL_ITEM:
return "prevLocalVirtualItemStartTimeSeconds" + G.CurrentUser.userId;
case wr.UPDATE:
return "hasSeenRobuxUpdate";
default:
return "" } } Cr.defaultProps = { robuxAmount: 0, robuxError: "", robuxBadgeType: null }, Cr.propTypes = { robuxAmount: f().number, robuxError: f().string, isGetCurrencyCallDone: f().bool.isRequired, creditDisplayConfig: f().string.isRequired, robuxBadgeType: f().oneOf(Object.values(wr)) }; var Ar = Cr;
function Nr(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return Tr(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Tr(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Tr(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } var Or = W.buyRobuxUrl,
Rr = W.redeemUrl,
Ir = W.buyGiftCardUrl,
Ur = new Map,
kr = new Map;
function Pr(e) { var t = e.creditAmount,
n = e.creditDisplayConfig,
r = e.creditError,
a = e.currencyCode,
o = e.isEligibleForVng,
i = e.robuxAmount,
c = e.robuxError,
u = e.openConvertCreditModal,
l = e.onBuyGiftCardClick,
s = e.onBuyRobuxExternalClick,
d = e.robuxBadgeType,
f = e.translate,
m = Nr((0, B.useState)(!0), 2),
p = m[0],
v = m[1],
b = Nr((0, B.useState)(!1), 2),
e = b[0],
g = b[1],
m = Nr((0, B.useState)(!1), 2),
b = m[0],
h = m[1],
m = c ? y : F.numberFormat.getNumberFormat(i),
c = function(e) { switch (e) {
case wr.VIRTUAL_ITEM:
return "Labels.NewItem";
case wr.UPDATE:
return "Labels.NewUpdate";
default:
return "" } }(d); return (0, B.useEffect)(function() { i < S.robuxTruncateThreshold && t < S.creditTruncateThreshold && n !== D.hideCreditAndRobux && v(!1) }, [i, t, n]), (0, B.useEffect)(function() { window.dispatchEvent(new CustomEvent("price-tag:render", { detail: { targetSelector: ".dropdown-credit-balance" } })) }, [n]), (0, B.useEffect)(function() { 0 === t ? g(!1) : Ur.has(t) ? g(Ur.get(t)) : be().then(function(e) { 0 < e.data.robuxConversionAmount ? (Ur.set(t, !0), g(!0)) : (Ur.set(t, !1), g(!1)) }) }, [t]), (0, B.useEffect)(function() { kr.has(Ir.cacheKey) ? h(kr.get(Ir.cacheKey)) : ge().then(function(e) { e = e.data;
h(e.displayBuyGiftCardOption), kr.set(Ir.cacheKey, e.displayBuyGiftCardOption) }) }, []), q().createElement(B.Fragment, null, q().createElement("div", { className: p ? "" : "wallet-hidden" }, q().createElement("li", { className: "dropdown-wallet" }, q().createElement(A.Link, { className: "dropdown-wallet-section" }, q().createElement("span", { className: "icon-robux-28x28", id: "nav-robux" }), q().createElement("span", { id: "nav-robux-balance" }, m))), n !== D.control && q().createElement("li", { className: "dropdown-wallet" }, q().createElement(A.Link, { className: "dropdown-wallet-section" }, q().createElement("span", { className: "icon-menu-wallet" }), r ? y : q().createElement("span", { className: "dropdown-credit-balance", "data-amount": t, "data-currency-code": a }))), q().createElement("li", { className: "rbx-divider" })), o ? q().createElement("li", null, q().createElement("button", { type: "button", cssClasses: "rbx-menu-item", onClick: s }, f(Or.buyRobux.label))) : q().createElement("li", { className: "rbx-menu-item-container" }, q().createElement(A.Link, { cssClasses: "rbx-menu-item buy-robux-button", url: Or.buyRobux.url, onClick: function() { var e;
e = Se.paymentFlowAnalyticsService.ENUM_VIEW_MESSAGE.BUY_ROBUX, Se.paymentFlowAnalyticsService.sendUserPurchaseFlowEvent(Se.paymentFlowAnalyticsService.ENUM_TRIGGERING_CONTEXT.WEB_ROBUX_PURCHASE, !1, Se.paymentFlowAnalyticsService.ENUM_VIEW_NAME.NAVIGATION_DROPDOWN_MENU, Se.paymentFlowAnalyticsService.ENUM_PURCHASE_EVENT_TYPE.USER_INPUT, e),
function(e) { var t = xr(e); switch (e) {
case wr.VIRTUAL_ITEM:
Se.localStorageService.setLocalStorage(t, Math.floor(Date.now() / 1e3)); break;
case wr.UPDATE:
Se.localStorageService.setLocalStorage(t, "true") } }(d) } }, q().createElement("span", { className: "buy-robux-link-container" }, f(Or.buyRobux.label), c && q().createElement("div", { className: "new-item-pill small" }, q().createElement("span", { className: "new-item-pill-text" }, f(c)))))), b && q().createElement("li", null, q().createElement("button", { type: "button", cssClasses: "rbx-menu-item", onClick: l }, f(Ir.label) || "Buy Gift Card")), q().createElement("li", null, q().createElement(A.Link, { cssClasses: "rbx-menu-item", url: Or.myTransactions.url }, f(Or.myTransactions.label))), q().createElement("li", null, q().createElement(A.Link, { cssClasses: "rbx-menu-item", url: Rr.url }, f(Rr.label))), n !== D.control && e && q().createElement("li", null, q().createElement(A.Link, { cssClasses: "rbx-menu-item", onClick: u }, f("Label.ConvertCreditSuccess")))) } Pr.defaultProps = { isEligibleForVng: !1, robuxAmount: 0, robuxError: "", creditAmount: 0, currencyCode: "", creditError: "", robuxBadgeType: null }, Pr.propTypes = { isEligibleForVng: f().bool, translate: f().func.isRequired, robuxAmount: f().number, robuxError: f().string, creditAmount: f().number, currencyCode: f().string, creditError: f().string, robuxBadgeType: f().oneOf(Object.values(wr)), creditDisplayConfig: f().string.isRequired, openConvertCreditModal: f().func.isRequired, onBuyGiftCardClick: f().func.isRequired, onBuyRobuxExternalClick: f().func.isRequired }; var Lr = Pr;
function jr(e) { var t = e.creditAmount,
n = e.currencyCode,
e = e.creditError,
e = q().createElement(B.Fragment, null, q().createElement("span", { className: "icon-menu-wallet roblox-popover-close", id: "nav-credit-icon" }), q().createElement("span", { className: "rbx-text-navbar-right text-header", id: "nav-robux-amount" }, e ? q().createElement("div", { className: "nav-credit-text" }, y) : q().createElement("div", { className: "credit-balance", "data-amount": t, "data-currency-code": n }))); return (0, B.useEffect)(function() { window.dispatchEvent(new CustomEvent("price-tag:render", { detail: { targetSelector: ".credit-balance", tagClassName: "navbar-compact nav-credit-text" } })) }, [t, n]), q().createElement(B.Fragment, null, q().createElement("span", { id: "nav-robux-icon", className: "nav-robux-icon rbx-menu-item nav-credit" }, e)) } jr.defaultProps = { creditAmount: 0, creditError: "", currencyCode: "USD" }, jr.propTypes = { creditAmount: f().number, creditError: f().string, currencyCode: f().string }; var Dr = jr;
function _r(e) { var t = e.translate,
n = e.isShopModalOpen,
r = e.closeShopModal,
a = e.onModalContinue,
e = q().createElement(q().Fragment, null, q().createElement("p", { className: "shop-description" }, t("Description.RetailWebsiteRedirect")), q().createElement("p", { className: "shop-warning" }, t("Description.PurchaseAgeWarning"))); return q().createElement(A.SimpleModal, { title: t("Heading.LeavingRoblox"), body: e, show: n, actionButtonShow: !0, actionButtonText: t("Action.Continue"), neutralButtonText: t("Action.Cancel"), onAction: a, onNeutral: r, onClose: r }) } _r.propTypes = { translate: f().func.isRequired, isShopModalOpen: f().bool.isRequired, closeShopModal: f().func.isRequired, onModalContinue: f().func.isRequired }; var Mr = (0, V.withTranslations)(_r, s);
function Br(e) { var t = e.translate,
n = e.isOpen,
r = e.onClose,
a = e.onContinue,
e = q().createElement(q().Fragment, null, q().createElement("p", { className: "modal-body" }, t("Description.RedirectToPartnerWebsite") || "This purchase must be completed on our partner’s website. You will be returned to Roblox after the purchase is completed.\n\nProceed to partner website for payment?")); return q().createElement(A.SimpleModal, { title: t("Heading.LeaveRoblox") || "Leaving Roblox", body: e, show: n, actionButtonShow: !0, actionButtonText: t("Action.ContinueToPayment") || "Continue to Payment", neutralButtonText: t("Action.Cancel") || "Cancel", onAction: a, onNeutral: r, onClose: r }) } Br.propTypes = { translate: f().func.isRequired, isOpen: f().bool.isRequired, onClose: f().func.isRequired, onContinue: f().func.isRequired }; var qr = (0, V.withTranslations)(Br, s);
function Fr(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return Gr(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Gr(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Gr(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function Vr(e) {
function t(e) { Se.paymentFlowAnalyticsService.sendUserPurchaseFlowEvent(b.WEB_ROBUX_PURCHASE, !1, g.NAVIGATION_DROPDOWN_MENU, y.USER_INPUT, e) } var n = e.creditAmount,
r = e.creditDisplayConfig,
a = e.creditError,
o = e.currencyCode,
i = e.isEligibleForVng,
c = e.isExperimentCallDone,
u = e.isGetCurrencyCallDone,
l = e.openConvertCreditModal,
s = e.robuxBadgeType,
d = e.robuxAmount,
f = e.robuxError,
m = e.translate,
p = W.buyGiftCardUrl,
v = W.buyRobuxUrl.buyRobuxOnVng,
b = Se.paymentFlowAnalyticsService.ENUM_TRIGGERING_CONTEXT,
g = Se.paymentFlowAnalyticsService.ENUM_VIEW_NAME,
h = Se.paymentFlowAnalyticsService.ENUM_VIEW_MESSAGE,
y = Se.paymentFlowAnalyticsService.ENUM_PURCHASE_EVENT_TYPE,
S = (0, B.useRef)(),
E = Fr((0, B.useState)(!1), 2),
w = E[0],
C = E[1],
e = Fr((0, B.useState)(!1), 2),
E = e[0],
x = e[1]; return q().createElement("li", { id: "navbar-robux", ref: S, className: O()("navbar-icon-item", { "robux-popover-margins": r === D.hideCreditAndRobux }) }, q().createElement(Mr, { isShopModalOpen: w, closeShopModal: function() { C(!1) }, onModalContinue: function() { t(h.CONTINUE_TO_CASHSTAR); var e = decodeURIComponent(p.url);
window.open(e, "_blank") } }), i && q().createElement(qr, { isOpen: E, onClose: function() { x(!1) }, onContinue: function() { t(h.CONTINUE_TO_VNG), he().then(function(e) { e = e.data.vngShopRedirectUrl;
window.open(e || v.url, "_blank").focus() }, function() { window.open(v.url, "_blank").focus() }), x(!1) } }), c && q().createElement(A.Popover, { id: "buy-robux-popover", trigger: "click", placement: "bottom", button: q().createElement("button", { type: "button", className: "btn-navigation-nav-robux-md" }, q().createElement(Ar, { robuxAmount: d, isGetCurrencyCallDone: u, robuxError: f, creditDisplayConfig: r, robuxBadgeType: s }), r === D.showCreditAndRobux && q().createElement(Dr, { creditAmount: n, currencyCode: o, creditError: a })), role: "menu", container: S.current }, q().createElement("div", { className: Ge() }, q().createElement("ul", { id: "buy-robux-popover-menu", className: "dropdown-menu" }, q().createElement(Lr, { isEligibleForVng: i, translate: m, robuxAmount: d, robuxError: f, creditAmount: n, currencyCode: o, creditError: a, creditDisplayConfig: r, openConvertCreditModal: l, onBuyGiftCardClick: function() { t(h.BUY_GIFT_CARD), C(!0) }, onBuyRobuxExternalClick: function() { t(h.EXTERNAL_LINK_MODAL), x(!0) }, robuxBadgeType: s }))))) } Vr.defaultProps = { robuxAmount: 0, robuxError: "", creditAmount: 0, creditError: "", currencyCode: "USD", creditDisplayConfig: D.control, isExperimentCallDone: !1, isEligibleForVng: !1, robuxBadgeType: null }, Vr.propTypes = { translate: f().func.isRequired, robuxAmount: f().number, robuxError: f().string, isGetCurrencyCallDone: f().bool.isRequired, creditAmount: f().number, currencyCode: f().string, creditError: f().string, creditDisplayConfig: f().string, isExperimentCallDone: f().bool, openConvertCreditModal: f().func.isRequired, isEligibleForVng: f().bool, robuxBadgeType: f().oneOf(Object.values(wr)) }; var Kr = Vr;
function Wr(e) { e = e.toggleUniverseSearch; return q().createElement("li", { className: "rbx-navbar-right-search" }, q().createElement("button", { type: "button", className: "rbx-menu-item btn-navigation-nav-search-white-md", onClick: e }, q().createElement("span", { className: "icon-nav-search-white" }))) } Wr.propTypes = { toggleUniverseSearch: f().func.isRequired }; var Hr = Wr;
function Qr() { var t = (0, B.useRef)(null),
e = L.authenticatedUser.isUnder13,
n = (0, v.currentUserHasVerifiedBadge)() && v.VerifiedBadgeIconContainer ? q().createElement("section", { ref: function(e) { t.current = e } }, q().createElement(v.VerifiedBadgeIconContainer, { overrideImgClass: "verified-badge-icon-header", size: v.BadgeSizes.CAPTIONHEADER })) : null; return q().createElement("div", { className: "age-bracket-label text-header" }, q().createElement(A.Link, { className: "text-link dynamic-overflow-container", url: W.scrollListItems.profile.url }, q().createElement("span", { className: "avatar avatar-headshot-xs" }, q().createElement(p.Thumbnail2d, { containerClass: "avatar-card-image", targetId: L.authenticatedUser.id, type: p.ThumbnailTypes.avatarHeadshot, altName: L.authenticatedUser.name })), q().createElement("span", { className: "text-overflow age-bracket-label-username font-caption-header" }, dt.nameForDisplay), n), q().createElement("span", { className: "xsmall age-bracket-label-age text-secondary" }, e ? "<13" : "13+")) }
function zr() { return Na(void 0, void 0, Promise, function() { var t; return Ta(this, function(e) { return t = { withCredentials: !0, url: G.EnvironmentUrls.apiGatewayUrl + "/credit-balance/v1/get-next-purchasable-metadata" }, [2, F.httpService.get(t)] }) }) }
function Xr(r) { return Na(void 0, void 0, Promise, function() { var t, n; return Ta(this, function(e) { return t = { paymentProviderType: "Credit", providerPayload: { product_id: 0 === r || null == r ? void 0 : r } }, n = { withCredentials: !0, url: G.EnvironmentUrls.apiGatewayUrl + "/payments-gateway/v1/process-payment" }, [2, F.httpService.post(n, t)] }) }) } var $r = "Label.AvailableCreditWithColon",
Yr = "Label.BalanceDue",
Jr = "Label.CreditAfterTransaction",
Zr = "Action.Buy",
ea = "Action.Cancel",
ta = "Action.ConvertToRobux",
na = "Label.ConvertCreditSuccess",
ra = "Heading.BuyRobuxWithCredit",
aa = "Message.Step1LargestAvailablePackageYouCanBuy",
oa = "Message.Step2NextLargestPackage",
ia = "Message.Step3ConvertRobux",
ca = "Message.ConvertCreditToRobux",
ua = "Alert.RobuxPackagePurchased",
la = "Alert.RobuxPackagePurchaseFailed",
sa = "Alert.SuccessfullyConvertedCreditToRobux",
da = "Heading.CreditConversionFail",
fa = "Alert.GenericFailure",
ma = "NewCreditConversionGetNextPurchasableFailedStatusCode",
pa = "NewCreditConversionGetNextPurchasableCreditBalanceZero",
va = "NewCreditConversionGetNextPurchasableUnexpectedException",
ba = "NewCreditConversionGetNextPurchasableConversion",
ga = "NewCreditConversionGetNextPurchasableProductPurchase",
ha = "ProcessPaymentRequestFailedStatusCode",
ya = "ProcessPaymentNextStep",
Sa = "ProcessPaymentNotSuccessful",
Ea = "ProcessPaymentNotSuccessful",
wa = "ProcessPaymentUnexpectedException",
Ca = "ConversionCancelClicked",
xa = "ProductPurchaseCancelClicked",
Aa = { common: ["CommonUI.Controls", "CommonUI.Features"], feature: "Purchasing.RedeemGameCard" },
Na = function(e, i, c, u) { return new(c = c || Promise)(function(n, t) {
function r(e) { try { o(u.next(e)) } catch (e) { t(e) } }
function a(e) { try { o(u.throw(e)) } catch (e) { t(e) } }
function o(e) { var t;
e.done ? n(e.value) : ((t = e.value) instanceof c ? t : new c(function(e) { e(t) })).then(r, a) } o((u = u.apply(e, i || [])).next()) }) },
Ta = function(n, r) { var a, o, i, c = { label: 0, sent: function() { if (1 & i[0]) throw i[1]; return i[1] }, trys: [], ops: [] },
e = { next: t(0), throw: t(1), return: t(2) }; return "function" == typeof Symbol && (e[Symbol.iterator] = function() { return this }), e;
function t(t) { return function(e) { return function(t) { if (a) throw new TypeError("Generator is already executing."); for (; c;) try { if (a = 1, o && (i = 2 & t[0] ? o.return : t[0] ? o.throw || ((i = o.return) && i.call(o), 0) : o.next) && !(i = i.call(o, t[1])).done) return i; switch (o = 0, i && (t = [2 & t[0], i.value]), t[0]) {
case 0:
case 1:
i = t; break;
case 4:
return c.label++, { value: t[1], done: !1 };
case 5:
c.label++, o = t[1], t = [0]; continue;
case 7:
t = c.ops.pop(), c.trys.pop(); continue;
default:
if (!(i = 0 < (i = c.trys).length && i[i.length - 1]) && (6 === t[0] || 2 === t[0])) { c = 0; continue } if (3 === t[0] && (!i || t[1] > i[0] && t[1] < i[3])) { c.label = t[1]; break } if (6 === t[0] && c.label < i[1]) { c.label = i[1], i = t; break } if (i && c.label < i[2]) { c.label = i[2], c.ops.push(t); break } i[2] && c.ops.pop(), c.trys.pop(); continue } t = r.call(n, c) } catch (e) { t = [6, e], o = 0 } finally { a = i = 0 }
if (5 & t[0]) throw t[1]; return { value: t[0] ? t[1] : void 0, done: !0 } }([t, e]) } } },
Oa = "ar-",
Ra = "en-",
Ia = ["JPY"],
Ua = { PRICE_DATA_NOT_VALID: (l = "PriceTag") + "DataNotValid", NUMBER_FORMAT_LOCALE_EXCEPTION: l + "NumberFormatLocaleException", ARABIC_LOCALE_TRIGGERED: l + "ArabicLocale" };
function ka(e) { var t = e.amount,
n = e.currencyCode,
r = e.tagClassName,
e = t < 0,
a = Math.abs(t),
o = "" + a + n,
i = O()("price-tag", r); try { var c = (u = Intl.NumberFormat().resolvedOptions().locale).startsWith(Oa) ? ((0, At.fireEvent)(Ua.ARABIC_LOCALE_TRIGGERED), u.replace(Oa, Ra)) : u,
u = { style: "currency", currency: n, notation: "standard" };
1e4 <= a && !Ia.includes(n) && (u.minimumFractionDigits = 0, u.maximumFractionDigits = 2, u.maximumSignificantDigits = 21, u.notation = "compact"), i.split(" ").includes("navbar-compact") && (u.maximumSignificantDigits = 4), o = Intl.NumberFormat(c, u).format(a) } catch (e) {
(0, At.fireEvent)(Ua.NUMBER_FORMAT_LOCALE_EXCEPTION) } return q().createElement("div", { className: "d-flex-inline gap-1 justify-content-start align-items-center" }, e && q().createElement("span", { className: i }, "-"), q().createElement("span", { className: i }, o)) } ka.propTypes = { amount: f().number.isRequired, currencyCode: f().string.isRequired }; var Pa, La, ja = ka,
Da = function(e, i, c, u) { return new(c = c || Promise)(function(n, t) {
function r(e) { try { o(u.next(e)) } catch (e) { t(e) } }
function a(e) { try { o(u.throw(e)) } catch (e) { t(e) } }
function o(e) { var t;
e.done ? n(e.value) : ((t = e.value) instanceof c ? t : new c(function(e) { e(t) })).then(r, a) } o((u = u.apply(e, i || [])).next()) }) },
_a = function(n, r) { var a, o, i, c = { label: 0, sent: function() { if (1 & i[0]) throw i[1]; return i[1] }, trys: [], ops: [] },
e = { next: t(0), throw: t(1), return: t(2) }; return "function" == typeof Symbol && (e[Symbol.iterator] = function() { return this }), e;
function t(t) { return function(e) { return function(t) { if (a) throw new TypeError("Generator is already executing."); for (; c;) try { if (a = 1, o && (i = 2 & t[0] ? o.return : t[0] ? o.throw || ((i = o.return) && i.call(o), 0) : o.next) && !(i = i.call(o, t[1])).done) return i; switch (o = 0, i && (t = [2 & t[0], i.value]), t[0]) {
case 0:
case 1:
i = t; break;
case 4:
return c.label++, { value: t[1], done: !1 };
case 5:
c.label++, o = t[1], t = [0]; continue;
case 7:
t = c.ops.pop(), c.trys.pop(); continue;
default:
if (!(i = 0 < (i = c.trys).length && i[i.length - 1]) && (6 === t[0] || 2 === t[0])) { c = 0; continue } if (3 === t[0] && (!i || t[1] > i[0] && t[1] < i[3])) { c.label = t[1]; break } if (6 === t[0] && c.label < i[1]) { c.label = i[1], i = t; break } if (i && c.label < i[2]) { c.label = i[2], c.ops.push(t); break } i[2] && c.ops.pop(), c.trys.pop(); continue } t = r.call(n, c) } catch (e) { t = [6, e], o = 0 } finally { a = i = 0 }
if (5 & t[0]) throw t[1]; return { value: t[0] ? t[1] : void 0, done: !0 } }([t, e]) } } },
Ma = (l = ($ = (0, A.createModal)(), Pa = $[0], [function(e) { var t = e.availableBalance,
n = e.totalBalanceDue,
r = e.currencyCode,
a = e.numberOfPurchase,
o = e.robuxAmountInPackage,
i = e.loading,
c = e.onNeutral,
u = e.onPurchase,
e = e.translate; return q().createElement(Pa, { id: "purchase-product-modal", title: e(ra), body: q().createElement("div", { className: "d-flex justify-content-center flex-direction-column text-center" }, q().createElement("div", { className: "purchase-prompt" }, 1 === a ? e(aa) || "Largest package you can buy with your available credit:" : e(oa)), q().createElement("div", { className: "purchase-logo" }, q().createElement("div", { className: O()("robux-product-logo", "margin-auto", "robux-graphic", "robux-" + o) }), q().createElement("div", null, q().createElement("span", { className: "icon-robux-16x16" }), q().createElement("span", { className: "text-robux" }, o))), q().createElement("div", { className: "purchase-summary d-flex flex-direction-column text-left" }, q().createElement("div", { className: "available-credit d-flex justify-content-between" }, q().createElement("span", null, e($r)), q().createElement(ja, { amount: t, currencyCode: r })), q().createElement("div", { className: "balance-due d-flex justify-content-between" }, q().createElement("span", null, e(Yr)), q().createElement(ja, { amount: -1 * n, currencyCode: r })), q().createElement("div", { className: "rbx-divider" }), q().createElement("div", { className: "credit-after-transaction d-flex justify-content-between" }, q().createElement("span", null, e(Jr)), q().createElement(ja, { amount: t - n, currencyCode: r })))), neutralButtonText: e(ea), actionButtonText: e(Zr), onNeutral: c, onAction: u, loading: i, actionButtonShow: !0 }) }, $[1]]))[0],
Ba = l[1],
qa = (l = ($ = (0, A.createModal)(), La = $[0], [function(e) { var t = e.remainingCreditBalance,
n = e.currencyCode,
r = e.robuxConversionAmount,
a = e.loading,
o = e.numberOfPurchase,
i = e.onConvert,
c = e.onNeutral,
e = e.translate,
r = q().createElement("div", { className: "text-center conversion-message", dangerouslySetInnerHTML: { __html: 1 === o ? e(ca, { robuxAmount: '
' + r }) : e(ia, { remainingCreditBalance: "", lineBreaker: "
", robuxConversionAmount: '' + r }) }, ref: function() { window.dispatchEvent(new CustomEvent("price-tag:render", { detail: { targetSelector: ".fiat-price-tag" } })) } }); return q().createElement(La, { id: "convert-credit-modal", title: e(na), body: r, neutralButtonText: e(ea), actionButtonText: e(ta), onNeutral: c, onAction: i, loading: a, actionButtonShow: !0 }) }, $[1]]))[0],
Fa = l[1],
Ga = function(e) {
function a() { d.warning(f(fa) || "Something went wrong! Please try again later."), Ba.close(), Fa.close(), window.location.href = F.urlService.getAbsoluteUrl("/upgrades/robux") }
function o(e, t) { t = 0 === t || null == t, e ? d.success(f(t ? sa : ua)) : d.warning(f(t ? da : la) || f(fa) || "Something went wrong! Please try again later.") }
function i() { return Da(t, void 0, void 0, function() { var t; return _a(this, function(e) { switch (e.label) {
case 0:
w(!0), e.label = 1;
case 1:
return e.trys.push([1, 3, 4, 5]), [4, zr()];
case 2:
return 200 !== (t = e.sent()).status ? (d.warning(f(fa) || "Something went wrong! Please try again later."), w(!1), (0, At.fireEvent)(ma), (0, At.fireEvent)("" + ma + t.status), [2]) : 0 === (t = t.data).creditBalance || 0 === t.productId && 0 === t.robuxConversionAmount ? (w(!1), Fa.close(), Ba.close(), r(t.creditBalance), (0, At.fireEvent)(pa), [2]) : (r(t.creditBalance), u(t.currencyCode), s(t.robuxConversionAmount), p(t.productId), h(t.balanceDue), S(t.robuxAmountProductGrant), 0 === t.productId ? (Fa.open(), Ba.close(), (0, At.fireEvent)(ba)) : (Ba.open(), (0, At.fireEvent)(ga)), [3, 5]);
case 3:
return e.sent(), a(), (0, At.fireEvent)(va), [3, 5];
case 4:
return w(!1), [7];
case 5:
return [2] } }) }) } var t = this,
n = e.creditBalance,
r = e.setCreditBalance,
c = e.currencyCode,
u = e.setCurrencyCode,
l = e.convertedRobuxAmount,
s = e.setConvertedRobuxAmount,
d = e.systemFeedbackService,
f = e.translate,
m = (e = (0, B.useState)(0))[0],
p = e[1],
v = (e = (0, B.useState)(0))[0],
b = e[1],
g = (e = (0, B.useState)(0))[0],
h = e[1],
y = (e = (0, B.useState)(0))[0],
S = e[1],
E = (e = (0, B.useState)(!1))[0],
w = e[1],
C = function() { return Da(t, void 0, void 0, function() { var t, n, r; return _a(this, function(e) { switch (e.label) {
case 0:
w(!0), e.label = 1;
case 1:
return e.trys.push([1, 6, 7, 8]), [4, Xr(m)];
case 2:
return 200 !== (t = e.sent()).status ? (o(!1, m), w(!1), (0, At.fireEvent)(ha), (0, At.fireEvent)("" + ha + t.status), [2]) : (n = t.data, o(n.isSuccess, m), n.isSuccess && null !== (r = n.providerPayload) && void 0 !== r && r.IsSuccessful ? [4, i()] : [3, 4]);
case 3:
return e.sent(), b(v + 1), (0, At.fireEvent)(ya), [3, 5];
case 4:
Ba.close(), Fa.close(), (0, At.fireEvent)(Sa), e.label = 5;
case 5:
return (0, At.fireEvent)(Ea + n.providerPayload.ResponseMessage), [3, 8];
case 6:
return e.sent(), a(), (0, At.fireEvent)(wa), [3, 8];
case 7:
return w(!1), [7];
case 8:
return [2] } }) }) }; return [(0, V.withTranslations)(function() {
function e() { 0 === m ? (Fa.close(), (0, At.fireEvent)(Ca)) : (Ba.close(), (0, At.fireEvent)(xa)) } return q().createElement(B.Fragment, null, q().createElement(Ma, { availableBalance: n, totalBalanceDue: g, currencyCode: c, numberOfPurchase: v, robuxAmountInPackage: y, onPurchase: function() { C() }, onNeutral: e, loading: E, translate: f }), q().createElement(qa, { remainingCreditBalance: n, currencyCode: c, robuxConversionAmount: l, numberOfPurchase: v, onConvert: function() { C() }, onNeutral: e, loading: E, translate: f })) }, Aa), function() { b(0), i(), b(1) }] };
function Va(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return Ka(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Ka(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Ka(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } var Wa = m,
Ha = (m = Va((0, A.createSystemFeedback)(), 2))[0],
Qa = m[1];
function za(e) {
function t() { o && (f(!1), se(i).then(function(e) { e = e.data;
v(e.robux) }, function() { N(r(j)) }).finally(function() { f(!0) })) }
function n() { o && ye().then(function(e) { var t = e.data,
e = "true" !== function(e) { var t = xr(e); switch (e) {
case wr.VIRTUAL_ITEM:
case wr.UPDATE:
return Se.localStorageService.getLocalStorage(t);
default:
return "" } }(wr.UPDATE);
t.is_virtual_item_available && e && x(wr.UPDATE) }) } var r = e.translate,
a = e.toggleUniverseSearch,
o = L.authenticatedUser.isAuthenticated,
i = L.authenticatedUser.id,
c = Va((0, B.useState)(0), 2),
u = c[0],
l = c[1],
s = Va((0, B.useState)(!1), 2),
d = s[0],
f = s[1],
m = Va((0, B.useState)(0), 2),
p = m[0],
v = m[1],
b = Va((0, B.useState)(!1), 2),
g = b[0],
h = b[1],
y = Va((0, B.useState)(!0), 2),
S = y[0],
E = y[1],
w = Va((0, B.useState)(null), 2),
C = w[0],
x = w[1],
A = Va((0, B.useState)(""), 2),
e = A[0],
N = A[1],
c = Va((0, B.useState)(D.control), 2),
s = c[0],
T = c[1],
m = Va((0, B.useState)(null), 2),
b = m[0],
O = m[1],
y = Va((0, B.useState)(null), 2),
w = y[0],
R = y[1],
A = Va((0, B.useState)(""), 2),
c = A[0],
I = A[1],
m = Va((0, B.useState)(!1), 2),
y = m[0],
U = m[1],
A = Va((0, B.useState)(0), 2),
m = A[0],
A = A[1],
m = Va(Ga({ creditBalance: b, setCreditBalance: O, currencyCode: w, setCurrencyCode: R, convertedRobuxAmount: m, setConvertedRobuxAmount: A, systemFeedbackService: Qa, translate: r }), 2),
A = m[0],
k = m[1];
(0, B.useEffect)(function() { window.addEventListener("navigation-update-user-currency", function(e) { t() }) }, []), (0, B.useEffect)(function() { if (o) { Wa().then(l), t(), o && de().then(function(e) { e = e.data;
h(e.shouldShowVng), E(e.notificationsCanAccessStream) }, function() { N(r(j)) }), n(), ve().then(function(e) { var t = e.data;
null === t.creditDisplayConfig || null === t.creditBalance || null === t.currencyCode ? T(D.control) : T(null !== (e = t.creditDisplayConfig) && void 0 !== e ? e : D.control), O(t.creditBalance), R(t.currencyCode) }, function() { I(r(j)) }).finally(function() { U(!0) }); try { Se.localStorageService.getLocalStorage(_.accountSwitchedFlag) && (Qa.success(r(_.accountSwitchedMessage, { accountName: L.authenticatedUser.name }), 0, 5e3), Se.localStorageService.removeLocalStorage(_.accountSwitchedFlag)) } catch (e) {} } }, [o, i]); var P = q().createElement("li", { id: "navbar-stream", className: "navbar-icon-item navbar-stream" }, q().createElement("span", { className: "nav-robux-icon rbx-menu-item" }, q().createElement("span", { id: "notification-stream-icon-container", "notification-stream-indicator": "true" }))); try { Nn().module("notificationStreamIcon"), Nn().module("notificationStream"), P = q().createElement(Fn, null) } catch (e) { console.log(e) } return q().createElement("ul", { className: "nav navbar-right rbx-navbar-icon-group" }, q().createElement(Ha, null), q().createElement(Qr, null), q().createElement(Hr, { translate: r, toggleUniverseSearch: a }), S && P, q().createElement(Kr, { translate: r, robuxAmount: p, robuxError: e, creditAmount: b, currencyCode: w, creditError: c, creditDisplayConfig: s, isEligibleForVng: g, isExperimentCallDone: y, isGetCurrencyCallDone: d, openConvertCreditModal: function() { k() }, robuxBadgeType: C }), q().createElement(Er, { translate: r, accountNotificationCount: u }), q().createElement(A, null)) } za.propTypes = { translate: f().func.isRequired, toggleUniverseSearch: f().func.isRequired }; var Xa = (0, V.withTranslations)(za, { common: ["CommonUI.Features", "Common.AlertsAndOptions"], feature: "Purchasing.RedeemGameCard" });
function $a(e, t, n, r, a, o, i) { try { var c = e[o](i),
u = c.value } catch (e) { return void n(e) } c.done ? t(u) : Promise.resolve(u).then(r, a) }
function Ya(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return Ja(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Ja(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function Ja(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } var Za = r.getSignupUrl,
eo = r.getIsVNGLandingRedirectEnabled;
function to(e) { var t = e.translate,
n = Ya((0, B.useState)(!1), 2),
e = n[0],
r = n[1],
a = Ya(null !== (n = null === G.AccountSwitcherService || void 0 === G.AccountSwitcherService ? void 0 : G.AccountSwitcherService.useIsAccountSwitcherAvailableForBrowser()) && void 0 !== n ? n : [!1], 1)[0]; return (0, B.useEffect)(function() { try {
(0, Se.dataStores.authIntentDataStore.saveGameIntentFromCurrentUrl)() } catch (e) { console.error("Failed to save game intent from current url", e) } }, []), (0, B.useEffect)(function() {
(function() { var c, e = (c = regeneratorRuntime.mark(function e() { var t; return regeneratorRuntime.wrap(function(e) { for (;;) switch (e.prev = e.next) {
case 0:
return e.prev = 0, e.next = 3, eo();
case 3:
t = e.sent, r(!t), e.next = 10; break;
case 7:
e.prev = 7, e.t0 = e.catch(0), r(!0);
case 10:
case "end":
return e.stop() } }, e, null, [
[0, 7]
]) }), function() { var e = this,
i = arguments; return new Promise(function(t, n) { var r = c.apply(e, i);
function a(e) { $a(r, t, n, a, o, "next", e) }
function o(e) { $a(r, t, n, a, o, "throw", e) } a(void 0) }) }); return function() { return e.apply(this, arguments) } })()() }, []), e && q().createElement("li", { className: "signup-button-container" }, q().createElement(A.Link, { onClick: function() { window.location.href = Za(a) }, url: Za(a), id: "sign-up-button", className: "rbx-navbar-signup btn-growth-sm nav-menu-title signup-button" }, t("Label.sSignUp"))) }
function no() { window.location.href = oo() } to.propTypes = { translate: f().func.isRequired }; var ro = to,
ao = r.isLoginLinkAvailable,
oo = r.getLoginLinkUrl;
function io(e) { e = e.translate; return q().createElement("li", { className: "login-action" }, ao() && q().createElement(A.Link, { onClick: no, url: `/login?returnUrl=${window.top.$('meta[name=secret]').attr('data')}`, className: "rbx-navbar-login btn-secondary-sm nav-menu-title rbx-menu-item" }, e("Label.sLogin"))) } io.propTypes = { translate: f().func.isRequired }; var co = io;
function uo() { return (uo = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n, r = arguments[t]; for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) } return e }).apply(this, arguments) }
function lo(e, t) { if (null == e) return {}; var n, r = function(e, t) { if (null == e) return {}; var n, r, a = {},
o = Object.keys(e); for (r = 0; r < o.length; r++) n = o[r], 0 <= t.indexOf(n) || (a[n] = e[n]); return a }(e, t); if (Object.getOwnPropertySymbols)
for (var a = Object.getOwnPropertySymbols(e), o = 0; o < a.length; o++) n = a[o], 0 <= t.indexOf(n) || Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]); return r }
function so(e) { var t = e.translate,
n = e.toggleUniverseSearch,
e = lo(e, ["translate", "toggleUniverseSearch"]); return L.authenticatedUser.isAuthenticated ? q().createElement("div", { className: "navbar-right rbx-navbar-right" }, q().createElement(Xa, uo({ translate: t, toggleUniverseSearch: n }, e))) : q().createElement("div", { className: "navbar-right rbx-navbar-right" }, q().createElement("ul", { className: "nav navbar-right rbx-navbar-right-nav" }, q().createElement(ro, { translate: t }), q().createElement(co, { translate: t }), q().createElement(Hr, { translate: t, toggleUniverseSearch: n }))) } so.propTypes = { translate: f().func.isRequired, toggleUniverseSearch: f().func.isRequired }; var fo = so;
function mo() { return (mo = Object.assign || function(e) { for (var t = 1; t < arguments.length; t++) { var n, r = arguments[t]; for (n in r) Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]) } return e }).apply(this, arguments) }
function po(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return vo(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return vo(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function vo(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r } var bo = (0, V.withTranslations)(function(e) { var t = Me(),
n = po((0, B.useState)(t), 2),
r = n[0],
a = n[1],
t = (n = po((0, B.useState)(!t), 2))[0],
o = n[1],
i = (0, B.useCallback)(function() { var e = Me();
r !== e && (a(e), o(!e)) }, [r]); return (0, B.useEffect)(function() { return window.addEventListener("resize", i),
function() { window.removeEventListener("resize", i) } }, [i]), q().createElement(q().Fragment, null, q().createElement(An, mo({ isUniverseSearchShown: t }, e)), q().createElement(fo, mo({ toggleUniverseSearch: function() { o(function(e) { return !e }) } }, e))) }, s);
function go(e, t) { return function(e) { if (Array.isArray(e)) return e }(e) || function(e, t) { if ("undefined" == typeof Symbol || !(Symbol.iterator in Object(e))) return; var n = [],
r = !0,
a = !1,
o = void 0; try { for (var i, c = e[Symbol.iterator](); !(r = (i = c.next()).done) && (n.push(i.value), !t || n.length !== t); r = !0); } catch (e) { a = !0, o = e } finally { try { r || null == c.return || c.return() } finally { if (a) throw o } } return n }(e, t) || function(e, t) { if (!e) return; if ("string" == typeof e) return ho(e, t); var n = Object.prototype.toString.call(e).slice(8, -1); "Object" === n && e.constructor && (n = e.constructor.name); if ("Map" === n || "Set" === n) return Array.from(e); if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return ho(e, t) }(e, t) || function() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.") }() }
function ho(e, t) {
(null == t || t > e.length) && (t = e.length); for (var n = 0, r = new Array(t); n < t; n++) r[n] = e[n]; return r }
function yo(e) {
function t(e) { Se.paymentFlowAnalyticsService.sendUserPurchaseFlowEvent(c.WEB_ROBUX_PURCHASE, !1, u.NAVIGATION_ROBUX_TEXT, s.USER_INPUT, e) } var n = e.translate,
r = W.buyRobuxUrl,
a = r.buyRobux,
o = r.buyRobuxOnVng,
i = L.authenticatedUser.isAuthenticated,
c = Se.paymentFlowAnalyticsService.ENUM_TRIGGERING_CONTEXT,
u = Se.paymentFlowAnalyticsService.ENUM_VIEW_NAME,
l = Se.paymentFlowAnalyticsService.ENUM_VIEW_MESSAGE,
s = Se.paymentFlowAnalyticsService.ENUM_PURCHASE_EVENT_TYPE,
d = go((0, B.useState)(!1), 2),
e = d[0],
f = d[1],
r = go((0, B.useState)(!1), 2),
d = r[0],
m = r[1],
p = (0, B.useRef)(new Map);
(0, B.useEffect)(function() { var t = p.current,
n = o.cacheKey;
t.has(n) ? f(t.get(n)) : i && de().then(function(e) { e = e.data.shouldShowVng;
f(e), t.set(n, e) }) }, [o, o.cacheKey, i]); return q().createElement("div", null, e ? q().createElement(q().Fragment, null, q().createElement(qr, { isOpen: d, onClose: function() { m(!1) }, onContinue: function() { t(l.CONTINUE_TO_VNG), he().then(function(e) { e = e.data.vngShopRedirectUrl;
window.open(e || o.url, "_blank").focus() }, function() { window.open(o.url, "_blank").focus() }), m(!1) } }), q().createElement(A.Link, { cssClasses: "font-header-2 nav-menu-title text-header robux-menu-btn", onClick: function() { t(l.EXTERNAL_LINK_MODAL), m(!0) } }, n(a.name))) : q().createElement(A.Link, { cssClasses: "font-header-2 nav-menu-title text-header robux-menu-btn", url: a.url, onClick: function() { return t(l.BUY_ROBUX) } }, n(a.name))) } yo.propTypes = { translate: f().func.isRequired }; var So = (0, V.withTranslations)(yo, s),
m = function() { var e = document.getElementById("header-develop-md-link"),
t = document.getElementById("header-develop-sm-link");
null !== e && (e.href = "https://create.".concat(G.EnvironmentUrls.domain, "/")), null !== t && (t.href = "https://create.".concat(G.EnvironmentUrls.domain, "/")) },
Eo = n;
function wo(e) { var e = e.translate,
t = document.getElementById(Eo); return q().createElement(A.Button, { id: "skip-to-main-content", size: A.Button.sizes.extraSmall, variant: A.Button.variants.primary, onClick: function() { return t.focus() } }, e("Action.SkipToMainContent") || "Skip to main content") } wo.propTypes = { translate: f().func.isRequired }; var Co = wo,
xo = u,
Ao = L.authenticatedUser.isAuthenticated;
function No(e) { var t = A.IconButton.iconTypes; return q().createElement(B.Fragment, null, q().createElement(Co, e), Ao && q().createElement(A.IconButton, { className: "menu-button", iconType: t.navigation, iconName: "nav-menu", onClick: function() { document.dispatchEvent(new CustomEvent(xo.name)) } })) } No.propTypes = {}; var To = (0, V.withTranslations)(No, s);
function Oo(t, e) { var n, r = Object.keys(t); return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function(e) { return Object.getOwnPropertyDescriptor(t, e).enumerable })), r.push.apply(r, n)), r }
function Ro(r) { for (var e = 1; e < arguments.length; e++) { var a = null != arguments[e] ? arguments[e] : {};
e % 2 ? Oo(Object(a), !0).forEach(function(e) { var t, n;
t = r, e = a[n = e], n in t ? Object.defineProperty(t, n, { value: e, enumerable: !0, configurable: !0, writable: !0 }) : t[n] = e }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(r, Object.getOwnPropertyDescriptors(a)) : Oo(Object(a)).forEach(function(e) { Object.defineProperty(r, e, Object.getOwnPropertyDescriptor(a, e)) }) } return r } jo(74); var u = r.logoutAndRedirect,
s = r.getIsVNGLandingRedirectEnabled,
r = r.navigateToLoginWithRedirect,
Io = "right-navigation-header",
Uo = "left-navigation-container",
ko = "header-menu-icon",
Po = "navigation-robux-container",
Lo = "navigation-robux-mobile-container";
t().NavigationService = Ro(Ro({}, t().NavigationService), {}, { logoutAndRedirect: u, getIsVNGLandingRedirectEnabled: s, navigateToLoginWithRedirect: r }), m(), (0, F.ready)(function() { document.getElementById(ko) && (0, e.render)(q().createElement(To, null), document.getElementById(ko)), document.getElementById(Po) && (0, e.render)(q().createElement(So, null), document.getElementById(Po)), document.getElementById(Lo) && (0, e.render)(q().createElement(So, null), document.getElementById(Lo)), document.getElementById(Io) && (0, e.render)(q().createElement(bo, null), document.getElementById(Io)), document.getElementById(Uo) && (0, e.render)(q().createElement(xt, null), document.getElementById(Uo)) }) }()
}();
//# sourceMappingURL=https://sourcemaps.rbxcdn.com/f3ea61199ebde5a844040eaeb84332fd-navigation.bundle.min.js.map
/* Bundle detector */
window.Roblox && window.Roblox.BundleDetector && window.Roblox.BundleDetector.bundleDetected("Navigation");