1import { y as J } from "./chunk-xgti9j2t.js"; 2import { $ as q, $r as j, Aa as h, Ao as X, Ba as Q, Ea as d, Ei as ee, Et as ie, G as I, Hn as B, Kn as R, Li as P, Pi as se, Pt as m, Sa as v, Sn as u, Sr as te, Xa as ne, Y as x, an as ae, ci as W, fa as p, fi as C, fr as re, gt as a, ko as $, l as oe, ri as ce, ro as N, sa as he, sr as me, t as pe, ta as le, tn as l, un as de, xr as K, zo as ue } from "./chunk-c97c17u8.js"; 3import { M as _e } from "./chunk-l3jkbhly.js"; 4import { p as ge } from "./chunk-k52vj1ic.js"; 5import { o as fe } from "./chunk-l24fzhmb.js"; 6import { A as ke } from "./chunk-jrtaqqwj.js"; 7import { i as V, o as ve, t as o } from "./chunk-pesy0vb6.js"; 8import { D as Ce, o as Se } from "./chunk-llc8ry2a.js"; 9import { D as Ge, ut as be } from "./chunk-fbjoug0d.js"; 10import { a as Ee } from "./chunk-ewplex8i.js"; 11import { n as Me, r as Oe } from "./chunk-c18gpzrj.js"; 12import { r as ye } from "./chunk-c9rg1mp5.js"; 13import { n as we, t as Ae } from "./chunk-kyqvtgtk.js"; 14import { K as Te, Y as De, gt as Le } from "./chunk-w0x32net.js"; 15import { p as Ie } from "./chunk-bhnvkbxx.js"; 16import { ot as Be } from "./chunk-f2v2cgea.js"; 17import { c as Re } from "./chunk-og5uebri.js"; 18import { Dn as Pe, Tt as xe, _n as We, _t as $e, jr as Ne } from "./chunk-go6pvd0a.js"; 19import { t as Ke } from "./chunk-k4et3zlq.js"; 20import { i as Ve, p as Ue } from "./chunk-hul0ult7.js"; 21import { n as Ze } from "./chunk-lmnwxprc.js"; 22import { r as Ye } from "./chunk-ilfhy0in.js"; 23import { n as Fe } from "./chunk-ohg30iel.js"; 24import { $ as He } from "./chunk-iuhjzybw.js"; 25import { a as ze } from "./chunk-kanq2829.js"; 26import { i as Je } from "./chunk-lareec7a.js"; 27import { n as qe } from "./chunk-im7lpx1v.js"; 28import { Yn as je, h as Xe, hr as U, mn as Qe } from "./chunk-l8i5rin8.js"; 29import { s as ei } from "./chunk-bol8t3zz.js"; 30import { r as ii, t as si } from "./chunk-i1knml6i.js"; 31import { t as ti } from "./chunk-bt0uh5ix.js"; 32import { t as ni } from "./chunk-ga84h9wi.js"; 33import { n as ai, t as ri } from "./chunk-bh3f6w1f.js"; 34import { i as oi } from "./chunk-eoj30x9t.js"; 35import { $h as ci, Ca as hi, Cr as mi, Dr as pi, En as li, Er as di, In as ui, Kn as _i, La as Z, Mn as gi, Pa as fi, Ra as ki, Sn as vi, Va as Ci, Vn as _, Wr as Si, Zn as Gi, co as bi, eg as Ei, er as Mi, fo as Oi, ir as yi, ja as wi, jn as Ai, qn as Ti, rr as Di, so as Li, uo as Ii, za as Bi } from "./chunk-g8mtbi19.js"; 36import { $n as Ri, T as Pi, ji as xi, zr as Wi } from "./chunk-iq8thase.js"; 37import { a as $i, i as Ni, n as Ki, r as Vi, t as Ui } from "./chunk-f9r9q8kp.js"; 38import { n as Zi, r as Yi } from "./chunk-c5h65alx.js"; 39import { n as Fi, t as Hi } from "./chunk-jgjuk5z7.js"; 40import { n as zi, t as Ji } from "./chunk-h8ecxuny.js"; 41import { i as qi } from "./chunk-jipijatq.js"; 42import { n as ji, t as Xi } from "./chunk-jf9hdnex.js"; 43import { l as Qi, n as es, o as is } from "./chunk-b9m59xwf.js"; 44import { n as ss, t as ts } from "./chunk-pcrjqtwg.js"; 45import { n as ns, t as as } from "./chunk-esg3xot5.js"; 46import { o as rs, r as os } from "./chunk-dgnyb449.js"; 47import { n as S, t as cs } from "./chunk-cnatsayw.js"; 48import { n as hs, t as G } from "./chunk-oo87drul.js"; 49import { t as ms } from "./chunk-o4f8w5yc.js"; 50function ps(s, t) { 51 s & 1 && u(0, "ds-loading-spinner", 2); 52} 53function ls(s, t) { 54 if (s & 1 && (d(0, "span", 7)(1, "button", 8), u(2, "vn-icon", 9), p()()), s & 2) { 55 let i = t.$implicit; 56 m(2), l("name", i ? "theme-up" : "theme-down"); 57 } 58} 59function ds(s, t) { 60 s & 1 && u(0, "ms-minigames", 10), s & 2 && l("hidden", v(2).collapsed); 61} 62function us(s, t) { 63 if (s & 1) { 64 let i = te(); 65 d(0, "ds-card", 1)(1, "ds-accordion", 2), pe("openedChange", function() { 66 return re(i), ue(v().panelToggled()); 67 }), d(2, "ds-accordion-header", 3)(3, "div", 4)(4, "div", 5), q(5), p()(), N(6, ls, 3, 1, "span", 6), p(), N(7, ds, 1, 1, "ng-template", null, 0, X), p()(); 68 } 69 if (s & 2) { 70 let i = v(); 71 l("themeCardElevated", i.themeElevated)("themeBorderRadius", i.themeBorderRadius)("elevated", !0)("border", !0), m(), l("themedAccordionSurface", i.themedAccordionSurface)("withCard", !0)("open", !i.collapsed), m(4), he(i.sitecore.globalMessages.MiniGames); 72 } 73} 74function _s() { 75 return [xe(H)]; 76} 77var b, c, E, M, O, y, w, A, r, g, T, D, L, f, Y, k, F, H; 78function z() { 79 return (z = ms((() => { 80 J(), se(), _e(), ge(), fe(), ke(), ve(), Ce(), be(), Ee(), Me(), ye(), Ae(), Se(), Le(), Ie(), Be(), De(), Re(), Ne(), Ke(), Ue(), Ve(), Ze(), Ye(), Fe(), He(), Pe(), ci(), ze(), Je(), Oi(), Ii(), qe(), Li(), Ci(), ki(), Qe(), fi(), wi(), hi(), ei(), Si(), di(), mi(), yi(), Mi(), Gi(), Ti(), ui(), ii(), ti(), ni(), gi(), Ai(), li(), vi(), ai(), oi(), Ri(), Ni(), Yi(), Hi(), Ji(), qi(), ji(), Qi(), rs(), ss(), cs(), ns(), hs(), b = (() => { 81 let s = class { 82 constructor() { 83 this.trackingService = a(_i); 84 } 85 trackMiniGames(i) { 86 switch (i) { 87 case S.Betslip: 88 this.trackGameStartedWhenBetSlipOpen(); 89 break; 90 case S.MyBets: this.trackGameStartedWhenMyBetsOpen(); 91 } 92 } 93 trackGameStartedWhenBetSlipOpen() { 94 this.trackingService.track(_.EVENT_MINI_GAME_OPEN, { [_.PAGE_DISPLAYED_ELEMENT]: "MiniGames_Start_SlipOpen" }); 95 } 96 trackGameStartedWhenMyBetsOpen() { 97 this.trackingService.track(_.EVENT_MINI_GAME_OPEN, { [_.PAGE_DISPLAYED_ELEMENT]: "MiniGames_Start_MyBetsOpen" }); 98 } 99 }; 100 return s.ɵfac = function(t) { 101 return new (t || s)(); 102 }, s.ɵprov = C({ 103 token: s, 104 factory: s.ɵfac, 105 providedIn: "root" 106 }), s; 107 })(), c = class {}, E = class extends c {}, M = class extends c {}, O = class extends c {}, y = class extends c {}, w = class extends c {}, A = class extends c {}, r = (function(s) { 108 return s.LobbyLoaded = "LOBBY_LOADED", s.RecentCasinoGameOpen = "RECENT_CASINO_GAME_OPEN", s.RecentCasinoGameClose = "RECENT_CASINO_GAME_CLOSE", s.ShowLogin = "SHOW_LOGIN", s.PingStatusGameOpen = "PING_STATUS_GAME_OPEN", s.WindowScrollStart = "WINDOW_SCROLL_START", s.WindowScrollStop = "WINDOW_SCROLL_STOP", s; 109 })(r || {}), g = class {}, T = class {}, D = class {}, L = class {}, f = (() => { 110 let s = class { 111 get events() { 112 return this.casinoWindowEvents; 113 } 114 get recentCasinoGameOpen() { 115 return this.sessionStorage.get(this.recentCasinoGameOpenStorageKey) || ""; 116 } 117 set recentCasinoGameOpen(i) { 118 this.sessionStorage.set(this.recentCasinoGameOpenStorageKey, i); 119 } 120 get miniGamesEnabled() { 121 return this._miniGamesEnabled.asObservable(); 122 } 123 get isDarkMode() { 124 return Number(this.cookieProvider.getCookie(this.darkModeCookieKey)) > 0; 125 } 126 constructor() { 127 this.page = a(we), this.userService = a(Z), this.appInfoConfig = a(We), this.sessionStorage = a(Te), this.cookieProvider = a(zi), this.casinoMiniGamesConfig = a(U), this.deviceService = a(Oe), this.keepAliveService = a(as), this.arcRestrictionService = a(os), this.sportsUserConfig = a(je), this.casinoWindowEvents = new I(), this.recentCasinoGameOpenStorageKey = "recentCasinoGameOpen", this.darkModeCookieKey = "dar
127k-mode", this._miniGamesEnabled = new me(!1), this.receiveMessage = (n) => { 128 switch (n.data.type) { 129 case r.LobbyLoaded: 130 this.triggerEvent(new E()); 131 break; 132 case r.RecentCasinoGameOpen: { 133 let e = new M(); 134 e.gamename = n.data.data.gamename, this.triggerEvent(e); 135 break; 136 } 137 case r.RecentCasinoGameClose: 138 this.triggerEvent(new O()); 139 break; 140 case r.ShowLogin: { 141 let e = new y(); 142 e.gamename = n.data.data.gamename, this.triggerEvent(e); 143 break; 144 } 145 case r.PingStatusGameOpen: 146 this.triggerEvent(new w()); 147 break; 148 case r.WindowScrollStart: { 149 let e = new A(); 150 e.data = n.data, this.triggerEvent(e); 151 break; 152 } 153 } 154 }, this._window = a(Ge); 155 let i = a(bi); 156 this.arcRestrictionService.gamingCrossSellEnabled$.pipe(i.filterSportsEmitLast(), o()).subscribe((n) => { 157 this.hideMiniGamesByArc = n, this.areMiniGamesEnabled(); 158 }), this._window.addEventListener("message", this.receiveMessage); 159 } 160 ngOnDestroy() { 161 this._window.removeEventListener("message", this.receiveMessage); 162 } 163 resetOpenGame() { 164 this.sessionStorage.set(this.recentCasinoGameOpenStorageKey, ""); 165 } 166 areMiniGamesEnabled() { 167 if (this.hideMiniGamesByArc) { 168 this._miniGamesEnabled.next(!1); 169 return; 170 } 171 if (!this.casinoMiniGamesConfig.areMiniGamesEnabled || !this.casinoMiniGamesConfig.url) { 172 this._miniGamesEnabled.next(!1); 173 return; 174 } 175 if (this.deviceService.isRobot) { 176 this._miniGamesEnabled.next(!1); 177 return; 178 } 179 let i = this.userService.isAuthenticated ? this.userService.country : this.userService.geoCountry; 180 this._miniGamesEnabled.next(!this.isBlacklistedCountry(this.casinoMiniGamesConfig.blackListedCountries, i)); 181 } 182 sportsSpinnerLoadingDelayTime() { 183 return this.casinoMiniGamesConfig.sportsSpinnerLoadingDelayTime; 184 } 185 getUrl(i = !1) { 186 return Bi(this.sportsUserConfig, (n) => n.clientIP, "").pipe(R((n) => this.buildUrl(n, i))); 187 } 188 buildUrl(i, n) { 189 let e = this.casinoMiniGamesConfig.url; 190 return e && (e = e.replace("{0}", this.getPageCulture()), e = e.replace("{1}", this.appInfoConfig.brand), e = e.replace("{2}", this.getChanneId()), e = e.replace("{3}", "instantMini"), e = e.replace("{4}", "BETTING"), e = e.replace("{5}", this.appInfoConfig.frontend), e = e.replace("{6}", i || ""), e = e.replace("{7}", this.page.lang), e = e.replace("{8}", this.userService.currency), this.casinoMiniGamesConfig.appendSessionKey ? e = e.replace("{9}", this.userService.ssoToken) : e = e.replace("{9}", ""), e = e.replace("{10}", this.page.homePage), this.userService.isAuthenticated ? (e = e.replace("{11}", this.appInfoConfig.frontend + "_" + this.userService.username), this.recentCasinoGameOpen && (e = e + "&defaultlaunchgame=" + this.recentCasinoGameOpen), e = e.replace("{13}", n.toString())) : (e = e.replace("{11}", ""), e = e.replace("{13}", n.toString())), e = e.replace("{12}", this.isDarkMode.toString())), String(e); 191 } 192 startKeepAlive() { 193 this.keepAliveService.doRequest(); 194 } 195 postEventsToCasino(i, n) { 196 switch (i.constructor) { 197 case T: { 198 let e = new g(); 199 e.type = "sportsevent", e.data = { 200 key: "MiniGames", 201 value: "MiniGames_Expanded" 202 }, this.postMessage(e, n); 203 break; 204 } 205 case D: { 206 let e = new g(); 207 e.type = "sportsevent", e.data = { 208 key: "MiniGames", 209 value: "MiniGames_Collapsed" 210 }, this.postMessage(e, n); 211 break; 212 } 213 case L: { 214 let e = new g(); 215 e.type = "sportsevent", e.data = { 216 key: "MiniGameSessionValue", 217 value: this.userService.ssoToken 218 }, this.postMessage(e, n); 219 break; 220 } 221 } 222 } 223 triggerEvent(i) { 224 this.casinoWindowEvents.next(i); 225 } 226 getPageCulture() { 227 return this.page.culture.replace("-", "_"); 228 } 229 getChanneId() { 230 return this.deviceService.isMobile ? this.deviceService.isiOS ? G.IOS : G.Android : G.WC; 231 } 232 isBlacklistedCountry(i, n) { 233 return n ? i.some((e) => e.toUpperCase() === n.toUpperCase()) : !1; 234 } 235 postMessage(i, n) { 236 n.nativeElement.contentWindow.postMessage(i, "*"); 237 } 238 }; 239 return s.ɵfac = function(t) { 240 return new (t || s)(); 241 }, s.ɵprov = C({ 242 token: s, 243 factory: s.ɵfac, 244 providedIn: "root" 245 }), s; 246 }
246)(), Y = ["casinoIframe"], k = (() => { 247 let s = class { 248 constructor() { 249 this.destroyRef = a(oe), this.miniGamesService = a(f), this.redirectHelper = a(Zi), this.userService = a(Z), this.balanceService = a(Ei), this.dispatcher = a(pi), this.miniGamesTrackingService = a(b), this.scrollContainer = a(Di), this.geolocationCheckService = a(Pi), this.casinoMiniGamesConfig = a(U), this.kycStatusService = a(Wi), this.shouldLogin = h(!1), this.currentType = h(S.Betslip), this.isKycVerified = h(!1), this.recentGameOpen = h(this.miniGamesService.recentCasinoGameOpen), this.isAuthenticated = V(this.userService.onAuthenticationChange$.pipe(R(() => this.userService.isAuthenticated), de(this.userService.isAuthenticated)), { requireSync: !0 }), this.urlRefresh$ = new I(), this.minigamesOpen = Q(() => this.isAuthenticated() && this.recentGameOpen() !== ""), this.loaderVisible = h(!1), this.minigamesUrl = V(this.urlRefresh$.pipe(le(() => this.miniGamesService.getUrl(this.isKycVerified()))), { initialValue: "" }), this.casinoIframe = $.required("casinoIframe"), this.userService.isAuthenticated && this.geolocationCheckService.checkGeolocation(), this.miniGamesService.events.pipe(o()).subscribe((i) => { 250 this.onWindowMessage(i); 251 }), this.userService.onUserLogin$.pipe(o()).subscribe(() => this.onLogin()), this.userService.onUserLogout$.pipe(o()).subscribe(() => { 252 this.isKycVerified.set(!1), this.refreshMiniGameUrl(); 253 }), this.urlRefresh$.next(), this.resetRecentLaunchGame(); 254 } 255 ngOnInit() { 256 this.dispatcher.on("BET_COLUMNTYPE_TABSELECTED").pipe(o(this.destroyRef)).subscribe((i) => this.currentType.set(i)), this.casinoMiniGamesConfig.isKYCCheckEnabled && this.kycStatusService.kycStatus.pipe(o(this.destroyRef)).subscribe((i) => { 257 i && (this.isKycVerified.set(i.kycVerified), this.refreshMiniGameUrl()); 258 }); 259 } 260 ngOnDestroy() { 261 this.resetRecentLaunchGame(); 262 } 263 onWindowMessage(i) { 264 switch (i.constructor) { 265 case E: 266 this.loaderVisible.set(!1), this.casinoMiniGamesConfig.appendSessionKey || this.sendSessionKeyUsingPostMessage(); 267 break; 268 case M: { 269 let n = i.gamename; 270 this.miniGamesService.startKeepAlive(), this.miniGamesService.recentCasinoGameOpen = n, this.recentGameOpen.set(n), this.miniGamesTrackingService.trackMiniGames(this.currentType()); 271 break; 272 } 273 case O: 274 this.balanceService.refresh(), this.miniGamesService.resetOpenGame(), this.recentGameOpen.set(""); 275 break; 276 case y: { 277 let n = i.gamename; 278 this.shouldLogin.set(!0), this.miniGamesService.recentCasinoGameOpen = n, this.recentGameOpen.set(n), this.userService.isAuthenticated || this.redirectHelper.goToLogin({ appendReferrer: !0 }); 279 break; 280 } 281 case w: 282 this.miniGamesService.startKeepAlive(); 283 break; 284 case A: this.scrollContainer.scrollToDelta(void 0, i.data.data.deltaY); 285 } 286 } 287 resetRecentLaunchGame() { 288 this.shouldLogin() || this.miniGamesService.resetOpenGame(), this.shouldLogin.set(!1); 289 } 290 onLogin() { 291 this.loaderVisible.set(!0), this.geolocationCheckService.checkGeolocation(() => this.refreshMiniGameUrl()); 292 } 293 refreshMiniGameUrl() { 294 this.loaderVisible.set(!1), this.urlRefresh$.next(); 295 } 296 sendSessionKeyUsingPostMessage() { 297 let i = new L(); 298 this.miniGamesService.postEventsToCasino(i, this.casinoIframe()); 299 } 300 }; 301 return s.ɵfac = function(t) { 302 return new (t || s)(); 303 }, s.ɵcmp = B({ 304 type: s, 305 selectors: [["ms-minigames"]], 306 viewQuery: function(t, i) { 307 t & 1 && K(i.casinoIframe, Y, 5), t & 2 && W(); 308 }, 309 decls: 5, 310 vars: 7, 311 consts: [ 312 ["casinoIframe", ""], 313 [1, "content-container"], 314 [1, "loader-alignment"], 315 [ 316 1, 317 "mini-games-iframe", 318 3, 319 "src" 320 ] 321 ], 322 template: function(t, i) { 323 t & 1 && (d(0, "div", 1), x(1, ps, 1, 0, "ds-loading-spinner", 2), u(2, "iframe", 3, 0), ce(4, "msTrust"), p()), t & 2 && (ne("content-open", i.minigamesOpen()), m(), P(i.loaderVisible() ? 1 : -1), m(), l("src", ee(4, 4, i.minigamesUrl(), "resourceurl"), ae)); 324 }, 325 dependencies: [$e, Fi], 326 styles: [".content-container[_ngcontent-%COMP%]{padding-top:calc(75% + 42px);position:relative}.content-container[_ngcontent-%COMP%] .mini-games-iframe[_ngcontent-%COMP%]{width:100%;height:98%;display:block;position:absolute;top:0}.content-container.content-open[_ngcontent-%COMP%]{padding-top:599px}.loader-alignment[_ngcontent-%COMP%]{position:absolute;z-index:99}"] 327 }), s; 328 })(), F = (() => { 329 let s = class extends is { 330 constructor() { 331 super(), this.collapsed = !1, this.minigamesComponent = $(k), this.sitecore = a(Xe), this.miniGamesService = a(f), this.themeElevated = { 332 "sportingbet-br": { isElevated: !1 }, 333 "betboo-br": { isElevated: !1 } 334 }, this.themeBorderRadius = { "gamebookers-2": { hasRadius: !0 } }, this.miniGamesService.miniGamesEnabled.pipe(o()).subscribe((i) => { 335 this.areMiniGamesEnabled = i; 336 }), this.themedAccordionSurface = { 337 "sportingbet-br": "low", 338 borgata: "low", 339 "betboo-br": "low", 340 "mgm-dice": "low", 341 "bwin-dark": "low", 342 "sports-interaction": "highest", 343 "sports-interaction-2": "highest" 344 }; 345 } 346 panelToggled() { 347 this.collapsed = !this.collapsed; 348 let i = this.minigamesComponent(); 349 if (!i) return; 350 let n = this.collapsed ? new D() : new T(); 351 this.miniGamesService.postEventsToCasino(n, i.casinoIframe()); 352 } 353 }; 354 return s.ɵfac = function(t) { 355 return new (t || s)(); 356 }, s.ɵcmp = B({ 357 type: s, 358 selectors: [["ms-minigames-column"]], 359 viewQuery: function(t, i) { 360 t & 1 && K(i.minigamesComponent, k, 5), t & 2 && W(); 361 }, 362 hostAttrs: [1, "mini-games-var-scope"], 363 features: [ie([f, b]), j], 364 decls: 1, 365 vars: 1, 366 consts: [ 367 ["content", ""], 368 [ 369 "noOverflow", 370 "", 371 "msThemedCard", 372 "", 373 3, 374 "themeCardElevated", 375 "themeBorderRadius", 376 "elevated", 377 "border" 378 ], 379 [ 380 "surface", 381 "transparent", 382 "msThemedAccordion", 383 "", 384 3, 385 "openedChange", 386 "themedAccordionSurface", 387 "withCard", 388 "open" 389 ], 390 [1, "accordion-header-alignment"], 391 ["slot", "start"], 392 ["slot", "title"], 393 [ 394 "class", 395 "icon-alignment", 396 4, 397 "dsAccordionTrigger" 398 ], 399 [1, "icon-alignment"], 400 [ 401 "ds-button-icon", 402 "", 403 "variant", 404 "flat-reduced", 405 "kind", 406 "tertiary", 407 "size", 408 "large" 409 ], 410 [3, "name"], 411 [3, "hidden"] 412 ], 413 template: function(t, i) { 414 t & 1 && x(0, us, 9, 8, "ds-card", 1), t & 2 && P(i.areMiniGamesEnabled ? 0 : -1); 415 }, 416 dependencies: [ 417 k, 418 xi, 419 Ki, 420 Ui, 421 Vi, 422 $i, 423 si, 424 ts, 425 Xi, 426 ri 427 ], 428 styles: [".accordion-header-alignment[_ngcontent-%COMP%]{padding:0 12px}.icon-alignment[_ngcontent-%COMP%]{display:flex}.icon-alignment[_ngcontent-%COMP%] [_ngcontent-%COMP%]:hover{border-radius:50%}"], 429 changeDetection: 1 430 }), s; 431 }
431)(), H = (() => { 432 let s = class { 433 constructor() { 434 this.widgetRegistry = a(es); 435 } 436 onFeatureInit() { 437 this.widgetRegistry.registerLazy("MiniGames", F); 438 } 439 }; 440 return s.ɵfac = function(t) { 441 return new (t || s)(); 442 }, s.ɵprov = C({ 443 token: s, 444 factory: s.ɵfac, 445 providedIn: "root" 446 }), s; 447 })(); 448 })))(); 449} 450z(); 451export { _s as provide }; 452 453//# sourceMappingURL=chunk-Dogx2gm89.js.map
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.