1import { g as Hi, n as F, t as G, y as qi } from "./chunk-xgti9j2t.js"; 2import { $ as C, $t as ol, Aa as O, An as Ji, Ao as Ne, Ar as xo, Ba as g, Bi as rl, Ci as Le, Cn as Tb, Cr as _o, Dn as sl, Do as lt, Ea as l, Ei as cl, Et as ce, F as Nb, Fn as Ge, G as ko, Gi as Lb, Gn as Se, Gt as ll, Hn as I, Hr as ut, Ia as Gb, Io as pn, Ja as Lt, Jr as Eb, Kn as Me, La as Xe, Li as h, Mr as Gt, Mt as dl, Na as un, Ni as gl, No as dt, O as Ab, Oa as Rb, Pi as ti, Pn as Db, Pt as a, Qt as zb, R as Io, Ra as H, Rn as W, Ro as We, S as Bb, Sa as c, Sn as b, So as Fb, Sr as _, T as Dn, Tn as To, To as gt, Ui as _e, Ut as Vb, Vn as jb, W as $b, Wi as Pe, Xa as L, Y as f, Yi as No, Yn as R, Zt as Lo, _a as Wb, _i as Go, a as le, aa as j, an as Eo, bi as ee, bo as hn, ci as Ue, co as fn, ct as Kt, d as Ub, di as Hb, f as Y, fa as d, fi as A, fr as y, gn as Z, go as Et, gt as s, h as D, ia as vn, ir as Ze, it as ml, j as yt, ja as Qt, ji as qb, ki as ni, ko as De, l as q, la as Jb, lo as Yb, lt as Yi, ma as Ki, na as Kb, ni as et, nr as ii, nt as Qb, o as pl, oa as Xb, oi as E, on as oe, or as tt, qa as ai, ri as wt, ro as te, s as T, sa as x, sr as nt, st as Pt, t as S, ta as Xt, tn as p, tr as Fe, tt as bn, ua as ne, ui as k, ut as ht, va as K, wa as Cn, wo as Ao, wr as Zb, xi as m, xr as He, z as eC, zo as w, zr as yn } from "./chunk-c97c17u8.js"; 3import { E as tC, I as zn, K as nC, M as ul, S as iC, V as mt, a as Ro, b as aC, d as Zt, g as St, p as hl, t as Do, u as At } from "./chunk-l3jkbhly.js"; 4import { p as oC } from "./chunk-k52vj1ic.js"; 5import { n as rC, o as sC, s as cC, t as zo } from "./chunk-l24fzhmb.js"; 6import { A as Bo, M as lC, p as Qi, s as Rt, v as Dt } from "./chunk-jrtaqqwj.js"; 7import { i as Q, o as Xi, r as fl, t as z } from "./chunk-pesy0vb6.js"; 8import { D as Zi, f as X, i as dC, m as gC, o as mC, p as Mt } from "./chunk-llc8ry2a.js"; 9import { D as pe, j as en, ut as Fo } from "./chunk-fbjoug0d.js"; 10import { a as pC } from "./chunk-ewplex8i.js"; 11import { i as Vo, n as jo, r as J } from "./chunk-c18gpzrj.js"; 12import { r as uC, t as ea } from "./chunk-c9rg1mp5.js"; 13import { n as zt, t as vl } from "./chunk-kyqvtgtk.js"; 14import { J as hC, N as fC, Q as qe, Y as ta, at as oi, et as ri, gt as vC, n as bC, pt as Ot, y as de } from "./chunk-w0x32net.js"; 15import { d as Je, l as bl, p as Cl, r as CC } from "./chunk-bhnvkbxx.js"; 16import { ot as yC } from "./chunk-f2v2cgea.js"; 17import { a as yl, c as wl, r as wC } from "./chunk-og5uebri.js"; 18import { $n as PC, A as SC, Dn as Pl, En as MC, Jn as OC, Kn as xC, Mr as na, Or as _C, Qn as Sl, Rt as kC, S as IC, Xt as Ml, _t as TC, b as $o, ct as NC, dr as LC, fn as GC, hr as Ol, jr as EC, k as AC, ln as RC, lr as DC, nt as Wo, rr as zC, w as BC, zn as FC } from "./chunk-go6pvd0a.js"; 19import { n as VC, t as jC } from "./chunk-k4et3zlq.js"; 20import { i as $C, p as WC } from "./chunk-hul0ult7.js"; 21import { n as Uo, r as ke } from "./chunk-lmnwxprc.js"; 22import { r as UC, t as HC } from "./chunk-ilfhy0in.js"; 23import { n as qC } from "./chunk-ohg30iel.js"; 24import { $ as xl, At as _l, C as Ye, F as JC, N as YC, Q as Bt, nt as kl, p as Il, xt as Ke } from "./chunk-iuhjzybw.js"; 25import { a as KC, s as QC } from "./chunk-bol8t3zz.js"; 26import { c as XC } from "./chunk-pccxjem8.js"; 27import { r as Tl, t as Ee } from "./chunk-i1knml6i.js"; 28import { t as ZC } from "./chunk-bt0uh5ix.js"; 29import { t as ey } from "./chunk-ga84h9wi.js"; 30import { n as ty, t as Bn } from "./chunk-bh3f6w1f.js"; 31import { i as ny } from "./chunk-eoj30x9t.js"; 32import { N as Nl, O as iy, W as ay, b as oy, z as ry } from "./chunk-dymhuwkz.js"; 33import { n as sy, t as cy } from "./chunk-bwsrvyqb.js"; 34import { n as ly } from "./chunk-k0kygnvj.js"; 35import { $h as Ll, $t as dy, A as gy, At as my, C as py, Ct as Gl, Dt as uy, En as hy, F as fy, Ft as El, I as vy, Kt as Ho, L as Al, Mn as by, Ot as Ft, R as Rl, Sn as Cy, St as qo, T as Jo, Tt as si, _t as yy, an as wy, bt as Yo, c as Dl, eg as zl, gt as Py, h as Sy, in as My, it as Oy, jn as xy, kt as ia, l as Bl, lt as _y, m as ky, nn as Iy, o as Ty, on as Ny, pt as Ly, q as Gy, t as Ey, tn as Fl, wt as Ay, xt as Ry, yt as Dy } from "./chunk-g8mtbi19.js"; 36import { $n as Vl, Ar as jl, Jt as Ko, R as $l, it as Wl, ji as Ul, kt as Hl, nt as ql, ur as Jl, v as Yl, zt as Kl } from "./chunk-iq8thase.js"; 37import { n as Ql, r as aa, t as Ae } from "./chunk-s6hcnz85.js"; 38import { r as zy } from "./chunk-huifii0p.js"; 39import { n as Qo, t as By } from "./chunk-nugu9zb5.js"; 40import { n as Fy, t as Vy } from "./chunk-g5561f51.js"; 41import { r as jy } from "./chunk-gyohohpt.js"; 42import { n as $y } from "./chunk-j0f6jhv0.js"; 43import { a as Wy, i as oa, n as ci, o as ra, r as sa, t as ca } from "./chunk-fwsxfyia.js"; 44import { a as Xl, n as Zl, r as ed, t as td } from "./chunk-ds9g7yw8.js"; 45import { i as Uy, n as Hy, r as qy, t as Jy } from "./chunk-f9r9q8kp.js"; 46import { n as Yy } from "./chunk-bd32vwah.js"; 47import { r as Ky } from "./chunk-jq0sl3ei.js"; 48import { n as Qy } from "./chunk-l121kfao.js"; 49import { n as Xy } from "./chunk-ja26nt1r.js"; 50import { r as Zy } from "./chunk-iuwunkxo.js"; 51import { n as e1 } from "./chunk-cah7i2vq.js"; 52import { n as nd, r as t1 } from "./chunk-boxom2mq.js"; 53import { a as n1, i as i1, n as a1 } from "./chunk-k12pmend.js"; 54import { n as id, r as o1, t as r1 } from "./chunk-cmpdrpe0.js"; 55import { n as s1 } from "./chunk-biy0tm32.js"; 56import { _ as Fn, b as c1, c as l1, d as d1, f as g1, g as m1, h as p1, i as u1, l as h1, m as la, n as f1, o as v1, r as da, u as b1, v as C1 } from "./chunk-bgz4lvxp.js"; 57import { n as y1, s as w1 } from "./chunk-k0gfuft4.js"; 58import { n as P1 } from "./chunk-hdaddk5f.js"; 59import { s as S1 } from "./chunk-gcfyhxpv.js"; 60import { c as M1, h as O1, i as x1, m as _1, o as k1, r as I1 } from "./chunk-icudr5bb.js"; 61import { n as T1 } from "./chunk-jk1ogsur.js"; 62import { a as N1, i as L1, n as G1, r as E1, t as A1 } from "./chunk-nrrfuzhy.js"; 63import { n as ga, r as ma, t as R1 } from "./chunk-db0xbqdc.js"; 64import { i as D1, n as z1, r as B1, t as F1 } from "./chunk-k0c33p3e.js"; 65import { n as V1, t as j1 } from "./chunk-bvl6i29t.js"; 66import { a as $1 } from "./chunk-c7uqng3t.js"; 67import { t as W1 } from "./chunk-nuhmt4d2.js"; 68import { r as U1 } from "./chunk-fc0gx6rv.js"; 69import { C as H1, S as q1, _ as pa, a as J1, b as Y1, c as Xo, d as K1, f as Zo, g as pt, h as li, i as ua, l as ha, m as Q1, n as X1, o as fa, p as va, r as Ie, s as Z1, t as ew, u as di, v as ad, w as er, x as ze, y as Vn } from "./chunk-da6e2r2j.js"; 70import { n as tw, t as nw } from "./chunk-ybnatpqn.js"; 71import { i as tr, n as ba, r as V, t as nr } from "./chunk-dodrvoer.js"; 72import { E as iw, O as B, T as aw, _ as ow, a as ve, b as M, c as rw, f as sw, g as se, h as od, i as Ve, l as cw, n as lw, o as dw, r as gw, s as mw, u as tn, v as it, y as rd } from "./chunk-j1mr4lny.js"; 73import { n as Ca, t as sd } from "./chunk-hd5fpqux.js"; 74import { C as ya, S as pw, _ as ir, a as uw, b as Re, c as xt, d as hw, f as _t, g as wa, h as ar, i as kt, l as or, m as Pa, n as rr, o as Qe, p as ue, r as be, s as gi, t as sr, u as jn, v as nn, w as at, x as mi, y as we } from "./chunk-gi888ftw.js"; 75import { n as cr, t as Oe } from "./chunk-n34dlw48.js"; 76import { n as fw, r as vw } from "./chunk-ewg5z263.js"; 77import { i as bw, s as Cw } from "./chunk-ils8dcw4.js"; 78import { n as yw, r as ww } from "./chunk-ju4wg4lu.js"; 79import { n as Pw, t as pi } from "./chunk-o4f8w5yc.js"; 80function Vt(t, o) { 81 return !t && !o ? "" : `${t?.toLowerCase() ?? ""} | ${o?.toLowerCase() ?? ""}`; 82} 83function cd(t, o, e) { 84 return t.gameSource ? `${o?.toLowerCase() ?? ""} | ${hw[t.gameSource]}` : Vt(o, e); 85} 86function ld(t, o, e) { 87 switch (t.gameSource) { 88 case be.Unfinished: 89 case be.Recent: 90 case be.BingoRecent: return o.recentlyPlayedTitle; 91 case be.Promoted: return o.promotedGamesTitle; 92 case be.Gyml: return o.gamesYouMightLikeTitle; 93 default: return e; 94 } 95} 96function lr(t) { 97 return dr[t]; 98} 99function Sa(t) { 100 return t !== U.Grid && !ui(t); 101} 102function ui(t) { 103 return t === U.Carousel3D; 104} 105function Sw(t, o, e = {}) { 106 return t === Ce.Cabinet ? e.cabinetLayout === ot.SM ? gr[ot.SM] : gr[ot.LG] : o ?? U.SingleRow; 107} 108var Ce, U, dr, hi, Ma, fi, ot, gr, he; 109function mr() { 110 return (mr = pi((() => { 111 qi(), ti(), Bo(), Xi(), Zi(), ta(), ba(), aa(), sd(), ar(), Ce = (function(t) { 112 return t.None = "None", t.CasinoVideo = "CasinoVideo", t.Jackpot = "Jackpot", t.GamePicker = "GamePicker", t.RPGYML = "rpgyml", t.Favourites = "Favorites", t.SuperButton = "SuperButton", t.RecentlyPlayed = "RecentlyPlayed", t.Teaser = "Teaser", t.NewsFeed = "NewsFeed", t.MinimalFeature = "MinimalFeature", t.Cabinet = "Cabinet", t.ThreeCategoriesWidget = "ThreeCategoriesWidget", t.Personalisation = "Personalisation", t.ThemedTopTen = "ThemedTopTen", t.RpFavoriteToggleWidget = "RpFavoriteToggleWidgetContainer", t.Welc
112omebox = "Welcomebox", t; 113 })(Ce || {}), U = (function(t) { 114 return t.Grid = "Grid", t.SingleRow = "SingleRow", t.DoubleRow = "DoubleRow", t.TripleRow = "TripleRow", t.TopTen = "TopTen", t.GameSwiperCard = "GameSwiperCard", t.TopFive = "TopFive", t.HeroGame = "HeroGame", t.SemiCircle = "SemiCircle", t.LandscapeV2 = "LandscapeV2", t.Disk = "GameDiscCard", t.Carousel3D = "3dCarousel", t.ThreeCategoriesWidget = "threeCategoriesWidget", t; 115 })(U || {}), dr = { 116 [U.SingleRow]: 1, 117 [U.DoubleRow]: 2, 118 [U.TripleRow]: 3, 119 [U.TopTen]: 1, 120 [U.GameSwiperCard]: 1, 121 [U.TopFive]: 1, 122 [U.HeroGame]: 1, 123 [U.Grid]: 1, 124 [U.SemiCircle]: 1, 125 [U.LandscapeV2]: 2, 126 [U.Disk]: 1, 127 [U.Carousel3D]: 1, 128 [U.ThreeCategoriesWidget]: 1 129 }, hi = { 130 [U.SingleRow]: 6, 131 [U.DoubleRow]: 12, 132 [U.TripleRow]: 18, 133 [U.Grid]: 6, 134 [U.HeroGame]: 0, 135 [U.TopTen]: 0, 136 [U.GameSwiperCard]: 6, 137 [U.TopFive]: 0, 138 [U.SemiCircle]: 6, 139 [U.LandscapeV2]: 12, 140 [U.Disk]: 6, 141 [U.Carousel3D]: 20, 142 [U.ThreeCategoriesWidget]: 9 143 }, Ma = (function(t) { 144 return t.RecentWinners = "Recent Winners", t.InstaStory = "Insta Story", t.Tournaments = "Tournaments", t.Originals = "Originals", t; 145 })(Ma || {}), fi = (function(t) { 146 return t.Row = "row", t.Column = "column", t; 147 })(fi || {}), ot = (function(t) { 148 return t.SM = "SM", t.LG = "LG", t; 149 })(ot || {}), gr = { 150 [ot.SM]: "cabinetSM", 151 [ot.LG]: "cabinetLG" 152 }, he = (() => { 153 class t { 154 layoutService = s(nn); 155 configProviderService = s(V); 156 dslService = s(bC); 157 route = s(Dt); 158 urlUtilityService = s(tr); 159 navigationService = s(qe); 160 router = s(Rt); 161 apiService = s(Ae); 162 destroyRef = s(q); 163 recentGamesService = s(at); 164 favouriteService = s(Re); 165 userService = s(Ca); 166 platform = s(X); 167 cacheOrchestration = s(Pa); 168 configs = this.configProviderService.provideSubNavigationConfig(); 169 layout = Q(this.layoutService.layout$); 170 currentLayout = g(() => this.layout()?.id); 171 enableSubNav = Q(this.dslService.evaluateExpression(this.configs?.isEnabledCondition || "")); 172 routeCurrentProduct = g(() => this.configProviderService.provideLmtConfig().defaultProductHomeUrl || "games"); 173 signPostingGameIdsMap = O({}); 174 recentGames = Q(this.recentGamesService.recentGamesFeedObservable, { initialValue: [] }); 175 navItems = g(() => { 176 let e = this.signPostingGameIdsMap(), n = this.recentGames(); 177 return this.generateNavBarItems(this.currentLayout(), this.layout()?.subNavs, e, n); 178 }); 179 constructor() { 180 this.userService.authenticated$.pipe(z(this.destroyRef)).subscribe(() => this.refreshLayoutForAuthenticatedUser()); 181 } 182 refreshLayoutForAuthenticatedUser() { 183 this.clearSignPostingCounts(), this.layoutService.resetLayout(!0), this.layoutService.fetchAndSetLayouts(this.currentRouteLayoutParam()); 184 } 185 currentRouteLayoutParam() { 186 let e = this.route; 187 for (; e.firstChild;) e = e.firstChild; 188 return e.snapshot.paramMap.get("layout") ?? ""; 189 } 190 fetchSignPostingCounts(e) { 191 let n = () => this.apiService.get(`v1/layouts/${e}/signposting`); 192 Ki(this.cacheOrchestration.getSignposting(e, n)).pipe(z(this.destroyRef), Xt((i) => i ? dt(i) : n().pipe(et(1), rl((r) => this.cacheOrchestration.cacheSignposting(e, r)))), Gt(() => dt(null))).subscribe((i) => { 193 i && this.applySignPostingResponse(i); 194 }); 195 } 196 applySignPostingResponse(e) { 197 if (e?.signPosting) { 198 let n = {}; 199 for (let [i, r] of Object.entries(e.signPosting)) n[i] = r.gameIds; 200 this.signPostingGameIdsMap.set(n); 201 } 202 } 203 clearSignPostingCounts() { 204 this.signPostingGameIdsMap.set({}), this.lastFetchedLayoutId = null; 205 } 206 lastFetchedLayoutId = null; 207 fetchSignPostingCountsIfNeeded(e) { 208 this.platform.isBrowser && this.lastFetchedLayoutId !== e && (this.lastFetchedLayoutId = e, this.fetchSignPostingCounts(e)); 209 } 210 initialSubnav = this.getInitialSubnav(); 211 subnavId = Q(this.router.events.pipe(We((e) => e instanceof Qi), Me(() => { 212 let e = this.route; 213 for (; e.firstChild;) e = e.firstChild; 214 return e.snapshot.paramMap.get("subnav"); 215 })), { initialValue: this.initialSubnav }); 216 getInitialSubnav() { 217 let e = this.route; 218 for (; e.firstChild;) e = e.firstChild; 219 return e.snapshot.paramMap.get("subnav"); 220 } 221 currentSubnav = g(() => this.findCurrentSubnav(this.subnavId(), this.layout()?.subNavs)); 222 isActiveNav(e) { 223 return this.isActiveNavItem(e, this.currentSubnav()); 224 } 225 goTo(e) { 226 this.navigationService.goTo(e); 227 } 228 generateNavBarItems(e = "", n = [], i = {}, r = []) { 229 let u = this.favouriteService.favourites(), v = this.userService.isAuthenticated; 230 return n.map((P) => { 231 let N = P.page?.containers, $ = P.page != null && N != null && N.length === 0, me = N != null && N.length > 0 && N.every((Ct) => Ct.type?.toLowerCase() === Ce.Favourites.toLowerCase()), fe = N != null && N.length > 0 && N.every((Ct) => Ct.type?.toLowerCase() === Ce.RecentlyPlayed.toLowerCase()), re = me && (!v || !u?.length), Nt = fe && (!v || !r?.length), Rn = P.isHidden || $ || re || Nt, Zn = i[P.id], ei = Zn?.length ? Zn.filter((Ct) => !r.includes(Ct)).length : 0; 232 return F(G({}, P), { 233 isHidden: Rn, 234 url: this.createUrlForNav(e, P), 235 signPostingCount: ei 236 }); 237 }); 238 } 239 findCurrentSubnav(e, n) { 240 if (!n) return; 241 let i = decodeURIComponent(e || ""); 242 return n.find((r) => decodeURIComponent(r.id) === i) || n.find((r) => r.isDefault) || n[0]; 243 } 244 isActiveNavItem(e, n) { 245 return n?.id === e.id; 246 } 247 createUrlForNav(e, n) { 248 let i = this.urlUtilityService.getHostUrlWithLang(), r = this.routeCurrentProduct(); 249 return n.isDefault ? [ 250 i, 251 r, 252 this.layout()?.isDefault === !0 ? "" : e
253 ].filter(Boolean).join("/") : n.type === rr.ExternalLink ? [i, n.value].filter(Boolean).join("/") : n.type === rr.Layout ? [ 254 i, 255 r, 256 n.value 257 ].filter(Boolean).join("/") : [ 258 i, 259 r, 260 e, 261 n.id 262 ].filter(Boolean).join("/"); 263 } 264 createUrlForSeeAll(e) { 265 return e ? [ 266 this.urlUtilityService.getHostUrlWithLang(), 267 this.routeCurrentProduct(), 268 e.layoutId, 269 e.subNavId 270 ].filter(Boolean).join("/") : ""; 271 } 272 static ɵfac = function(e) { 273 return new (e || t)(); 274 }; 275 static ɵprov = A({ 276 token: t, 277 factory: t.ɵfac, 278 providedIn: "root" 279 }); 280 } 281 return t; 282 })(); 283 })))(); 284} 285function dd(t) { 286 return !t.gameVariantList || t.gameVariantList.length === 0 ? t.gameVariantName ? [t.gameVariantName] : [] : t.gameVariantList; 287} 288function gd(t, o) { 289 let e = t.getHours(), n = t.getMinutes(); 290 if (o) return `${String(e).padStart(2, "0")}:${String(n).padStart(2, "0")}`; 291 let i = e >= xa ? "pm" : "am"; 292 e = e % xa, e = e || xa; 293 let r = n < 10 ? `0${n}` : String(n); 294 return `${e}:${r}${i}`; 295} 296function vi(t) { 297 try { 298 return JSON.parse(t); 299 } catch { 300 return null; 301 } 302} 303function md(t, o, e, n) { 304 if (!o?.liveNow) return !1; 305 let i = o.liveNow.some((r) => r.promoId === t.promoId && r.slotUniqueId === t.slotUniqueId); 306 return e && !i || n && i; 307} 308function Mw(t, o) { 309 if (!t) return ""; 310 let e = t.content?.promotion?.promoName, n = o || t.gameId || ""; 311 return (t.gameVariantList?.length ?? 0) > 1 ? e || n : e?.startsWith("#") ? e.replace("#", "").trim() : n; 312} 313function pd(t, o) { 314 let e = t?.content?.promotion; 315 return e?.promoBackgroundImage?.src ? !0 : e?.promoBackgroundColor ? !1 : !!o.CardBackgroundImage || !o.CardBackgroundColor; 316} 317function Ow(t, o, e) { 318 return t?.content?.promotion?.promoBackgroundImage?.src || o.CardBackgroundImage || e; 319} 320function xw(t, o) { 321 return pd(t, o) ? null : t?.content?.promotion?.promoBackgroundColor || o.CardBackgroundColor || null; 322} 323function _w(t) { 324 let { spinProgress: o, criteriaDtls: e } = t; 325 return o?.total ?? o?.remaining ?? e?.spinLimit ?? 0; 326} 327function ud(t) { 328 let o = t.subType?.toUpperCase(); 329 return o === pt.FREE_TO_PLAY || o === pt.FREE_PLAY_TECH; 330} 331function Oa(t, o, e) { 332 return !e || !o || o.toUpperCase() === "ALL" ? t : o === fd ? t.filter((n) => n.subType?.toUpperCase() === pt.CASINO_LEADERBOARD) : o === vd ? t.filter((n) => n.additionalParams?.awardType?.toLowerCase() === Ie.COINS || n.additionalParams?.isCoinAward === "YES") : o === hd ? t.filter((n) => ud(n) && n.isOptinWithCoins) : o === bd ? t.filter((n) => ud(n) && !n.isOptinWithCoins) : []; 333} 334var Te, pr, hd, fd, vd, bd, xa, ur, Cd, yd, wn, hr, fr, wd, an; 335function vr() { 336 return (vr = pi((() => { 337 qi(), ti(), Xi(), Zi(), Fo(), Cl(), ta(), ba(), aa(), cr(), ad(), Te = (() => { 338 class t { 339 document = s(Ge); 340 platform = s(X); 341 defaultContent = { 342 raceRuleConfigs: [], 343 rules: [], 344 rulesBanner: {}, 345 placeholderCardImage: {}, 346 coinEconomy: {}, 347 textTranslations: { 348 sharedList: {}, 349 versionedList: {} 350 }, 351 tips: [], 352 errorMessages: { 353 sharedList: {}, 354 versionedList: {} 355 }, 356 entryDetails: { 357 sharedList: {}, 358 versionedList: {} 359 } 360 }; 361 contentPublisher = new nt(null); 362 content$ = this.contentPublisher.asObservable(); 363 contentData = G({}, this.defaultContent); 364 _content = O(null); 365 contentSignal = this._content.asReadonly(); 366 messages = g(() => this._content()?.textTranslations?.versionedList ?? {}); 367 sharedMessages = g(() => this._content()?.textTranslations?.sharedList ?? {}); 368 coinImg = g(() => this._content()?.coinEconomy?.image?.src ?? ""); 369 placeholderImage = g(() => this._content()?.placeholderCardImage?.image?.src ?? ""); 370 rules = g(() => this._content()?.rules ?? []); 371 tips = g(() => this._content()?.tips ?? []); 372 entryDetails = g(() => this._content()?.entryDetails?.versionedList ?? {}); 373 errorMessagesMap = g(() => this._content()?.errorMessages?.versionedList ?? {}); 374 raceRuleConfigs = g(() => this._content()?.raceRuleConfigs ?? []); 375 setContent(e) { 376 this.contentData = e, this._content.set(e), this.contentPublisher.next(e), this.injectProgressBarStyle(e); 377 } 378 getErrorMessage(e) { 379 return this.contentData?.errorMessages?.versionedList ? this.contentData.errorMessages.versionedList[e] ?? this.contentData.errorMessages.versionedList.defaultErrorCode ?? "" : ""; 380 } 381 injectProgressBarStyle(e) { 382 if (!this.platform.isBrowser) return; 383 let n = e?.textTranslations?.sharedList?.progressBarColor; 384 n && n !== "" && this.document.documentElement.style.setProperty("--sr-progress-bar-color", n); 385 } 386 static ɵfac = function(e) { 387 return new (e || t)(); 388 }; 389 static ɵprov = A({ 390 token: t, 391 factory: t.ɵfac, 392 providedIn: "root" 393 }); 394 } 395 return t; 396 })(), pr = (() => { 397 class t { 398 api = s(Ae); 399 configProviderService = s(V); 400 getRaces(e) { 401 let n = this.configProviderService.provideApiPathsConfig().slotRaces.racesList, i = { slotInput: e.slotInput }; 402 return e.slotDuration !== void 0 && (i.slotDuration = e.slotDuration.toString()), this.api.get(n, i, { withCredentials: !0 }); 403 } 404 updateOptinStatus(e, n, i) { 405 let r = this.configProviderService.provideApiPathsConfig().slotRaces.racesOptin, u = { 406 prmId: e.toString(), 407 slotId: n.toString(), 408 coinsForOptin: i.toString() 409 }; 410 return this.api.get(r, u, { withCredentials: !0 }); 411 } 412 updateNotificationStatus(e, n, i) { 413 let r = this.configProviderService.provideApiPathsConfig().slotRaces.raceUpdateNotification, u = { 414 promoId: e.toString(), 415 slotId: n.toString(), 416 notificationStatus: i.toString() 417 }; 418 return this.api.get(r, u, { withCredentials: !0 }); 419 } 420 getCoinBalance() { 421 let e = this.configProviderService.provideApiPathsConfig().slotRaces.racesCoinBalance; 422 return this.api.get(e, {}, { withCredentials: !0 }); 423 } 424 static ɵfac = function(e) { 425 return new (e || t)(); 426 }; 427 static ɵprov = A({ 428 token: t, 429 factory: t.ɵfac, 430 providedIn: "root" 431 }); 432 } 433 return t; 434 })(), hd = "Coins_Entry", fd = "Cash_Entry", vd = "Coins_Reward", bd = "Free_Entry", xa = 12, ur = (() => { 435 class t { 436 api = s(Ae); 437 configProviderService = s(V); 438 getLeaderboard(e, n, i, r) { 439 let u = this.configProviderService.provideApiPathsConfig().slotRaces.racesLeaderboard, v = { 440 prmId: e.toString(), 441 slotId: n.toString(), 442 maxRank: i.toString(), 443 fromResultsHistory: r.toString() 444 }; 445 return this.api.get(u, v, { withCredentials: !0 }); 446 } 447 getResultsHistory(e, n) { 448 let i = this.configProviderService.provideApiPathsConfig().slotRaces.racesResults; 449 return this.api.get(i, { 450 fromDate: n ?? null, 451 endDate: e ?? null 452 }, { withCredentials: !0 }); 453 } 454 getFormattedResultsHistory(e, n) { 455 return this.getResultsHistory(e, n).pipe(Me((i) =>
455 i?.rankDetails && i.rankDetails.length > 0 ? this.formatResults(i.rankDetails) : null), Gt((i) => Ao(() => i))); 456 } 457 formatResults(e) { 458 return e.map((n) => { 459 let i = F(G({}, n), { 460 startDate: new Date(n.slotStartDate), 461 endDate: new Date(n.slotEndDate) 462 }); 463 if (i.gameVariantList = dd(i), i.dateStr = `${i.startDate.getDate()}-${i.startDate.getMonth() + 1}-${i.startDate.getFullYear()}`, i.content?.promotion?.prizes || i.content?.promotion?.beatBanker) { 464 i.isWin = !!i.configMaps?.[0]?.awardType; 465 let { isBeatBanker: r, prizeIcon: u } = this.resolvePrizeIcon(i); 466 r && (i.isBeatBanker = !0), u !== void 0 && (i.prizeIcon = u); 467 } 468 return i; 469 }); 470 } 471 resolvePrizeIcon(e) { 472 let n = !!(e.configMaps?.[0]?.awardType && e.configMaps[0].value), i = !1, r; 473 if (e.content.promotion.beatBanker) { 474 i = !0; 475 let v = vi(e.content.promotion.beatBanker); 476 n && v?.length && (r = v[v.length - 1].Icon); 477 } 478 let u = vi(e.content.promotion.prizes)?.find((v) => this.isRankWithinPrizeRange(e.rank, v)); 479 return u && (r = u.Icon), { 480 isBeatBanker: i, 481 prizeIcon: r 482 }; 483 } 484 isRankWithinPrizeRange(e, n) { 485 return e >= Number(n.FromRank) && e < Number(n.ToRank); 486 } 487 static ɵfac = function(e) { 488 return new (e || t)(); 489 }; 490 static ɵprov = A({ 491 token: t, 492 factory: t.ɵfac, 493 providedIn: "root" 494 }); 495 } 496 return t; 497 })(), Cd = 24, yd = 48, wn = (() => { 498 class t { 499 configProviderService = s(V); 500 timerService = s(de); 501 gameCatalogService = s(Oe); 502 destroyRef = s(q); 503 constructor() { 504 this.gameCatalogService.games$.pipe(z(this.destroyRef)).subscribe(() => this.populateRacesObject()); 505 } 506 slotRaces = []; 507 liveRacesPublisher = new nt({ liveNow: [] }); 508 liveRacesData = this.liveRacesPublisher.asObservable(); 509 upcomingRacesPublisher = new nt({ 510 upcomingToday: [], 511 upcomingTomorrow: [] 512 }); 513 upcomingRacesData = this.upcomingRacesPublisher.asObservable(); 514 updateRacesTimeout; 515 get liveRacesValue() { 516 return this.liveRacesPublisher.value; 517 } 518 get upcomingRacesValue() { 519 return this.upcomingRacesPublisher.value; 520 } 521 populateRacesObject() { 522 if (!this.slotRaces || this.slotRaces.length === 0) return; 523 let e = /* @__PURE__ */ new Date(); 524 e.setHours(Cd, 0, 0, 0); 525 let n = /* @__PURE__ */ new Date(); 526 n.setHours(yd, 0, 0, 0); 527 let i = Date.now(), r = { liveNow: [] }, u = { 528 upcomingToday: [], 529 upcomingTomorrow: [] 530 }; 531 this.slotRaces.every((v) => this.classifyRace(v, i, e, n, r, u)), r.liveNow.length > 0 ? u.upcomingToday.length > 0 || u.upcomingTomorrow.length > 0 ? this.publishRaces(r, u) : this.publishRaces(r, null) : this.publishRaces(null, u); 532 } 533 classifyRace(e, n, i, r, u, v) { 534 let P = e; 535 P.gameVariantList = dd(P); 536 let N = P.gameVariantList[0]; 537 return !N || P.gameVariantList.length === 0 || P.endDate.getTime() <= n ? !0 : (P.gameId = this.gameCatalogService.getGameName(N) ?? N, P.startDate.getTime() <= n ? (P.isLive = !0, u.liveNow.push(P), !0) : P.startDate < i ? (v.upcomingToday.push(P), !0) : P.startDate < r ? (v.upcomingTomorrow.push(P), !0) : !1); 538 } 539 makeDateConversions(e, n) { 540 let i = [], r = Date.now(), u = this.configProviderService.provideSlotRacesConfig(); 541 for (let v of e) { 542 let P = F(G({}, v), { 543 startDate: new Date(v.startTime), 544 endDate: new Date(v.endTime), 545 optinExpiryDate: new Date(v.optinExpiryTime) 546 }); 547 (n === ha.LIVE && P.startDate.getTime() < r && P.endDate.getTime() > r || n === ha.UPCOMING && P.startDate.getTime() > r) && (P.startTimeAMPM = gd(P.startDate, u.enable24HrTimeFormat), i.push(P)); 548 } 549 this.slotRaces = i, this.populateRacesObject(); 550 } 551 updateRacesArrays() { 552 let e = this.upcomingRacesValue, n = this.liveRacesValue, i = Date.now(), r = e.upcomingToday.filter((v) => v.startDate.getTime() <= i); 553 for (let v of r) { 554 v.isLive = !0; 555 let P = e.upcomingToday.indexOf(v); 556 P !== -1 && e.upcomingToday.splice(P, 1); 557 } 558 let u = n.liveNow.filter((v) => v.endDate.getTime() <= i); 559 for (let v of u) n.liveNow.splice(n.liveNow.indexOf(v), 1); 560 n.liveNow = [...n.liveNow, ...r], this.publishRaces(n, e); 561 } 562 dedupeRaces(e) { 563 let n = /* @__PURE__ */ new Set(); 564 return e.filter((i) => { 565 let r = `${i.promoId}_${i.slotUniqueId}`; 566 return n.has(r) ? !1 : (n.add(r), !0); 567 }); 568 } 569 publishRaces(e, n) { 570 if (e && e.liveNow.splice(0, e.liveNow.length, ...this.dedupeRaces(e.liveNow)), n && (n.upcomingToday.splice(0, n.upcomingToday.length, ...this.dedupeRaces(n.upcomingToday)), n.upcomingTomorrow.splice(0, n.upcomingTomorrow.length, ...this.dedupeRaces(n.upcomingTomorrow))), n) { 571 let i = n.upcomingToday[0] ?? n.upcomingTomorrow[0]; 572 if (this.updateRacesTimeout && (this.timerService.clearTimeout(this.updateRacesTimeout), this.updateRacesTimeout = void 0), i) { 573 let r = i.startDate.getTime() - Date.now(); 574 this.updateRacesTimeout = this.timerService.setTimeout(() => this.updateRacesArrays(), r); 575 } 576 } 577 e && this.liveRacesPublisher.next(e), n && this.upcomingRacesPublisher.next(n); 578 } 579 emptySlotRacesData() { 580 this.slotRaces = [], this.liveRacesPublisher.next({ liveNow: [] }), this.upcomingRacesPublisher.next({ 581 upcomingToday: [], 582 upcomingTomorrow: [] 583 }); 584 } 585 static ɵfac = function(e) { 586 return new (e || t)(); 587 }; 588 static ɵprov = A({ 589 token: t, 590 factory: t.ɵfac, 591 providedIn: "root" 592 }); 593 } 594 return t; 595 })(), hr = (() => { 596 class t { 597 timerService = s(de); 598 urlUtilityService = s(tr); 599 liveSlotPollingStarted = !1; 600 pollForUser = !0; 601 pollingInterval; 602 globalTimerInterval = 1e3; 603 timer; 604 globalTimerPublisher = new nt({}); 605 globalTimerObservable = this.globalTimerPublisher.asObservable(); 606 startLiveSlotPolling(e, n) { 607 !this.liveSlotPollingStarted && this.pollForUser && (this.liveSlotPollingStarted = !0, this.pollingInterval = this.timerService.setIntervalOutsideAngularZone(() => { 608 this.urlUtilityService.getAppCurrentProduct() && e(); 609 }, n)); 610 } 611 stopLiveSlotPolling() { 612 this.liveSlotPollingStarted = !1, this.timerService.clearInterval(this.pollingInterval); 613 } 614 globalTimerCountDown() { 615 this.stopGlobalTimer(), this.timer = this.timerService.setInterval(() => { 616 this.globalTimerPublisher.next({ timerInterval: this.globalTimerInterval }); 617 }, this.globalTimerInterval); 618 } 619 stopGlobalTimer() { 620 this.timer && (this.timerService.clearInterval(this.timer), this.timer = void 0); 621 } 622 static ɵfac = function(e) { 623 return new (e || t)(); 624 }; 625 static ɵprov = A({ 626 token: t, 627 factory: t.ɵfac, 628 providedIn: "root" 629 }); 630 } 631 return t; 632 })(), fr = (() => { 633 class t { 634 api = s(Ae); 635 configProviderService = s(V); 636 promoPrizesMap = {}; 637 getPrizesFromAPI() { 638 let e = this.configProviderService.provideApiPathsConfig().slotRaces.racesPrizes; 639 return this.api.get(e, {}, { withCredentials: !0 }); 640 } 641 getPrizes() { 642 return this.getPrizesFromAPI().pipe(Me((e) => { 643 let n; 644 return e?.offers && e.offers.length > 0 && (n = this.createPrizesMap(e.offers)), n && (this.promoPrizesMap = n), n; 645 }), Gt((e) => Ao(() => e))); 646 } 647 createPrizesMap(e) { 648 let n = {}, i = e.filter((r) =>
648 r && r.promoId && r.rankDetails && r.rankDetails.length > 0); 649 for (let r of i) if (!n[r.promoId]) { 650 let u = []; 651 for (let v of r.rankDetails) u.push(v.configMaps); 652 if (r.beatBanker) { 653 let v = F(G({}, r.beatBanker), { isBeatBanker: !0 }); 654 u.push([v]); 655 } 656 n[r.promoId] = u; 657 } 658 return n; 659 } 660 getPrizesForPromo(e) { 661 let n = this.promoPrizesMap?.[e]; 662 return n?.length ? n : []; 663 } 664 isPrizesMapEmpty() { 665 for (let e in this.promoPrizesMap) if (Object.hasOwn(this.promoPrizesMap, e)) return !1; 666 return JSON.stringify(this.promoPrizesMap) === JSON.stringify({}); 667 } 668 static ɵfac = function(e) { 669 return new (e || t)(); 670 }; 671 static ɵprov = A({ 672 token: t, 673 factory: t.ɵfac, 674 providedIn: "root" 675 }); 676 } 677 return t; 678 })(), wd = 1016, an = (() => { 679 class t { 680 prizesApi = s(fr); 681 racesApi = s(pr); 682 contentApi = s(Te); 683 leaderboardApi = s(ur); 684 messageQueue = s(ri); 685 user = s(Je); 686 configProviderService = s(V); 687 window = s(pe); 688 platform = s(X); 689 pollingService = s(hr); 690 lifecycleService = s(wn); 691 gameCatalogService = s(Oe); 692 destroyRef = s(q); 693 logger = s(Ot); 694 isNotificationEnabled; 695 isCoin; 696 selectedFilteredtOption; 697 messages; 698 notifyPublisher = new ko(); 699 notifyObservable = this.notifyPublisher.asObservable(); 700 forcRacepublisher = new nt({}); 701 forceRace = this.forcRacepublisher.asObservable(); 702 optInSuccessPublisher = new ko(); 703 optInSuccess$ = this.optInSuccessPublisher.asObservable(); 704 forceCoinBalancepublisher = new nt({}); 705 forceCoinBalanceObs = this.forceCoinBalancepublisher.asObservable(); 706 updateNavigationCategories = new nt(!0); 707 updateNavigation = this.updateNavigationCategories.asObservable(); 708 rtmsDatPublisher = new nt({}); 709 rtmsData = this.rtmsDatPublisher.asObservable(); 710 selectedEntryOption = new ko(); 711 isSlotRacesInitiated; 712 isNavCategoryVisible; 713 optInButtonText; 714 cardsVisible = O(!1); 715 notifyBellRaces = O(/* @__PURE__ */ new Set()); 716 notifyBellKey(e, n) { 717 return `${e}:${n}`; 718 } 719 isNotifyBellVisible(e, n) { 720 return this.notifyBellRaces().has(this.notifyBellKey(e, n)); 721 } 722 setNotifyStatus(e, n, i) { 723 let r = this.notifyBellKey(e, n); 724 this.notifyBellRaces().has(r) || this.notifyBellRaces.set(new Set(this.notifyBellRaces()).add(r)), this.notifyPublisher.next({ 725 promoId: e, 726 slotUniqueId: n, 727 status: i 728 }); 729 } 730 updateNotificationStatus(e, n, i) { 731 return this.racesApi.updateNotificationStatus(e, n, i); 732 } 733 startTournaments() { 734 this.gameCatalogService.fetchGames(), this.activateRaces(), this.initSlotRaces(), this.setSlotRaces(), this.startLiveSlotPolling(), this.forceOptin(), this.forceCoinBalance(); 735 } 736 initSlotRaces(e = {}) { 737 e.resetRaceData && this.lifecycleService.emptySlotRacesData(), this.isSlotRacesInitiated || (this.isSlotRacesInitiated = !0, this.updateLobbyNavigation()), this.getLiveRaces(), this.getUpcomingRaces(); 738 } 739 setSlotRaces() { 740 let e = this.configProviderService.provideSlotRacesConfig(); 741 this.prizesApi.isPrizesMapEmpty() && (!e.disablePrizesApiCall || e.disablePrizesApiCall && this.user.isAuthenticated) && this.prizesApi.getPrizes().subscribe(), this.pollingService.timer || this.globalTimerCountDown(); 742 } 743 getRaces() { 744 this.getLiveRaces(), this.getUpcomingRaces(); 745 } 746 startLiveSlotPolling() { 747 let e = this.configProviderService.provideSlotRacesConfig(); 748 this.pollingService.startLiveSlotPolling(() => { 749 this.getLiveRaces(), this.getUpcomingRaces(); 750 }, e.racesListPollingInterval); 751 } 752 stopLiveSlotPolling() { 753 this.pollingService.stopLiveSlotPolling(); 754 } 755 globalTimerCountDown() { 756 this.pollingService.globalTimerCountDown(); 757 } 758 getLiveRaces() { 759 let e = { slotInput: ha.LIVE }; 760 this.getRacesList(e); 761 } 762 getUpcomingRaces() { 763 let e = this.configProviderService.provideSlotRacesConfig(), n = { 764 slotInput: ha.UPCOMING, 765 slotDuration: e.upcomingSlotsDuration 766 }; 767 this.getRacesList(n); 768 } 769 getRacesList(e) { 770 let n = this.configProviderService.provideSlotRacesConfig(); 771 (this.user.isAuthenticated || n.enablePreLogin) && this.getRacesFromAPI(e).subscribe({ 772 next: (i) => { 773 i && (i.statusDtls?.statusCode === wd && this.pollingService.liveSlotPollingStarted ? (this.pollingService.pollForUser = !1, this.pollingService.stopLiveSlotPolling()) : this.pollingService.pollForUser || (this.pollingService.pollForUser = !0), i.offerResponses && i.offerResponses.length > 0 && this.lifecycleService.makeDateConversions(i.offerResponses, e.slotInput)); 774 }, 775 error: (i) => this.logger.error("SlotRaces: failed to fetch races list", i) 776 }); 777 } 778 updateRacesArrays() { 779 this.lifecycleService.updateRacesArrays(); 780 } 781 getResultsHistory(e, n) { 782 return this.leaderboardApi.getFormattedResultsHistory(e, n); 783 } 784 getParsedData(e) { 785 return vi(e); 786 } 787 optInToRace(e, n, i = !1) { 788 this.racesApi.updateOptinStatus(e.promoId, e.slotUniqueId, e.coinsForOptin).pipe(z(n)).subscribe({ 789 next: () => { 790 this.emitOptInSuccess(e.promoId, e.slotUniqueId), i && this.forceCoinBalancepublisher.next({}); 791 }, 792 error: (r) => { 793 i && this.forceCoinBalancepublisher.next({}), this.addErrorMessage(r.errorCode); 794 } 795 }); 796 } 797 getCoinBalance() { 798 return this.racesApi.getCoinBalance(); 799 } 800 emitOptInSuccess(e, n) { 801 this.optInSuccessPublisher.next({ 802 promoId: e, 803 slotUniqueId: n 804 }), this.getLiveRaces(), this.getUpcomingRaces(); 805 } 806 activateRaces() { 807 this.lifecycleService.populateRacesObject(); 808 } 809 getRacesFromAPI(e) { 810 return this.racesApi.getRaces(e); 811 } 812 notificationPopupTimeout() { 813 return this.configProviderService.provideSlotRacesConfig().notificationPopupTimeout; 814 } 815 addErrorMessage(e) { 816 this.messageQueue.clear(); 817 let n = this.getErrorMessage(e); 818 n && (this.messageQueue.addError(n, oi.Single, "casinocorelobby"), this.platform.isBrowser && this.window.scrollTo(0, 0)); 819 } 820 getErrorMessage(e) { 821 return this.contentApi.getErrorMessage(e); 822 } 823 forceOptin() { 824 if (!this.platform.isBrowser) return; 825 let e = this.window.sessionStorage.getItem(Zo); 826 if (e) { 827 let n = JSON.parse(e); 828 this.window.sessionStorage.removeItem(Zo), this.racesApi.updateOptinStatus(n.promoId, n.slotUniqueId, n.coinsForOptin).subscribe({ 829 next: () => { 830 this.emitOptInSuccess(n.promoId, n.slotUniqueId); 831 }, 832 error: (i) => { 833 this.addErrorMessage(i.errorCode); 834 } 835 }); 836 } 837 } 838 forceCoinBalance() { 839 if (!this.platform.isBrowser) return; 840 let e = this.window.sessionStorage.getItem(er); 841 if (e) { 842 let n = JSON.parse(e); 843 this.window.sessionStorage.removeItem(er), this.racesApi.getCoinBalance().subscribe({ 844 next: (i) => { 845 this.forceCoinBalancepublisher.next({ 846 coinBal: i, 847 race: n 848 }); 849 }, 850 error: (i) => { 851 this.addErrorMessage(i.errorCode); 852 } 853 }); 854 } 855 } 856 getCurrentRaces() { 857 let e = this.lifecycleService.liveRacesValue, n = this.lifecycleService.upcomingRacesValue; 858 return { 859 liveNow: e.liveNow || [], 860 upcomingToday: n.upcomingToday || [],
861 upcomingTomorrow: n.upcomingTomorrow || [] 862 }; 863 } 864 updateLobbyNavigation() { 865 this.configProviderService.provideSlotRacesConfig().disableWhenNoPromotions && Io([this.lifecycleService.liveRacesData, this.lifecycleService.upcomingRacesData]).pipe(z(this.destroyRef)).subscribe({ next: ([e, n]) => { 866 let i = e?.liveNow?.length > 0 || n?.upcomingToday?.length > 0 || n?.upcomingTomorrow?.length > 0; 867 i !== this.isNavCategoryVisible && (this.isNavCategoryVisible = i, this.updateNavigationCategories.next(!0)); 868 } }); 869 } 870 gameClose() { 871 this.platform.isBrowser && (this.cardsVisible() && this.startLiveSlotPolling(), this.getRaces()); 872 } 873 updateCoinIcon(e) { 874 e && (this.isCoin = e); 875 } 876 getcoinValue() { 877 return this.isCoin; 878 } 879 selectedEntryFilter(e) { 880 e && (this.selectedFilteredtOption = e); 881 } 882 getselectedEntryFilter() { 883 return this.selectedFilteredtOption; 884 } 885 static ɵfac = function(e) { 886 return new (e || t)(); 887 }; 888 static ɵprov = A({ 889 token: t, 890 factory: t.ɵfac, 891 providedIn: "root" 892 }); 893 } 894 return t; 895 })(); 896 })))(); 897} 898function kw(t, o) { 899 if (t & 1) { 900 let e = _(); 901 l(0, "img", 3), S("load", function(n) { 902 return y(e), w(c().onImageLoad(n)); 903 }), d(); 904 } 905 if (t & 2) { 906 let e = c(); 907 yt(e.styles()), k("aspect-ratio", e.aspectRatio()), p("alt", e.alt())("src", e.src(), Y); 908 } 909} 910function Iw(t, o) { 911 if (t & 1) { 912 let e = _(); 913 l(0, "img", 4), S("load", function(n) { 914 return y(e), w(c().onImageLoad(n)); 915 })("error", function(n) { 916 return y(e), w(c().onImageLoadError(n)); 917 }), d(); 918 } 919 if (t & 2) { 920 let e = c(); 921 yt(e.styles()), W("ngoptimizedimage " + e.classes()), k("aspect-ratio", e.aspectRatio()), p("fill", e.fill())("width", e.width())("height", e.height())("alt", e.alt())("ngSrc", e.src())("sizes", e.sizes())("placeholder", e.placeholder())("priority", e.priority())("loading", e.loading()); 922 } 923} 924function Tw(t, o) { 925 let e = (o ?? "").trim().toLowerCase(); 926 if (e.length === 0) return []; 927 let n = [], i = []; 928 for (let r of t ?? []) { 929 let u = (r?.name ?? "").toLowerCase(); 930 u.includes(e) && (u.startsWith(e) ? n.push(r) : i.push(r)); 931 } 932 return [...n, ...i]; 933} 934function Nw(t, o) { 935 if (t & 1) { 936 let e = _(); 937 l(0, "li", 9), S("click", function() { 938 let n = y(e), i = n.$implicit, r = n.$index; 939 return w(c(2).onResultClicked(i, r)); 940 })("keydown.enter", function() { 941 let n = y(e), i = n.$implicit, r = n.$index; 942 return w(c(2).onResultClicked(i, r)); 943 })("keydown.space", function(n) { 944 let i = y(e), r = i.$implicit, u = i.$index; 945 return c(2).onResultClicked(r, u), w(n.preventDefault()); 946 }), b(1, "cw-image", 10)(2, "span", 11), wt(3, "highlightSearch"), d(); 947 } 948 if (t & 2) { 949 let e = o.$implicit, n = c(2); 950 p("id", Pt("gameIdentifier_EmbedSearch_", e.gameId)), T("aria-selected", !1)("aria-label", e.name || e.gameId), a(), p("src", e.icon?.src || "")("alt", e.name || e.gameId)("width", n.searchTileImageSize)("height", n.searchTileImageSize)("imageStyle", "border-radius: " + (e.icon?.gameTileBorderRadius || "4px")), a(), p("innerHTML", cl(3, 10, e.name, n.searchQuery()), _e); 951 } 952} 953function Lw(t, o) { 954 if (t & 1 && (l(0, "p", 8), C(1), d()), t & 2) { 955 let e = c(2); 956 a(), x(e.searchNoResultsMessage); 957 } 958} 959function Gw(t, o) { 960 if (t & 1 && (l(0, "div", 5)(1, "ul", 6), D(2, Nw, 4, 13, "li", 7, Td), d(), f(4, Lw, 2, 1, "p", 8), d()), t & 2) { 961 let e = c(); 962 a(), p("ngClass", ne(3, Id, e.searchNoResults())), T("aria-label", e.searchPlaceholder), a(), R(e.searchResults()), a(2), h(e.searchNoResults() ? 4 : -1); 963 } 964} 965function Ew(t, o) { 966 if (t & 1) { 967 let e = _(); 968 l(0, "span", 6)(1, "img", 7), S("error", function() { 969 return y(e), w(c(2).onIconError()); 970 }), d()(); 971 } 972 if (t & 2) { 973 let e = c(2); 974 a(), p("src", e.hotIconPath(), Y); 975 } 976} 977function Aw(t, o) { 978 if (t & 1 && (l(0, "div", 5), f(1, Ew, 2, 1, "span", 6), l(2, "span"), C(3), d()()), t & 2) { 979 let e = c(); 980 k("background", e.ribbonBgColor())("color", e.ribbonTextColor()), L("embed-jp-styles", e.newRibbonStyling()), a(), h(e.showHotIcon() ? 1 : -1), a(2), x(e.jackpotAmount()); 981 } 982} 983function Rw(t, o) { 984 let e = [...t ?? [], ...o ?? []], n = /* @__PURE__ */ new Set(), i = []; 985 for (let r of e) n.has(r.gameId) || (n.add(r.gameId), i.push(r)); 986 return i; 987} 988function Pd(t, o = 6) { 989 let e = Math.max(0, o); 990 return (t ?? []).slice(0, e); 991} 992function Sd(t) { 993 let o = t?.name; 994 return typeof o == "string" && o.trim().length > 0 ? o : t?.gameId ?? ""; 995} 996function Dw(t, o) { 997 return t ? o.every((e) => { 998 let n = t[e]; 999 return typeof n == "string" && n.trim().length > 0; 1000 }) : !1; 1001} 1002function zw(t, o) { 1003 return { 1004 [M.ComponentGameName]: t.gameId, 1005 [M.ComponentGameDisplayName]: Sd(t), 1006 [M.ComponentGameType]: t.provider ?? "", 1007 [M.ComponentGameContainerName]: o 1008 }; 1009} 1010function Bw(t, o) { 1011 if (t & 1 && (l(0, "div", 6), b(1, "iframe", 7), wt(2, "trustAsResourceUrl"), d()), t & 2) { 1012 let e = c(2); 1013 a(), p("ngClass", ne(4, zd, e.iconsNewPosition))("src", Cn(2, 2, e.iframeUrl), Eo); 1014 } 1015} 1016function Fw(t, o) { 1017 if (t & 1 && (l(0, "div", 2)(1, "div", 4)(2, "div", 5), f(3, Bw, 3, 6, "div", 6), d()()()), t & 2) { 1018 let e = c(); 1019 a(3), h(e.iframeUrl ? 3 : -1); 1020 } 1021} 1022function Vw(t, o) { 1023 if (t & 1 && (l(0, "div", 16), C(1), wt(2, "date"), d()), t & 2) { 1024 let e = c(3); 1025 a(), E(" ", cl(2, 1, e.date, "shortTime"), " "); 1026 } 1027} 1028function jw(t, o) { 1029 if (t & 1) { 1030 let e = _(); 1031 l(0, "li")(1, "a", 19), S("click", function() { 1032 return y(e), w(c(3).openRequestedPopup()); 1033 }), b(2, "span", 20), d()(); 1034 } 1035 if (t & 2) { 1036 let e = c(3); 1037 a(2), p("title", e.titlePopout); 1038 } 1039} 1040function $w(t, o) { 1041 if (t & 1) { 1042 let e = _(); 1043 l(0, "li")(1, "a", 17), S("click", function() { 1044 return y(e), w(c(3).close(!0)); 1045 }), b(2, "span", 21), d()(); 1046 } 1047} 1048function Ww(t, o) { 1049 if (t & 1) { 1050 let e = _(); 1051 l(0, "div", 9), f(1, Vw, 3, 4, "div", 16), l(2, "ul"), f(3, jw, 3, 1, "li"), l(4, "li")(5, "a", 17), S("click", function() { 1052 return y(e), w(c(2).toggleFullScreen()); 1053 }), b(6, "span", 18), d()(), f(7, $w, 3, 0, "li"), d()(); 1054 } 1055 if (t & 2) { 1056 let e = c(2); 1057 a(), h(e.isFullScreen ? 1 : -1), a(2), h(e.isFullScreen ? -1 : 3), a(3), p("ngClass", e.isFullScreen ? "theme-fullscreen-exit" : "theme-fullscreen")("title", e.isFullScreen ? e.titleExitFullScreen : e.titleFullScreen), a(), h(e.isFullScreen ? -1 : 7); 1058 } 1059} 1060function Uw(t, o) { 1061 if (t & 1) { 1062 let e = _(); 1063 l(0, "cw-desktop-search", 22), S("gameSelected", function(n) { 1064 return y(e), w(c(2).onSearchGameSelected(n)); 1065 }), d(); 1066 } 1067} 1068function Hw(t, o) { 1069 if (t & 1 && (l(0, "div", 12), C(1), d()), t & 2) { 1070 let e = c(2); 1071 a(), x(e.gameTitle()); 1072 } 1073} 1074function qw(t, o) { 1075 if (t & 1) { 1076 let e = _(); 1077 l(0, "div", 13)(1, "button", 23), S("click", function(n) { 1078 return y(e), w(c(2).addFavourite(n)); 1079 }), b(2, "vn-icon", 24), C(3), d()(); 1080 } 1081 if (t & 2) { 1082 let e = c(2); 1083 a(), T("aria-label", e.favouriteAriaLabel()), a(), p("name", e.favouriteIconName()), a(), E(" ", e.favouriteButtonText(), " "); 1084 } 1085} 1086function Jw(t, o) { 1087 if (t & 1) { 1088 let e = _(); 1089 l(0, "div", 28), S("click", function() { 1090 let n = y(e), i = n.$implicit, r = n.$index; 1091 return w(c(3).gameClickedInEgv(i, r, "egv_recentgames")); 1092 })("keydown.enter", function() { 1093 let n = y(e), i = n.$implicit, r = n.$index; 1094 return w(c(3).gameClickedInEgv(i, r, "egv_recentgames")); 1095 })("keydown.space", function(n) { 1096 let i = y(e), r = i.$implicit, u = i.$index; 1097 return c(3).gameClickedInEgv(r, u, "egv_recentgames"), w(n.preventDefault()); 1098 })("mousedown", function(n) { 1099 return y(e), w(c(3).onTilePressStart(n)); 1100 })("mouseup", function(n) { 1101 return y(e), w(c(3).onTilePressEnd(n)); 1102 })("mouseleave", function(n) { 1103 return y(e), w(c(3).onTilePressEnd(n)); 1104 }), b(1, "cw-game-embedded", 29), d(); 1105 } 1106 if (t & 2) { 1107 let e = o.$implicit, n = c(3); 1108 p("id", Pt("gameIdentifier_EmbedRecentlyPlayed_", e.gameId)), T("aria-label", n.tileAcce
1108ssibleName(e)), a(), p("game", e)("tileImageSize", n.tileImageSize)("newRibbonStyling", n.newRibbonStyling); 1109 } 1110} 1111function Yw(t, o) { 1112 if (t & 1 && (l(0, "div", 14)(1, "div", 25), C(2), d(), l(3, "div", 26), D(4, Jw, 2, 6, "div", 27, Sr), d()()), t & 2) { 1113 let e = c(2); 1114 a(2), x(e.Global.messages.RecentlyPlayedGames), a(2), R(e.recentlyPlayedView()); 1115 } 1116} 1117function Kw(t, o) { 1118 if (t & 1) { 1119 let e = _(); 1120 l(0, "div", 28), S("click", function() { 1121 let n = y(e), i = n.$implicit, r = n.$index; 1122 return w(c(3).gameClickedInEgv(i, r, "egv_GYML")); 1123 })("keydown.enter", function() { 1124 let n = y(e), i = n.$implicit, r = n.$index; 1125 return w(c(3).gameClickedInEgv(i, r, "egv_GYML")); 1126 })("keydown.space", function(n) { 1127 let i = y(e), r = i.$implicit, u = i.$index; 1128 return c(3).gameClickedInEgv(r, u, "egv_GYML"), w(n.preventDefault()); 1129 })("mousedown", function(n) { 1130 return y(e), w(c(3).onTilePressStart(n)); 1131 })("mouseup", function(n) { 1132 return y(e), w(c(3).onTilePressEnd(n)); 1133 })("mouseleave", function(n) { 1134 return y(e), w(c(3).onTilePressEnd(n)); 1135 }), b(1, "cw-game-embedded", 29), d(); 1136 } 1137 if (t & 2) { 1138 let e = o.$implicit, n = c(3); 1139 p("id", Pt("gameIdentifier_EmbedGamesyouMightLike_", e.gameId)), T("aria-label", n.tileAccessibleName(e)), a(), p("game", e)("tileImageSize", n.tileImageSize)("newRibbonStyling", n.newRibbonStyling); 1140 } 1141} 1142function Qw(t, o) { 1143 if (t & 1 && (l(0, "div", 15)(1, "div", 25), C(2), d(), l(3, "div", 26), D(4, Kw, 2, 6, "div", 27, Sr), d()()), t & 2) { 1144 let e = c(2); 1145 a(2), x(e.gamesYouMightLikeMessage), a(2), R(e.recommendationView()); 1146 } 1147} 1148function Xw(t, o) { 1149 if (t & 1 && (l(0, "div", 3)(1, "div", 8), f(2, Ww, 8, 5, "div", 9), f(3, Uw, 1, 0, "cw-desktop-search"), l(4, "div", 10)(5, "div", 11), f(6, Hw, 2, 1, "div", 12), d(), f(7, qw, 4, 3, "div", 13), f(8, Yw, 6, 1, "div", 14), f(9, Qw, 6, 1, "div", 15), d()()()), t & 2) { 1150 let e = c(); 1151 p("ngClass", ne(7, Bd, e.egvOverlayFlag)), a(2), h(e.iconsNewPosition ? 2 : -1), a(), h(e.showGlobalSearch() ? 3 : -1), a(3), h(e.Game ? 6 : -1), a(), h(e.useFavouriteGames ? 7 : -1), a(), h(e.recentlyPlayedView().length > 0 ? 8 : -1), a(), h(e.recommendationView().length > 0 ? 9 : -1); 1152 } 1153} 1154function Zw(t, o) { 1155 if (t & 1) { 1156 let e = _(); 1157 l(0, "div", 3)(1, "cw-embedded-game-view", 4), S("sendDataToEmbeddedGamePopUp", function(n) { 1158 return y(e), w(c().eventFromEmbeddedGameView(n)); 1159 })("sendDialogCloseEventToEmbeddedGamePopUp", function(n) { 1160 return y(e), w(c().dialogCloseEventFromEmbeddedGameView(n)); 1161 }), d()(); 1162 } 1163 if (t & 2) { 1164 let e = c(); 1165 a(), p("embeddedData", e.gameData); 1166 } 1167} 1168function eP(t, o) { 1169 if (t & 1 && (l(0, "span", 9), b(1, "vn-icon", 10), d(), l(2, "span", 11), C(3), wt(4, "formatTime"), d()), t & 2) { 1170 let e = c(); 1171 a(3), E(" ", Cn(4, 1, e.timeElapsed()), " "); 1172 } 1173} 1174function tP(t, o) { 1175 if (t & 1 && (l(0, "span", 9), b(1, "vn-icon", 12), d(), l(2, "span", 11), C(3), d()), t & 2) { 1176 let e = c(); 1177 a(3), E(" ", e.amount()?.accountBalance || 0, " "); 1178 } 1179} 1180var Md, Od, xd, rt, ft, _a, bi, Ci, ka, Ia, Ta, ae, _d, br, kd, Id, Td, Nd, Ld, Cr, on, Na, Gd, Ed, Ad, Rd, yr, wr, Dd, Pr, zd, Bd, Sr, Mr, Fd, Vd, Or, jd, $d, Wd, Ud, Hd, qd, xr; 1181function _r() { 1182 return (_r = pi((() => { 1183 qi(), ti(), ul(), Bo(), Xi(), Zi(), Fo(), jo(), vl(), ta(), wl(), Uo(), xl(), Pl(), Ll(), Tl(), Nl(), Al(), Bl(), Vl(), id(), Xl(), ba(), aa(), od(), ar(), cr(), Md = (() => { 1184 class t { 1185 configProviderService = s(V); 1186 activatedRoute = s(Dt); 1187 isGameTileBrandingEnabled() { 1188 let e = this.configProviderService.provideFeaturesConfig().experimental, n = e?.gameTileBranding?.queryParamName, i = n ? this.activatedRoute.snapshot.queryParamMap.get(n) ?? "false" : "false"; 1189 return e?.gameTileBranding?.enabled && i === "true"; 1190 } 1191 getIconTemplatePathForProvider(e) { 1192 if (!e) return ""; 1193 let n = this.configProviderService.provideFeaturesConfig().experimental, i = n?.gameTileBranding?.templatePathSelector?.providers; 1194 return !i || i.length === 0 ? "" : i.find((r) => r.trim().toLowerCase() === e.trim().toLowerCase()) ? n?.gameTileBranding?.iconPathTemplate ?? "" : ""; 1195 } 1196 getIconTemplatePathForGame(e) { 1197 if (!e) return ""; 1198 let n = this.configProviderService.provideFeaturesConfig().experimental, i = n?.gameTileBranding?.templatePathSelector?.games; 1199 return !i || i.length === 0 ? "" : i.find((r) => r.trim().toLowerCase() === e.trim().toLowerCase()) ? n?.gameTileBranding?.iconPathTemplate ?? "" : ""; 1200 } 1201 splitNameInSpansFor(e) { 1202 if (!e) return !1; 1203 let n = this.configProviderService.provideFeaturesConfig().experimental; 1204 if (!n?.gameTileBranding?.nameSplitting?.enabled) return !1; 1205 let i = this.activatedRoute.snapshot.queryParamMap.getAll("splitSpansFor"), r = [...n?.gameTileBranding?.nameSplitting?.spansFor?.games ?? [], ...i]; 1206 return r.length === 0 ? !1 : !!r.find((u) => u.trim().toLowerCase() === e.trim().toLowerCase()); 1207 } 1208 static ɵfac = function(e) { 1209 return new (e || t)(); 1210 }; 1211 static ɵprov = A({ 1212 token: t, 1213 factory: t.ɵfac, 1214 providedIn: "root" 1215 }); 1216 } 1217 return t; 1218 })(), Od = sr.Jpg, xd = ue.Square, rt = (() => { 1219 class t { 1220 configProviderService = s(V);
1221 gameTileBrandingEnablerService = s(Md); 1222 layoutService = s(nn); 1223 getIconConfig(e) { 1224 let n = this.configProviderService.provideGameConfig(), i = this.getGameIconFormat(e), r = this.getImagePath(e) + this.resolveIconSuffix(); 1225 return { 1226 src: this.resolveAssetHost() + (this.gameTileBrandingEnablerService.isGameTileBrandingEnabled() && (this.gameTileBrandingEnablerService.getIconTemplatePathForGame(e.gameId) || this.gameTileBrandingEnablerService.getIconTemplatePathForProvider(e.provider ?? "")) || n.gameIconTemplate).replace("{0}", r).replace("{1}", e.gameId) + "." + i, 1227 gameTileBorderRadius: "var(--semantic-radius-semi-rounded-sm)" 1228 }; 1229 } 1230 getGrayImageUrl() { 1231 return this.configProviderService.provideGlobalConfig()?.staticImages?.gray; 1232 } 1233 getFallBackImageUrl(e) { 1234 return e || this.getGrayImageUrl(); 1235 } 1236 getGameIconType(e) { 1237 return e.iconType || xd; 1238 } 1239 getGameIconFormat(e) { 1240 return e.iconFormat || Od; 1241 } 1242 getImagePath(e) { 1243 return uw[this.getGameIconType(e)]; 1244 } 1245 getIconSuffix() { 1246 return this.resolveIconSuffix(); 1247 } 1248 getIconConfigForType(e, n) { 1249 let i = F(G({}, e), { iconType: n }); 1250 return this.getIconConfig(i); 1251 } 1252 resolveIconSuffix() { 1253 return this.layoutService.currentLayout()?.gameIconImageSuffix ?? ""; 1254 } 1255 getVideoUrl(e, n) { 1256 let i = this.getIconConfig(e).src, r = i.lastIndexOf("."); 1257 return r === -1 ? (console.warn(`GameImageService.getVideoUrl: No file extension found in icon URL for game ${e.gameId}. Returning empty string.`), "") : i.slice(0, r) + n; 1258 } 1259 resolveAssetHost() { 1260 let e = this.configProviderService.provideGameConfig(); 1261 return e.casinoAssetHost || e.host; 1262 } 1263 static ɵfac = function(e) { 1264 return new (e || t)(); 1265 }; 1266 static ɵprov = A({ 1267 token: t, 1268 factory: t.ɵfac, 1269 providedIn: "root" 1270 }); 1271 } 1272 return t; 1273 })(), ft = (() => { 1274 class t { 1275 gameImageService = s(rt); 1276 getGameGridConfig(e) { 1277 return gi(e); 1278 } 1279 buildGameList(e, n) { 1280 return e.map((i) => this.buildGame(i, n)); 1281 } 1282 buildGame(e, n) { 1283 let i = n ? F(G({}, e), { iconType: n }) : e, r = this.getGameGridConfig(i.iconType); 1284 return F(G({}, i), { 1285 iconType: this.gameImageService.getGameIconType(i), 1286 iconFormat: this.gameImageService.getGameIconFormat(i), 1287 icon: this.gameImageService.getIconConfig(i), 1288 colSpan: i.colSpan ?? r.colSpan, 1289 rowSpan: i.rowSpan ?? r.rowSpan 1290 }); 1291 } 1292 buildFromIds(e) { 1293 return this.buildGameList(e.map((n) => ({ gameId: n }))); 1294 } 1295 static ɵfac = function(e) { 1296 return new (e || t)(); 1297 }; 1298 static ɵprov = A({ 1299 token: t, 1300 factory: t.ɵfac, 1301 providedIn: "root" 1302 }); 1303 } 1304 return t; 1305 })(), _a = (() => { 1306 class t { 1307 apiService = s(Ae); 1308 gymlGames = O([]); 1309 gymlSubject = new nt(null); 1310 gyml$ = this.gymlSubject.asObservable(); 1311 gymlFeed() { 1312 return this.apiService.get("v1/feeds/gyml"); 1313 } 1314 feedGymlData() { 1315 if (this.gymlGames().length > 0) { 1316 this.gymlSubject.next(this.gymlGames()); 1317 return; 1318 } 1319 this.gymlFeed().subscribe((e) => { 1320 this.gymlGames.set(e.games), this.gymlSubject.next(this.gymlGames()); 1321 }); 1322 } 1323 gymlGamesData() { 1324 return this.gymlGames(); 1325 } 1326 static ɵfac = function(e) { 1327 return new (e || t)(); 1328 }; 1329 static ɵprov = A({ 1330 token: t, 1331 factory: t.ɵfac, 1332 providedIn: "root" 1333 }); 1334 } 1335 return t; 1336 })(), bi = (() => { 1337 class t { 1338 src = m.required(); 1339 isError = m(); 1340 alt = m.required(); 1341 priority = m(!1); 1342 imageStyle = m(""); 1343 containerStyle = m(""); 1344 classes = m(""); 1345 placeholder = m(!0); 1346 sizes = m("20vw"); 1347 width = m(); 1348 height = m(); 1349 fill = g(() => !this.width() || !this.height()); 1350 aspectRatio = g(() => { 1351 let e = this.width(), n = this.height(); 1352 return !this.fill() && e && n ? `${e} / ${n}` : null; 1353 }); 1354 loading = g(() => this.priority() ? void 0 : "auto"); 1355 loaded = j(); 1356 loadedFailed = j(); 1357 isLoaded = O(!1); 1358 styles = g(() => this.isLoaded() ? (this.fill() ? "position: revert-layer; width: revert-layer; height: revert-layer;" : `width: ${this.width()}px; height: ${this.height()}px;`) + this.imageStyle() : this.imageStyle()); 1359 onImageLoad(e) { 1360 this.isLoaded.set(!0), e && this.loaded.emit(e); 1361 } 1362 onImageLoadError(e) { 1363 this.loadedFailed.emit(e), this.isLoaded.set(!0); 1364 } 1365 static ɵfac = function(e) { 1366 return new (e || t)(); 1367 }; 1368 static ɵcmp = I({ 1369 type: t, 1370 selectors: [["cw-image"]], 1371 inputs: { 1372 src: [1, "src"], 1373 isError: [1, "isError"], 1374 alt: [1, "alt"], 1375 priority: [1, "priority"], 1376 imageStyle: [1, "imageStyle"], 1377 containerStyle: [1, "containerStyle"], 1378 classes: [1, "classes"], 1379 placeholder: [1, "placeholder"], 1380 sizes: [1, "sizes"], 1381 width: [1, "width"], 1382 height: [1, "height"] 1383 }, 1384 outputs: { 1385 loaded: "loaded", 1386 loadedFailed: "loadedFailed" 1387 }, 1388 decls: 3, 1389 vars: 5, 1390 consts: [ 1391 [1, "image-load-div"], 1392 [ 1393 1, 1394 "ngoptimizedimage", 1395 3, 1396 "alt", 1397 "src", 1398 "style", 1399 "aspect-ratio" 1400 ], 1401 [ 1402 3, 1403 "fill", 1404 "width", 1405 "height", 1406 "alt", 1407 "class", 1408 "ngSrc", 1409 "sizes", 1410 "placeholder", 1411 "style", 1412 "aspect-ratio", 1413 "priority", 1414 "loading" 1415 ], 1416 [ 1417 1, 1418 "ngoptimizedimage", 1419 3, 1420 "load", 1421 "alt", 1422 "src" 1423 ], 1424 [ 1425 3, 1426 "load", 1427 "error", 1428 "fill", 1429 "width", 1430 "height", 1431 "alt", 1432 "ngSrc", 1433 "sizes", 1434 "placeholder", 1435 "priority", 1436 "loading" 1437 ] 1438 ], 1439 template: function(e, n) { 1440 e & 1 && (l(0, "div", 0), f(1, kw, 1, 6, "img", 1)(2, Iw, 1, 15, "img", 2), d()), e & 2 && (yt(n.containerStyle()),
1440k("position", "relative"), a(), h(n.isError() ? 1 : 2)); 1441 }, 1442 dependencies: [Zt], 1443 encapsulation: 2 1444 }); 1445 } 1446 return t; 1447 })(), Ci = (function(t) { 1448 return t.HIDDEN = "hidden", t.AUTO = "auto", t.SCROLL = "scroll", t.VISIBLE = "visible", t; 1449 })(Ci || {}), ka = (function(t) { 1450 return t.DSScrollbar = "ds-scrollbar", t.DSScrollbarInverse = "ds-scrollbar-inverse", t; 1451 })(ka || {}), Ia = (function(t) { 1452 return t.GAMING_STORY_CTA = "gamingStoryCTa", t.GAMING_STORY_OPTIN = "gamingStoryOptin", t.LANDING_PAGE_HEADER = "landingPageHeader", t.EGV = "egv", t.SLOTS = "slots", t.SEARCHCANCEL = "searchcancel", t.NAVBAR = "navbar", t.TOGGLE_WIDGET = "toggleWidget", t.CUSTOMCAROUSEL = "customCarousel", t.VIDEOTILE = "videotile", t.GAMES_WIZARD = "gamesWizard", t; 1453 })(Ia || {}), Ta = (function(t) { 1454 return t.Primary = "primary", t.Secondary = "secondary", t.Tertiary = "tertiary", t.Success = "success", t.Utility = "utility", t; 1455 })(Ta || {}), ae = (function(t) { 1456 return t.BetbooBr = "betboo-br", t.Borgata2 = "borgata-2", t.Bwin = "bwin", t.BwinDark = "bwin-dark", t.CheekyBingo2 = "cheeky-bingo-2", t.Coral = "coral", t.DanskeSpil = "danske-spil", t.Enspire = "enspire", t.FoxyBingo5 = "foxy-bingo-5", t.FoxyGames3 = "foxy-games-3", t.GalaBingo3 = "gala-bingo-3", t.GalaCasino2 = "gala-casino-2", t.Gamebookers = "gamebookers", t.Gamebookers2 = "gamebookers-2", t.Giocodigitale = "giocodigitale", t.Ladbrokes = "ladbrokes", t.MgmDice = "mgm-dice", t.PartyCasino = "party-casino", t.PartyCasino2 = "party-casino-2", t.PartyPoker = "party-poker", t.Premium = "premium", t.PremiumDark = "premium-dark", t.Sportingbet = "sportingbet", t.Sportingbet2 = "sportingbet-2", t.SportingbetBr = "sportingbet-br", t.SportsInteraction = "sports-interaction", t.Vistabet = "vistabet", t.WheelOfFortune = "wheel-of-fortune", t; 1457 })(ae || {}), _d = { 1458 [ae.Bwin]: { scrollbar: { egv: { isInverse: !0 } } }, 1459 [ae.Coral]: { scrollbar: { egv: { isInverse: !0 } } }, 1460 [ae.GalaCasino2]: { scrollbar: { egv: { isInverse: !0 } } }, 1461 [ae.PartyPoker]: { scrollbar: { egv: { isInverse: !0 } } }, 1462 [ae.MgmDice]: { scrollbar: { egv: { isInverse: !0 } } }, 1463 [ae.Ladbrokes]: { scrollbar: { egv: { isInverse: !0 } } }, 1464 [ae.FoxyGames3]: { scrollbar: { egv: { isInverse: !0 } } }, 1465 [ae.GalaBingo3]: { scrollbar: { egv: { isInverse: !0 } } }, 1466 [ae.WheelOfFortune]: { scrollbar: { egv: { isInverse: !0 } } }, 1467 [ae.PartyCasino]: { scrollbar: { egv: { isInverse: !0 } } }, 1468 [ae.PartyCasino2]: { scrollbar: { egv: { isInverse: !0 } } }, 1469 [ae.Vistabet]: { scrollbar: { egv: { isInverse: !0 } } }, 1470 [ae.Premium]: { scrollbar: { egv: { isInverse: !0 } } }, 1471 [ae.FoxyBingo5]: { scrollbar: { egv: { isInverse: !0 } } }, 1472 [ae.Giocodigitale]: { scrollbar: { egv: { isInverse: !0 } } }, 1473 [ae.Gamebookers]: { scrollbar: { egv: { isInverse: !0 } } } 1474 }, br = (() => { 1475 class t { 1476 el = s(tt); 1477 renderer = s(lt); 1478 horizontalOverflowType = Ci.HIDDEN; 1479 verticalOverflowType = Ci.AUTO; 1480 featureName = Ia.EGV; 1481 currentTheme = ae.Bwin; 1482 ngOnInit() { 1483 this.renderer.addClass(this.el.nativeElement, ka.DSScrollbar), _d[this.currentTheme]?.scrollbar?.[this.featureName]?.isInverse && this.renderer.addClass(this.el.nativeElement, ka.DSScrollbarInverse), this.renderer.setStyle(this.el.nativeElement, "overflow-x", this.horizontalOverflowType), this.renderer.setStyle(this.el.nativeElement, "overflow-y", this.verticalOverflowType); 1484 } 1485 static ɵfac = function(e) { 1486 return new (e || t)(); 1487 }; 1488 static ɵdir = Dn({ 1489 type: t, 1490 selectors: [[ 1491 "", 1492 "csScrollbar", 1493 "" 1494 ]], 1495 inputs: { 1496 horizontalOverflowType: "horizontalOverflowType", 1497 verticalOverflowType: "verticalOverflowType", 1498 featureName: "featureName", 1499 currentTheme: "currentTheme" 1500 } 1501 }); 1502 } 1503 return t; 1504 })(), kd = (() => { 1505 class t { 1506 transform(e, n) { 1507 let i = e ?? "", r = (n ?? "").trim(); 1508 if (!r) return this.escapeHtml(i); 1509 let u = i.toLowerCase(), v = r.toLowerCase(), P = "", N = 0, $ = u.indexOf(v, N); 1510 if ($ === -1) return this.escapeHtml(i); 1511 for (; $ !== -1;) { 1512 P += this.escapeHtml(i.slice(N, $)); 1513 let me = $ + r.length; 1514 P += `<pre>${this.escapeHtml(i.slice($, me))}</pre>`, N = me, $ = u.indexOf(v, N); 1515 } 1516 return P += this.escapeHtml(i.slice(N)), P; 1517 } 1518 escapeHtml(e) { 1519 return e.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'"); 1520 } 1521 static ɵfac = function(e) { 1522 return new (e || t)(); 1523 }; 1524 static ɵpipe = xo({ 1525 name: "highlightSearch", 1526 type: t, 1527 pure: !0 1528 }); 1529 } 1530 return t; 1531 })(), Id = (t) => ({ emptyResult: t }), Td = (t, o) => o.gameId, Nd = (() => { 1532 class t { 1533 configProviderService = s(V); 1534 gameCatalogService = s(Oe); 1535 gameBuilderService = s(ft); 1536 vanillaTrackingAdapter = s(we); 1537 timerService = s(de); 1538 destroyRef = s(q); 1539 gameSelected = j(); 1540 global; 1541 searchPlaceholder = ""; 1542 searchNoResultsMessage = ""; 1543 searchTileImageSize = 50; 1544 searchQuery = O(""); 1545 searchResults = O([]); 1546 searchNoResults = O(!1); 1547 searchDebounceId; 1548 static SEARCH_DEBOUNCE_MS = 500; 1549 wasInside = !1; 1550 constructor() { 1551 this.destroyRef.onDestroy(() => { 1552 this.searchDebounceId !== void 0 && this.timerService.clearTimeout(this.searchDebounceId); 1553 }); 1554 } 1555 ngOnInit() { 1556 this.global = this.configProviderService.provideGlobalConfig(), this.searchPlaceholder = this.global.messages.SearchPlaceholder || this.global.messages.Search || "Search", this.searchNoResultsMessage = this.global.messages.SearchNoResults || "No results found"; 1557 } 1558 onSearchCleared() { 1559 this.closeResults(); 1560 } 1561 closeResults() { 1562 this.searchDebounceId !== void 0 && this.timerService.clearTimeout(this.searchDebounceId), this.searchQuery.set(""), this.searchResults.set([]), this.searchNoResults.set(!1); 1563 } 1564 onClickInside() { 1565 this.wasInside = !0; 1566 } 1567 onDocumentClick() { 1568 this.wasInside || this.closeResults(), this.wasInside = !1; 1569 } 1570 onWindowBlur() { 1571 this.searchQuery() && this.closeResults(); 1572 } 1573 onSearchQueryChanged(e) { 1574 this.searchQuery.set(e), this.searchDebounceId !== void 0 && this.timerService.clearTimeout(this.searchDebounceId), this.searchDebounceId = this.timerService.setTimeout(() => { 1575 this.runSearch(e); 1576 }, t.SEARCH_DEBOUNCE_MS); 1577 } 1578 runSearch(e) { 1579 if ((e ?? "").trim().length < 1) { 1580 this.searchResults.set([]), this.searchNoResults.set(!1); 1581 return; 1582 } 1583 this.vanillaTrackingAdapter.trigger({ 1584 name: se.GameSearch, 1585 data: { 1586 [M.ComponentGameInteraction]: "egv_search", 1587 [M.ComponentGameContainerName]: "egv", 1588 [M.PageSearch]: e 1589 } 1590 }), this.gameCatalogService.getGames().pipe(et(1), z(this.destroyRef)).subscribe((n) => { 1591 let i = Tw(n, e), r = this.gameBuilderService.buildGameList(i.map((u) => ({ 1592 gameId: u.gameId, 1593 name: u.name, 1594 provider: u.provider ?? void 0 1595 }))); 1596 this.searchResults.set(r), this.searchNoResults.set(r.length === 0); 1597 }); 1598 } 1599 onResultClicked(e, n) { 1600 this.gameSelected.emit({ 1601 game: e, 1602 index: n 1603 }), this.searchResults.set([]), this.searchQuery.set(""), this.searchNoResults.set(!1); 1604 } 1605 static ɵfac = function(e) { 1606 return new (e || t)(); 1607 }; 1608 static ɵcmp = I({ 1609 type: t, 1610 selectors: [["cw-desktop-search"]], 1611 hostBindings: function(e, n) { 1612 e & 1 && S("click", function() { 1613 return n.onClickInside(); 1614 })("click", function() { 1615 return n.onDocumentClick(); 1616 }, Kt)("blur", function() { 1617 return n.onWindowBlur(); 1618 }, ii); 1619 }, 1620 outputs: { gameSelected: "gameSelected" }, 1621 decls: 6, 1622 vars: 9, 1623 consts: [ 1624 [1, "search-field"], 1625 [1, "desktop-search"], 1626 [1, "casino-search-input-div"], 1627 [ 1628 "size", 1629 "small", 1630 3, 1631 "searchCleared", 1632 "inverse" 1633 ], 1634 [ 1635 "dsSearchInput", 1636 "", 1637 "id", 1638 "search-text", 1639 "type", 1640 "text", 1641 "autocomplete", 1642 "off", 1643 1, 1644 "casino-search-input", 1645 3, 1646 "ngModelChange", 1647 "placeholder", 1648 "ngModel" 1649 ], 1650 [1, "casino-desktop-search-results"], 1651 [ 1652 "id", 1653 "egv-search-results", 1654 "role", 1655 "listbox", 1656 1, 1657 "search-results-list", 1658 "search-non-touch", 1659 3, 1660 "ngClass" 1661 ], 1662 [ 1663 "role", 1664 "option", 1665 "tabindex", 1666 "0", 1667 3, 1668 "id" 1669 ], 1670 [ 1671 "role", 1672 "status", 1673 1, 1674 "no-result" 1675 ], 1676 [ 1677 "role", 1678 "option", 1679 "tabindex", 1680 "0", 1681 3, 1682 "click", 1683 "keydown.enter", 1684 "keydown.space", 1685 "id" 1686 ], 1687 [ 1688 3, 1689 "src", 1690 "alt", 1691 "width", 1692 "height", 1693 "imageStyle" 1694 ], 1695 [ 1696 1, 1697 "search-result-title", 1698 3, 1699 "innerHTML" 1700 ] 1701 ], 1702 template: function(e, n) { 1703 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "ds-search-bar", 3), S("searchCleared", function() { 1704 return n.onSearchCleared(); 1705 }), l(4, "input", 4), S("ngModelChange", function(i) { 1706 return n.onSearchQueryChanged(i); 1707 }), d(), Tb(), d()(), f(5, Gw, 5, 5, "div", 5), d()()), e & 2 && (a(3), p("inverse", !0), a(), p("placeholder", n.searchPlaceholder)("ngModel", n.searchQuery()), T("role", "combobox")("aria-autocomplete", "list")("aria-controls", "egv-search-results")("aria-expanded", n.searchResults().length > 0)("aria-label", n.searchPlaceholder), Lb(), a(), h(n.searchQuery() ? 5 : -1)); 1708 }, 1709 dependencies: [ 1710 At, 1711 ry, 1712 iy, 1713 ay, 1714 oy, 1715 bi, 1716 o1, 1717 r1, 1718 kd 1719 ], 1720 styles: [".search-field[_ngcontent-%COMP%] .desktop-search[_ngcontent-%COMP%] .casino-search-input-div[_ngcontent-%COMP%]{width:100%}.search-field[_ngcontent-%COMP%] .desktop-search[_ngcontent-%COMP%] .casino-desktop-search-results[_ngcontent-%COMP%]{margin-top:var(--%NS%semantic-spacing-stack-sm)}.search-field[_ngcontent-%COMP%] .desktop-search[_ngcontent-%COMP%] .casino-desktop-search-results[_ngcontent-%COMP%] ul.search-results-list.emptyResult[_ngcontent-%COMP%]{background:transparent}.search-field[_ngcontent-%COMP%] .desktop-search[_ngcontent-%COMP%] .casino-desktop-search-results[_ngcontent-%COMP%] ul.search-results-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{cursor:pointer}.search-field[_ngcontent-%COMP%] .desktop-search[_ngcontent-%COMP%] .casino-desktop-search-results[_ngcontent-%COMP%] ul.search-results-list[_ngcontent-%COMP%] li[_ngcontent-%COMP%] cw-image[_ngcontent-%COMP%]{flex:0 0 auto;line-height:0}"] 1721 }); 1722 } 1723 return t; 1724 })(), Ld = "cs-jackpot-map-broadcast", Cr = "cs-jackpot-value-query", on = (() => { 1725 class t { 1726 casinoApiService = s(Ae); 1727 configProviderService = s(V); 1728 apiPathsHelperService = s(ow); 1729 logger = s(Ot);
1730 webWorkerService = s(Ol); 1731 urlUtilityService = s(tr); 1732 platform = s(X); 1733 #e = s(pe); 1734 destroyRef = s(q); 1735 jackpotSubject = new nt(null); 1736 jackpotsCache; 1737 gameJackpotMap = /* @__PURE__ */ new Map(); 1738 jackpotFeedObservable = this.jackpotSubject.asObservable(); 1739 listenersCnt = 0; 1740 constructor() { 1741 this.platform.isBrowser && (this.#e.addEventListener(Cr, this.queryJackpotValueHandler), this.destroyRef.onDestroy(() => this.#e.removeEventListener(Cr, this.queryJackpotValueHandler))); 1742 } 1743 fetchJackpot() { 1744 let e = this.configProviderService.provideApiPathsConfig(), n = this.apiPathsHelperService.transformApi(e.jackpots.jpDataOfProduct, "casino"); 1745 this.casinoApiService.get(n, null).subscribe((i) => { 1746 this.jackpotsCache = i, this.setJackpots(i); 1747 }, () => { 1748 this.logger.error("Unable to retrieve data from jpDataOfProduct API"); 1749 }); 1750 } 1751 startFeed() { 1752 let e = this.configProviderService.provideJackpotConfig(); 1753 this.configProviderService.provideFeedCacheConfig().enableJackpotFeed && (this.listenersCnt++, this.fetchJackpot(), this.platform.isBrowser && this.webWorkerService.createWorker($o.SelfExclusionPollInterval, { interval: e.jpInterval }, () => { 1754 this.urlUtilityService.getAppCurrentProduct() && this.fetchJackpot(); 1755 })); 1756 } 1757 setJackpots(e) { 1758 e && (Object.entries(e).forEach(([n, i]) => { 1759 i.gamesList?.forEach((r) => { 1760 this.gameJackpotMap.set(r, { 1761 amount: i.amount, 1762 isHotJackpotGroup: i.isHotJackpotGroup, 1763 jackpotName: n, 1764 subJackpotDetails: i.subJackpotDetails 1765 }); 1766 }); 1767 }), this.platform.isBrowser && this.#e.dispatchEvent(new CustomEvent(Ld, { detail: this.gameJackpotMap })), this.jackpotSubject.next(this.gameJackpotMap)); 1768 } 1769 getJackpotData() { 1770 return this.jackpotsCache; 1771 } 1772 getGameJackpotValue(e) { 1773 return this.gameJackpotMap.get(e); 1774 } 1775 stopFeed() { 1776 this.listenersCnt--, this.listenersCnt === 0 && (this.webWorkerService.removeWorker($o.SelfExclusionPollInterval), this.jackpotsCache = void 0, this.gameJackpotMap = /* @__PURE__ */ new Map()); 1777 } 1778 formatcurrency(e) { 1779 let [n, i] = e.split("."); 1780 return `${n.replace(/\B(?=(\d{3})+(?!\d))/g, ",")}.${i}`; 1781 } 1782 queryJackpotValueHandler(e) { 1783 let n = e.detail?.gameId ?? ""; 1784 return e.detail ? F(G({}, e.detail.value), { 1785 amount: this.gameJackpotMap?.get(n)?.amount ?? "", 1786 isHotJackpotGroup: this.gameJackpotMap?.get(n)?.isHotJackpotGroup ?? !1 1787 }) : { 1788 gameId: "ivybookofhorus", 1789 value: { 1790 amount: "", 1791 isHotJackpotGroup: !1 1792 } 1793 }; 1794 } 1795 static ɵfac = function(e) { 1796 return new (e || t)(); 1797 }; 1798 static ɵprov = A({ 1799 token: t, 1800 factory: t.ɵfac, 1801 providedIn: "root" 1802 }); 1803 } 1804 return t; 1805 })(), Na = (() => { 1806 class t { 1807 apiService = s(Ae); 1808 configProvider = s(V); 1809 cacheOrchestration = s(Pa); 1810 ribbonEndpoint = "jackpot/ribbonconfig"; 1811 cacheKey = "jackpot-ribbon-config"; 1812 config$ = null; 1813 getJackpotConfig() { 1814 return this.config$ || (this.config$ = this.configProvider.casinoClientConfigObservable.pipe(Xt((e) => e ? Ki(this.cacheOrchestration.getJackpotRibbonConfig(this.cacheKey, () => this.fetchRibbonConfigNonNull())).pipe(Xt((n) => n ? dt(this.resolveIconPath(n)) : this.fetchAndCacheRibbonConfig()), Gt(() => dt(null))) : dt(null)), gl({ 1815 bufferSize: 1, 1816 refCount: !1 1817 }))), this.config$; 1818 } 1819 fetchAndCacheRibbonConfig() { 1820 return this.fetchRibbonConfig().pipe(Me((e) => (e && this.cacheOrchestration.cacheJackpotRibbonConfig(this.cacheKey, e), e))); 1821 } 1822 fetchRibbonConfigNonNull() { 1823 return this.fetchRibbonConfig().pipe(We((e) => e != null)); 1824 } 1825 fetchRibbonConfig() { 1826 return this.apiService.get(this.ribbonEndpoint, null).pipe(Me((e) => this.resolveIconPath(e)), Gt(() => dt(null))); 1827 } 1828 resolveIconPath(e) { 1829 let n = this.configProvider.provideGameConfig(), i = n.casinoAssetHost || n.host; 1830 return i && e?.hotIcon?.iconPath && !e.hotIcon.iconPath.startsWith("http") ? F(G({}, e), { hotIcon: F(G({}, e.hotIcon), { iconPath: i + e.hotIcon.iconPath }) }) : e; 1831 } 1832 static ɵfac = function(e) { 1833 return new (e || t)(); 1834 }; 1835 static ɵprov = A({ 1836 token: t, 1837 factory: t.ɵfac, 1838 providedIn: "root" 1839 }); 1840 } 1841 return t; 1842 })(), Gd = (() => { 1843 class t { 1844 jackpotDataService = s(on); 1845 jackpotConfigService = s(Na); 1846 destroyRef = s(q); 1847 game = m.required(); 1848 tileImageSize = m(100); 1849 newRibbonStyling = m(!1); 1850 jackpotConfig = Q(this.jackpotConfigService.getJackpotConfig(), { initialValue: null }); 1851 jackpotTick = O(0); 1852 iconError = O(!1); 1853 jackpotValue = g(() => (this.jackpotTick(), this.jackpotDataService.getGameJackpotValue(this.game().gameId))); 1854 showJackpotRibbon = g(() => !!this.jackpotConfig() && !!this.jackpotValue()?.amount); 1855 jackpotAmount = g(() => this.jackpotValue()?.amount ?? ""); 1856 showHotIcon = g(() => !!this.jackpotValue()?.isHotJackpotGroup && !!this.jackpotConfig()?.hotIcon?.enableHotIcon && !this.iconError()); 1857 hotIconPath = g(() => this.jackpotConfig()?.hotIcon?.iconPath ?? ""); 1858 ribbonBgColor = g(() => this.jackpotConfig()?.defaultBgColor ?? ""); 1859 ribbonTextColor = g(() => this.jackpotConfig()?.defaultTextColor ?? ""); 1860 imageStyle = g(() => `border-radius: ${this.game().icon?.gameTileBorderRadius || "0"}`); 1861 constructor() { 1862 this.jackpotDataService.jackpotFeedObservable.pipe(z(this.destroyRef)).subscribe(() => this.jackpotTick.update((e) => e + 1)); 1863 } 1864 onIconError() {
1865 this.iconError.set(!0); 1866 } 1867 static ɵfac = function(e) { 1868 return new (e || t)(); 1869 }; 1870 static ɵcmp = I({ 1871 type: t, 1872 selectors: [["cw-game-embedded"]], 1873 inputs: { 1874 game: [1, "game"], 1875 tileImageSize: [1, "tileImageSize"], 1876 newRibbonStyling: [1, "newRibbonStyling"] 1877 }, 1878 decls: 5, 1879 vars: 6, 1880 consts: [ 1881 [ 1882 1, 1883 "casino-game-cls", 1884 "small-icon" 1885 ], 1886 [1, "game-image-link"], 1887 [ 1888 3, 1889 "src", 1890 "alt", 1891 "width", 1892 "height", 1893 "imageStyle" 1894 ], 1895 [ 1896 1, 1897 "jackpot", 1898 3, 1899 "embed-jp-styles", 1900 "background", 1901 "color" 1902 ], 1903 [ 1904 "aria-hidden", 1905 "true", 1906 1, 1907 "theme-playbutton", 1908 "embed-play-icon" 1909 ], 1910 [1, "jackpot"], 1911 [1, "hot-icon"], 1912 [ 1913 "alt", 1914 "Hot jackpot indicator", 1915 3, 1916 "error", 1917 "src" 1918 ] 1919 ], 1920 template: function(e, n) { 1921 e & 1 && (l(0, "div", 0)(1, "div", 1), b(2, "cw-image", 2), f(3, Aw, 4, 8, "div", 3), b(4, "span", 4), d()()), e & 2 && (a(2), p("src", n.game().icon?.src || "")("alt", n.game().name || n.game().gameId)("width", n.tileImageSize())("height", n.tileImageSize())("imageStyle", n.imageStyle()), a(), h(n.showJackpotRibbon() ? 3 : -1)); 1922 }, 1923 dependencies: [bi], 1924 styles: ["[_nghost-%COMP%]{display:contents}"] 1925 }); 1926 } 1927 return t; 1928 })(), Ed = (() => { 1929 class t { 1930 dialogRef = s(Ye); 1931 data = s(Ke); 1932 commonMessages = s(LC); 1933 configProviderService = s(V); 1934 continue; 1935 cancel; 1936 gameLaunchNewWindow; 1937 gameSessionRestart; 1938 onNoClick() { 1939 this.dialogRef.close(); 1940 } 1941 ngOnInit() { 1942 let e = this.configProviderService.provideGlobalConfig(); 1943 this.continue = this.commonMessages.Continue, this.cancel = this.commonMessages.Cancel, this.gameLaunchNewWindow = e.messages.LaunchGameNewWindow, this.gameSessionRestart = e.messages.GameSessionRestart; 1944 } 1945 static ɵfac = function(e) { 1946 return new (e || t)(); 1947 }; 1948 static ɵcmp = I({ 1949 type: t, 1950 selectors: [["cw-game-pop-out"]], 1951 decls: 13, 1952 vars: 5, 1953 consts: [ 1954 [1, "casino-lobby-container-main"], 1955 [1, "embed-overlay-popup"], 1956 ["mat-dialog-content", ""], 1957 [1, "game-pop-out"], 1958 [1, "iframe-theme-bg-popup"], 1959 [ 1960 "mat-dialog-actions", 1961 "", 1962 1, 1963 "iframe-theme-bg-popup" 1964 ], 1965 [ 1966 "mat-button", 1967 "", 1968 "cdkFocusInitial", 1969 "", 1970 1, 1971 "egv-pop-btn-left", 1972 3, 1973 "mat-dialog-close" 1974 ], 1975 [ 1976 "mat-button", 1977 "", 1978 1, 1979 "egv-pop-btn-right", 1980 3, 1981 "click" 1982 ] 1983 ], 1984 template: function(e, n) { 1985 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3)(4, "h1", 4), C(5), d(), l(6, "h2", 4), C(7), d()()(), l(8, "div", 5)(9, "button", 6), C(10), d(), l(11, "button", 7), S("click", function() { 1986 return n.onNoClick(); 1987 }), C(12), d()()()()), e & 2 && (a(5), x(n.gameLaunchNewWindow), a(2), x(n.gameSessionRestart), a(2), p("mat-dialog-close", "continue"), a(), x(n.continue), a(2), x(n.cancel)); 1988 }, 1989 dependencies: [ 1990 kl, 1991 Il, 1992 YC 1993 ], 1994 encapsulation: 2, 1995 changeDetection: 1 1996 }); 1997 } 1998 return t; 1999 })(), Ad = [ 2000 M.ComponentGameName, 2001 M.ComponentGameDisplayName, 2002 M.ComponentGameContainerName 2003 ], Rd = 1e4, yr = (() => { 2004 class t { 2005 document = s(Ge); 2006 configProviderService = s(V); 2007 gameLaunchAggregatorService = s(Qe); 2008 vanillaTrackingAdapter = s(we); 2009 timerService = s(de); 2010 messageQueue = s(ri); 2011 gameConfig = this.configProviderService.provideGameConfig(); 2012 switchInProgress = O(!1); 2013 gameSwitchActive = O(!1); 2014 switchTimeoutId; 2015 switchGame(e, n, i, r, u, v) { 2016 if (this.switchInProgress()) return; 2017 this.switchInProgress.set(!0), this.gameSwitchActive.set(!0), this.trackInGameEzNav(e, i), this.postToIframe("PREVIOUS_CASINO_GAME_CLOSED"); 2018 let P = { 2019 game: F(G({}, e), { lobbyType: e.lobbyType || r }), 2020 isTouch: u, 2021 gamePosition: n + 1, 2022 categoryType: i, 2023 from: "p", 2024 replaceRouteInHistory: !1, 2025 isDemoLaunch: !1, 2026 skipUnfinGame: !1, 2027 gameLaunchedFrom: i, 2028 gameContainer: i, 2029 gameSection: i, 2030 clickTimeStamp: Date.now() 2031 }, N = !1; 2032 this.clearSwitchTimeout(), this.switchTimeoutId = this.timerService.setTimeout(() => { 2033 N || (N = !0, this.failGameSwitch()); 2034 }, Rd), this.gameLaunchAggregatorService.launchGame(P, ($) => { 2035 if (N) return; 2036 if ($.isError || !$.gameLaunchUrl) { 2037 N = !0, this.failGameSwitch(); 2038 return; 2039 } 2040 N = !0, this.clearSwitchTimeout(); 2041 let me = $.gameLaunchUrl; 2042 this.timerService.setTimeout(() => { 2043 v(me, e), this.switchInProgress.set(!1); 2044 }, this.gameConfig.gameCloseDelay); 2045 }); 2046 } 2047 clearSwitchTimeout() { 2048 this.switchTimeoutId !== void 0 && (this.timerService.clearTimeout(this.switchTimeoutId), this.switchTimeoutId = void 0); 2049 } 2050 failGameSwitch() { 2051 this.clearSwitchTimeout(), this.switchInProgress.set(!1), this.gameSwitchActive.set(!1); 2052 let e = this.configProviderService.provideGlobalConfig(), n = e?.messages?.GameLaunchError ?? e?.messages?.GenericError ?? "Unable to switch game."; 2053 this.messageQueue.addError(n, oi.Single, "embeddedGameError"); 2054 } 2055 trackInGameEzNav(e, n) { 2056 let i = zw(e, n); 2057 Dw(i, Ad) && this.vanillaTrackingAdapter.trigger({ 2058 name: se.InGameEzNav, 2059 data: i 2060 }); 2061 } 2062 postToIframe(e) { 2063 this.document.querySelector("#embedGameIframe")?.contentWindow?.postMessage(e, "*"); 2064 } 2065 static ɵfac = function(e) { 2066 return new (e || t)(); 2067 }; 2068 static ɵprov = A({ 2069 token: t, 2070 factory: t.ɵfac 2071 }); 2072 } 2073 return t; 2074 })(), wr = 6, Dd = 20, Pr = (() => { 2075 class t { 2076 recentGamesService = s(at); 2077 unfinishedGamesService = s(_t); 2078 gymlService = s(_a); 2079 favouriteService = s(Re); 2080 gameBuilderService = s(ft); 2081 destroyRef = s(q); 2082 recentlyPlayedGamesList = O([]); 2083 recommendationGamesList = O([]); 2084 recentlyPlayedView = g(() => Pd(this.recentlyPlayedGamesList(), Dd)); 2085 recommendationView = g(() => Pd(this.recommendationGamesList(), wr)); 2086 loaded = !1; 2087 load() { 2088 this.loaded || (this.loaded = !0, this.recentGamesService.setRecentGames(), this.unfinishedGamesService.feedUnfinishedGamesData(), this.gymlService.feedGymlData(), this.favouriteService.ensureFavouritesLoaded(), Io([this.recentGamesService.recentGamesDataObservable, this.unfinishedGamesService.unfinishedGames$]).pipe(z(this.destroyRef)).subscribe(([e, n]) => this.assignRecentlyPlayedGames(e, n)), this.gymlService.gyml$.pipe(z(this.destroyRef)).subscribe((e) => { 2089 if (e) { 2090 let n = e.map((i) => ({ 2091 gameId: i.gameId, 2092 name: i.name, 2093 provider: i.provider 2094 })); 2095 this.recommendationGamesList.set(this.gameBuilderService.buildGameList(n).slice(0, wr)); 2096 } 2097 })); 2098 } 2099 assignRecentlyPlayedGames(e, n) { 2100 let i = Rw((n ?? []).map((r) => ({ gameId: r })), e ?? []); 2101 this.recentlyPlayedGamesList.set(this.gameBuilderService.buildGameList(i)); 2102 } 2103 static ɵfac = function(e) { 2104 return new (e || t)(); 2105 }; 2106 static ɵprov = A({ 2107 token: t, 2108 factory: t.ɵfac 2109 }); 2110 } 2111 return t; 2112 })(), zd = (t) => ({ iframeClassNew: t }), Bd = (t) => ({ "egv-disable-overlay": t }), Sr = (t, o) => o.gameId, Mr = "egv", Fd = "embedded game view", Vd = (() => { 2113 class t { 2114 document = s(Ge); 2115 window = s(pe); 2116 api = s(Ae); 2117 messageQueue = s(ri); 2118 dialog = s(Bt); 2119 balanceService = s(zl); 2120 cookie = s(fC); 2121 casinoManager = s(Ve); 2122 configProviderService = s(V); 2123 deviceService = s(J); 2124 windowRef = s(DC); 2125 logger = s(Ot); 2126 auth = s(wC); 2127 destroyRef = s(q); 2128 gameLaunchAggregatorService = s(Qe); 2129 recentGamesService = s(at); 2130 vanillaTrackingAdapter = s(we); 2131 timerService = s(de); 2132 renderer = s(lt); 2133 platform = s(X); 2134 favouriteService = s(Re); 2135 casinoGlobalSearchConfig = s(nr); 2136 gameCatalogService = s(Oe); 2137 sidePanelFeed = s(Pr); 2138 gameSwitch = s(yr); 2139 embeddedData = m.required(); 2140 sendDataToEmbeddedGamePopUp = j(); 2141 sendDialogCloseEventToEmbeddedGamePopUp = j(); 2142 value; 2143 Game; 2144 isFullScreen = !1; 2145 date; 2146 iframeUrl; 2147 gameLaunchSuccess; 2148 isTouch; 2149 multipleGameLaunched = !1; 2150 Global; 2151 gameConfig = this.configProviderService.provideGameConfig(); 2152 allowAttributes; 2153 isMobileView; 2154 iconsNewPosition; 2155 titlePopout = ""; 2156 titleFullScreen = ""; 2157 titleExitFullScreen = ""; 2158 egvOverlayFlag = !1; 2159 isGameCloseTracked = !1; 2160 useFavouriteGames = !1; 2161 newRibbonStyling = !1; 2162 recentlyPlayedGamesList = this.sidePanelFeed.recentlyPlayedGamesList; 2163 recommendationGamesList = this.sidePanelFeed.recommendationGamesList; 2164 recentlyPlayedView = this.sidePanelFeed.recentlyPlayedView; 2165 recommendationView = this.sidePanelFeed.recommendationView; 2166 gamesYouMightLikeMessage = ""; 2167 gameTitle = O(""); 2168 tileImageSize = 100; 2169 lobbyType = ""; 2170 showGlobalSearch = O(!1); 2171 isFavouriteSignal = O(!1); 2172 gameSwitchActive = this.gameSwitch.gameSwitchActive; 2173 static TILE_PRESS_TRANSITION_MS = 120; 2174 favouriteIconName = g(() => this.favouriteService.isHeartIcon() ? this.isFavouriteSignal() ? "theme-heart-solid" : "theme-heart-outline" : this.isFavouriteSignal() ? "theme-rating-star-full" : "theme-rating-star-empty"); 2175 favouriteButtonText = g(() => this.isFavouriteSignal() ? this.Global?.messages?.AddedToFavorites ?? "" : this.Global?.messages?.AddToFavorites ?? ""); 2176 favouriteAriaLabel = g(() => { 2177 let e = this.Game?.name || this.Game?.gameId || "game"; 2178 return this.isFavouriteSignal() ? `Remove ${e} from favourites` : `Add ${e} to favourites`; 2179 });
2180 tileAccessibleName = Sd; 2181 constructor() { 2182 Z(() => { 2183 let e = this.favouriteService.favourites(), n = this.Game?.gameId; 2184 n && this.isFavouriteSignal.set(e.some((i) => i.gameId === n)); 2185 }), this.destroyRef.onDestroy(() => this.gameSwitch.clearSwitchTimeout()); 2186 } 2187 ngOnInit() { 2188 this.allowAttributes = this.gameConfig.iframeAllowattributes, this.Game = this.embeddedData().game, this.iframeUrl = this.embeddedData().iframeUrl, this.setGameTitle(this.Game); 2189 let e = this.configProviderService.provideFeaturesConfig(); 2190 if (this.Global = this.configProviderService.provideGlobalConfig(), this.isTouch = this.casinoManager.isTouch(), this.lobbyType = this.Game?.lobbyType || this.embeddedData().categoryType || "", this.useFavouriteGames = !!this.casinoManager.IsFeatureEnabledForLobbyType(this.lobbyType, e.favouriteGamesLobbyType ?? []), this.newRibbonStyling = !!this.casinoManager.IsFeatureEnabledForLobbyType(this.lobbyType, e.newJackpotRibbonStyling ?? []), this.gamesYouMightLikeMessage = this.Global.messages.EmbeddedYouMightLike || this.Global.messages.GamesYouMightLike || "", this.initGlobalSearch(), this.isFavouriteSignal.set(this.favouriteService.isFavourite(this.Game.gameId)), this.iconsNewPosition = e.enableNewEmbeddedViewIconsPosition, this.Global.messages.TooltipPopOut && (this.titlePopout = this.Global.messages.TooltipPopOut), this.Global.messages.TooltipFullScreen && (this.titleFullScreen = this.Global.messages.TooltipFullScreen), this.Global.messages.TooltipExitFullScreen && (this.titleExitFullScreen = this.Global.messages.TooltipExitFullScreen), this.messageQueue.clear({ clearPersistent: !0 }), this.maximizeFullScreen(), this.gameLaunchSuccess = !0, this.recentGamesService.setRecentGames(), this.gameTitle() || this.recentGamesService.recentGamesDataObservable.pipe(We((n) => n.length > 0), et(1), z(this.destroyRef)).subscribe(() => { 2191 this.gameTitle() || this.setGameTitle(this.Game); 2192 }), this.multipleGameLaunched = e.useSingleCookieForGameIndexCountInEGV ? this.getFromCookie("gameIndexCount") : this.getFromCookie("gameLaunchedCount"), this.multipleGameLaunched) if (this.gameLaunchSuccess = !1, this.iconsNewPosition) { 2193 this.sendDialogCloseEventToEmbeddedGamePopUp.emit(this.Game); 2194 return; 2195 } else { 2196 let n = this.Global.messages.OnlyOneGameAtTime; 2197 n && this.messageQueue.addError(n, oi.Single, "embeddedGameError"); 2198 } 2199 this.date = /* @__PURE__ */ new Date(); 2200 } 2201 ngAfterViewInit() { 2202 this.document.querySelector("#embedGameIframe")?.setAttribute("allow", this.allowAttributes), this.configProviderService.provideFeaturesConfig().enableOverlayMobileSearchTopPosition && this.deviceService.isTouch && this.embeddedGameOverlayTopAllignment(); 2203 } 2204 setToCookie(e, n) { 2205 this.cookie.put(e, n); 2206 } 2207 getFromCookie(e) { 2208 return this.cookie.get(e) === "1"; 2209 } 2210 handleScreenChange(e) { 2211 this.maximizeFullScreen(), e.stopImmediatePropagation(); 2212 } 2213 closeOnRCPUClose(e) { 2214 (e.data === "CASINO_GAME_CLOSED" || e.data === "CASINO_GAME_EXIT") && !this.gameSwitchActive() && (this.logger.info("[Casino Portal]", "[EGV]", "[Event Handler]", "[CASINO_GAME_CLOSED]", this.get_formatted_timestamp()), this.close(!1)), this.gameConfig.enableArcPlayBreakEvent && e.data === "ARC_CASINO_GAME_CLOSE" && (this.logger.info("Received by Casino_PortalARC_CASINO_GAME_CLOSE"), this.close(!1)), e.data === "PREVIOUS_CASINO_GAME_CLOSED_ACK" && !this.gameSwitchActive() && (this.logger.info("Received by Casino_PortalPREVIOUS_CASINO_GAME_CLOSED_ACK"), this.close(!0, !1)), typeof e.data == "object" && e.data.type === "CASINOGAME_IDLE_LOGGED_OUT" && e.data.forceLogout && (this.logger.info("[Casino Portal]", "[EGV]", "[Event Handler]", "[CASINOGAME_IDLE_LOGGED_OUT]", "[forceLogout]", this.get_formatted_timestamp()), this.close(!0, !0), this.cookie.get("rm-i") !== "1" && this.auth.logout({ redirectAfterLogout: !0 }).then(() => { 2215 this.logger.info("[Casino Portal]", "[AutoLogOut]", this.get_formatted_timestamp()); 2216 })), e.data === "CASINOGAME_IDLE_LOGGED_OUT" && (this.logger.info("[Casino Portal]", "[EGV]", "[Event Handler]", "[CASINOGAME_IDLE_LOGGED_OUT]", this.get_formatted_timestamp()), this.close(!0, !0)), e.data === "CASINO_GAME_STARTED" && (this.logger.info("Received by Casino_PortalCASINO_GAME_STARTED"), this.gameSwitchActive.set(!1), this.gameConfig.enableGamestartCookie && this.setToCookie("gameInProgress", "1"), this.sidePanelFeed.load()), this.gameConfig.egvOverlayFlag && (e.data === "EGV_SHOW_OVERLAY" ? this.egvOverlayFlag = !0 : e.data === "EGV_REMOVE_OVERLAY" && (this.egvOverlayFlag = !1)); 2217 } 2218 unloadHandler() { 2219 this.cookie.remove("gameLaunchedCount"), this.setToCookie("gameIndexCount", "0"), this.cookie.remove("gameInProgress"); 2220 } 2221 fullscreenchangeHandler(e) { 2222 this.isFullScreen = this.document.webkitIsFullScreen ?? !1, this.handleScreenChange(e); 2223 } 2224 webkitfullscreenchangeHandler(e) { 2225 this.isFullScreen = this.document.webkitIsFullScreen ?? !1, this.handleScreenChange(e); 2226 } 2227 mozfullscreenchangeHandler(e) { 2228 this.isFullScreen = this.document.mozFullScreen ?? !1, this.handleScreenChange(e); 2229 } 2230 MSFullscreenChangeHandler(e) { 2231 this.isFullScreen = this.document.webkitIsFullScreen ?? !1, this.handleScreenChange(e); 2232 } 2233 ngDoCheck() { 2234 this.date = /* @__PURE__ */ new Date(); 2235 } 2236 close(e, n = !1) { 2237 if (this.window.dispatchEvent(new CustomEvent("portal_chat_reconnect")), this.windowRef.nativeWindow.gamification_initialized = !1, this.cookie.remove("PCGameData"), this.messageQueue.clear({ clearPersistent: !0 }), e && !this.getFromCookie("gamePopOutWindow") && (this.cookie.remove("gameLaunchedCount"), this.setToCookie("gameIndexCount", "0"), this.cookie.remove("gameInProgress")), !n) { 2238 this.balanceService.refresh(); 2239 let i = this.configProviderService.provideApiPathsConfig(); 2240 this.api.get(i.ping.pgKeepAlive, null, { withCredentials: !0 }).pipe(z(this.destroyRef)).subscribe(() => {}), this.recentGamesService.setRecentGames(); 2241 } 2242 this.timerService.setTimeout(() => { 2243 this.gameCloseAction(); 2244 }, this.gameConfig.gameCloseDelay), this.isGameCloseTracked || (this.vanillaTrackingAdapter.trigger({ 2245 name: se.GameClose, 2246 data: { 2247 [M.ComponentGameInteraction]: ve.CLOSE, 2248 [M.ComponentGameName]: this.Game.gameId, 2249 [M.ComponentGameType]: this.Game.provider ?? "", 2250 [M.ComponentGameDisplayName]: this.Game.name || "" 2251 } 2252 }), this.isGameCloseTracked = !0), this.gameConfig.enableRefreshonGameClose && this.gameLaunchAggregatorService.playerPlayBreakStatus(); 2253 } 2254 gameCloseAction() { 2255 this.document.body.classList.remove("embed-hide-scroll"), this.sendDataToEmbeddedGamePopUp.emit(this.Game); 2256 } 2257 toggleFullScreen() { 2258 this.vanillaTrackingAdapter.trigger({ 2259 name: se.GameInteractions, 2260 data: { [M.ComponentGameInteraction]: "egv_fullscreen" } 2261 }); 2262 let e = this.document.querySelectorAll(".embed-left-section")[0]; 2263 e && this.renderer.setStyle(e, "width", "100%"); 2264 let n = this.document, i = this.document.body; 2265 n.fullScreenElement !== void 0 && n.fullScreenElement == null || n.msFullscreenElement !== void 0 && n.msFullscreenElement == null || n.mozFullScreen !== void 0 && !n.mozFullScreen || n.webkitIsFullScreen !== void 0 && !n.webkitIsFullScreen ? this.requestFullscreen(i) : this.exitFullscreen(n), this.maximizeFullScreen(); 2266 } 2267 requestFullscreen(e) { 2268 [ 2269 e.requestFullScreen, 2270 e.mozRequestFullScreen, 2271 e.webkitRequestFullScreen, 2272 e.msRequestFullscreen 2273 ].find((n) => n?.call(e)); 2274 } 2275 exitFullscreen(e) { 2276 [ 2277 e.cancelFullScreen, 2278 e.mozCancelFullScreen, 2279 e.webkitCancelFullScreen, 2280 e.msExitFullscreen 2281 ].find((n) => n?.call(e)); 2282 } 2283 maximizeFullScreen() { 2284 this.timerService.setTimeout(() => { 2285 let e = this.document.querySelector("#casinoEmbeddedModal"); 2286 e && this.renderer.setStyle(e, "height", `${this.window.screen.height}px`); 2287 }, 200); 2288 } 2289 openRequestedPopup() { 2290 this.vanillaTrackingAdapter.trigger({ 2291 name: se.GameInteractions, 2292 data: { [M.ComponentGameInteraction]: "egv_new_window" } 2293 }); 2294 let e = this.configProviderService.provideFeaturesConfig(); 2295 this.dialog.open(Ed, { 2296 width: "386px", 2297 data: { name: "popOut" } 2298 }).afterClosed().pipe(z(this.destroyRef)).subscribe((n) => { 2299 n === "continue" && (this.handlePopupContinue(e), this.popUpClickedProcessing()); 2300 }); 2301 } 2302 handlePopupContinue(e) { 2303 e.useSingleCookieForGameIndexCountInEGV ? (this.setToCookie("gameIndexCount", "0"), this.sendPreviousGameClosedMessage()) : this.setToCookie("gameLaunchedCount", "1"); 2304 } 2305 sendPreviousGameClosedMessage() { 2306 let e = this.document.querySelector("#embedGameIframe"); 2307 e?.contentWindow && (e.contentWindow.postMessage("PREVIOUS_CASINO_GAME_CLOSED", "*"), this.logger.info("Sent from Casino_Portal on openRequestedPopupPREVIOUS_CASINO_GAME_CLOSED")); 2308 } 2309 popUpClickedProcessing() { 2310 let e = this.window.open(this.iframeUrl, "GameWindow", "resizable=no,toolbar=no,scrollbars=no"); 2311 e?.closed || this.setToCookie("gamePopOutWindow", "1"); 2312 let n = this.gameConfig.gameCloseDelay, i = this.cookie, r = this.timerService; 2313 this.close(!0); 2314 let u = r.setInterval(() => { 2315 e?.closed && (i.remove("gameLaunchedCount"), i.remove("gamePopOutWindow"), i.put("gameIndexCount", "0"), i.remove("gameInProgress"), r.clearInterval(u)); 2316 }, n); 2317 } 2318 embeddedGameOverlayTopAllignment() { 2319 if (this.platform.isBrowser && this.document.querySelector(".content-messages-header-top .content-message-container")) { 2320 let e = this.document.querySelector(".content-messages-header-top .content-message-container") || new HTMLElement(), n = this.document.querySelector(".game-container") || new HTMLElement(); 2321 this.renderer.setStyle(n, "top", `${e.clientHeight}px`); 2322 } 2323 } 2324 initGlobalSearch() { 2325 Qb(this.casinoGlobalSearchConfig.whenReady).then(() => { 2326 this.showGlobalSearch.set(this.casinoGlobalSearchConfig.isEnabled ?? !1); 2327 }); 2328 } 2329 onSearchGameSelected(e) { 2330 this.gameClickedInEgv(e.game, e.index, "Search"); 2331 } 2332 setGameTitle(e) { 2333 let n = e?.name?.trim(); 2334 if (n) { 2335 this.gameTitle.set(n); 2336 return; 2337 } 2338 let i = e?.gameId; 2339 if (!i) { 2340 this.gameTitle.set(""); 2341 return; 2342 } 2343 let r = this.recentGamesService.getRecentlyPlayedGames().find((v) => v.gameId === i)?.name; 2344 if (r) { 2345 this.gameTitle.set(r); 2346 return; 2347 } 2348 let u = this.gameCatalogService.getGameName(i); 2349 if (u) { 2350 this.gameTitle.set(u); 2351 return; 2352 } 2353 this.gameCatalogService.getGames().pipe(et(1), z(this.destroyRef)).subscribe((v) => { 2354 let P = v.find((N) => N.gameId === i); 2355 this.gameTitle.set(P?.name ?? ""); 2356 }); 2357 } 2358 addFavourite(e) { 2359 e.stopImmediatePropagation(); 2360 let n = this.isFavouriteSignal(); 2361 this.isFavouriteSignal.set(!n); 2362 try { 2363 this.favouriteService.toggleFavourite(this.Game.gameId, { 2364 gameName: this.Game.name, 2365 provider: this.Game.provider || this.gameCatalogService.getGameProvider(this.Game.gameId), 2366 gameContainerId: Mr, 2367 gameContainerName: Fd, 2368 categoryType: this.lobbyType, 2369 categorySubType: Mr 2370 }); 2371 } catch { 2372 this.isFavouriteSignal.set(n); 2373 let r = this.Global?.messages?.FavouriteError ?? this.Global?.messages?.GenericError ?? "Unable to update favourites."; 2374 this.messageQueue.addError(r, oi.Single, "embeddedGameError"); 2375 } 2376 } 2377 gameClickedInEgv(e, n, i) { 2378 this.gameSwitch.switchGame(e, n, i, this.lobbyType, this.isTouch, (r, u) => this.applySwitchedGame(r, u)); 2379 } 2380 applySwitchedGame(e, n) { 2381 let i = this.configProviderService.provideFeaturesConfig();
2382 this.iframeUrl = e, i.useSingleCookieForGameIndexCountInEGV || this.setToCookie("gameLaunchedCount", "1"); 2383 let r = this.Game.returnUrl; 2384 this.Game = F(G({}, n), { 2385 lobbyType: n.lobbyType || this.lobbyType, 2386 returnUrl: r 2387 }), this.setGameTitle(this.Game), this.isFavouriteSignal.set(this.favouriteService.isFavourite(this.Game.gameId)), this.gameLaunchSuccess = !0, this.recentGamesService.setRecentGames(); 2388 } 2389 onTilePressStart(e) { 2390 let n = e.currentTarget; 2391 n && (this.renderer.setStyle(n, "transition", this.tilePressTransition()), this.renderer.setStyle(n, "transform", "scale(0.98)")); 2392 } 2393 onTilePressEnd(e) { 2394 let n = e.currentTarget; 2395 n && (this.renderer.setStyle(n, "transition", this.tilePressTransition()), this.renderer.setStyle(n, "transform", "scale(1)")); 2396 } 2397 tilePressTransition() { 2398 return `transform ${this.prefersReducedMotion() ? 0 : t.TILE_PRESS_TRANSITION_MS}ms ease`; 2399 } 2400 prefersReducedMotion() { 2401 return this.platform.isBrowser ? this.window.matchMedia?.("(prefers-reduced-motion: reduce)")?.matches ?? !1 : !1; 2402 } 2403 get_formatted_timestamp() { 2404 let e = /* @__PURE__ */ new Date(), n = e.toString(); 2405 return n = `${n.slice(0, Math.max(0, n.indexOf(" GMT")))}.${e.getMilliseconds()}`, n; 2406 } 2407 static ɵfac = function(e) { 2408 return new (e || t)(); 2409 }; 2410 static ɵcmp = I({ 2411 type: t, 2412 selectors: [["cw-embedded-game-view"]], 2413 hostBindings: function(e, n) { 2414 e & 1 && S("message", function(i) { 2415 return n.closeOnRCPUClose(i); 2416 }, ii)("unload", function() { 2417 return n.unloadHandler(); 2418 }, ii)("fullscreenchange", function(i) { 2419 return n.fullscreenchangeHandler(i); 2420 }, Kt)("webkitfullscreenchange", function(i) { 2421 return n.webkitfullscreenchangeHandler(i); 2422 }, Kt)("mozfullscreenchange", function(i) { 2423 return n.mozfullscreenchangeHandler(i); 2424 }, Kt)("MSFullscreenChange", function(i) { 2425 return n.MSFullscreenChangeHandler(i); 2426 }, Kt); 2427 }, 2428 inputs: { embeddedData: [1, "embeddedData"] }, 2429 outputs: { 2430 sendDataToEmbeddedGamePopUp: "sendDataToEmbeddedGamePopUp", 2431 sendDialogCloseEventToEmbeddedGamePopUp: "sendDialogCloseEventToEmbeddedGamePopUp" 2432 }, 2433 features: [ce([Pr, yr])], 2434 decls: 4, 2435 vars: 3, 2436 consts: [ 2437 [ 2438 "id", 2439 "casino-embed-game-view", 2440 1, 2441 "casino-embed-game-view" 2442 ], 2443 [3, "scope"], 2444 [1, "embed-left-section"], 2445 [ 2446 1, 2447 "embed-right-section", 2448 3, 2449 "ngClass" 2450 ], 2451 [1, "embed-left-section-width"], 2452 [1, "embed-iframe"], 2453 [1, "gameOverlay"], 2454 [ 2455 "id", 2456 "embedGameIframe", 2457 "allowfullscreen", 2458 "true", 2459 "webkitallowfullscreen", 2460 "true", 2461 "mozallowfullscreen", 2462 "true", 2463 "allow", 2464 "payment *", 2465 1, 2466 "iframeClass", 2467 3, 2468 "ngClass", 2469 "src" 2470 ], 2471 [1, "casino-embed-search"], 2472 [1, "embed-settings"], 2473 [ 2474 "csScrollbar", 2475 "", 2476 1, 2477 "games-div", 2478 "games-div-new" 2479 ], 2480 [1, "embed-game-title"], 2481 [1, "game-title"], 2482 [1, "add-fav-btn"], 2483 [ 2484 "id", 2485 "categoryIdentifier_EmbedRecentlyPlayed", 2486 1, 2487 "embed-games-list", 2488 "sidepanel-recentlyplayed-games" 2489 ], 2490 [ 2491 "id", 2492 "categoryIdentifier_EmbedGamesyouMightLike", 2493 1, 2494 "embed-games-list", 2495 "sidepanel-suggested-games" 2496 ], 2497 [1, "client-time-full-screen"], 2498 [ 2499 "tabindex", 2500 "0", 2501 "role", 2502 "button", 2503 3, 2504 "click" 2505 ], 2506 [ 2507 3, 2508 "ngClass", 2509 "title" 2510 ], 2511 [ 2512 "src", 2513 "", 2514 "href", 2515 "javascript:void(0)", 2516 3, 2517 "click" 2518 ], 2519 [ 2520 1, 2521 "theme-pop-out", 2522 3, 2523 "title" 2524 ], 2525 [1, "theme-close-i"], 2526 [3, "gameSelected"], 2527 [ 2528 "ds-button", 2529 "", 2530 "kind", 2531 "primary", 2532 "variant", 2533 "filled", 2534 "size", 2535 "large", 2536 3, 2537 "click" 2538 ], 2539 [ 2540 "slot", 2541 "start", 2542 "size", 2543 "16", 2544 3, 2545 "name" 2546 ], 2547 [1, "emb-header"], 2548 [1, "games-container"], 2549 [ 2550 "role", 2551 "button", 2552 "tabindex", 2553 "0", 2554 1, 2555 "game", 2556 "embed-game", 2557 3, 2558 "id" 2559 ], 2560 [ 2561 "role", 2562 "button", 2563 "tabindex", 2564 "0", 2565 1, 2566 "game", 2567 "embed-game", 2568 3, 2569 "click", 2570 "keydown.enter", 2571 "keydown.space", 2572 "mousedown", 2573 "mouseup", 2574 "mouseleave", 2575 "id" 2576 ], 2577 [ 2578 3, 2579 "game", 2580 "tileImageSize", 2581 "newRibbonStyling" 2582 ] 2583 ], 2584 template: function(e, n) { 2585 e & 1 && (l(0, "div", 0), b(1, "vn-message-panel", 1), f(2, Fw, 4, 1, "div", 2), f(3, Xw, 10, 9, "div", 3), d()), e & 2 && (a(), p("scope", "embeddedGameError"), a(), h(n.gameLaunchSuccess ? 2 : -1), a(), h(n.isFullScreen ? -1 : 3)); 2586 }, 2587 dependencies: [ 2588 Ko, 2589 At, 2590 br, 2591 ke, 2592 Nd, 2593 Gd, 2594 Ee, 2595 Ro, 2596 Dl 2597 ], 2598 encapsulation: 2, 2599 changeDetection: 1 2600 }); 2601 } 2602 return t; 2603 })(), Or = (() => { 2604 class t { 2605 messageQueue = s(ri); 2606 navigationService = s(qe); 2607 gameData = s(Ke); 2608 dialogRef = s(Ye); 2609 configProviderService = s(V); 2610 page = s(zt); 2611 window = s(pe); 2612 horizontalOverflowType = Ci.AUTO; 2613 featureName = Ia.EGV; 2614 currentTheme; 2615 constructor() { 2616 this.dialogRef.disableClose = !0; 2617 } 2618 ngOnInit() { 2619 this.currentTheme = this.page.theme; 2620 } 2621 dialogCloseEventFromEmbeddedGameView(e) { 2622 let n = this.configProviderService.provideGlobalConfig(), i = this.configProviderService.provideFeaturesConfig(), r = n.messages.OnlyOneGameAtTime; 2623 this.dialogRef.close(), this.messageQueue.clear(), setTimeout(() => { 2624 this.messageQueue.addError(r, oi.Single, "casinocorelobby"), this.window.scrollTo(0, 0), setTimeout(() => { 2625 this.messageQueue.clear(), (this.window.location.href.includes("casino/launchng") || this.window.location.href.includes("games/launchng") || this.window.location.href.includes("slots/launchng") || this.window.location.href.includes("livecasino/launchng") || this.window.location.href.includes("spins/launchng")) && this.navigationService.goTo(e.returnUrl || ""); 2626 }, i.singleGameErrorTimeout); 2627 }, i.scrollTopTimeout), this.messageQueue.clear(), this.messageQueue.addError(n.messages.OnlyOneGameAtTime); 2628 } 2629 eventFromEmbeddedGameView(e) { 2630 let n = new URLSearchParams(this.window.location.search).get("returnUrl") || new URLSearchParams(this.window.location.search).get("returnurl"); 2631 n ? (this.dialogRef.close(), this.navigationService.goTo(n)) : this.window.location.href.includes("casino/launchng") || this.window.location.href.includes("games/launchng") || this.window.location.href.includes("slots/launchng") || this.window.location.href.includes("livecasino/launchng") || this.window.location.href.includes("spins/launchng") ? (this.messageQueue.clear(), this.dialogRef.close(), e.returnUrl && this.navigationService.goTo(e.returnUrl)) : this.dialogRef.close(); 2632 } 2633 static ɵfac = function(e) { 2634 return new (e || t)(); 2635 }; 2636 static ɵcmp = I({ 2637 type: t, 2638 selectors: [["cw-embedded-game-popup"]], 2639 decls: 4, 2640 vars: 4, 2641 consts: [ 2642 [1, "casino-lobby-container-main"], 2643 [1, "casino-egv-modal-popup"], 2644 [ 2645 "variant", 2646 "surface", 2647 "csScrollbar", 2648 "", 2649 "id", 2650 "casinoEmbeddedModal", 2651 3, 2652 "horizontalOverflowType", 2653 "featureName", 2654 "currentTheme" 2655 ], 2656 [1, "h-100"], 2657 [ 2658 1, 2659 "d-block", 2660 "h-100", 2661 3, 2662 "sendDataToEmbeddedGamePopUp", 2663 "sendDialogCloseEventToEmbeddedGamePopUp", 2664 "embeddedData" 2665 ] 2666 ], 2667 template: function(e, n) { 2668 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "ds-modal", 2), f(3, Zw, 2, 1, "div", 3), d()()()), e & 2 && (a(2), p("horizontalOverflowType", n.horizontalOverflowType)("featureName", n.featureName)("currentTheme", n.currentTheme), a(), h(n.gameData ? 3 : -1)); 2669 }, 2670 dependencies: [ 2671 Rl, 2672 Vd, 2673 br 2674 ], 2675 encapsulation: 2, 2676 changeDetection: 1 2677 }); 2678 } 2679 return t; 2680 })(), jd = (() => { 2681 class t { 2682 transform(e) { 2683 let n = Math.floor(e / 3600), i = Math.floor(e % 3600 / 60), r = e % 60; 2684 return `${n.toString().padStart(2, "0")}:${i.toString().padStart(2, "0")}:${r.toString().padStart(2, "0")}`; 2685 } 2686 static ɵfac = function(e) { 2687 return new (e || t)(); 2688 }; 2689 static ɵpipe = xo({ 2690 name: "formatTime", 2691 type: t, 2692 pure: !0 2693 }); 2694 } 2695 return t; 2696 })(), $d = ["overlayIframe"], Wd = /* @__PURE__ */ new Set([ 2697 "CASINO_GAME_CLOSED", 2698 "CASINO_GAME_EXIT", 2699 "CLOSE_OVERLAY", 2700 "CASINOGAME_IDLE_LOGGED_OUT" 2701 ]), Ud = "END_GAME_SESSION_FROM_OVERLAY", Hd = "/launchng/", qd = (() => { 2702 class t { 2703 safeUrl = O(""); 2704 timeElapsed = O(0); 2705 enableAmountInGameOverlay = O(!1); 2706 enableTimerInGameOverlay = O(!1); 2707 overlayIframe; 2708 currentGameId = O(""); 2709 hasTrackedCloseOrExit = O(!1); 2710 location = s(nC); 2711 balanceService = s(zl); 2712 data = s(td, { optional: !0 }); 2713 bottomSheetRef = s(ed, { optional: !0 }); 2714 destroyRef = s(q); 2715 navigation = s(qe); 2716 vanillaTrackingAdapter = s(we); 2717 bottomNavService = s(kC); 2718 amount = Q(this.balanceService.balanceProperties); 2719 constructor() { 2720 this.safeUrl.set(this.data?.launchUrl || ""), this.currentGameId.set(this.data?.game?.gameId || ""), this.bottomNavService.hide(); 2721 } 2722 ngOnInit() { 2723 Ab(1e3).pipe(z(this.destroyRef)).subscribe(() => this.timeElapsed.update((e) => e + 1)); 2724 } 2725 closeClick() { 2726 this.overlayIframe?.nativeElement.contentWindow && this.overlayIframe.nativeElement.contentWindow.postMessage({ type: Ud }, "*"), this.balanceService.refresh(), this.onCloseOverlay(), this.trackGameClose(ve.EXIT); 2727 } 2728 onCloseOverlay() { 2729 this.bottomSheetRef?.dismiss(), this.bottomNavService.show(), this.navigateOnClose(); 2730 } 2731 onGameEventReceived(e) { 2732 let n = typeof e.data == "string" ? e.data : e.data?.type; 2733 n && Wd.has(n) && (this.trackGameClose(ve.CLOSE), this.onCloseOverlay()), n === "GAME_CHANGED" && typeof e.data == "object" && e.data.gameUrl && (this.trackGameClose(ve.SWITCH), this.currentGameId.set(e.data.gameVariantName || ""), this.safeUrl.set(e.data.gameUrl)); 2734 } 2735 navigateOnClose() { 2736 let e = this.location.path(), n = e.indexOf(Hd); 2737 if (n === -1 || !e) return; 2738 let i = e.substring(0, n).replace(/\/$/, ""); 2739 this.navigation.goTo(i); 2740 } 2741 trackGameClose(e) { 2742 if (e !== ve.SWITCH) { 2743 if (this.hasTrackedCloseOrExit()) return; 2744 this.hasTrackedCloseOrExit.set(!0); 2745 } 2746 let n = this.currentGameId() || ""; 2747 this.vanillaTrackingAdapter.trigger({ 2748 name: se.GameClose, 2749 data: { 2750 [M.ComponentGameInteraction]: e, 2751 [M.ComponentGameName]: n, 2752 [M.ComponentGameType]: this.data?.game?.provider ?? "", 2753 [M.ComponentGameDisplayName]: this.data?.game?.name || "" 2754 } 2755 }); 2756 } 2757 static ɵfac = function(e) { 2758 return new (e || t)(); 2759 }; 2760 static ɵcmp = I({ 2761 type: t, 2762 selectors: [["cw-game-overlay"]], 2763 viewQuery: function(e, n) { 2764 if (e & 1 && pn($d, 5), e & 2) { 2765 let i; 2766 vn(i = fn()) && (n.overlayIframe = i.first); 2767 } 2768 }, 2769 hostBindings: function(e, n) { 2770 e & 1 && S("message", function(i) { 2771 return n.onGameEventReceived(i); 2772 }, ii); 2773 }, 2774 decls: 13, 2775 vars: 5, 2776 consts: [ 2777 ["overlayIframe", ""], 2778 [1, "game-launch-overlay"], 2779 [1, "items-sec"], 2780 [1, "top-bar"], 2781 [1, "bar-item"], 2782 [ 2783 "tabindex", 2784 "0", 2785 "role", 2786 "button", 2787 1, 2788 "close-btn", 2789 3, 2790 "click" 2791 ], 2792 [ 2793 "name", 2794 "theme-ex", 2795 "size", 2796 "18" 2797 ], 2798 [1, "iframe-container"], 2799 [ 2800 "id", 2801 "game-launch-overlay-iframe", 2802 "allow", 2803 "payment *", 2804 3, 2805 "src" 2806 ], 2807 [1, "icon"], 2808 [ 2809 "size", 2810 "18", 2811 "name", 2812 "theme-icons-time" 2813 ], 2814 [1, "text"], 2815 [ 2816 "size", 2817 "18", 2818 "name", 2819 "theme-cashier" 2820 ] 2821 ], 2822 template: function(e, n) { 2823 e & 1 && (l(0, "div", 1)(1, "div", 2)(2, "div", 3)(3, "div", 4), f(4, eP, 5, 3), d(), l(5, "div", 4), f(6, tP, 4, 1), d(), l(7, "span", 5), S("click", function() { 2824 return n.closeClick(); 2825 }), b(8, "vn-icon", 6), d()()(), l(9, "div", 7), b(10, "iframe", 8, 0), wt(12, "trustAsResourceUrl"), d()()), e & 2 && (a(4), h(n.enableTimerInGameOverlay() ? 4 : -1), a(2), h(n.enableAmountInGameOverlay() ? 6 : -1), a(4), p("src", Cn(12, 3, n.safeUrl()), Eo)); 2826 }, 2827 dependencies: [ 2828 Ee, 2829 Dl, 2830 jd 2831 ], 2832 styles: [`.cdk-overlay-pane.casino-game-launch-overlay.mat-mdc-dialog-panel{height:100%;width:100%}.cdk-overlay-pane.casino-game-launch-overlay.mat-mdc-dialog-panel .mat-mdc-dialog-container{max-width:100%;max-height:100%}.casino-game-launch-overlay{height:100%}.casino-game-launch-overlay mat-bottom-sheet-container{height:100%;padding:unset;max-height:none;overflow:hidden}.game-launch-overlay{--%NS%overlay-bg: #141414;
2832--%NS%overlay-top-bar-bg: #26263a;display:flex;flex-direction:column;height:100%;width:100%;overflow:hidden;background:var(--%NS%overlay-bg)}.iframe-container{flex:1 1 auto;min-height:0;width:100%;overflow:hidden;background:var(--%NS%overlay-bg)}iframe{display:block;height:100%;width:100%;border:unset;background:var(--%NS%overlay-bg)}.top-bar{display:flex;align-items:center;justify-content:flex-start;gap:var(--%NS%semantic-spacing-stack-2xl);padding:var(--%NS%semantic-spacing-container-padding-lg) var(--%NS%semantic-spacing-container-padding-2xl);background-color:var(--%NS%overlay-top-bar-bg);color:#fff;font-family:Arial,sans-serif;font-size:var(--%NS%semantic-typography-label-lg-font-size);position:relative;height:calc(var(--%NS%semantic-typography-title-lg-strong-line-height) + 3px)}.top-bar .vn-icon{padding-top:var(--%NS%semantic-spacing-container-padding-sm)}.bar-item{display:flex;align-items:center;padding-left:var(--%NS%semantic-spacing-container-padding-2xl)}.close-btn{margin-left:auto;cursor:pointer;padding-right:var(--%NS%semantic-spacing-container-padding-xl)} 2833`], 2834 encapsulation: 2 2835 }); 2836 } 2837 return t; 2838 })(), xr = (() => { 2839 class t { 2840 bottomSheet = s(Zl); 2841 gameLaunchService = s(aw); 2842 dialog = s(Bt); 2843 destoyRef = s(q); 2844 route = s(Dt); 2845 lifecycle = s(Wo).register(this.route); 2846 constructor() { 2847 this.gameLaunchService.mobileGameLaunch$.pipe(Sl(this.lifecycle), z(this.destoyRef)).subscribe((e) => { 2848 e && this.bottomSheet.open(qd, { 2849 data: e, 2850 disableClose: !0, 2851 panelClass: "casino-game-launch-overlay" 2852 }); 2853 }), this.gameLaunchService.desktopGameLaunch$.pipe(Sl(this.lifecycle), z(this.destoyRef)).subscribe((e) => { 2854 e && (this.closeOpenEmbeddedDialogs(), this.dialog.open(Or, { 2855 panelClass: "full-screen-dialog", 2856 data: e 2857 })); 2858 }); 2859 } 2860 closeOpenEmbeddedDialogs() { 2861 this.dialog.openDialogs.filter((e) => e.componentInstance instanceof Or).forEach((e) => e.close()); 2862 } 2863 static ɵfac = function(e) { 2864 return new (e || t)(); 2865 }; 2866 static ɵcmp = I({ 2867 type: t, 2868 selectors: [["cw-game-overlay-wrapper"]], 2869 decls: 0, 2870 vars: 0, 2871 template: function(e, n) {}, 2872 encapsulation: 2 2873 }); 2874 } 2875 return t; 2876 })(); 2877 })))(); 2878} 2879function nP(t, o) { 2880 t & 1 && b(0, "i", 3), t & 2 && W(c().startIconFullClass()); 2881} 2882function iP(t, o) { 2883 if (t & 1 && (l(0, "span", 2)(1, "span", 4), C(2), d(), b(3, "img", 5), d()), t & 2) { 2884 let e = c(); 2885 a(2), x(e.coinsForOptin()), a(), p("alt", e.coinAltText())("src", e.imgSrc(), Y); 2886 } 2887} 2888var $n; 2889function kr() { 2890 return (kr = pi((() => { 2891 ti(), jo(), Uo(), $n = (() => { 2892 class t { 2893 deviceService = s(J); 2894 ctaText = m(""); 2895 csDecoratorClass = m(""); 2896 disabled = m(!1); 2897 coinsForOptin = m(null); 2898 imgSrc = m(""); 2899 startIconClass = m(""); 2900 ctaClick = j(); 2901 startIconFullClass = g(() => `alert-icon ${this.startIconClass()}`.trim()); 2902 coinAltText = g(() => `${this.coinsForOptin() ?? 0} coins`); 2903 ctaSize = this.deviceService.isTouch ? "medium" : "large"; 2904 static ɵfac = function(e) { 2905 return new (e || t)(); 2906 }; 2907 static ɵcmp = I({ 2908 type: t, 2909 selectors: [["cw-slotrace-cta"]], 2910 inputs: { 2911 ctaText: [1, "ctaText"], 2912 csDecoratorClass: [1, "csDecoratorClass"], 2913 disabled: [1, "disabled"], 2914 coinsForOptin: [1, "coinsForOptin"], 2915 imgSrc: [1, "imgSrc"], 2916 startIconClass: [1, "startIconClass"] 2917 }, 2918 outputs: { ctaClick: "ctaClick" }, 2919 decls: 4, 2920 vars: 8, 2921 consts: [ 2922 [ 2923 "type", 2924 "button", 2925 "ds-button", 2926 "", 2927 "variant", 2928 "filled", 2929 "data-decoratorclass-host", 2930 "", 2931 "data-legacy", 2932 "true", 2933 3, 2934 "click", 2935 "size", 2936 "disabled", 2937 "inverse" 2938 ], 2939 [ 2940 "slot", 2941 "start", 2942 3, 2943 "class" 2944 ], 2945 [ 2946 "slot", 2947 "end", 2948 1, 2949 "sr-card-total-coin" 2950 ], 2951 ["slot", "start"], 2952 ["aria-hidden", "true"], 2953 [ 2954 1, 2955 "coin-img", 2956 3, 2957 "alt", 2958 "src" 2959 ] 2960 ], 2961 template: function(e, n) { 2962 e & 1 && (l(0, "button", 0), S("click", function() { 2963 return n.ctaClick.emit(); 2964 }), f(1, nP, 1, 2, "i", 1), C(2), f(3, iP, 4, 3, "span", 2), d()), e & 2 && (W(n.csDecoratorClass()), p("size", n.ctaSize)("disabled", n.disabled())("inverse", n.disabled()), a(), h(n.startIconClass() ? 1 : -1), a(), E(" ", n.ctaText(), " "), a(), h(n.coinsForOptin() && n.imgSrc() ? 3 : -1)); 2965 }, 2966 dependencies: [ke], 2967 styles: ["[_nghost-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-right:var(--%NS%semantic-spacing-inline-md)}[_nghost-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%] .coin-img[_ngcontent-%COMP%]{width:23px;height:23px;position:relative}"] 2968 }); 2969 } 2970 return t; 2971 })(); 2972 })))(); 2973} 2974var aP = Pw({ CASINO_ROUTES: () => kb }); 2975function Jd(t) { 2976 return { 2977 gameContainerId: t?.id, 2978 gameContainerName: t?.title, 2979 gameContainerType: t ? Vt(t.type, t.viewType) : void 0 2980 }; 2981} 2982function oP(t) { 2983 if (!t?.src || t.spriteOffset === void 0) return null; 2984 let o = Math.round(t.spriteWidth / t.frameWidth), e = Math.round(t.spriteOffset / t.frameWidth), n = o > 1 ? e / (o - 1) * 100 : 0; 2985 return { 2986 backgroundImage: `url(${t.src})`, 2987 backgroundPosition: `${n}% 0`, 2988 backgroundSize: `${o * 100}% 100%`, 2989 backgroundRepeat: "no-repeat" 2990 }; 2991} 2992function Yd(t) { 2993 return !t?.src || t.spriteOffset === void 0 ? null : { 2994 src: t.src, 2995 frameWidth: t.frameWidth, 2996 frameHeight: t.frameHeight, 2997 spriteWidth: t.spriteWidth, 2998 objectPosition: `-${t.spriteOffset}px 0` 2999 }; 3000} 3001function Ir(t, o, e) { 3002 return { 3003 src: t, 3004 spriteOffset: (e.initialOffset ?? 0) + (o - 1) * e.stride, 3005 spriteWidth: e.totalWidth, 3006 frameWidth: e.displayWidth, 3007 frameHeight: e.displayHeight 3008 }; 3009} 3010function rP(t) { 3011 let o = {}; 3012 for (let e = 1; e <= 10; e++) { 3013 let n = {}; 3014 t.gradientImage && (n.gradient = Ir(t.gradientImage, e, Ea.DIGIT)), t.topSlotImage && (n.topSlot = Ir(t.topSlotImage, e, Ea.TOP_SLOT)), t.bottomSlotImage && (n.bottomSlot = Ir(t.bottomSlotImage, e, Ea.BOTTOM_SLOT)), o[String(e)] = n; 3015 } 3016 return o; 3017} 3018function je(t) { 3019 try { 3020 return (t() ?? "").trim().toLowerCase() || Dr; 3021 } catch { 3022 return Dr; 3023 } 3024} 3025function Kd(t) { 3026 return { 3027 item_id: je(() => t.gameId), 3028 item_name: je(() => t.gameDisplayName), 3029 item_brand: je(() => t.gameType), 3030 item_variant: je(() => t.containerType), 3031 item_category: je(() => t.layoutId), 3032 item_category2: je(() => t.subNavigation), 3033 item_category3: je(() => t.tertiaryNav), 3034 item_category4: je(() => t.containerName), 3035 item_category5: je(() => t.gridPosition), 3036 index: Math.max(t.index ?? 1, 1), 3037 item_list_id: pg, 3038 item_list_name: ug, 3039 location_id: je(() => t.containerId), 3040 promotion_id: je(() => t.triggerCondition), 3041 promotion_name: je(() => t.recommendationType), 3042 creative_name: je(() => t.playingStatus), 3043 creative_slot: je(() => t.favouriteStatus), 3044 coupon: je(() => t.gameBadges) 3045 }; 3046} 3047function yi(t) { 3048 return { 3049 name: se.CasinoContainerNavigation, 3050 data: { 3051 [M.ComponentCategoryEvent]: it.CASINO_CONTAINER_INTERACTIONS, 3052 [M.ComponentLabelEvent]: it.CONTAINER_NAVIGATION, 3053 [M.ComponentActionEvent]: ve.CLICK, 3054 [M.ComponentPositionEvent]: t.containerId || B.NOT_APPLICABLE, 3055 [M.ComponentLocationEvent]: t.lobbyName || B.NOT_APPLICABLE, 3056 [M.ComponentEventDetails]: t.seeAllText || it.SEE_ALL, 3057 [M.ComponentUrlClicked]: t.url || B.NOT_APPLICABLE, 3058 [M.ComponentContentPosition]: t.containerPosition ?? B.NOT_APPLICABLE, 3059 [M.ComponentCategoryType]: t.layoutId || B.NOT_APPLICABLE 3060 } 3061 }; 3062} 3063function La(t) { 3064 return { 3065 name: se.CasinoMoreInfo, 3066 data: { 3067 [M.ComponentCategoryEvent]: it.CASINO_CONTAINER_INTERACTIONS, 3068 [M.ComponentLabelEvent]: it.MORE_INFO, 3069 [M.ComponentActionEvent]: ve.CLICK, 3070 [M.ComponentPositionEvent]: t.containerId || B.NOT_APPLICABLE, 3071 [M.ComponentLocationEvent]: t.lobbyName || B.NOT_APPLICABLE, 3072 [M.ComponentEventDetails]: it.MORE_INFO_ICON, 3073 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 3074 [M.ComponentContentPosition]: t.containerPosition ?? B.NOT_APPLICABLE, 3075 [M.ComponentCategoryType]: t.layoutId || B.NOT_APPLICABLE 3076 } 3077 }; 3078} 3079function rn(t, o) { 3080 let e = o === "click"; 3081 return { 3082 name: se.CasinoMoreInfoOverlay, 3083 data: { 3084 [M.ComponentCategoryEvent]: it.CASINO_CONTAINER_INTERACTIONS, 3085 [M.ComponentLabelEvent]: it.MORE_INFO_OVERLAY, 3086 [M.ComponentActionEvent]: fg[o], 3087 [M.ComponentPositionEvent]: t.containerId || B.NOT_APPLICABLE, 3088 [M.ComponentLocationEvent]: t.lobbyName || B.NOT_APPLICABLE, 3089 [M.ComponentEventDetails]: e ? t.ctaText || it.MORE_INFO : it.MORE_INFO_OVERLAY, 3090 [M.ComponentUrlClicked]: e && t.url || B.NOT_APPLICABLE, 3091 [M.ComponentContentPosition]: t.containerPosition ?? B.NOT_APPLICABLE, 3092 [M.ComponentCategoryType]: t.layoutId || B.NOT_APPLICABLE 3093 } 3094 }; 3095} 3096function sP() { 3097 let t = () => {}; 3098 return { 3099 promise: new Promise((o) => t = o), 3100 resolve: t 3101 }; 3102} 3103function cP() { 3104 return { 3105 promise: Promise.resolve(), 3106 resolve: () => {} 3107 }; 3108} 3109function lP(t) { 3110 let o = (t ?? "").split(",").map((e) => e.trim().toLowerCase()).filter((e) => wg.includes(e)); 3111 return o.length > 0 ? o : Pg.split(","); 3112} 3113function dP(t, o) { 3114 let e = t.flatMap((n) => o[n] ?? []); 3115 return Array.from(new Set(e)); 3116} 3117function gP(t, o) { 3118 if (t & 1 && (l(0, "button", 2), ut(1, 0, $r), C(2), ut(3, 1, Wr), d()), t & 2) { 3119 let e = c();
3120 yt(e.computedStyle()), W(e.casinoDsClass() + " " + e.csDecoratorClass()), p("kind", e.kind())("variant", e.variant())("size", e.size())("disabled", e.disabled()), a(2), E(" ", e.cta_text(), " "); 3121 } 3122} 3123function mP(t, o) { 3124 if (t & 1 && (l(0, "button", 3), ut(1, 2, $r), C(2), ut(3, 3, Wr), d()), t & 2) { 3125 let e = c(); 3126 W(e.csDecoratorClass()), k("width", e.ctaWidth(), "%"), p("kind", e.kind())("variant", e.variant())("size", e.size())("disabled", e.disabled())("inverse", e.inverse()), a(2), E(" ", e.cta_text(), " "); 3127 } 3128} 3129function pP(t, o) { 3130 if (t & 1 && (l(0, "div", 3), C(1), d()), t & 2) { 3131 let e = c(2); 3132 a(), x(e.title); 3133 } 3134} 3135function uP(t, o) { 3136 if (t & 1 && (l(0, "div", 4)(1, "div", 9), C(2), d()()), t & 2) { 3137 let e = c(2); 3138 a(2), x(e.badgeStatus); 3139 } 3140} 3141function hP(t, o) { 3142 if (t & 1) { 3143 let e = _(); 3144 l(0, "div", 5)(1, "button", 10), S("click", function() { 3145 return y(e), w(c(2).closeModel(!0)); 3146 }), C(2), d()(); 3147 } 3148 if (t & 2) { 3149 let e = c(2); 3150 a(2), E(" ", e.closeCtaText, " "); 3151 } 3152} 3153function fP(t, o) { 3154 if (t & 1) { 3155 let e = _(); 3156 l(0, "div", 8)(1, "button", 11), S("click", function() { 3157 y(e); 3158 let n = c(2); 3159 return w(n.seeAll(n.ctaURL)); 3160 }), C(2), d()(); 3161 } 3162 if (t & 2) { 3163 let e = c(2); 3164 a(2), E(" ", e.ctaText, " "); 3165 } 3166} 3167function vP(t, o) { 3168 if (t & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2), f(3, pP, 2, 1, "div", 3), f(4, uP, 3, 1, "div", 4), d(), f(5, hP, 3, 1, "div", 5), d(), l(6, "div", 6), b(7, "div", 7), d(), f(8, fP, 3, 1, "div", 8), d()), t & 2) { 3169 let e = c(); 3170 a(3), h(e.title ? 3 : -1), a(), h(e.badgeStatus ? 4 : -1), a(), h(e.closeCtaText ? 5 : -1), a(2), p("innerHTML", e.htmlContent, _e), a(), h(e.ctaText && e.ctaURL ? 8 : -1); 3171 } 3172} 3173function bP(t, o) { 3174 t & 1 && C(0), t & 2 && E(" ", c().text(), " "); 3175} 3176function CP(t, o) { 3177 t & 1 && b(0, "cw-global-translate", 1); 3178} 3179function yP(t, o) { 3180 if (t & 1 && (l(0, "ul", 2)(1, "li", 7), b(2, "vn-icon", 8), d()()), t & 2) { 3181 let e = c(2); 3182 a(2), k("color", e.headingTextColor()), p("name", e.iconName()); 3183 } 3184} 3185function wP(t, o) { 3186 if (t & 1 && (l(0, "h2", 9), C(1), d()), t & 2) { 3187 let e = c(2); 3188 k("color", e.headingTextColor()), a(), x(e.title()); 3189 } 3190} 3191function PP(t, o) { 3192 if (t & 1) { 3193 let e = _(); 3194 l(0, "p", 10), S("click", function(n) { 3195 return y(e), w(c(2).openDialog(n)); 3196 })("keydown.enter", function(n) { 3197 return y(e), w(c(2).openDialog(n)); 3198 })("keydown.space", function(n) { 3199 return y(e), w(c(2).onMoreInfoSpaceKey(n)); 3200 }), d(); 3201 } 3202} 3203function SP(t, o) { 3204 if (t & 1 && (l(0, "p", 11), C(1), d()), t & 2) { 3205 let e = c(2); 3206 k("color", e.headingTextColor()), a(), E(" ", e.subtitle(), " "); 3207 } 3208} 3209function MP(t, o) { 3210 if (t & 1) { 3211 let e = _(); 3212 l(0, "div", 6)(1, "cw-see-all", 12), S("seeAllClick", function() { 3213 return y(e), w(c(2).onSeeAllClick()); 3214 }), d()(); 3215 } 3216 if (t & 2) { 3217 let e = c(2); 3218 a(), p("textColor", e.headingTextColor())("text", e.seeAllText()); 3219 } 3220} 3221function OP(t, o) { 3222 if (t & 1 && (l(0, "div", 0)(1, "h2", 1)(2, "span"), f(3, yP, 3, 3, "ul", 2), l(4, "ul", 2)(5, "li"), f(6, wP, 2, 3, "h2", 3), f(7, PP, 1, 0, "p", 4), f(8, SP, 2, 3, "p", 5), d()()(), f(9, MP, 2, 2, "div", 6), d(), ut(10), d()), t & 2) { 3223 let e = c(); 3224 a(), W(e.appliedClasses()), a(2), h(e.iconName()?.trim() ? 3 : -1), a(3), h(e.title() ? 6 : -1), a(), h(e.showMoreInfo() ? 7 : -1), a(), h(e.subtitle() ? 8 : -1), a(), h(e.showViewAllButton() ? 9 : -1); 3225 } 3226} 3227function xP(t, o) { 3228 t & 1 && b(0, "div", 3), t & 2 && k("background-image", c().backgroundImage1()); 3229} 3230function _P(t, o) { 3231 t & 1 && b(0, "div", 4), t & 2 && (k("background-image", c().backgroundImage2()), p("config", Lt(3, Gg))); 3232} 3233function kP(t, o) { 3234 t & 1 && b(0, "div", 5), t & 2 && (k("background-image", c().backgroundImage3()), p("config", Xe(3, Eg, -.2, -.2))); 3235} 3236function IP(t, o) { 3237 if (t & 1 && (b(0, "ds-divider"), l(1, "div", 7), b(2, "div", 8), d()), t & 2) { 3238 let e = c(2); 3239 a(2), p("innerHTML", e.body(), _e); 3240 } 3241} 3242function TP(t, o) { 3243 if (t & 1) { 3244 let e = _(); 3245 l(0, "ds-card", 1)(1, "ds-accordion", 2), S("openedChange", function() { 3246 return y(e), w(c().toggle()); 3247 }), l(2, "ds-accordion-header", 3)(3, "div", 4)(4, "div", 5)(5, "h1", 6), C(6), d()()()(), te(7, IP, 3, 1, "ng-template", null, 0, Ne), d()(); 3248 } 3249 if (t & 2) { 3250 let e = c(); 3251 p("elevated", !0)("border", !0), a(), p("withCard", !0)("open", !e.collapsed), a(5), x(e.heading()); 3252 } 3253} 3254function NP(t, o) { 3255 t & 1 && Pe(0, "i", 0); 3256} 3257function LP(t, o) { 3258 t & 1 && Pe(0, "i", 1); 3259} 3260function GP(t, o) { 3261 if (t & 1) { 3262 let e = _(); 3263 l(0, "button", 1), S("click", function() { 3264 return y(e), w(c().scrollToTop()); 3265 }), b(1, "vn-icon", 2), d(); 3266 } 3267 t & 2 && (T("aria-label", "Scroll to top"), a(), p("decorative", !0)); 3268} 3269function EP() { 3270 return Kb([{ 3271 provide: Mn, 3272 useFactory: () => { 3273 let t = s(V); 3274 return g(() => t.provideGlobalConfig()?.messages ?? {}); 3275 } 3276 }]); 3277} 3278function AP(t, o) { 3279 if (t & 1 && (b(0, "p", 5), wt(1, "trustAsHtml")), t & 2) { 3280 let e = o.$implicit; 3281 p("innerHTML", Cn(1, 1, e.message), _e); 3282 } 3283} 3284function RP(t, o) { 3285 if (t & 1) { 3286 let e = _(); 3287 l(0, "button", 8), S("click", function() { 3288 return y(e), w(c().reCheckLocation()); 3289 }), C(1), d(); 3290 } 3291 if (t & 2) { 3292 let e = c(); 3293 a(), x(e.recheckLocation); 3294 } 3295} 3296function DP(t, o) { 3297 if (t & 1) { 3298 let e = _(); 3299 l(0, "button", 8), S("click", function() { 3300 return y(e), w(c().close()); 3301 }), C(1), d(); 3302 } 3303 if (t & 2) { 3304 let e = c(); 3305 a(), x(e.ok); 3306 } 3307} 3308function zP(t, o) { 3309 if (t & 1) { 3310 let e = _(); 3311 l(0, "div", 2)(1, "div", 4), b(2, "h1", 5), l(3, "button", 6), S("click", function() { 3312 return y(e), w(c().close()); 3313 }), d()(), b(4, "div", 7), l(5, "div", 8)(6, "button", 9), S("click", function() { 3314 return y(e), w(c().download()); 3315 }), d(), l(7, "button", 10), S("click", function() { 3316 return y(e), w(c().continue()); 3317 }), d()()(); 3318 } 3319 if (t & 2) { 3320 let e = c(); 3321 a(2), p("textContent", e.geocomplyTitle), a(), T("aria-label", "Close"), a(), p("vnDynamicHtml", e.geoComplyMessage), a(2), p("textContent", e.downloadButtonText), a(), p("textContent", e.continueButtonText); 3322 } 3323} 3324function BP(t, o) { 3325 if (t & 1) { 3326 let e = _(); 3327 l(0, "ds-modal", 3)(1, "ds-modal-header"), b(2, "h1", 11), l(3, "button", 12), S("click", function() { 3328 return y(e), w(c().close()); 3329 }), b(4, "span", 13), d()(), l(5, "ds-modal-content", 14), b(6, "div", 15), l(7, "div", 16), b(8, "h2", 11)(9, "p", 11), d(), b(10, "p", 17), l(11, "div", 18)(12, "button", 19), S("click", function() { 3330 return y(e), w(c().appDownloaderClicked()); 3331 }), d()(), b(13, "br"), l(14, "div", 20), b(15, "hr")(16, "div", 21), d(), b(17, "p", 22), l(18, "div", 23)(19, "div", 24), b(20, "p", 25), l(21, "button", 26), S("click", function() { 3332 return y(e), w(c().download()); 3333 }), d()(), l(22, "div", 27), b(23, "p", 28), l(24, "button", 29), S("click", function() { 3334 return y(e), w(c().continue()); 3335 }), d()()(), l(25, "div", 30)(26, "div", 31)(27, "button", 32), S("click", function() { 3336 return y(e), w(c().info()); 3337 }), d(), l(28, "button", 33), S("click", function() { 3338 return y(e), w(c().info()); 3339 }), d()()(), l(29, "div")(30, "vn-popper-content", 34, 0), yn(32, 35), C(33), un(), d()()()(); 3340 } 3341 if (t & 2) { 3342 let e = ee(31), n = c(); 3343 a(2), p("textContent", n.geolocationMobileInstallerTitle), a(), T("aria-label", "Close"), a(5), p("textContent", n.oobeeInstallerHeadingText), a(), p("textContent", n.oobeeInstallerHeadingInstruction), a(), p("textContent", n.continuePlayOnAppInstructionText), a(2), p("textContent", n.continuePlayOnAppUserActionText), a(4), p("textContent", n.playOnAppOrWebPlayerOptionsSeparatorText), a(), p("textContent", n.continuePlayOnWebInstructionText), a(3), p("textContent", n.oobeeInstallerDownloadStepText), a(), p("textContent", n.oobeeInstallerDownloadUserActionText), a(2), p("textContent", n.oobeeInstallerContinueStepText), a(), p("textContent", n.oobeeInstallerContinueUserActionText), a(3), p("floatUi", e.content), T("aria-label", "What is GeoGuard"), a(), p("floatUi", e.content)("textContent", n.geoguardEnquiryUserActionText), T("aria-label", n.geoguardEnquiryUserActionText), a(5), E(" ", n.geoGuardDescriptionText, " "); 3344 } 3345} 3346function FP() { 3347 return [Go(() => { 3348 let t = s(rw); 3349 t.errorComponent.set(jg), t.installerComponent.set($g); 3350 })]; 3351} 3352function Tr(t) { 3353 if (!t) return null; 3354 let o = t.indexOf(Yr); 3355 return o === -1 ? null : t.slice(o + Yr.length).split(/[/?#]/)[0]?.trim() || null; 3356} 3357function Nr(t) { 3358 return [IC(t), { 3359 provide: Qr, 3360 multi: !0, 3361 useExisting: t 3362 }]; 3363} 3364function VP() { 3365 return [ 3366 Xr, 3367 Zr, 3368 { 3369 provide: AC, 3370 useClass: am, 3371 multi: !0 3372 }, 3373 sl(JC), 3374 sl(yw.forRoot()), 3375 im(), 3376 nw({ componentInputOverrides: PC }), 3377 Go(() => s(Zr).init()) 3378 ]; 3379} 3380function Qd() { 3381 let t = s(V), o = O(""), e = O(""); 3382 function n(r) { 3383 let u = t.provideGlobalConfig()?.messages; 3384 r ? o.set((u?.[$a.MuteIcon] || "").trim()) : o.set((u?.[$a.SoundIcon] || "").trim()); 3385 } 3386 let i = t.provideGlobalConfig(); 3387 return n(!0), e.set((i?.messages?.[$a.ReloadIcon] || "").trim()), { 3388 netflixVolumBtn: o, 3389 netflixReloadIcon: e, 3390 updateMuteAndSoundIcons: n 3391 }; 3392} 3393function Ga() { 3394 let t = s(rd), o = s(sm); 3395 function e(n, i, r, u) { 3396 i != null && o.launchGameFromVideo({ 3397 gameLink: n, 3398 position: i, 3399 teaserName: r ?? "", 3400 fallbackName: r, 3401 containerIndex: u 3402 }), n && t.navigate(n); 3403 } 3404 return { launchGame: e }; 3405} 3406function jP(t, o) { 3407 if (t & 1) { 3408 let e = _(); 3409 l(0, "button", 10), S("click", function() { 3410 return y(e), w(c().launchGame()); 3411 }), b(1, "img", 11), d(); 3412 } 3413 if (t & 2) { 3414 let e = c(); 3415 T("tabindex", 0)("aria-label", "Play " + (e.videoData().videoName || "game")), a(), p("src", e.videoData().thumbnailUrl, Y), T("alt", e.videoData().videoName || "Video thumbnail"); 3416 } 3417} 3418function $P(t, o) { 3419 if (t & 1) { 3420 let e = _(); 3421 l(0, "div", 8)(1, "button", 12), S("click", function() { 3422 return y(e), w(c().toggleMute()); 3423 }), b(2, "vn-icon", 13), d()(); 3424 } 3425 if (t & 2) { 3426 let e = c(); 3427 a(), T("aria-label", e.muteAriaLabel()), a(), p("name", e.netflixVolumBtn()), T("aria-hidden", !0); 3428 } 3429} 3430function WP(t, o) { 3431 if (t & 1) { 3432 let e = _(); 3433 l(0, "div", 9)(1, "button", 12), S("click", function() { 3434 return y(e), w(c().replayVideo()); 3435 }), b(2, "vn-icon", 13), d()(); 3436 } 3437 if (t & 2) { 3438 let e = c(); 3439 a(), T("aria-label", "Replay video"), a(), p("name", e.netflixReloadIcon()), T("aria-hidden", !0); 3440 } 3441} 3442function UP(t, o) { 3443 if (t & 1) { 3444 let e = _(); 3445 l(0, "ds-list-group", 0)(1, "ds-list-item", 1)(2, "div", 2), b(3, "img", 3), d(), l(4, "div", 4)(5, "button", 5), S("click", function(n) { 3446 return y(e), w(c().toggleFavourite(n)); 3447 }), b(6, "vn-icon", 6), d(), l(7, "button", 7), S("click", function() { 3448 return y(e), w(c().onPlayClick()); 3449 }), C(8), d()()()(); 3450 } 3451 if (t & 2) { 3452 let e = c(); 3453 p("roleType", "list"), a(), p("inverse", !0)("size", "medium")("title", e.videoData().videoName ?? "")("showCenterSlot", !0), a(2), p("src", e.videoData().thumbnailUrl ?? "", Y)("alt", e.videoData().videoName ?? ""), a(2), p("variant", "filled")("kind", "secondary")("size", "medium")("inverse", !0), T("aria-label", e.isFavourite() ? "Remove from favorites" : "Add to favorites"), a(), p("name", e.favouriteIcon()), T("aria-hidden", !0), a(), p("variant", "filled")("size", "medium"), a(), x(e.ctaText()); 3454 } 3455} 3456function HP(t, o) { 3457 if (t & 1) { 3458 let e = _(); 3459 H(0, "div", 2), Qt("click", function() { 3460 return y(e), w(c().launchGame()); 3461 })("keydown.enter", function() { 3462 return y(e), w(c().launchGame()); 3463 })("keydown.space", function(n) { 3464 return y(e), c().launchGame(), w(n.preventDefault()); 3465 }), Pe(1, "img", 3), K(); 3466 } 3467 if (t & 2) { 3468 let e = c(); 3469 T("tabindex", 0)("aria-label", "Play " + (e.videoData().videoName || "game")), a(), Yi("src", e.videoData().thumbnailUrl, Y), T("alt", e.videoData().videoName || "Video preview"); 3470 } 3471} 3472function qP(t, o) { 3473 if (t & 1) { 3474 let e = _(); 3475 H(0, "div", 4), Qt("click", function() { 3476 return y(e), w(c().launchGame()); 3477 })("keydown.enter", function() { 3478 return y(e), w(c().launchGame()); 3479 })("keydown.space", function(n) { 3480 return y(e), c().launchGame(), w(n.preventDefault()); 3481 }), Pe(1, "img", 3), K(); 3482 } 3483 if (t & 2) { 3484 let e = c(); 3485 T("tabindex", 0)("aria-label", "Play " + (e.videoData().videoName || "game")), a(), Yi("src", e.videoData().thumbnailUrl, Y), T("alt", e.videoData().videoName || "Video preview"); 3486 } 3487} 3488function JP(t, o) { 3489 if (t & 1) { 3490 let e = _(); 3491 l(0, "video", 7, 1), S("ended", function() { 3492 return y(e), w(c().onVideoEnded()); 3493 })("click", function() { 3494 return y(e), w(c().launchGame()); 3495 })("keydown.enter", function() { 3496 return y(e), w(c().launchGame()); 3497 })("keydown.space", function(n) { 3498 return y(e), c().launchGame(), w(n.preventDefault()); 3499 }), d(); 3500 } 3501 if (t & 2) { 3502 let e = c(); 3503 p("src", e.videoUrl(), Y)("muted", e.isMuted())("loop", e.videoData().loop)("poster", e.videoData().thumbnailUrl)("hidden", e.isReplay()), T("tabindex", 0)("aria-label", "Play " + (e.videoData().videoName || "game")); 3504 } 3505} 3506function YP(t, o) { 3507 if (t & 1) { 3508 let e = _(); 3509 l(0, "button", 8), S("click", function() { 3510 return y(e), w(c().launchGame()); 3511 }), b(1, "img", 9), d(), l(2, "div", 10)(3, "button", 11), S("click", function() { 3512 return y(e), w(c().replayVideo()); 3513 }), b(4, "vn-icon", 12), d()(); 3514 } 3515 if (t & 2) { 3516 let e = c(); 3517 T("aria-label", "Play " + (e.videoData().videoName || "game")), a(), p("src", e.videoData().thumbnailUrl, Y), T("alt", e.videoData().videoName || "Video thumbnail"), a(2), T("aria-label", "Replay video"), a(), p("name", e.netflixReloadIcon()), T("aria-hidden", !0); 3518 } 3519} 3520function KP(t, o) { 3521 if (t & 1) { 3522 let e = _(); 3523 l(0, "div", 6)(1, "button", 11), S("click", function() { 3524 return y(e), w(c().toggleMute()); 3525 }), b(2, "vn-icon", 12), d()(); 3526 } 3527 if (t & 2) { 3528 let e = c(); 3529 a(), T("aria-label", e.muteAriaLabel()), a(), p("name", e.netflixVolumBtn()), T("aria-hidden", !0); 3530 } 3531} 3532function QP(t, o) { 3533 if (t & 1 && (l(0, "div", 3), b(1, "cw-mp4-video", 6), d()), t & 2) { 3534 let e = c(), n = c(); 3535 a(), p("videoData", e)("teaserName", n.teaserName())("isVideoTileV2", n.isVideoTileV2())("containerIndex", n.containerIndex()); 3536 } 3537} 3538function XP(t, o) { 3539 if (t & 1 && (l(0, "div", 4), b(1, "cw-gif-tag", 7), d()), t & 2) { 3540 let e = c(); 3541 a(), p("videoData", e); 3542 } 3543} 3544function ZP(t, o) { 3545 if (t & 1 && (l(0, "div", 3), b(1, "cw-cms-video", 8), d()), t & 2) { 3546 let e = c(), n = c(); 3547 a(), p("videoData", e)("teaserName", n.teaserName())("containerIndex", n.containerIndex()); 3548 } 3549} 3550function eS(t, o) { 3551 if (t & 1) { 3552 let e = _(); 3553 l(0, "cw-game-info", 9), S("launchGame", function() { 3554 return y(e), w(c(2).launchGame()); 3555 }), d(); 3556 } 3557 if (t & 2) { 3558 let e = c(), n = c(); 3559 p("videoData", e)("containerInfo", n.containerInfo()); 3560 } 3561} 3562function tS(t, o) { 3563 if (t & 1 && (l(0, "div", 1)(1, "div", 2), f(2, QP, 2, 4, "div", 3), f(3, XP, 2, 1, "div", 4), f(4, ZP, 2, 3, "div", 3), d(), f(5, eS, 1, 2, "cw-game-info", 5), d()), t & 2) { 3564 let e = c(); 3565 k("background-image", e.backgroundStyle()), L("V2", e.isVideoTileV2()), a(2), h(e.isMp4Video() ? 2 : -1), a(), h(e.isGifSvg() ? 3 : -1), a(), h(e.isCmsVideo() ? 4 : -1), a(), h(e.isVideoTileV2() ? 5 : -1); 3566 } 3567} 3568function nS(t, o) { 3569 if (t & 1 && (l(0, "div", 0), b(1, "cw-casino-video", 2), d()), t & 2) { 3570 let e = c(); 3571 a(), p("containerInfo", e.containerInfo())("containerIndex", e.containerIndex()); 3572 } 3573} 3574function iS(t, o) { 3575 t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-casino-video-skeleton"), d()), t & 2 && p("containerId", c().containerMetadata().id); 3576} 3577function aS(t, o) { 3578 if (t & 1) { 3579 let e = _(); 3580 l(0, "div", 3)(1, "img", 13), S("error", function() { 3581 return y(e), w(c(2).onGameIconError()); 3582 }), d()(); 3583 } 3584 if (t & 2) { 3585 let e = c(2); 3586 a(), p("ngSrc", e.imageUrl())("alt", e.thumbnail().title || "Game thumbnail"); 3587 } 3588} 3589function oS(t, o) { 3590 t & 1 && (l(0, "div", 3), b(1, "div", 14), d()); 3591} 3592function rS(t, o) { 3593 if (t & 1 && (l(0, "div", 5), C(1), d()), t & 2) { 3594 let e = c(2); 3595 a(), x(e.thumbnail().title); 3596 } 3597} 3598function sS(t, o) { 3599 if (t & 1 && (l(0, "div", 6), C(1), d()), t & 2) { 3600 let e = c(2); 3601 a(), x(e.thumbnail().subTitle); 3602 } 3603} 3604function cS(t, o) { 3605 if (t & 1 && (l(0, "span", 16), C(1), d()), t & 2) { 3606 let e = o.$implicit, n = c(3); 3607 k("color", n.thumbnail().stickerColor)("background", n.thumbnail().stickerBgColor), a(), E(" ", e,
3607" "); 3608 } 3609} 3610function lS(t, o) { 3611 if (t & 1 && (l(0, "div", 7), D(1, cS, 2, 5, "span", 15, ht), d()), t & 2) { 3612 let e = c(2); 3613 a(), R(e.stickers()); 3614 } 3615} 3616function dS(t, o) { 3617 if (t & 1) { 3618 let e = _(); 3619 b(0, "div", 0), l(1, "div", 1)(2, "div", 2), S("click", function() { 3620 return y(e), w(c().launchGame()); 3621 })("keydown.enter", function() { 3622 return y(e), w(c().launchGame()); 3623 })("keydown.space", function() { 3624 return y(e), w(c().launchGame()); 3625 }), f(3, aS, 2, 2, "div", 3)(4, oS, 2, 0, "div", 3), l(5, "div", 4), f(6, rS, 2, 1, "div", 5), f(7, sS, 2, 1, "div", 6), f(8, lS, 3, 0, "div", 7), d(), l(9, "button", 8), S("click", function(n) { 3626 return y(e), c().launchGame(), w(n.stopPropagation()); 3627 }), C(10), d(), b(11, "div", 9), d(), l(12, "div", 10)(13, "div", 11), S("click", function(n) { 3628 return y(e), w(c().dismissThumbnail(n)); 3629 })("keydown.enter", function(n) { 3630 return y(e), w(c().dismissThumbnail(n)); 3631 })("keydown.space", function(n) { 3632 return y(e), w(c().dismissThumbnail(n)); 3633 }), b(14, "vn-icon", 12), d(), b(15, "div", 9), d()(); 3634 } 3635 if (t & 2) { 3636 let e = c(); 3637 k("border-bottom-color", e.thumbnail().bgColor), a(), k("background", e.thumbnail().bgColor), a(2), h(e.usesFallbackImage() ? 4 : 3), a(2), k("color", e.thumbnail().textColor), a(), h(e.thumbnail().title ? 6 : -1), a(), h(e.thumbnail().subTitle ? 7 : -1), a(), h(e.thumbnail().isVipThumbnail && e.stickers().length > 0 ? 8 : -1), a(), k("color", e.thumbnail().textColor), p("wrapText", !1), a(), E(" ", e.thumbnail().ctaText, " "), a(2), k("color", e.thumbnail().textColor); 3638 } 3639} 3640function gS(t, o) { 3641 if (t & 1) { 3642 let e = _(); 3643 l(0, "div", 3)(1, "button", 9), S("click", function() { 3644 return y(e), w(c().scrollLeft()); 3645 }), d()(); 3646 } 3647} 3648function mS(t, o) { 3649 if (t & 1) { 3650 let e = _(); 3651 l(0, "div", 4)(1, "button", 10), S("click", function() { 3652 return y(e), w(c().scrollRight()); 3653 }), d()(); 3654 } 3655} 3656function pS(t, o) { 3657 if (t & 1 && b(0, "vn-icon", 14), t & 2) { 3658 let e = c().$implicit; 3659 p("size", c().iconSize)("name", e.iconName); 3660 } 3661} 3662function uS(t, o) { 3663 if (t & 1 && (l(0, "ds-notification-bubble", 16), C(1), d()), t & 2) { 3664 let e = c().$implicit, n = c(); 3665 p("variant", n.bubbleVariant())("inverse", n.bubbleInverse()), a(), E(" ", n.cappedCount(e.signPostingCount), " "); 3666 } 3667} 3668function hS(t, o) { 3669 if (t & 1) { 3670 let e = _(); 3671 l(0, "div", 11)(1, "a", 12), S("click", function(n) { 3672 let i = y(e).$implicit; 3673 return w(c().onPillClick(n, i)); 3674 }), l(2, "span", 13), f(3, pS, 1, 2, "vn-icon", 14), d(), C(4), l(5, "span", 15), f(6, uS, 2, 3, "ds-notification-bubble", 16), d()()(); 3675 } 3676 if (t & 2) { 3677 let e = o.$implicit, n = c(); 3678 W("pill-item " + e.id), L("active", n.isActive(e)), p("id", e.id), T("data-subnav-id", e.id), a(), p("variant", n.pillVariant())("inverse", n.pillInverse())("selected", n.isActive(e))("href", e.url, Y), a(2), h(e.iconName ? 3 : -1), a(), E(" ", e.title, " "), a(2), h(e.signPostingCount ? 6 : -1); 3679 } 3680} 3681function fS(t, o) { 3682 t & 1 && b(0, "cw-pill-navigation"); 3683} 3684function vS(t, o) { 3685 if (t & 1 && b(0, "span", 11), t & 2) { 3686 let e = c().$implicit; 3687 p("ngClass", e.iconName); 3688 } 3689} 3690function bS(t, o) { 3691 if (t & 1 && (l(0, "ds-notification-bubble", 13), C(1), d()), t & 2) { 3692 let e = c().$implicit, n = c(4); 3693 T("aria-label", e.signPostingCount + " new games"), a(), E(" ", n.cappedCount(e.signPostingCount), " "); 3694 } 3695} 3696function CS(t, o) { 3697 if (t & 1 && (l(0, "div", 14), b(1, "cw-game-thumbnail", 15), d()), t & 2) { 3698 let e = c().$implicit, n = c(4); 3699 a(), p("subNavId", e.id)("layoutId", n.layoutId() || ""); 3700 } 3701} 3702function yS(t, o) { 3703 if (t & 1) { 3704 let e = _(); 3705 l(0, "li", 9)(1, "a", 10), S("click", function(n) { 3706 let i = y(e).$implicit; 3707 return w(c(4).goTo(n, i)); 3708 }), f(2, vS, 1, 1, "span", 11), l(3, "span", 12), C(4), d()(), f(5, bS, 2, 2, "ds-notification-bubble", 13), f(6, CS, 2, 2, "div", 14), d(); 3709 } 3710 if (t & 2) { 3711 let e = o.$implicit, n = c(4); 3712 L("active", n.isActiveNav(e)), a(), p("href", e.url, Y), a(), h(n.subNavConfigEnableDesktopIcon ? 2 : -1), a(2), x(e.title), a(), h(e.signPostingCount ? 5 : -1), a(), h(n.hasThumbnail(e.id) ? 6 : -1); 3713 } 3714} 3715function wS(t, o) { 3716 t & 1 && b(0, "span", 17); 3717} 3718function PS(t, o) { 3719 if (t & 1 && b(0, "span", 11), t & 2) { 3720 let e = c().$implicit; 3721 p("ngClass", e.iconName); 3722 } 3723} 3724function SS(t, o) { 3725 if (t & 1 && (l(0, "ds-notification-bubble", 13), C(1), d()), t & 2) { 3726 let e = c().$implicit, n = c(6); 3727 T("aria-label", e.signPostingCount + " new games"), a(), E(" ", n.cappedCount(e.signPostingCount), " "); 3728 } 3729} 3730function MS(t, o) { 3731 if (t & 1) { 3732 let e = _(); 3733 l(0, "li")(1, "div", 21)(2, "a", 10), S("click", function(n) { 3734 let i = y(e).$implicit; 3735 return w(c(6).goTo(n, i)); 3736 }), f(3, PS, 1, 1, "span", 11), l(4, "span", 12), C(5), d()(), f(6, SS, 2, 2, "ds-notification-bubble", 13), d()(); 3737 } 3738 if (t & 2) { 3739 let e = o.$implicit, n = c(6); 3740 L("active", n.isActiveNav(e))("border-nav-active", n.isActiveNav(e)), a(2), p("href", e.url, Y), a(), h(n.subNavConfigEnableDesktopIcon ? 3 : -1), a(2), x(e.title), a(), h(e.signPostingCount ? 6 : -1); 3741 } 3742} 3743function OS(t, o) { 3744 if (t & 1) { 3745 let e = _(); 3746 l(0, "ul", 19), S("mouseenter", function() { 3747 return y(e), w(c(5).overlayMouseEnter()); 3748 })("mouseleave", function() { 3749 return y(e), w(c(5).moreMouseLeave()); 3750 }), D(1, MS, 7, 8, "li", 20, qa), d(); 3751 } 3752 if (t & 2) { 3753 let e = c(5); 3754 a(), R(e.moreNavItems()); 3755 } 3756} 3757function xS(t, o) { 3758 if (t & 1) { 3759 let e = _(); 3760 l(0, "li", 16), S("click", function(n) { 3761 return y(e), w(c(4).moreClick(n)); 3762 })("mouseenter", function() { 3763 return y(e), w(c(4).moreHover(!1)); 3764 })("mouseleave", function() { 3765 return y(e), w(c(4).moreMouseLeave()); 3766 }), l(1, "a"), f(2, wS, 1, 0, "span", 17), l(3, "span", 12), C(4, "More"), d()(), f(5, OS, 3, 0, "ul", 18), d(); 3767 } 3768 if (t & 2) { 3769 let e = c(4); 3770 L("active-more", e.showMoreActive()), a(2), h(e.subNavConfigEnableDesktopIcon ? 2 : -1), a(3), h(e.showMoreDropdown() ? 5 : -1); 3771 } 3772} 3773function _S(t, o) { 3774 if (t & 1 && (l(0, "div", 3)(1, "div", 4)(2, "div", 5)(3, "ul", 6), D(4, yS, 7, 7, "li", 7, qa), f(6, xS, 6, 4, "li", 8), d()()()()), t & 2) { 3775 let e = c(3); 3776 a(4), R(e.visibleNavItems()), a(2), h(e.showMoreButton() ? 6 : -1); 3777 } 3778} 3779function kS(t, o) { 3780 if (t & 1 && (l(0, "ds-notification-bubble", 13), C(1), d()), t & 2) { 3781 let e = o.navItem, n = c(4); 3782 T("aria-label", e.signPostingCount + " new games"), a(), E(" ", n.cappedCount(e.signPostingCount), " "); 3783 } 3784} 3785function IS(t, o) { 3786 if (t & 1 && (l(0, "span", 25), oe(1, 27), d()), t & 2) { 3787 let e = c(2).$implicit; 3788 c(); 3789 let n = ee(1); 3790 a(), p("ngTemplateOutlet", n)("ngTemplateOutletContext", ne(2, vs, e)); 3791 } 3792} 3793function TS(t, o) { 3794 if (t & 1) { 3795 let e = _(); 3796 l(0, "a", 10), S("click", function(n) { 3797 y(e); 3798 let i = c().$implicit; 3799 return w(c(4).goTo(n, i)); 3800 }), l(1, "span")(2, "div", 24), f(3, IS, 2, 4, "span", 25), d(), l(4, "div", 26)(5, "div", 12), C(6), d()()()(); 3801 } 3802 if (t & 2) { 3803 let e = c().$implicit; 3804 p("href", e.url, Y), a(2), p("ngClass", e.iconName), T("aria-hidden", !0), a(), h(e.signPostingCount ? 3 : -1), a(3), x(e.title); 3805 } 3806} 3807function NS(t, o) { 3808 if (t & 1 && oe(0, 27), t & 2) { 3809 let e = c(2).$implicit; 3810 c(), p("ngTemplateOutlet", ee(1))("ngTemplateOutletContext", ne(2, vs, e)); 3811 } 3812} 3813function LS(t, o) { 3814 if (t & 1) { 3815 let e = _(); 3816 l(0, "a", 10), S("click", function(n) { 3817 y(e); 3818 let i = c().$implicit; 3819 return w(c(4).goTo(n, i)); 3820 }), b(1, "div", 24), l(2, "span", 12), C(3), d()(), f(4, NS, 1, 4, "ng-container", 27); 3821 } 3822 if (t & 2) { 3823 let e = c().$implicit; 3824 p("href", e.url, Y), a(), p("ngClass", e.iconName), T("aria-hidden", !0), a(2), x(e.title), a(), h(e.signPostingCount ? 4 : -1); 3825 } 3826} 3827function GS(t, o) { 3828 if (t & 1 && (l(0, "li", 9), f(1, TS, 7, 5, "a", 23)(2, LS, 5, 5), d()), t & 2) { 3829 let e = o.$implicit, n = c(4); 3830 L("active", n.isActiveNav(e)), T("data-subnav-id", e.id), a(), h(n.enableTopNavStyling ? 1 : 2); 3831 } 3832} 3833function ES(t, o) { 3834 if (t & 1 && (te(0, kS, 2, 2, "ng-template", null, 0, Ne), l(2, "div", 22)(3, "div", 4)(4, "ul"), D(5, GS, 3, 4, "li", 7, qa), d()()()), t & 2) { 3835 let e = c(3); 3836 a(5), R(e.mobileNavItems()); 3837 } 3838} 3839function AS(t, o) { 3840 if (t & 1 && (l(0, "nav", 2), f(1, _S, 7, 1, "div", 3), f(2, ES, 7, 0), d()), t & 2) { 3841 let e = c(2); 3842 k("padding-right", "0.75rem"), L("enabled-desktop-icons", e.subNavConfigEnableDesktopIcon)("top-nav-newstyling", e.enableTopNavStyling), a(), h(e.isMobile() ? -1 : 1), a(), h(e.isMobile() ? 2 : -1); 3843 } 3844} 3845function RS(t, o) { 3846 if (t & 1 && (l(0, "div", 28)(1, "div", 29), b(2, "div", 30)(3, "cw-game-thumbnail", 31), d()()), t & 2) { 3847 let e = o.$implicit, n = c(3);
3848 a(2), k("left", n.getArrowPositionFor(e), "px"), a(), p("subNavId", e)("layoutId", n.layoutId() || "")("isTouch", !0); 3849 } 3850} 3851function DS(t, o) { 3852 t & 1 && D(0, RS, 4, 5, "div", 28, ht), t & 2 && R(c(2).visibleThumbnailIds()); 3853} 3854function zS(t, o) { 3855 if (t & 1 && (f(0, fS, 1, 0, "cw-pill-navigation")(1, AS, 3, 8, "nav", 1), f(2, DS, 2, 0)), t & 2) { 3856 let e = c(); 3857 h(e.enablePillsSubNavigation() ? 0 : 1), a(2), h(e.isMobile() ? 2 : -1); 3858 } 3859} 3860function BS(t) { 3861 return t.get(qn); 3862} 3863function wi(t, o, e) { 3864 if (o || t.vendorName?.toLowerCase() === "pragmaticplay") return !0; 3865 if (!t.tableStatus) return !1; 3866 let n = t.countdown?.type?.toLowerCase(); 3867 return n === "full time" ? !0 : n === "bounded" ? !e : !0; 3868} 3869function FS(t) { 3870 return Lm[t?.toLowerCase() ?? ""] ?? "none"; 3871} 3872function VS(t) { 3873 let o = /* @__PURE__ */ new Map(); 3874 for (let [i, r] of Object.entries(t ?? {})) o.set(i.toLowerCase(), r); 3875 let e = (i, r = "") => o.get(i.toLowerCase()) ?? r, n = (i, r) => { 3876 let u = o.get(i.toLowerCase()); 3877 return u && u.trim() ? u : r; 3878 }; 3879 return { 3880 boxBgColor: e("NewsFeedBoxBgcolor"), 3881 boxOuterLineColor: n("NewsFeedBoxOuterLineColor", "#000000"), 3882 itemBgColor: e("NewsFeedItemBgcolor"), 3883 blurEdgeColor: e("NewsFeedBlurEdgeColor"), 3884 animationTiming: e("NewsFeedAnimationTiming", "28s"), 3885 iconColor: e("IconColor"), 3886 headerTextColor: e("HeaderTextColor"), 3887 subHeaderTextColor: e("SubHeaderTextColor"), 3888 jackpotValueColor: e("JackpotValueColor"), 3889 liveNowText: e("LiveNowText"), 3890 liveCasinoGreenColor: e("LiveCasinoGreenColor"), 3891 liveCasinoRedColor: e("LiveCasinoRedColor"), 3892 liveCasinoBlackColor: e("LiveCasinoBlackColor") 3893 }; 3894} 3895function Lr(t) { 3896 return Math.max(t, 0); 3897} 3898function jS(t, o) { 3899 if (t & 1 && (H(0, "div", 2), Pe(1, "i"), K()), t & 2) { 3900 let e = c(2); 3901 T("aria-hidden", !0), a(), W(e.item().iconClass), k("color", e.attributes().iconColor); 3902 } 3903} 3904function $S(t, o) { 3905 if (t & 1) { 3906 let e = _(); 3907 H(0, "div", 1), Qt("click", function() { 3908 return y(e), w(c().onClick()); 3909 })("keydown.enter", function() { 3910 return y(e), w(c().onClick()); 3911 })("keydown.space", function(n) { 3912 y(e); 3913 let i = c(); 3914 return n.preventDefault(), w(i.onClick()); 3915 }), f(1, jS, 2, 5, "div", 2), H(2, "div", 3)(3, "div", 4), C(4), K(), H(5, "div", 5), C(6), K()(), H(7, "div", 6), C(8), K()(); 3916 } 3917 if (t & 2) { 3918 let e = c(); 3919 k("border-color", e.attributes().boxOuterLineColor)("background-color", e.attributes().itemBgColor), T("aria-label", "Launch " + (e.jackpotHeader() || "jackpot")), a(), h(e.item().iconClass ? 1 : -1), a(2), k("color", e.attributes().headerTextColor), a(), x(e.jackpotHeader()), a(), k("color", e.attributes().subHeaderTextColor), a(), x(e.gameName()), a(), k("color", e.attributes().jackpotValueColor), a(), x(e.jackpotAmount()); 3920 } 3921} 3922function WS(t, o) { 3923 t & 1 && C(0), t & 2 && E(" ", c().time(), ` 3924`); 3925} 3926function US(t, o) { 3927 if (t & 1 && (l(0, "span", 2), C(1), d()), t & 2) { 3928 let e = c(); 3929 p("ngStyle", ne(3, Ps, e.liveGamedata().bet_limit_min_color)), a(), Le("", e.liveGameInfo().betLimits.symbol, "", e.formattedMin()); 3930 } 3931} 3932function HS(t, o) { 3933 t & 1 && (l(0, "span", 3), C(1, "-"), d()); 3934} 3935function qS(t, o) { 3936 if (t & 1 && (l(0, "span", 4), C(1), d()), t & 2) { 3937 let e = c(); 3938 p("ngStyle", ne(3, Ps, e.liveGamedata().bet_limit_max_color)), a(), Le("", e.liveGameInfo().betLimits.symbol, "", e.formattedMax()); 3939 } 3940} 3941function JS(t, o) { 3942 if (t & 1 && (l(0, "span", 5), b(1, "img", 10), d()), t & 2) { 3943 let e = c(); 3944 a(), p("src", e.liveGamedata().flagIconUrl, Y), T("alt", e.liveGameInfo().language ? "Language: " + e.liveGameInfo().language : ""); 3945 } 3946} 3947function YS(t, o) { 3948 if (t & 1 && (l(0, "div", 6), b(1, "vn-icon", 11), l(2, "span", 12), C(3), d()()), t & 2) { 3949 c(); 3950 let e = le(6); 3951 a(3), x(e); 3952 } 3953} 3954function KS(t, o) { 3955 if (t & 1 && (l(0, "li", 14), C(1), d()), t & 2) { 3956 let e = o.$implicit, n = c(2); 3957 p("ngStyle", n.lastResultStylesMap().get(e) ?? Lt(3, Em)), T("aria-label", "Result " + e + " " + (n.resultColorNameMap().get(e) ?? "")), a(), E(" ", e, " "); 3958 } 3959} 3960function QS(t, o) { 3961 if (t & 1 && (l(0, "div", 7)(1, "ul", 13), D(2, KS, 2, 4, "li", 14, ht), d()()), t & 2) { 3962 let e = c(); 3963 a(2), R(e.lastResultsDisplayed()); 3964 } 3965} 3966function XS(t, o) { 3967 if (t & 1) { 3968 let e = _(); 3969 l(0, "p", 15), C(1), d(), l(2, "p", 16)(3, "cw-lc-timer", 17), S("timerEnd", function(n) {
3970 return y(e), w(c().onTableTimerEnd(n)); 3971 }), d()(); 3972 } 3973 if (t & 2) { 3974 let e = c(); 3975 a(), x(e.liveGamedata().TableOfflineContent2), a(2), p("startTime", e.offlineTableTime()); 3976 } 3977} 3978function ZS(t, o) { 3979 if (t & 1 && (l(0, "span", 3), C(1), d()), t & 2) { 3980 let e = c(); 3981 p("ngStyle", ne(3, Ss, e.liveGamedata().bet_limit_min_color)), a(), Le("", e.liveGameInfo().betLimits.symbol, "", e.formattedMin()); 3982 } 3983} 3984function eM(t, o) { 3985 t & 1 && (l(0, "span", 4), C(1, "-"), d()); 3986} 3987function tM(t, o) { 3988 if (t & 1 && (l(0, "span", 5), C(1), d()), t & 2) { 3989 let e = c(); 3990 p("ngStyle", ne(3, Ss, e.liveGamedata().bet_limit_max_color)), a(), Le("", e.liveGameInfo().betLimits.symbol, "", e.formattedMax()); 3991 } 3992} 3993function nM(t, o) { 3994 if (t & 1 && (l(0, "span", 6), b(1, "img", 13), d()), t & 2) { 3995 let e = c(); 3996 a(), p("src", e.liveGamedata().flagIconUrl, Y), T("alt", e.liveGameInfo().language ? "Language: " + e.liveGameInfo().language : ""); 3997 } 3998} 3999function iM(t, o) { 4000 if (t & 1 && (l(0, "span", 14), b(1, "vn-icon", 15), d()), t & 2) { 4001 let e = o.$implicit; 4002 L("seat-icon--occupied", e)("seat-icon--available", !e); 4003 } 4004} 4005function aM(t, o) { 4006 t & 1 && oe(0); 4007} 4008function oM(t, o) { 4009 if (t & 1 && te(0, aM, 1, 0, "ng-container", 16), t & 2) { 4010 let e = c(); 4011 p("ngTemplateOutlet", ee(7))("ngTemplateOutletContext", ne(2, Ms, e.isTableFull())); 4012 } 4013} 4014function rM(t, o) { 4015 t & 1 && oe(0); 4016} 4017function sM(t, o) { 4018 if (t & 1 && te(0, rM, 1, 0, "ng-container", 16), t & 2) { 4019 let e = o.$implicit; 4020 c(2), p("ngTemplateOutlet", ee(7))("ngTemplateOutletContext", ne(2, Ms, e)); 4021 } 4022} 4023function cM(t, o) { 4024 if (t & 1 && (l(0, "div", 8), D(1, sM, 1, 4, "ng-container", null, Ze), d()), t & 2) { 4025 let e = c(); 4026 a(), R(e.seatsAvailable()); 4027 } 4028} 4029function lM(t, o) { 4030 if (t & 1 && (l(0, "div", 10)(1, "span"), C(2), d()()), t & 2) { 4031 let e = c(); 4032 a(2), x(e.liveGamedata().BetBehindRedesign); 4033 } 4034} 4035function dM(t, o) { 4036 if (t & 1) { 4037 let e = _(); 4038 l(0, "p", 17), C(1), d(), l(2, "p", 18)(3, "cw-lc-timer", 19), S("timerEnd", function(n) { 4039 return y(e), w(c().onTableTimerEnd(n)); 4040 }), d()(); 4041 } 4042 if (t & 2) { 4043 let e = c(); 4044 a(), x(e.liveGamedata().TableOfflineContent2), a(2), p("startTime", e.offlineTableTime()); 4045 } 4046} 4047function gM(t, o) { 4048 if (t & 1 && (l(0, "span", 2), C(1), d()), t & 2) { 4049 let e = c(); 4050 p("ngStyle", ne(3, Os, e.liveGamedata().bet_limit_min_color)), a(), Le("", e.liveGameInfo().betLimits.symbol, "", e.formattedMin()); 4051 } 4052} 4053function mM(t, o) { 4054 t & 1 && (l(0, "span", 3), C(1, "-"), d()); 4055} 4056function pM(t, o) { 4057 if (t & 1 && (l(0, "span", 4), C(1), d()), t & 2) { 4058 let e = c(); 4059 p("ngStyle", ne(3, Os, e.liveGamedata().bet_limit_max_color)), a(), Le("", e.liveGameInfo().betLimits.symbol, "", e.formattedMax()); 4060 } 4061} 4062function uM(t, o) { 4063 if (t & 1 && (l(0, "span", 5), b(1, "img", 9), d()), t & 2) { 4064 let e = c(); 4065 a(), p("src", e.liveGamedata().flagIconUrl, Y), T("alt", e.liveGameInfo().language ? "Language: " + e.liveGameInfo().language : ""); 4066 } 4067} 4068function hM(t, o) { 4069 if (t & 1 && (l(0, "div", 6), b(1, "vn-icon", 10), l(2, "span", 11), C(3), d()()), t & 2) { 4070 c(); 4071 let e = le(6); 4072 a(3), x(e); 4073 } 4074} 4075function fM(t, o) { 4076 if (t & 1) { 4077 let e = _(); 4078 l(0, "p", 12), C(1), d(), l(2, "p", 13)(3, "cw-lc-timer", 14), S("timerEnd", function(n) { 4079 return y(e), w(c().onTableTimerEnd(n)); 4080 }), d()(); 4081 } 4082 if (t & 2) { 4083 let e = c(); 4084 a(), x(e.liveGamedata().TableOfflineContent2), a(2), p("startTime", e.offlineTableTime()); 4085 } 4086} 4087function vM(t, o) { 4088 if (t & 1) { 4089 let e = _(); 4090 l(0, "cw-roulette", 2), S("timerEnd", function(n) { 4091 return y(e), w(c().onTimerEnd(n)); 4092 }), d(); 4093 } 4094 if (t & 2) { 4095 let e = c(); 4096 p("game", e.game())("liveGameInfo", e.liveGameInfo())("liveGamedata", e.liveGamedata())("showActivePlayerCount", e.showActivePlayerCount()); 4097 } 4098} 4099function bM(t, o) { 4100 if (t & 1) { 4101 let e = _(); 4102 l(0, "cw-blackjack", 3), S("timerEnd", function(n) { 4103 return y(e), w(c().onTimerEnd(n)); 4104 }), d(); 4105 } 4106 if (t & 2) { 4107 let e = c(); 4108 p("game", e.game())("liveGameInfo", e.liveGameInfo())("liveGamedata", e.liveGamedata()); 4109 } 4110} 4111function CM(t, o) { 4112 if (t & 1) { 4113 let e = _(); 4114 l(0, "cw-baccarat", 3), S("timerEnd", function(n) { 4115 return y(e), w(c().onTimerEnd(n)); 4116 }), d(); 4117 } 4118 if (t & 2) { 4119 let e = c(); 4120 p("game", e.game())("liveGameInfo", e.liveGameInfo())("liveGamedata", e.liveGamedata()); 4121 } 4122} 4123function yM(t, o) { 4124 t & 1 && b(0, "img", 4), t & 2 && p("src", c(2).dealerImage(), Y); 4125} 4126function wM(t, o) { 4127 if (t & 1 && b(0, "i"), t & 2) { 4128 let e = c(2); 4129 W(e.item().iconClass), k("color", e.attributes().iconColor); 4130 } 4131} 4132function PM(t, o) { 4133 if (t & 1 && (l(0, "div", 11), b(1, "span", 12), C(2), d()), t & 2) { 4134 let e = c(2); 4135 k("color", e.attributes().subHeaderTextColor), a(2), E("", e.attributes().liveNowText, " "); 4136 } 4137} 4138function SM(t, o) { 4139 if (t & 1 && (l(0, "div", 13), C(1), d()), t & 2) { 4140 let e = c(2); 4141 k("color", e.attributes().subHeaderTextColor), a(), x(e.item().subTitle); 4142 } 4143} 4144function MM(t, o) { 4145 if (t & 1 && (l(0, "li"), C(1), d()), t & 2) { 4146 let e = o.$implicit; 4147 k("background-color", c(3).lastResultNumberColor(e)), a(), x(e); 4148 } 4149} 4150function OM(t, o) { 4151 if (t & 1 && (l(0, "div", 10)(1, "ul", 14), D(2, MM, 2, 3, "li", 15, Fm), d()()), t & 2) { 4152 let e = c(2); 4153 a(2), R(e.resultsDisplayed()); 4154 } 4155} 4156function xM(t, o) { 4157 if (t & 1) { 4158 let e = _(); 4159 l(0, "div", 2), S("click", function() { 4160 return y(e), w(c().onClick()); 4161 })("keydown.enter", function() { 4162 return y(e), w(c().onClick()); 4163 })("keydown.space", function(n) { 4164 y(e); 4165 let i = c(); 4166 return n.preventDefault(), w(i.onClick()); 4167 }), l(1, "div", 3), f(2, yM, 1, 1, "img", 4)(3, wM, 1, 4, "i", 5), d(), l(4, "div", 6)(5, "div", 7), C(6), d(), f(7, PM, 3, 3, "div", 8)(8, SM, 2, 3, "div", 9), d(), f(9, OM, 4, 0, "div", 10), d(); 4168 } 4169 if (t & 2) { 4170 let e = c(); 4171 k("border-color", e.attributes().boxOuterLineColor)("background-color", e.attributes().itemBgColor), T("aria-label", "Launc
4171h " + (e.gameName() || e.item().gameId || "live game")), a(), T("aria-hidden", !0), a(), h(e.showDealerImage() ? 2 : 3), a(3), k("color", e.attributes().headerTextColor), a(), x(e.gameName()), a(), h(e.showLiveStatus() ? 7 : 8), a(2), h(e.showResults() ? 9 : -1); 4172 } 4173} 4174function _M(t, o) { 4175 if (t & 1) { 4176 let e = _(); 4177 l(0, "cw-lc-timer", 16), S("timerEnd", function(n) { 4178 return y(e), w(c().onTimerEnd(n)); 4179 }), d(); 4180 } 4181 if (t & 2) { 4182 let e = c(); 4183 p("showTimer", !1)("startTime", e.offlineTableTime()); 4184 } 4185} 4186function kM(t, o) { 4187 if (t & 1) { 4188 let e = _(); 4189 H(0, "div", 1), Qt("click", function() { 4190 return y(e), w(c().onClick()); 4191 })("keydown.enter", function() { 4192 return y(e), w(c().onClick()); 4193 })("keydown.space", function(n) { 4194 y(e); 4195 let i = c(); 4196 return n.preventDefault(), w(i.onClick()); 4197 }), H(1, "div", 2)(2, "img", 3), Qt("error", function() { 4198 return y(e), w(c().onIconError()); 4199 }), K()(), H(3, "div", 4)(4, "div", 5), C(5), K(), H(6, "div", 6), C(7), K()()(); 4200 } 4201 if (t & 2) { 4202 let e = c(); 4203 k("border-color", e.attributes().boxOuterLineColor)("background-color", e.attributes().itemBgColor), T("aria-label", "Launch " + (e.item().header || e.gameName() || "game")), a(), T("aria-hidden", !0), a(), Yi("src", e.iconSrc(), Y), a(2), k("color", e.attributes().headerTextColor), a(), x(e.item().header), a(), k("color", e.attributes().subHeaderTextColor), a(), x(e.gameName()); 4204 } 4205} 4206function IM(t, o) { 4207 if (t & 1 && (H(0, "div", 2), Pe(1, "i"), K()), t & 2) { 4208 let e = c(2); 4209 T("aria-hidden", !0), a(), W(e.item().iconClass), k("color", e.attributes().iconColor); 4210 } 4211} 4212function TM(t, o) { 4213 if (t & 1) { 4214 let e = _(); 4215 H(0, "div", 1), Qt("click", function() { 4216 return y(e), w(c().onClick()); 4217 })("keydown.enter", function() { 4218 return y(e), w(c().onClick()); 4219 })("keydown.space", function(n) { 4220 y(e); 4221 let i = c(); 4222 return n.preventDefault(), w(i.onClick()); 4223 }), f(1, IM, 2, 5, "div", 2), H(2, "div", 3)(3, "div", 4), C(4), K(), H(5, "div", 5), C(6), K()(), H(7, "div", 6), C(8), K()(); 4224 } 4225 if (t & 2) { 4226 let e = c(); 4227 k("border-color", e.attributes().boxOuterLineColor)("background-color", e.attributes().itemBgColor), T("aria-label", e.item().header || e.item().subHeader || "Promotion"), a(), h(e.item().iconClass ? 1 : -1), a(2), k("color", e.attributes().headerTextColor), a(), x(e.item().header), a(), k("color", e.attributes().subHeaderTextColor), a(), x(e.item().subHeader), a(), k("color", e.attributes().jackpotValueColor), a(), x(e.item().value); 4228 } 4229} 4230function NM(t, o) { 4231 if (t & 1 && b(0, "cw-news-feed-jackpot", 1), t & 2) { 4232 let e = c(2); 4233 p("item", e.item())("index", e.index())("layout", e.layout())("containerIndex", e.containerIndex())("attributes", e.attributes()); 4234 } 4235} 4236function LM(t, o) { 4237 if (t & 1 && b(0, "cw-news-feed-newgames", 1), t & 2) { 4238 let e = c(2); 4239 p("item", e.item())("index", e.index())("layout", e.layout())("containerIndex", e.containerIndex())("attributes", e.attributes()); 4240 } 4241} 4242function GM(t, o) { 4243 if (t & 1 && b(0, "cw-news-feed-promo", 1), t & 2) { 4244 let e = c(2); 4245 p("item", e.item())("index", e.index())("layout", e.layout())("containerIndex", e.containerIndex())("attributes", e.attributes()); 4246 } 4247} 4248function EM(t, o) { 4249 if (t & 1 && b(0, "cw-news-feed-live-dealer", 1), t & 2) { 4250 let e = c(2); 4251 p("item", e.item())("index", e.index())("layout", e.layout())("containerIndex", e.containerIndex())("attributes", e.attributes()); 4252 } 4253} 4254function AM(t, o) { 4255 if (t & 1 && (l(0, "div", 0), f(1, NM, 1, 5, "cw-news-feed-jackpot", 1)(2, LM, 1, 5, "cw-news-feed-newgames", 1)(3, GM, 1, 5, "cw-news-feed-promo", 1)(4, EM, 1, 5, "cw-news-feed-live-dealer", 1), d()), t & 2) { 4256 let e, n = c(); 4257 a(), h((e = n.kind()) === "jackpot" ? 1 : e === "newgame" ? 2 : e === "promo" ? 3 : e === "live-dealer" ? 4 : -1); 4258 } 4259} 4260function RM(t, o) { 4261 if (t & 1 && (l(0, "div", 4), b(1, "cw-news-feed-item", 5), d()), t & 2) { 4262 let e = o.$implicit, n = o.$index, i = c(3); 4263 a(), p("item", e)("index", n)("layout", i.layout())("containerIndex", i.containerIndex())("attributes", i.attributes()); 4264 } 4265} 4266function DM(t, o) { 4267 if (t & 1) { 4268 let e = _(); 4269 l(0, "div", 3), S("pointerdown", function() { 4270 return y(e), w(c(2).pauseAnimation()); 4271 })("focusin", function() { 4272 return y(e), w(c(2).pauseAnimation()); 4273 }), D(1, RM, 2, 5, "div", 4, Um), d(); 4274 } 4275 if (t & 2) { 4276 let e = o.$implicit, n = c(2); 4277 k("--%NS%newsFeedAnimationState", n.animationState()), T("aria-hidden", e > 1), a(), R(n.feedItems()); 4278 } 4279} 4280function zM(t, o) { 4281 if (t & 1 && (l(0, "div", 1), D(1, DM, 3, 3, "div", 2, ht), d()), t & 2) { 4282 let e = c(); 4283 k("background-color", e.attributes().boxBgColor), T("aria-label", "News feed"), a(), R(e.tickerIterations); 4284 } 4285} 4286function BM(t, o) { 4287 if (t & 1 && (l(0, "div", 2), b(1, "img", 8), d()), t & 2) { 4288 let e = c(2); 4289 a(), p("src", e.superButton().image.src, Y)("alt", e.superButton().image.alt ?? ""); 4290 } 4291} 4292function FM(t, o) { 4293 if (t & 1) { 4294 let e = _(); 4295 l(0, "div", 6)(1, "cw-gametile-cta", 9), S("click", function(n) { 4296 return y(e), w(c(2).onClick(n)); 4297 }), d()(); 4298 } 4299 if (t & 2) { 4300 let e = c(2); 4301 a(), p("kind", e.ctaKind())("size", "medium")("customBgColor", e.styles().ctaBgColor)("customTextColor", e.styles().ctaTextColor)("cta_text", e.superButton().cta.text); 4302 } 4303}
4304function VM(t, o) { 4305 if (t & 1 && (l(0, "div", 10)(1, "div", 11), C(2), d()()), t & 2) { 4306 let e = c(2); 4307 k("background-color", e.styles().termsDescriptionBgColor)("color", e.styles().termsDescriptionTextColor), a(2), x(e.superButton().termsAndConditions); 4308 } 4309} 4310function jM(t, o) { 4311 if (t & 1 && (l(0, "div", 0)(1, "div", 1), f(2, BM, 2, 2, "div", 2), l(3, "div", 3)(4, "div", 4), C(5), d(), l(6, "div", 5), C(7), d()(), f(8, FM, 2, 5, "div", 6), d(), f(9, VM, 3, 5, "div", 7), d()), t & 2) { 4312 let e = c(); 4313 a(), k("background-color", e.styles().containerBgColor), L("reverse", e.imgPositionReversed()), a(), h(e.superButton()?.image?.src ? 2 : -1), a(2), k("color", e.styles().descriptionTextColor), a(), x(e.superButton().title), a(), k("color", e.styles().descriptionTextColor), a(), x(e.superButton().description), a(), h(e.superButton()?.cta?.text ? 8 : -1), a(), h(e.showTerms() ? 9 : -1); 4314 } 4315} 4316function $M(t, o) { 4317 if (t & 1) { 4318 let e = _(); 4319 l(0, "cw-super-button", 2), S("resolved", function(n) { 4320 return y(e), w(c().onResolved(n)); 4321 }), d(); 4322 } 4323 if (t & 2) { 4324 let e = c(); 4325 p("containerInfo", e.containerInfo())("subnav", e.subnav())("containerIndex", e.containerIndex())("layoutId", e.layoutId()); 4326 } 4327} 4328function WM(t, o) { 4329 t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-super-button-skeleton"), d()), t & 2 && p("containerId", c().containerMetadata().id); 4330} 4331function UM(t, o) { 4332 if (t & 1 && b(0, "img", 7), t & 2) { 4333 let e = c(); 4334 L("hidden", e.isLoaded() && !e.hasError()), p("src", e.poster(), Y); 4335 } 4336} 4337function HM(t, o) { 4338 if (t & 1) { 4339 let e = _(); 4340 l(0, "button", 8), S("click", function(n) { 4341 return y(e), w(c().toggleMute(n)); 4342 }), b(1, "vn-icon", 9), d(); 4343 } 4344 if (t & 2) { 4345 let e = c(); 4346 p("size", e.buttonSize()), T("aria-label", e.mutedStatus() ? "Unmute video" : "Mute video"), a(), p("name", e.soundIconName()); 4347 } 4348} 4349function qM(t, o) { 4350 if (t & 1 && b(0, "img", 8), t & 2) { 4351 let e = c(); 4352 W("opt-teaser-bg-image " + e.bgImageAlignClass()), k("object-position", e.bgObjectPosition()), p("ngSrc", e.currentImage().src)("alt", e.currentImage().alt)("priority", e.imagePriority()); 4353 } 4354} 4355function JM(t, o) { 4356 if (t & 1 && (l(0, "div"), b(1, "cw-teaser-video", 10), d()), t & 2) { 4357 let e = c(2); 4358 a(), p("src", e.item().media?.url ?? "")("poster", e.item().media?.poster || e.currentImage().src)("height", e.slideHeight())("videoAlignment", e.config().videoAlignment ?? "")("videoPosition", e.config().videoPosition ?? "")("ariaLabel", e.item().title + " video teaser"); 4359 } 4360} 4361function YM(t, o) { 4362 if (t & 1 && (l(0, "div", 9), b(1, "img", 11), d()), t & 2) { 4363 let e, n = c(2); 4364 a(), p("src", (e = n.item().media) == null ? null : e.url, Y); 4365 } 4366} 4367function KM(t, o) { 4368 t & 1 && f(0, JM, 2, 6, "div")(1, YM, 2, 1, "div", 9), t & 2 && h(c().isVideoMedia() ? 0 : 1); 4369} 4370function QM(t, o) { 4371 if (t & 1 && (l(0, "div"), b(1, "img", 11), d()), t & 2) { 4372 let e, n = c(); 4373 W("opt-teaser-fg-img-" + (n.config().imageAlignment || "left")), a(), p("src", n.isMobile() ? (e = n.item().foregroundImage) == null ? null : e.src : (e = n.item().desktopForegroundImage) == null ? null : e.src, Y); 4374 } 4375} 4376function XM(t, o) { 4377 t & 1 && b(0, "div", 6), t & 2 && p("innerHTML", c().item().subtitle, _e); 4378} 4379function ZM(t, o) { 4380 if (t & 1) { 4381 let e = _(); 4382 l(0, "div")(1, "button", 12), S("click", function(n) { 4383 let i = y(e).$implicit; 4384 return w(c().onCtaClick(n, i.url, i.label)); 4385 }), C(2), d()(); 4386 } 4387 if (t & 2) { 4388 let e = o.$implicit, n = o.$index, i = c(); 4389 W("opt-teaser-cta" + (n > 0 ? " second-cta" : "")), a(), p("kind", n > 0 ? "secondary" : "primary")("size", i.ctaSize()), a(), E(" ", e.label, " "); 4390 } 4391} 4392function eO(t, o) { 4393 if (t & 1 && (l(0, "span"), C(1), d()), t & 2) { 4394 let e = c(2); 4395 a(), x(e.item().termsAndConditions); 4396 } 4397} 4398function tO(t, o) { 4399 t & 1 && b(0, "span", 13), t & 2 && p("innerHTML", c(2).item().termsAndConditions, _e); 4400} 4401function nO(t, o) { 4402 if (t & 1 && (l(0, "div", 7)(1, "div"), f(2, eO, 2, 1, "span")(3, tO, 1, 1, "span", 13), d()()), t & 2) { 4403 let e = c(); 4404 a(), W("text-terms text-align-" + (e.config().termsTextAlignment || "center")), a(), h(e.isUkBrand() ? 2 : 3); 4405 } 4406} 4407function iO(t, o) { 4408 if (t & 1 && (l(0, "div", 2), b(1, "cw-teaser-slide", 5), d()), t & 2) { 4409 let e = o.$implicit, n = o.$index, i = c(); 4410 a(), p("item", e)("config", i.config())("dimensions", i.dimensions())("isFirstSlide", n === 0)("isMainBanner", i.isMainBanner())("isUkBrand", i.isUkBrand())("slideIndex", n)("isHydrogen", i.isHydrogen())("teaserType", i.trackingType())("trackingContext", i.trackingContext()); 4411 } 4412} 4413function aO(t, o) { 4414 if (t & 1) { 4415 let e = _(); 4416 l(0, "span", 8), S("click", function() { 4417 let n = y(e).$implicit; 4418 return w(c(2).paginationClick(n)); 4419 }), d(); 4420 } 4421 if (t & 2) { 4422 let e = o.$implicit, n = c(2); 4423 L("swiper-pagination-bullet-active", e === n.currentIndex()), T("aria-label", "Go to slide " + (e + 1))("aria-pressed", e === n.currentIndex()); 4424 } 4425} 4426function oO(t, o) { 4427 if (t & 1 && (l(0, "div", 4)(1, "div", 6), D(2, aO, 1, 4, "span", 7, ht), d()()), t & 2) { 4428 let e = c(); 4429 a(2), R(e.paginationIndexes()); 4430 } 4431} 4432function rO(t, o) { 4433 if (t & 1) { 4434 let e = _(); 4435 l(0, "cw-teaser-carousel", 2), S("slideVisible", function(n) { 4436 return y(e), w(c().onTeaserVisible(n)); 4437 }), d(); 4438 } 4439 if (t & 2) { 4440 let e = c(); 4441 p("items", e.slideItems())("config", e.presentationConfig())("dimensions", e.dimensions())("isUkBrand", e.ukBrand())("teaserType", e.effectiveTeaserType())("trackingType", e.resolvedTeaserType())("trackingContext", e.trackingContext())("isMiddlePosition", e.isMiddlePosition())("sliderClasses", e.sliderClasses())("showTimer", e.showTimerEnabled())("hidePagination", e.hidePagination())("enableFixedWidth", e.enableFixedWidth())("slideConfig", e.slideConfig()); 4442 } 4443} 4444function sO(t, o) { 4445 t & 1 && b(0, "cw-teaser-skeleton"); 4446} 4447function cO(t, o) { 4448 if (t & 1 && (l(0, "cw-lobby-container-placeholder", 1), f(1, sO, 1, 0, "cw-teaser-skeleton"), d()), t & 2) { 4449 let e = c(); 4450 p("containerId", e.containerMetadata().id), a(), h(e.hasPreloaderPlaceholder() ? -1 : 1); 4451 } 4452} 4453function Pi(t) { 4454 let o = t.game; 4455 return { 4456 gameId: o.gameId, 4457 gameDisplayName: o.name, 4458 gameType: o.provider, 4459 gameBadges: ya(o.stickers), 4460 containerId: t.containerId, 4461 containerType: t.containerType, 4462 containerName: t.containerName, 4463 recommendationType: t.recommendationType || jp, 4464 layoutId: t.layoutId, 4465 subNavigation: t.subNavigation, 4466 index: t.gameIndex, 4467 gamePosition: t.gameIndex, 4468 gridPosition: t.gridPosition, 4469 playingStatus: t.playingStatus, 4470 favouriteStatus: t.favouriteStatus 4471 }; 4472} 4473function lO(t, o) { 4474 let e = []; 4475 for (let n = 0; n < t.length; n += o) e.push(t.slice(n, n + o)); 4476 return e; 4477} 4478function dO(t, o) { 4479 if (t & 1 && (H(0, "b", 2), C(1), K()), t & 2) { 4480 let e = o.$implicit, n = o.$index, i = c();
4481 yt(i.getStyles(e)), L("nonTouch", !i.enableStickerStyles && !i.isTouch())("promo-text-badge-0", !i.enableStickerStyles && n % 2 === 0)("promo-text-badge-1", !i.enableStickerStyles && n % 2 !== 0), a(), E("", i.toTitleCase(e.name), " "); 4482 } 4483} 4484function gO(t, o) { 4485 if (t & 1) { 4486 let e = _(); 4487 l(0, "button", 2), S("click", function(n) { 4488 return y(e), w(c().onInfoClick(n)); 4489 }), b(1, "vn-icon", 3), d(); 4490 } 4491 t & 2 && (T("aria-label", "View game information for " + c().gameName()), a(), T("aria-hidden", !0)); 4492} 4493function mO(t, o) { 4494 if (t & 1) { 4495 let e = _(); 4496 l(0, "button", 4), S("click", function(n) { 4497 return y(e), w(c().onFavouriteClick(n)); 4498 }), b(1, "vn-icon", 5), d(); 4499 } 4500 if (t & 2) { 4501 let e = c(); 4502 p("inverse", !0), T("aria-label", e.isFavourite() ? "Remove from favorites" : "Add to favorites"), a(), p("name", e.favouriteIconName()), T("aria-hidden", !0); 4503 } 4504} 4505function pO(t, o) { 4506 if (t & 1 && Pe(0, "img", 1), t & 2) { 4507 let e = c(); 4508 k("width", e.width() || null)("height", e.height() || null), Yi("src", e.logoUrl(), Y)("alt", e.altText()); 4509 } 4510} 4511function uO(t, o) { 4512 if (t & 1) { 4513 let e = _(); 4514 l(0, "div", 5)(1, "ds-arrow", 6), S("click", function() { 4515 let n = y(e).$implicit; 4516 return w(n.action()); 4517 }), d()(); 4518 } 4519 if (t & 2) { 4520 let e = o.$implicit; 4521 L("carousel-nav-prev", e.dir === "left")("carousel-nav-next", e.dir === "right"), a(), p("direction", e.dir), T("data-testid", e.dir === "left" ? "game-cabinet-nav-prev" : "game-cabinet-nav-next")("aria-label", e.dir === "left" ? "Previous games" : "Next games"); 4522 } 4523} 4524function hO(t, o) { 4525 if (t & 1 && b(0, "cw-image-loader", 18), t & 2) { 4526 let e = c().$implicit; 4527 p("icon", e.icon)("gameId", e.gameId)("alt", e.name || "")("height", 132)("width", 132); 4528 } 4529} 4530function fO(t, o) { 4531 if (t & 1 && b(0, "cw-game-tile-stickers", 19), t & 2) { 4532 let e = c().$implicit, n = c(3); 4533 p("stickers", e.stickers ?? Lt(2, js))("layoutId", n.base.layoutId()); 4534 } 4535} 4536function vO(t, o) { 4537 if (t & 1 && (l(0, "div", 23), C(1), d()), t & 2) { 4538 let e = c().$implicit; 4539 a(), x(e.betRange); 4540 } 4541} 4542function bO(t, o) { 4543 if (t & 1) { 4544 let e = _(); 4545 l(0, "div", 16), S("prefetch", function() { 4546 return y(e), w(c(3).base.loadNextGames()); 4547 })("click", function() { 4548 let n = y(e), i = n.$implicit, r = n.$index; 4549 return w(c(3).base.action(i, r + 1)); 4550 })("keydown.enter", function() { 4551 let n = y(e), i = n.$implicit, r = n.$index; 4552 return w(c(3).base.action(i, r + 1)); 4553 })("keydown.space", function(n) { 4554 let i = y(e), r = i.$implicit, u = i.$index, v = c(3); 4555 return n.preventDefault(), w(v.base.action(r, u + 1)); 4556 }), l(1, "div", 17), f(2, hO, 1, 5, "cw-image-loader", 18), f(3, fO, 1, 3, "cw-game-tile-stickers", 19), d(), l(4, "div", 20)(5, "div", 21)(6, "div", 22), C(7), d(), f(8, vO, 2, 1, "div", 23), d(), l(9, "cw-game-cabinet-action-button", 24), S("infoClick", function() { 4557 let n = y(e), i = n.$implicit, r = n.$index; 4558 return w(c(3).base.openGameInfoSheet(i, r)); 4559 }), d()()(); 4560 } 4561 if (t & 2) { 4562 let e = o.$implicit, n = o.$index, i = c(3); 4563 p("enabled", n === i.base.prefetchIndex())("game", e)("layoutId", i.base.layoutId())("containerId", i.base.categoryId())("gameIndex", n + 1)("containerIndex", i.base.containerIndex())("containerTitle", i.base.containerTitle()), T("data-testid", "game-cabinet-card-" + n)("aria-label", "Play " + (e.name || e.gameId)), a(2), h(e.icon ? 2 : -1), a(), h(e.stickers?.length ? 3 : -1), a(4), x(e.name), a(), h(e.betRange ? 8 : -1), a(), p("gameName", e.name || "")("gameId", e.gameId)("showInfoButton", i.base.showInfoButton())("trackingContext", i.base.favouriteTrackingContext(e, n + 1)); 4564 } 4565} 4566function CO(t, o) { 4567 if (t & 1 && (l(0, "div", 7)(1, "div", 8, 0)(3, "div", 9), b(4, "cw-game-cabinet-logo", 10), l(5, "div", 11)(6, "div", 12), C(7), d(), l(8, "ds-badge", 13), C(9), d(), l(10, "p", 14), C(11), d()()(), D(12, bO, 10, 17, "div", 15, $s), d()()), t & 2) { 4568 let e = c(2); 4569 k("background-image", e.base.bgImageUrl()), a(4), p("logoUrl", e.base.gameCabinetInfoData()?.logoUrl ?? "")("altText", (e.base.gameCabinetInfoData()?.title ?? "") + " Logo"), a(3), x(e.base.gameCabinetInfoData()?.title), a(2), Le("", e.base.gameCount(), " ", e.base.gamesLabel()), a(2), E(" ", e.base.gameCabinetInfoData()?.description, " "), a(), R(e.base.gamelist()); 4570 } 4571} 4572function yO(t, o) { 4573 if (t & 1 && b(0, "cw-image-loader", 18), t & 2) { 4574 let e = c().$implicit; 4575 p("icon", e.icon)("gameId", e.gameId)("alt", e.name || "")("height", 72)("width", 72); 4576 } 4577} 4578function wO(t, o) { 4579 if (t & 1 && b(0, "cw-game-tile-stickers", 19), t & 2) { 4580 let e = c().$implicit, n = c(4);
4581 p("stickers", e.stickers ?? Lt(2, js))("layoutId", n.base.layoutId()); 4582 } 4583} 4584function PO(t, o) { 4585 if (t & 1) { 4586 let e = _(); 4587 l(0, "div", 27), S("prefetch", function() { 4588 return y(e), w(c(4).base.loadNextGames()); 4589 })("click", function() { 4590 let n = y(e), i = n.$implicit, r = n.$index, u = c().$index, v = c(3); 4591 return w(v.base.action(i, u * v.columnSize + r + 1)); 4592 })("keydown.enter", function() { 4593 let n = y(e), i = n.$implicit, r = n.$index, u = c().$index, v = c(3); 4594 return w(v.base.action(i, u * v.columnSize + r + 1)); 4595 })("keydown.space", function(n) { 4596 let i = y(e), r = i.$implicit, u = i.$index, v = c().$index, P = c(3); 4597 return n.preventDefault(), w(P.base.action(r, v * P.columnSize + u + 1)); 4598 }), l(1, "ds-list-item", 28)(2, "div", 29), f(3, yO, 1, 5, "cw-image-loader", 18), f(4, wO, 1, 3, "cw-game-tile-stickers", 19), d(), l(5, "cw-game-cabinet-action-button", 30), S("infoClick", function() { 4599 let n = y(e), i = n.$implicit, r = n.$index, u = c().$index, v = c(3); 4600 return w(v.base.openGameInfoSheet(i, u * v.columnSize + r)); 4601 }), d()()(); 4602 } 4603 if (t & 2) { 4604 let e = o.$implicit, n = o.$index, i = c().$index, r = c(3); 4605 p("enabled", i * r.columnSize + n === r.base.prefetchIndex())("game", e)("layoutId", r.base.layoutId())("containerId", r.base.categoryId())("gameIndex", i * r.columnSize + n + 1)("containerIndex", r.base.containerIndex())("containerTitle", r.base.containerTitle()), T("data-testid", "game-cabinet-item-" + (i * r.columnSize + n))("aria-label", "Play " + (e.name || e.gameId)), a(), p("boldTitle", !0)("title", e.name ?? "")("subtitle", e.betRange || ""), a(2), h(e.icon ? 3 : -1), a(), h(e.stickers?.length ? 4 : -1), a(), p("gameName", e.name || "")("gameId", e.gameId)("showInfoButton", r.base.showInfoButton())("trackingContext", r.base.favouriteTrackingContext(e, i * r.columnSize + n + 1)); 4606 } 4607} 4608function SO(t, o) { 4609 if (t & 1 && (l(0, "ds-list-group", 25), D(1, PO, 6, 18, "div", 26, $s), d()), t & 2) { 4610 let e = o.$implicit, n = o.$index; 4611 p("roleType", "list"), T("data-testid", "game-cabinet-column-" + n), a(), R(e); 4612 } 4613} 4614function MO(t, o) { 4615 if (t & 1 && (l(0, "div", 7)(1, "div", 8, 0)(3, "div", 9), b(4, "cw-game-cabinet-logo", 10), l(5, "div", 11)(6, "div", 12), C(7), d(), l(8, "ds-badge", 13), C(9), d(), l(10, "p", 14), C(11), d()()(), D(12, SO, 3, 2, "ds-list-group", 25, Yp), d()()), t & 2) { 4616 let e = c(2); 4617 k("background-image", e.base.bgImageUrl()), a(4), p("logoUrl", e.base.gameCabinetInfoData()?.logoUrl ?? "")("altText", (e.base.gameCabinetInfoData()?.title ?? "") + " Logo"), a(3), x(e.base.gameCabinetInfoData()?.title), a(2), Le("", e.base.gameCount(), " ", e.base.gamesLabel()), a(2), E(" ", e.base.gameCabinetInfoData()?.description, " "), a(), R(e.base.gameColumns()); 4618 } 4619} 4620function OO(t, o) { 4621 if (t & 1 && (D(0, uO, 2, 7, "div", 3, Jp), f(2, CO, 14, 8, "div", 4)(3, MO, 14, 8, "div", 4)), t & 2) { 4622 let e = c(); 4623 R(e.navItems()), a(2), h(e.isDesktopLarge() ? 2 : 3); 4624 } 4625} 4626function xO(t, o) { 4627 if (t & 1 && (l(0, "div", 2), b(1, "cw-game-cabinet-logo", 10), l(2, "div", 11)(3, "div", 12), C(4), d(), l(5, "ds-badge", 13), C(6), d(), l(7, "p", 14), C(8), d()()()), t & 2) { 4628 let e = c(); 4629 a(), p("logoUrl", e.base.gameCabinetInfoData()?.logoUrl ?? "")("altText", (e.base.gameCabinetInfoData()?.title ?? "") + " Logo"), a(3), x(e.base.gameCabinetInfoData()?.title), a(2), Le("", e.base.gameCount(), " ", e.base.gamesLabel()), a(2), E(" ", e.base.gameCabinetInfoData()?.description, " "); 4630 } 4631} 4632function _O(t, o) { 4633 if (t & 1 && (l(0, "p", 9), C(1), d()), t & 2) { 4634 let e = c(2); 4635 a(), E(" ", e.base.gameCabinetInfoData()?.description, " "); 4636 } 4637} 4638function kO(t, o) { 4639 if (t & 1 && (l(0, "div", 2), b(1, "cw-game-cabinet-logo", 5), l(2, "div", 6)(3, "div", 7), C(4), d(), l(5, "ds-badge", 8), C(6), d(), f(7, _O, 2, 1, "p", 9), d()()), t & 2) { 4640 let e = c(); 4641 a(), p("logoUrl", e.base.gameCabinetInfoData()?.logoUrl ?? "")("altText", (e.base.gameCabinetInfoData()?.title ?? "") + " Logo"), a(3), x(e.base.gameCabinetInfoData()?.title), a(2), Le("", e.base.gameCount(), " ", e.base.gamesLabel()), a(), h(e.base.gameCabinetInfoData()?.description ? 7 : -1); 4642 } 4643} 4644function IO(t, o) { 4645 if (t & 1 && (l(0, "div", 3)(1, "div", 6)(2, "div", 7), C(3), d(), l(4, "ds-badge", 8), C(5), d()(), b(6, "cw-game-cabinet-logo", 5), d()), t & 2) { 4646 let e = c(); 4647 a(3), x(e.base.gameCabinetInfoData()?.title), a(2), Le("", e.base.gameCount(), " ", e.base.gamesLabel()), a(), p("logoUrl", e.base.gameCabinetInfoData()?.logoUrl ?? "")("altText", (e.base.gameCabinetInfoData()?.title ?? "") + " Logo"); 4648 } 4649} 4650function TO(t, o) { 4651 if (t & 1 && b(0, "cw-image-loader", 16), t & 2) { 4652 let e = c().$implicit; 4653 p("icon", e.icon)("gameId", e.gameId)("alt", e.name || "")("height", 72)("width", 72); 4654 } 4655} 4656function NO(t, o) { 4657 if (t & 1 && b(0, "cw-game-tile-stickers", 17), t & 2) { 4658 let e = c().$implicit, n = c(3);
4659 p("stickers", e.stickers ?? Lt(2, eu))("layoutId", n.base.layoutId()); 4660 } 4661} 4662function LO(t, o) { 4663 if (t & 1) { 4664 let e = _(); 4665 l(0, "div", 13), S("prefetch", function() { 4666 return y(e), w(c(3).base.loadNextGames()); 4667 })("click", function() { 4668 let n = y(e), i = n.$implicit, r = n.$index, u = c().$index, v = c(2); 4669 return w(v.action(i, u * v.columnSize + r + 1)); 4670 })("keydown.enter", function() { 4671 let n = y(e), i = n.$implicit, r = n.$index, u = c().$index, v = c(2); 4672 return w(v.action(i, u * v.columnSize + r + 1)); 4673 })("keydown.space", function(n) { 4674 let i = y(e), r = i.$implicit, u = i.$index, v = c().$index, P = c(2); 4675 return n.preventDefault(), w(P.action(r, v * P.columnSize + u + 1)); 4676 }), l(1, "ds-list-item", 14)(2, "div", 15), f(3, TO, 1, 5, "cw-image-loader", 16), f(4, NO, 1, 3, "cw-game-tile-stickers", 17), d(), l(5, "cw-game-cabinet-action-button", 18), S("infoClick", function() { 4677 let n = y(e), i = n.$implicit, r = n.$index, u = c().$index, v = c(2); 4678 return w(v.base.openGameInfoSheet(i, u * v.columnSize + r)); 4679 }), d()()(); 4680 } 4681 if (t & 2) { 4682 let e = o.$implicit, n = o.$index, i = c().$index, r = c(2); 4683 p("enabled", i * r.columnSize + n === r.base.prefetchIndex())("game", e)("layoutId", r.base.layoutId())("containerId", r.base.categoryId())("gameIndex", i * r.columnSize + n + 1)("containerIndex", r.base.containerIndex())("containerTitle", r.base.containerTitle()), T("data-testid", "game-cabinet-item-" + (i * r.columnSize + n))("aria-label", "Play " + (e.name || e.gameId)), a(), p("boldTitle", !0)("title", e.name ?? "")("subtitle", e.betRange || ""), a(2), h(e.icon ? 3 : -1), a(), h(e.stickers?.length ? 4 : -1), a(), p("gameName", e.name || "")("gameId", e.gameId)("showInfoButton", r.base.showInfoButton())("trackingContext", r.base.favouriteTrackingContext(e, i * r.columnSize + n + 1)); 4684 } 4685} 4686function GO(t, o) { 4687 if (t & 1 && (l(0, "ds-list-group", 11), D(1, LO, 6, 18, "div", 12, nu), d()), t & 2) { 4688 let e = o.$implicit, n = o.$index; 4689 W(c(2).gameColumnClass()), p("roleType", "list"), T("data-testid", "game-cabinet-column-" + n), a(), R(e); 4690 } 4691} 4692function EO(t, o) { 4693 if (t & 1 && (l(0, "div", 4), D(1, GO, 3, 4, "ds-list-group", 10, tu), d()), t & 2) { 4694 let e = c(); 4695 a(), R(e.base.gameColumns()); 4696 } 4697} 4698function AO(t, o) { 4699 t & 1 && b(0, "cw-cabinet-container-mobile", 2); 4700} 4701function RO(t, o) { 4702 t & 1 && b(0, "cw-cabinet-container-desktop", 3); 4703} 4704function DO(t, o) { 4705 if (t & 1 && (l(0, "div", 0), f(1, AO, 1, 0, "cw-cabinet-container-mobile", 2)(2, RO, 1, 0, "cw-cabinet-container-desktop", 3), d()), t & 2) { 4706 let e = c(); 4707 a(), h(e.isMobile && !e.isTablet ? 1 : 2); 4708 } 4709} 4710function zO(t, o) { 4711 t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-cabinet-skeleton"), d()), t & 2 && p("containerId", c().containerMetadata().id); 4712} 4713function BO(t, o) { 4714 if (t & 1) { 4715 let e = _(); 4716 H(0, "div", 1), Qt("click", function(n) { 4717 return y(e), w(c().onClick(n)); 4718 })("mousedown", function(n) { 4719 return n.stopPropagation(); 4720 })("mouseup", function(n) { 4721 return n.stopPropagation(); 4722 })("keydown.enter", function(n) { 4723 return y(e), w(c().onClick(n)); 4724 })("keydown.space", function(n) { 4725 return y(e), w(c().onClick(n)); 4726 }), K(); 4727 } 4728 if (t & 2) { 4729 let e = c(); 4730 W("casino-game-fav-icon fav " + e.iconName()), k("right", e.rightStyle())("transform", e.transformStyle()), T("aria-label", e.ariaLabel())("aria-pressed", e.isFavourite() ? "true" : "false"); 4731 } 4732} 4733function FO(t, o) { 4734 if (t & 1) { 4735 let e = _(); 4736 l(0, "object", 3, 0), S("load", function() { 4737 return y(e), w(c().onSvgLoad()); 4738 })("error", function() { 4739 return y(e), w(c().onSvgError()); 4740 }), d(); 4741 } 4742 if (t & 2) { 4743 let e = c(); 4744 p("data", e.safeSvgUrl(), Eo), T("role", "img")("aria-label", e.alt()); 4745 } 4746} 4747function VO(t, o) { 4748 if (t & 1) { 4749 let e = _(); 4750 l(0, "cw-image", 4), S("loaded", function() { 4751 return y(e), w(c().loaded.emit()); 4752 }), d(); 4753 } 4754 if (t & 2) { 4755 let e = c(); 4756 p("src", e.fallbackSrc())("alt", e.alt())("sizes", e.sizes()); 4757 } 4758} 4759function jO(t, o) { 4760 if (t & 1) { 4761 let e = _(); 4762 l(0, "span", 1)(1, "img", 3), S("error", function() { 4763 return y(e), w(c().onIconError()); 4764 }), d()(); 4765 } 4766 if (t & 2) { 4767 let e = c(); 4768 a(), p("ngSrc", e.hotIconPath()); 4769 } 4770} 4771function $O(t, o) { 4772 if (t & 1) { 4773 let e = _(); 4774 l(0, "cw-image-loader", 6), S("loaded", function() { 4775 return y(e), w(c().loaded.emit()); 4776 }), d(); 4777 } 4778 if (t & 2) { 4779 let e = c(); 4780 p("icon", e.game().icon)("gameId", e.game().gameId)("alt", e.game().name || "")("imageStyle", e.imageStyle); 4781 } 4782} 4783function WO(t, o) { 4784 if (t & 1 && b(0, "cw-game-tile-stickers", 3), t & 2) { 4785 let e = c(); 4786 p("stickers", e.stickers())("layoutId", e.layoutId()); 4787 } 4788} 4789function UO(t, o) { 4790 if (t & 1 && b(0, "cw-jackpot-ribbon", 4), t & 2) { 4791 let e = c(); 4792 p("jackpotData", e.jackpotData())("config", o)("layoutId", e.layoutId()); 4793 } 4794} 4795function HO(t, o) { 4796 if (t & 1 && (l(0, "button", 2), ut(1, 0, Us), C(2), ut(3, 1, Hs), d()), t & 2) { 4797 let e = c();
4798 yt(e.computedStyle()), W(e.csDecoratorClass()), p("kind", e.kind())("variant", e.variant())("size", e.size())("inverse", e.inverse())("disabled", e.disabled()), a(2), E(" ", e.cta_text(), " "); 4799 } 4800} 4801function qO(t, o) { 4802 if (t & 1 && (l(0, "button", 3), ut(1, 2, Us), C(2), ut(3, 3, Hs), d()), t & 2) { 4803 let e = c(); 4804 W(e.csDecoratorClass()), k("width", e.ctaWidth(), "%"), p("csDecoratorClass", "casino-qi-cta-btn-d")("kind", e.kind())("variant", e.variant())("size", e.size())("disabled", e.disabled())("inverse", e.inverse()), a(2), E(" ", e.cta_text(), " "); 4805 } 4806} 4807function JO(t, o) { 4808 if (t & 1 && (l(0, "div", 4), b(1, "img", 5), d(), l(2, "div", 6)(3, "div", 7), C(4), d()()), t & 2) { 4809 let e = c(2); 4810 yt(ne(6, uu, e.icon()?.gameTileBorderRadius)), a(), p("src", Gb(e.src), Y), T("alt", e.gameName() || ""), a(3), x(e.gameName()); 4811 } 4812} 4813function YO(t, o) { 4814 if (t & 1) { 4815 let e = _(); 4816 l(0, "div")(1, "div", 1), S("click", function(n) { 4817 return y(e), w(c().onClick(n)); 4818 })("keydown.enter", function(n) { 4819 return y(e), w(c().onClick(n)); 4820 })("keydown.space", function(n) { 4821 return y(e), w(c().onSpaceKey(n)); 4822 }), f(2, JO, 5, 8), l(3, "div", 2)(4, "cw-gametile-cta", 3), S("click", function(n) { 4823 return y(e), w(c().onClick(n)); 4824 }), d()()()(); 4825 } 4826 if (t & 2) { 4827 let e = c(); 4828 a(), T("aria-label", e.gameName() ? "Play " + e.gameName() : "Play game"), a(), h(e.iconType() !== e.IconType.VideoTile && !e.enableUkMouseOverStyle() ? 2 : -1), a(), L("casino-qi-cta-centered", e.centerCta()), a(), p("isLegacy", e.isLegacy)("kind", "primary")("casinoDsClass", "casino-ds-button")("csDecoratorClass", ne(10, pu, e.playNowHoverEffect))("cta_text", e.ctaText())("ctaWidth", e.playNowBtnWidth); 4829 } 4830} 4831function KO(t, o, e) { 4832 if (t.querySelector(".click-interaction")) { 4833 let n = t.querySelectorAll("." + o); 4834 if (n.length > 0) for (let i = 0; i < n.length; i++) { 4835 let r = n[i], u = r.querySelector(".casino-lobby-container-main .casino-qi-container-d"), v = r.querySelector("." + e), P = r.querySelector(".image-load-div"), N = r.querySelector(".image-section-newgrid"); 4836 u && v && P && (r.onmousedown = ($) => { 4837 u.style.transform = "scale(1)", v.style.transform = "scale(1)", P.style.transform = "scale(1)", N && N.style.setProperty("--click-interaction-transform", "scale(1)"); 4838 }, r.onmouseup = ($) => { 4839 u.style.transform = "scale(1.07)", v.style.transform = "scale(1.07)", P.style.transform = "scale(1.07)", N && (u.style.transform = "scale(1.05)", v.style.transform = "scale(1)", P.style.transform = "scale(1.05)", N.style.setProperty("--click-interaction-transform", "scale(1.05)")); 4840 }, r.onmouseover = ($) => { 4841 v.style.transform = "scale(1.07)", P.style.transform = "scale(1.07)", N && (v.style.transform = "scale(1)", P.style.transform = "scale(1.05)", N.style.setProperty("--click-interaction-transform", "scale(1.05)")); 4842 }, r.onmouseout = ($) => { 4843 v.style.transform = "scale(1)", P.style.transform = "scale(1)"; 4844 }); 4845 } 4846 } 4847} 4848function QO(t, o) { 4849 if (t & 1 && (l(0, "div", 1)(1, "p"), C(2), d()()), t & 2) { 4850 let e = c(); 4851 a(2), x(e.gameIndex()); 4852 } 4853} 4854function XO(t, o) { 4855 if (t & 1 && (l(0, "div", 5)(1, "p"), C(2), d()()), t & 2) { 4856 let e = c(); 4857 a(2), x(e.game().name); 4858 } 4859} 4860function ZO(t, o) { 4861 if (t & 1 && (l(0, "div", 6), b(1, "cw-jackpot-ribbon", 7), d()), t & 2) { 4862 let e = o, n = c(); 4863 a(), p("jackpotData", e.data)("config", e.config)("layoutId", n.layoutId()); 4864 } 4865} 4866function ex(t, o) { 4867 t & 1 && b(0, "div", 15), t & 2 && k("border-radius", c().game().icon?.gameTileBorderRadius); 4868} 4869function tx(t, o) { 4870 if (t & 1) { 4871 let e = _(); 4872 l(0, "cw-game-quick-info", 16), S("launchGame", function() { 4873 y(e); 4874 let n = c(); 4875 return w(n.onClick(n.LaunchedFrom.QuickInfo)); 4876 }), d(); 4877 } 4878 if (t & 2) { 4879 let e = c(); 4880 p("icon", e.game().icon)("layoutId", e.layoutId())("iconType", e.game().iconType)("gameName", e.nameVisibleOnHover() ? e.game().name : "")("gameId", e.game().gameId)("cta", e.quickInfoCtaText())("centerCta", !e.nameVisibleOnHover())("enableUkMouseOverStyle", e.enableFlatOverlay()); 4881 } 4882} 4883function nx(t, o) { 4884 if (t & 1) { 4885 let e = _(); 4886 l(0, "cw-disk-type-game-tile", 17), S("loaded", function() { 4887 return y(e), w(c().imageLoaded.set(!0)); 4888 }), d(); 4889 } 4890 if (t & 2) { 4891 let e = c(); 4892 p("game", e.game())("layoutId", e.layoutId())("jackpotData", e.jackpotRibbonData())("jackpotConfig", e.jackpotConfig())("stickers", e.filteredStickers()); 4893 } 4894} 4895function ix(t, o) { 4896 if (t & 1) { 4897 let e = _(); 4898 l(0, "cw-game-tile-semicircle", 18), S("loaded", function() { 4899 return y(e), w(c().imageLoaded.set(!0)); 4900 }), d(); 4901 } 4902 if (t & 2) { 4903 let e = c(); 4904 p("game", e.game())("layoutId", e.layoutId())("jackpotData", e.jackpotRibbonData())("jackpotConfig", e.jackpotConfig()); 4905 } 4906} 4907function ax(t, o) { 4908 if (t & 1) { 4909 let e = _(); 4910 l(0, "cw-game-tile-landscape-v2", 19), S("loaded", function() { 4911 return y(e), w(c().imageLoaded.set(!0)); 4912 }), d(); 4913 } 4914 if (t & 2) { 4915 let e = c(); 4916 p("game", e.game())("layoutId", e.layoutId())("gameIndex", e.gameIndex()); 4917 } 4918} 4919function ox(t, o) { 4920 if (t & 1) { 4921 let e = _(); 4922 l(0, "cw-animated-svg-tile", 20), S("loaded", function() { 4923 return y(e), w(c().imageLoaded.set(!0)); 4924 }), d(); 4925 } 4926 if (t & 2) { 4927 let e = c(); 4928 p("game", e.game())("alt", e.game().name || e.game().gameId); 4929 } 4930} 4931function rx(t, o) { 4932 if (t & 1) { 4933 let e = _(); 4934 l(0, "cw-video-preview", 21), S("loaded", function() { 4935 return y(e), w(c().imageLoaded.set(!0)); 4936 }), d(); 4937 } 4938 if (t & 2) { 4939 let e = c(); 4940 p("game", e.promotedImageGame())("alt", e.game().name || e.game().gameId)("isTouch", e.isTouch())("mouseHovered", e.mouseHoveredOnGame()); 4941 } 4942} 4943function sx(t, o) { 4944 if (t & 1) { 4945 let e = _(); 4946 l(0, "cw-image-loader", 22), S("loaded", function() { 4947 return y(e), w(c().imageLoaded.set(!0)); 4948 }), d(); 4949 } 4950 if (t & 2) { 4951 let e = c(); 4952 p("icon", e.promotedImageGame().icon)("gameId", e.game().gameId)("alt", e.game().name || e.game().gameId)("priority", e.priority()); 4953 } 4954} 4955function cx(t, o) { 4956 if (t & 1 && b(0, "cw-game-tile-stickers", 11), t & 2) { 4957 let e = c(); 4958 p("stickers", e.filteredStickers())("layoutId", e.layoutId()); 4959 } 4960} 4961function lx(t, o) { 4962 t & 1 && b(0, "cw-promoted-label", 12), t & 2 && p("label", c().game().promotedLabel); 4963} 4964function dx(t, o) { 4965 if (t & 1 && b(0, "cw-jackpot-ribbon", 13), t & 2) { 4966 let e = c(); 4967 p("jackpotData", e.jackpotRibbonData())("config", e.jackpotConfig())("layoutId", e.layoutId()); 4968 } 4969} 4970function gx(t, o) { 4971 if (t & 1 && b(0, "cw-live-dealer-overlay", 14), t & 2) { 4972 let e = c(); 4973 p("game", e.game())("liveGameInfo", e.liveGameInfo()); 4974 } 4975} 4976function mx(t, o) { 4977 if (t & 1) { 4978 let e = _(); 4979 l(0, "div", 7), S("click", function(n) { 4980 return y(e), w(c(2).onMoveGames(!0, n)); 4981 })("keydown.enter", function(n) { 4982 return y(e), w(c(2).onMoveGames(!0, n)); 4983 }), d(); 4984 } 4985} 4986function px(t, o) { 4987 if (t & 1) { 4988 let e = _(); 4989 l(0, "div", 8), S("click", function(n) { 4990 return y(e), w(c(2).onMoveGames(!1, n)); 4991 })("keydown.enter", function(n) { 4992 return y(e), w(c(2).onMoveGames(!1, n)); 4993 }), d(); 4994 } 4995} 4996function ux(t, o) { 4997 if (t & 1 && (l(0, "div"), f(1, mx, 1, 0, "div", 5), f(2, px, 1, 0, "div", 6), d()), t & 2) { 4998 let e = c(); 4999 a(), h(e.showLeftScrollButton ? 1 : -1), a(), h(e.showRightScrollButton ? 2 : -1); 5000 } 5001} 5002function hx(t, o) { 5003 if (t & 1) { 5004 let e = _(); 5005 l(0, "span", 9)(1, "span", 10), S("click", function(n) { 5006 return y(e), w(c(2).onMoveGames(!0, n)); 5007 })("keydown.enter", function(n) { 5008 return y(e), w(c(2).onMoveGames(!0, n)); 5009 }), d(), l(2, "span", 11), S("click", function(n) { 5010 return y(e), w(c(2).onMoveGames(!1, n)); 5011 })("keydown.enter", function(n) { 5012 return y(e), w(c(2).onMoveGames(!1, n)); 5013 }), d()(); 5014 } 5015 if (t & 2) { 5016 let e = c(2); 5017 p("ngStyle", Xe(5, Pu, e.subCategoryTextColor, e.lobbyTileFontFamily)), a(), p("ngClass", e.themeArrowLeft)("ngStyle", ne(8, Js, e.showLeftScrollButton ? "auto" : "none")), a(), p("ngClass", e.themeArrowRight)("ngStyle", ne(10, Js, e.showRightScrollButton ? "auto" : "none")); 5018 } 5019} 5020function fx(t, o) { 5021 if (t & 1 && (l(0, "div"), f(1, hx, 3, 12, "span", 9), d()), t & 2) { 5022 let e = c(); 5023 a(), h(!e.isTouch && e.games().length > 6 ? 1 : -1); 5024 } 5025} 5026function vx(t, o) { 5027 if (t & 1 && (l(0, "mat-grid-tile", 4)(1, "div", 12), b(2, "cw-game-lobby", 13), d()()), t & 2) { 5028 let e = o.$implicit, n = o.$index, i = c(); 5029 p("colspan", e.colSpan)("rowspan", e.rowSpan), a(), W("game icon-"
5029+ e.iconType), p("id", Pt("heightFix-", e.gameId)), a(), p("game", e)("layoutId", i.layoutId())("containerId", i.jackpotContainer().id)("containerIndex", i.containerIndex())("gameIndex", n + 1)("isBackgroundImageLayerPresent", i.isBackgroundImageLayerPresent())("containerTitle", i.jackpotContainer().title ?? "")("priority", n === 0 && i.containerIndex() === 1)("containerType", i.gameContainerType()); 5030 } 5031} 5032function bx(t, o) { 5033 if (t & 1 && (l(0, "div", 14)(1, "div", 16), C(2), d()()), t & 2) { 5034 let e = c().$implicit, n = c(2); 5035 p("ngClass", ne(3, _u, n.multiJackpotAmountAnnimation))("ngStyle", Xe(5, ku, n.multiJackpotValueClr, n.multiJackpotAmountBtnBgClr)), a(2), E(" ", e?.jackpotValue, " "); 5036 } 5037} 5038function Cx(t, o) { 5039 if (t & 1 && (l(0, "div", 5)(1, "div", 12), b(2, "img", 13), f(3, bx, 3, 8, "div", 14), b(4, "div", 15), d()()), t & 2) { 5040 let e = o.$implicit, n = c(2); 5041 a(), k("background-image", e.jackpotWidgetBackgroundImage?.src ? "url(" + e.jackpotWidgetBackgroundImage.src + ")" : null), p("ngClass", n.classNameTop), a(), p("src", e.jackpotWidgetImage && e.jackpotWidgetImage.src, Y), T("alt", e.jackpotDisplayName || "Jackpot icon"), a(), h(e.jackpotValue ? 3 : -1), a(), p("innerHTML", n.jackpotAmountText, _e)("ngStyle", ne(8, no, n.multiJackpotAmountClr)); 5042 } 5043} 5044function yx(t, o) { 5045 if (t & 1) { 5046 let e = _(); 5047 l(0, "span", 6)(1, "span", 17), S("click", function() { 5048 return y(e), w(c(2).slideClicked(!1)); 5049 })("keydown.enter", function() { 5050 return y(e), w(c(2).slideClicked(!1)); 5051 }), d()(); 5052 } 5053 if (t & 2) { 5054 let e = c(2); 5055 p("ngStyle", Xe(3, Qs, e.subCategoryTextColor, e.lobbyTileFontFamily)), a(), p("ngClass", e.themeArrowLeft)("ngStyle", Lt(6, Xs)); 5056 } 5057} 5058function wx(t, o) { 5059 if (t & 1) { 5060 let e = _(); 5061 l(0, "span", 7)(1, "span", 18), S("click", function() { 5062 return y(e), w(c(2).slideClicked(!0)); 5063 })("keydown.enter", function() { 5064 return y(e), w(c(2).slideClicked(!0)); 5065 }), d()(); 5066 } 5067 if (t & 2) { 5068 let e = c(2); 5069 p("ngStyle", Xe(3, Qs, e.subCategoryTextColor, e.lobbyTileFontFamily)), a(), p("ngClass", e.themeArrowRight)("ngStyle", Lt(6, Xs)); 5070 } 5071} 5072function Px(t, o) { 5073 if (t & 1) { 5074 let e = _(); 5075 l(0, "button", 19), S("click", function() { 5076 return y(e), w(c(2).slideClicked(!1)); 5077 }), d(); 5078 } 5079 if (t & 2) { 5080 let e = c(2); 5081 yt(e.multiJackpotLeftArrowStyles), k("background-image", "url(" + (e.jackpotLeftImg?.src || "") + ")"), p("ngClass", ne(5, Zs, e.isPreButtonVisible || e.changeCarouselView)); 5082 } 5083} 5084function Sx(t, o) { 5085 if (t & 1) { 5086 let e = _(); 5087 l(0, "button", 20), S("click", function() { 5088 return y(e), w(c(2).slideClicked(!0)); 5089 }), d(); 5090 } 5091 if (t & 2) { 5092 let e = c(2); 5093 yt(e.multiJackpotRightArrowStyles), k("background-image", "url(" + (e.jackpotRightImg?.src || "") + ")"), p("ngClass", ne(5, Zs, e.isNextButtonVisible || e.changeCarouselView)); 5094 } 5095} 5096function Mx(t, o) { 5097 if (t & 1) { 5098 let e = _(); 5099 l(0, "cw-gametile-cta", 30), S("click", function() { 5100 y(e); 5101 let n = c(4); 5102 return w(n.gotoJackpots(n.ctaUrl.url)); 5103 }), d(); 5104 } 5105 if (t & 2) { 5106 let e = c(4); 5107 p("kind", "primary")("size", "medium")("casinoDsClass", "btn-cta see-all-btn")("cta_text", e.cta); 5108 } 5109} 5110function Ox(t, o) { 5111 if (t & 1 && (l(0, "div", 23), f(1, Mx, 1, 4, "cw-gametile-cta", 29), d()), t & 2) { 5112 let e = c(3); 5113 p("ngClass", ne(2, Iu, e.enableEpcotSubNavigation)), a(), h(e.ctaUrl?.url ? 1 : -1); 5114 } 5115} 5116function xx(t, o) { 5117 if (t & 1) { 5118 let e = _(); 5119 l(0, "div", 32), S("click", function() { 5120 y(e); 5121 let n = c(4); 5122 return w(n.gotoJackpots(n.ctaUrl.url)); 5123 })("keydown.enter", function() { 5124 y(e); 5125 let n = c(4); 5126 return w(n.gotoJackpots(n.ctaUrl.url)); 5127 }), C(1), d(); 5128 } 5129 if (t & 2) { 5130 let e = c(4); 5131 p("ngStyle", ne(2, no, e.subCategoryTextColor)), a(), E(" ", e.cta, " "); 5132 } 5133} 5134function _x(t, o) { 5135 if (t & 1 && (l(0, "div", 24), f(1, xx, 2, 4, "div", 31), d()), t & 2) { 5136 let e = c(3); 5137 p("ngClass", ne(2, Tu, e.isTouch())), a(), h(e.ctaUrl?.url ? 1 : -1); 5138 } 5139} 5140function kx(t, o) { 5141 if (t & 1 && b(0, "cw-jackpot-widget-redesign-grid", 28), t & 2) { 5142 let e = c(3); 5143 p("games", e.games)("gridCols", e.games.length)("jackpotContainer", e.jackpotContainer())("widgetType", "MultiJackpot")("containerIndex", e.containerIndex())("isBackgroun
5143dImageLayerPresent", e.isBackgroundImageLayerPresent()); 5144 } 5145} 5146function Ix(t, o) { 5147 if (t & 1 && (l(0, "div", 11)(1, "div", 21), b(2, "div", 22), f(3, Ox, 2, 4, "div", 23), f(4, _x, 2, 4, "div", 24), d(), l(5, "div", 25)(6, "div", 26)(7, "div", 27), f(8, kx, 1, 6, "cw-jackpot-widget-redesign-grid", 28), d()()()()), t & 2) { 5148 let e = c(2); 5149 a(2), p("ngStyle", ne(5, no, e.multiJackpotPlayAnyGameTextColor))("innerHTML", e.multiJackpotPlayAnyGameText, _e), a(), h(e.cta && !e.changeCarouselView ? 3 : -1), a(), h(e.changeCarouselView ? 4 : -1), a(4), h(e.games && e.games.length > 0 ? 8 : -1); 5150 } 5151} 5152function Tx(t, o) { 5153 if (t & 1 && (l(0, "div", 2)(1, "div", 3)(2, "vn-swiper", 4, 0), D(4, Cx, 5, 10, "div", 5, Ze), d(), f(6, yx, 2, 7, "span", 6), f(7, wx, 2, 7, "span", 7), f(8, Px, 1, 7, "button", 8), f(9, Sx, 1, 7, "button", 9), b(10, "div", 10), d(), f(11, Ix, 9, 7, "div", 11), d()), t & 2) { 5154 let e = c(); 5155 W(Pt("multi-jackpot-rebrand jackpot-widget-view-port ", e.multiJackpotAlignment)), k("background", e.glassEffectColor), p("ngClass", Xe(17, xu, !e.multiBackgroundTransparency, e.changeCarouselView)), a(2), p("swiperOptions", e.swiperOptions)("showPagination", !1), a(2), R(e.widgets), a(2), h(!e.isPreButtonVisible && e.changeCarouselView ? 6 : -1), a(), h(!e.isNextButtonVisible && e.changeCarouselView ? 7 : -1), a(), h(e.changeCarouselView ? -1 : 8), a(), h(e.changeCarouselView ? -1 : 9), a(), yt(e.backgroundImageStyles), k("background-image", "url(" + (e.multiJackpotBottomImage?.src || "") + ")"), a(), h(e.games && e.games.length > 0 ? 11 : -1); 5156 } 5157} 5158function Nx(t, o) { 5159 if (t & 1 && (H(0, "div", 2), C(1), K()), t & 2) { 5160 let e = c(2); 5161 a(), x(e.currency()); 5162 } 5163} 5164function Lx(t, o) { 5165 if (t & 1 && (H(0, "div", 2), C(1), K()), t & 2) { 5166 let e = o.$implicit, n = c(2); 5167 L("comma", n.isComma(e.value))("dot", n.isDot(e.value)), a(), x(e.value); 5168 } 5169} 5170function Gx(t, o) { 5171 if (t & 1 && (H(0, "div", 4), C(1), K()), t & 2) { 5172 let e = c(2); 5173 a(), x(e.Currency.Kroner); 5174 } 5175} 5176function Ex(t, o) { 5177 if (t & 1 && (H(0, "div", 0), f(1, Nx, 2, 1, "div", 2), D(2, Lx, 2, 5, "div", 3, Ze), f(4, Gx, 2, 1, "div", 4), K()), t & 2) { 5178 let e = c(); 5179 a(), h(e.isKronerCurrency() ? -1 : 1), a(), R(e.majorItems()), a(2), h(e.isKronerCurrency() ? 4 : -1); 5180 } 5181} 5182function Ax(t, o) { 5183 if (t & 1 && (H(0, "div", 6)(1, "div", 8), C(2), K()()), t & 2) { 5184 let e = c(2); 5185 a(), k("color", e.singlejackpotvalueDigitTxtClr)("background-color", e.singlejackpotvalueDigitBgClr), a(), E(" ", e.currency(), " "); 5186 } 5187} 5188function Rx(t, o) { 5189 if (t & 1 && (H(0, "div", 10), C(1), K()), t & 2) { 5190 let e = c().$implicit; 5191 k("color", c(2).singlejackpotvalueDigitTxtClr), a(), x(e.value); 5192 } 5193} 5194function Dx(t, o) { 5195 if (t & 1 && (H(0, "div", 6)(1, "div", 11), C(2), K()()), t & 2) { 5196 let e = c().$implicit, n = c(2); 5197 a(), k("color", n.singlejackpotvalueDigitTxtClr)("background-color", n.singlejackpotvalueDigitBgClr), a(), E(" ", e.value, " "); 5198 } 5199} 5200function zx(t, o) { 5201 if (t & 1 && (H(0, "div", 5), f(1, Rx, 2, 3, "div", 9)(2, Dx, 3, 5, "div", 6), K()), t & 2) { 5202 let e = o.$implicit, n = c(2); 5203 L("Comma", n.isComma(e.value))("dot", n.isDot(e.value)), a(), h(n.isComma(e.value) ? 1 : 2); 5204 } 5205} 5206function Bx(t, o) { 5207 if (t & 1 && (H(0, "div", 1)(1, "div", 5), f(2, Ax, 3, 5, "div", 6), K(), D(3, zx, 3, 5, "div", 7, Ze), K()), t & 2) { 5208 let e = c(); 5209 a(2), h(e.enableJpGroupTickingForLobby ? -1 : 2), a(), R(e.majorItems()); 5210 } 5211} 5212function Fx(t, o) { 5213 if (t & 1 && (l(0, "div", 12), C(1), d()), t & 2) { 5214 let e = c(3); 5215 p("ngStyle", ne(2, ao, e.singleJackpoTitleTextColor || e.singleJackpotTextClr)), a(), E(" ", e.jackpotDisplayName, " "); 5216 } 5217} 5218function Vx(t, o) { 5219 if (t & 1 && (l(0, "div", 9), b(1, "img", 10), l(2, "div", 11), f(3, Fx, 2, 4, "div", 12), b(4, "cw-flipclock-redesign", 13), d()()), t & 2) { 5220 let e = c(2); 5221 k("background-image", e.jackpotWidgetBackgroundImage?.src ? "url(" + e.jackpotWidgetBackgroundImage.src + ")" : null), a(), p("src", e.jackpotWidgetImage == null ? null : e.jackpotWidgetImage.src, Y), T("alt", e.jackpotDisplayName || "Jackpot icon"), a(), p("ngClass", ne(13, Gu, !e.showJackpotName)), a(), h(e.showJackpotName && e.jackpotDisplayName && e.jackpotDisplayName.trim().length > 0 ? 3 : -1), a(), p("isMega", "false")("currency", e.currency)("amount", e.jackpotValue)("jackpotName", e.jackpotName)("widgetType", "SingleJackpot")("releaseamount", e.singleJackpotReleaseAmount)("lobbyType", e.lobbyType()); 5222 } 5223} 5224function jx(t, o) { 5225 if (t & 1) { 5226 let e = _(); 5227 l(0, "div", 6)(1, "cw-gametile-cta", 14), S("click", function() { 5228 y(e); 5229 let n = c(2); 5230 return w(n.gotoJackpots(n.ctaUrl.url)); 5231 }), d()(); 5232 } 5233 if (t & 2) { 5234 let e = c(2); 5235 a(), p("kind", "primary")("size", "medium")("cta_text", e.cta); 5236 } 5237} 5238function $x(t, o) { 5239 if (t & 1) { 5240 let e = _(); 5241 l(0, "div")(1, "div", 15), S("click", function() { 5242 y(e); 5243 let n = c(2); 5244 return w(n.gotoJackpots(n.ctaUrl.url)); 5245 })("keydown.enter", function() { 5246 y(e); 5247 let n = c(2); 5248 return w(n.gotoJackpots(n.ctaUrl.url)); 5249 }), d()(); 5250 } 5251 if (t & 2) { 5252 let e = c(2); 5253 a(), p("ngStyle", ne(2, ao, e.subCategoryTextColor))("innerHTML", e.cta, _e); 5254 } 5255} 5256function Wx(t, o) { 5257 if (t & 1 && b(0, "cw-jackpot-widget-redesign-grid", 8), t & 2) { 5258 let e = c(2); 5259 p("games", e.games)("jackpotContainer", e.jackpotContainer())("widgetType", "SingleJackpot")("containerIndex", e.containerIndex())("isBackgroun
5259dImageLayerPresent", e.isBackgroundImageLayerPresent()); 5260 } 5261} 5262function Ux(t, o) { 5263 if (t & 1 && (l(0, "div", 1), f(1, Vx, 5, 15, "div", 2), l(2, "div", 3)(3, "div", 4), b(4, "div", 5), f(5, jx, 2, 3, "div", 6), f(6, $x, 2, 4, "div"), d(), l(7, "div", 7), f(8, Wx, 1, 5, "cw-jackpot-widget-redesign-grid", 8), d()()()), t & 2) { 5264 let e = c(); 5265 k("background-image", e.jackpotWidgetBackgroundImage?.src ? "url(" + e.jackpotWidgetBackgroundImage.src + ")" : null)("background", e.glassEffectColor), L("single-jackpot-glasseffect", e.singleJackpotGlassEffect)("jackpot-alignment-left", e.singleJackpotAlignment === e.JackpotAlignment.Left)("jackpot-alignment-right", e.singleJackpotAlignment === e.JackpotAlignment.Right)("danskespil-arrow-styles-singleJackpot", e.changeCarouselView()), a(), h(e.jackpotType === "single" ? 1 : -1), a(3), p("ngStyle", ne(20, ao, e.singleJackpotPlayAnyGameTextColor))("innerHTML", e.singleJackpotPlayAnygameText, _e), a(), h(e.ctaUrl?.url && !e.changeCarouselView() ? 5 : -1), a(), h(e.ctaUrl?.url && e.changeCarouselView() ? 6 : -1), a(), k("overflow-x", e.isTouch() ? "scroll" : "hidden"), a(), h(e.games && e.games.length > 0 ? 8 : -1); 5266 } 5267} 5268function Hx(t, o) { 5269 if (t & 1 && b(0, "cw-parallax-animation", 2), t & 2) { 5270 let e, n, i, r = c(2); 5271 p("src1", (e = r.containerInfo()) == null || e.parallaxImage == null || e.parallaxImage.parallaxBackgroundImage1 == null ? null : e.parallaxImage.parallaxBackgroundImage1.src)("src2", (n = r.containerInfo()) == null || n.parallaxImage == null || n.parallaxImage.parallaxBackgroundImage2 == null ? null : n.parallaxImage.parallaxBackgroundImage2.src)("src3", (i = r.containerInfo()) == null || i.parallaxImage == null || i.parallaxImage.parallaxBackgroundImage3 == null ? null : i.parallaxImage.parallaxBackgroundImage3.src); 5272 } 5273} 5274function qx(t, o) { 5275 if (t & 1) { 5276 let e = _(); 5277 l(0, "cw-single-jackpot-redesign-widget", 8), S("seeAllClick", function(n) { 5278 return y(e), w(c(2).onWidgetSeeAllClick(n)); 5279 }), d(); 5280 } 5281 if (t & 2) { 5282 let e = o, n = c(2); 5283 p("id", Pt("SingleJackpotCategoryIdentifier_", e.id))("jackpotContainer", e)("changeCarouselView", n.changeCarouselView())("isTouch", n.isTouch())("lobbyType", n.lobbyType())("containerIndex", n.containerIndex())("isBackgroundImageLayerPresent", n.hasParallaxImages()); 5284 } 5285} 5286function Jx(t, o) { 5287 if (t & 1) { 5288 let e = _(); 5289 l(0, "cw-multi-jackpot-widget-rebrand", 9), S("seeAllClick", function(n) { 5290 return y(e), w(c(2).onWidgetSeeAllClick(n)); 5291 }), d(); 5292 } 5293 if (t & 2) { 5294 let e = o, n = c(2); 5295 p("id", Pt("MultiJackpotRebrandCategoryIdentifier_", e.id))("jackpotContainer", e)("isTouch", n.isTouch())("lobbyType", n.lobbyType())("containerIndex", n.containerIndex())("isBackgroundImageLayerPresent", n.hasParallaxImages()); 5296 } 5297} 5298function Yx(t, o) { 5299 if (t & 1) { 5300 let e = _(); 5301 l(0, "div"), f(1, Hx, 1, 3, "cw-parallax-animation", 2), l(2, "div", 3)(3, "cw-container-header", 4), S("seeAllClick", function() { 5302 return y(e), w(c().onSeeAllClick()); 5303 })("moreInfoClick", function() { 5304 return y(e), w(c().onMoreInfoClick()); 5305 })("moreInfoOverlayLoad", function() { 5306 return y(e), w(c().onMoreInfoOverlay("load")); 5307 })("moreInfoOverlayCtaClick", function(n) { 5308 return y(e), w(c().onMoreInfoOverlayCtaClick(n)); 5309 })("moreInfoOverlayClose", function() { 5310 return y(e), w(c().onMoreInfoOverlay("close")); 5311 }), d(), l(4, "div", 5), f(5, qx, 1, 8, "cw-single-jackpot-redesign-widget", 6), f(6, Jx, 1, 7, "cw-multi-jackpot-widget-rebrand", 7), d()()(); 5312 } 5313 if (t & 2) { 5314 let e, n, i, r, u, v, P = c(); 5315 L("casino-backgroungImage-layer", P.containerInfo()?.parallaxImage?.parallaxBackgroundImage1)("casino-backgroungImage-parallax", P.containerInfo()?.parallaxImage?.parallaxBackgroundImage2 || P.containerInfo()?.parallaxImage?.parallaxBackgroundImage3), a(), h(P.hasParallaxImages() ? 1 : -1), a(2), p("iconName", (e = P.containerInfo()) == null ? null : e.iconName)("title", (n = P.containerInfo()) == null ? null : n.title)("subtitle", (i = P.containerInfo()) == null ? null : i.subtitle)("showViewAllButton", !!P.containerInfo()?.viewAllTarget)("headingTextColor", P.headingTextColor())("showMoreInfo", P.showMoreInfo())("moreInfoDialog", (r = P.containerInfo()) == null ? null : r.moreInfoDialog), a(), L("seeall-configs", P.changeCarouselView())("multi-jackpot-main-container", P.isMultiJackpot()), a(), h((u = P.isSingleJackpot() && P.containerInfo()) ? 5 : -1, u), a(), h((v = P.isMultiJackpot() && P.containerInfo()) ? 6 : -1, v); 5316 } 5317} 5318function Kx(t, o) { 5319 t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-jackpot-skeleton"), d()), t & 2 && p("containerId", c().containerMetadata().id); 5320} 5321function Qx(t) { 5322 if (!t) return ""; 5323 let o = t.slice(0, zu), e = Math.min(t.length, Du) - o.length; 5324 return o + "*".repeat(Math.max(0, e)); 5325} 5326function Xx(t, o, e) { 5327 let n = aC(o, "narrow"), i = Math.min(Math.max(0, e), 2); 5328 return `${n}
5328${t.toLocaleString("en-US", { 5329 minimumFractionDigits: i, 5330 maximumFractionDigits: i 5331 })}`; 5332} 5333function Zx(t) { 5334 return t === "Y"; 5335} 5336function e_(t, o) { 5337 if (t & 1) { 5338 let e = _(); 5339 l(0, "div")(1, "button", 5), S("click", function() { 5340 let n = y(e).$implicit; 5341 return w(c().onFilterClick(n)); 5342 })("keydown", function(n) { 5343 let i = y(e).$implicit; 5344 return w(c().onTabKeydown(n, i)); 5345 }), C(2), d()(); 5346 } 5347 if (t & 2) { 5348 let e = o.$implicit, n = c(); 5349 a(), k("min-width", n.filterMinWidth()), p("variant", e.value === n.activeFilter() ? "filled" : "outline")("kind", e.value === n.activeFilter() ? "primary" : "tertiary")("inverse", !0), T("aria-pressed", e.value === n.activeFilter()), a(), E(" ", n.getButtonText()(e), " "); 5350 } 5351} 5352function t_(t, o) { 5353 if (t & 1) { 5354 let e = _(); 5355 l(0, "div", 4)(1, "div", 6)(2, "div", 7), S("click", function() { 5356 return y(e), w(c().onScrollLeft()); 5357 })("keydown.enter", function() { 5358 return y(e), w(c().onScrollLeft()); 5359 })("keydown.space", function() { 5360 return y(e), w(c().onScrollLeft()); 5361 }), d()(), l(3, "div", 8)(4, "div", 9), S("click", function() { 5362 return y(e), w(c().onScrollRight()); 5363 })("keydown.enter", function() { 5364 return y(e), w(c().onScrollRight()); 5365 })("keydown.space", function() { 5366 return y(e), w(c().onScrollRight()); 5367 }), d()()(); 5368 } 5369 if (t & 2) { 5370 let e = c(); 5371 a(2), k("background", e.filterBgColor()), T("tabindex", 0)("aria-label", "Scroll filters left"), a(2), k("background", e.filterBgColor()), T("tabindex", 0)("aria-label", "Scroll filters right"); 5372 } 5373} 5374function n_(t, o) { 5375 if (t & 1 && (l(0, "li", 12), oe(1, 13), d()), t & 2) { 5376 let e = o.$implicit, n = o.$index; 5377 c(3); 5378 let i = ee(3); 5379 a(), p("ngTemplateOutlet", i)("ngTemplateOutletContext", Xe(2, ic, e, n)); 5380 } 5381} 5382function i_(t, o) { 5383 if (t & 1) { 5384 let e = _(); 5385 l(0, "div", 10), S("touchstart", function() { 5386 return y(e), w(c(2).onTouchStart()); 5387 })("touchend", function() { 5388 return y(e), w(c(2).onTouchEnd()); 5389 })("touchcancel", function() { 5390 return y(e), w(c(2).onTouchEnd()); 5391 }), l(1, "ul", 11), D(2, n_, 2, 5, "li", 12, oo), d()(); 5392 } 5393 if (t & 2) { 5394 let e = c(2); 5395 a(2), R(e.winnersWidgetService.winners()); 5396 } 5397} 5398function a_(t, o) { 5399 if (t & 1) { 5400 let e = _(); 5401 l(0, "div", 5)(1, "div", 6), S("mouseenter", function() { 5402 return y(e), w(c().onMouseEnter()); 5403 })("mouseleave", function() { 5404 return y(e), w(c().onMouseLeave()); 5405 }), l(2, "span", 7)(3, "span", 8), D(4, i_, 4, 0, "div", 9, Ze), d()()()(); 5406 } 5407 if (t & 2) { 5408 let e = c(); 5409 a(4), R(e.fillingArray()); 5410 } 5411} 5412function o_(t, o) { 5413 if (t & 1 && b(0, "img", 20), t & 2) { 5414 let e, n = c(2); 5415 p("src", (e = n.widgetConfiguration()) == null || e.nonJackpotImage == null ? null : e.nonJackpotImage.src, Y)("alt", n.widgetConfiguration()?.nonJackpotImage?.alt || "Win badge"); 5416 } 5417} 5418function r_(t, o) { 5419 if (t & 1 && b(0, "img", 20), t & 2) { 5420 let e, n = c(2); 5421 p("src", (e = n.widgetConfiguration()) == null || e.jackpotImage == null ? null : e.jackpotImage.src, Y)("alt", n.widgetConfiguration()?.jackpotImage?.alt || "Jackpot badge"); 5422 } 5423} 5424function s_(t, o) { 5425 if (t & 1 && (l(0, "div", 14)(1, "div", 15)(2, "div", 16)(3, "div", 17), C(4), wt(5, "slice"), l(6, "span"), C(7, "****"), d()(), l(8, "div", 18), C(9), d()(), l(10, "div", 19), f(11, o_, 1, 2, "img", 20), f(12, r_, 1, 2, "img", 20), d()(), l(13, "div", 21), b(14, "cw-game-lobby", 22), d()()), t & 2) { 5426 let e = o.$implicit, n = o.index, i = c(); 5427 a(), k("background", i.globalMessages().winnerBgColor || ""), a(3), x(Xb(5, 18, e.screenName, 0, 2)), a(5), x(i.formattedAmount(e.gcWin, e.gc)), a(2), h(e.jpWinFlag === "N" && i.widgetConfiguration()?.nonJackpotImage ? 11 : -1), a(), h(e.jpWinFlag === "Y" && i.widgetConfiguration()?.jackpotImage ? 12 : -1), a(2), p("game", i.gameModels().get(e.uid))("layoutId", i.layoutId())("containerId", i.widgetGameContainerId)("containerTitle", i.widgetGameContainerName)("containerType", i.widgetGameContainerType())("containerIndex", i.containerIndex())("isBackgroundImageLayerPresent", i.config().hasParallaxImages)("gameIndex", n + 1)("quickInfoCtaText", i.quickInfoCtaText)("showGameNameOnHover", i.config().showGameNameOnHover)("showJackpotRibbon", !1)("enableFlatOverlay", !0); 5428 } 5429} 5430function c_(t, o) { 5431 if (t & 1 && b(0, "img", 24), t & 2) { 5432 let e = c().$implicit, n = c(); 5433 p("src", n.badgeImageUrl(e), Y)("alt", n.isJackpot(e.jpWinFlag) ? "Jackpot win" : "Win"); 5434 } 5435} 5436function l_(t, o) { 5437 if (t & 1 && (l(0, "div", 14)(1, "div", 15)(2, "div", 16)(3, "div", 23), C(4), d(), l(5, "div", 18), C(6), d()(), l(7, "div", 19), f(8, c_, 1, 2, "img", 24), d()(), l(9, "div", 21), b(10, "cw-game-lobby", 22), d()()), t & 2) { 5438 let e = o.$implicit, n = o.largeIcon, i = o.index, r = c(); 5439 a(), k("background", r.globalMessages().winnerBgColor || ""), a(3), x(r.maskedName(e.screenName)), a(2), x(r.formattedAmount(e.gcWin, e.gc)), a(2), h(r.badgeImageUrl(e) ? 8 : -1), a(2), L("large-icon", n), p("game", r.gameModels().get(e.uid))("layoutId", r.layoutId())("containerId", r.widgetGameContainerId)("containerTitle", r.widgetGameContainerName)("containerType", r.widgetGameContainerType())("containerIndex", r.containerIndex())("isBackgroun
5439dImageLayerPresent", r.config().hasParallaxImages)("gameIndex", i + 1)("quickInfoCtaText", r.quickInfoCtaText)("showGameNameOnHover", r.config().showGameNameOnHover)("showJackpotRibbon", !1)("enableFlatOverlay", !0); 5440 } 5441} 5442function d_(t, o) { 5443 if (t & 1 && b(0, "cw-parallax-animation", 25), t & 2) { 5444 let e = c(2); 5445 p("src1", e.config().parallaxSrc1)("src2", e.config().parallaxSrc2)("src3", e.config().parallaxSrc3); 5446 } 5447} 5448function g_(t, o) { 5449 if (t & 1) { 5450 let e = _(); 5451 l(0, "button", 37), S("click", function() { 5452 let n = y(e).$implicit; 5453 return w(c(3).onFilterChange(n.value)); 5454 }), C(1), d(); 5455 } 5456 if (t & 2) { 5457 let e = o.$implicit, n = c(3); 5458 k("min-width", n.config().filterMinWidth), p("inverse", !0)("variant", e.value === n.winnersWidgetService.activeFilter() ? "filled" : "outline")("kind", e.value === n.winnersWidgetService.activeFilter() ? "primary" : "tertiary"), T("aria-pressed", e.value === n.winnersWidgetService.activeFilter()), a(), E(" ", n.getFilterButtonText(e), " "); 5459 } 5460} 5461function m_(t, o) { 5462 if (t & 1 && (l(0, "div", 33), C(1), d()), t & 2) { 5463 let e = c(3); 5464 a(), Le("", e.winnerCount(), " ", e.config().winnersText); 5465 } 5466} 5467function p_(t, o) { 5468 if (t & 1 && (l(0, "p"), C(1), d()), t & 2) { 5469 let e = c(3); 5470 k("color", e.globalMessages().winnersErrorTextColor), a(), E(" ", e.config().errorMessage, " "); 5471 } 5472} 5473function u_(t, o) { 5474 if (t & 1 && (l(0, "p"), C(1), d()), t & 2) { 5475 let e = c(3); 5476 k("color", e.globalMessages().winnersErrorTextColor), a(), Le(" ", e.globalMessages().winnersResult || "Winners not Available for", " ", e.displayFilterName(), " "); 5477 } 5478} 5479function h_(t, o) { 5480 t & 1 && b(0, "ds-loading-spinner", 36), t & 2 && p("ariaLabel", c(3).config().loadingLabel); 5481} 5482function f_(t, o) { 5483 t & 1 && oe(0, 38), t & 2 && (c(4), p("ngTemplateOutlet", ee(1))); 5484} 5485function v_(t, o) { 5486 if (t & 1 && oe(0, 13), t & 2) { 5487 let e = o.$implicit, n = o.$index; 5488 c(5), p("ngTemplateOutlet", ee(5))("ngTemplateOutletContext", Xe(2, ic, e, n)); 5489 } 5490} 5491function b_(t, o) { 5492 t & 1 && D(0, v_, 1, 5, "ng-container", 13, oo), t & 2 && R(c(4).winnersWidgetService.winners()); 5493} 5494function C_(t, o) { 5495 t & 1 && f(0, f_, 1, 1, "ng-container", 38)(1, b_, 2, 0), t & 2 && h(c(3).config().displayMode === "ticker" ? 0 : 1); 5496} 5497function y_(t, o) { 5498 if (t & 1 && (l(0, "div", 27)(1, "div", 29)(2, "div", 30), D(3, g_, 2, 7, "button", 31, qu), d(), l(5, "div", 32), C(6), f(7, m_, 2, 2, "div", 33), d(), l(8, "div", 34), f(9, p_, 2, 3, "p", 35), f(10, u_, 2, 4, "p", 35), f(11, h_, 1, 1, "ds-loading-spinner", 36), f(12, C_, 2, 1), d()()()), t & 2) { 5499 let e = c(2);
5500 a(3), R(e.filters()), a(2), k("color", e.globalMessages().winnersTextColor), a(), E(" ", e.displayFilterName(), " "), a(), h(e.winnerCount() || e.winnerCount() === 0 ? 7 : -1), a(2), h(e.winnersWidgetService.hasError() ? 9 : -1), a(), h(!e.winnersWidgetService.isLoading() && !e.winnersWidgetService.hasError() && e.winnerCount() === 0 ? 10 : -1), a(), h(e.config().enableLoadingIcon && e.winnersWidgetService.isLoading() && !e.winnersWidgetService.hasError() ? 11 : -1), a(), h(!e.winnersWidgetService.isLoading() && !e.winnersWidgetService.hasError() && e.winnersWidgetService.winners().length > 0 ? 12 : -1); 5501 } 5502} 5503function w_(t, o) { 5504 if (t & 1 && (l(0, "div", 45), C(1), d()), t & 2) { 5505 let e = c(3); 5506 k("color", e.globalMessages().winnersTextColor), a(), Le(" ", e.winnerCount(), " ", e.config().winnersText, " "); 5507 } 5508} 5509function P_(t, o) { 5510 if (t & 1 && (l(0, "p"), C(1), d()), t & 2) { 5511 let e = c(3); 5512 k("color", e.globalMessages().winnersErrorTextColor), a(), E(" ", e.config().errorMessage, " "); 5513 } 5514} 5515function S_(t, o) { 5516 if (t & 1 && (l(0, "p"), C(1), d()), t & 2) { 5517 let e = c(3); 5518 k("color", e.globalMessages().winnersErrorTextColor), a(), Le(" ", e.globalMessages().winnersResult || "Winners not Available for", " ", e.displayFilterName(), " "); 5519 } 5520} 5521function M_(t, o) { 5522 t & 1 && b(0, "ds-loading-spinner", 36), t & 2 && p("ariaLabel", c(3).config().loadingLabel); 5523} 5524function O_(t, o) { 5525 if (t & 1 && (l(0, "div", 48), oe(1, 13), d()), t & 2) { 5526 let e = o.$implicit, n = o.$index; 5527 c(5); 5528 let i = ee(5); 5529 a(), p("ngTemplateOutlet", i)("ngTemplateOutletContext", Xe(2, Hu, e, n)); 5530 } 5531} 5532function x_(t, o) { 5533 if (t & 1 && (l(0, "div", 46)(1, "vn-swiper-wrapper", 47), D(2, O_, 2, 5, "div", 48, oo), d()()), t & 2) { 5534 let e = c(4); 5535 a(), p("swiperOptions", e.swiperOptions())("showPagination", e.config().enablePagination), a(), R(e.winnersWidgetService.winners()); 5536 } 5537} 5538function __(t, o) { 5539 t & 1 && oe(0, 38), t & 2 && (c(4), p("ngTemplateOutlet", ee(1))); 5540} 5541function k_(t, o) { 5542 if (t & 1 && f(0, x_, 4, 2, "div", 46)(1, __, 1, 1, "ng-container", 38), t & 2) { 5543 let e; 5544 h((e = c(3).config().displayMode) === "carousel" ? 0 : e === "ticker" ? 1 : -1); 5545 } 5546} 5547function I_(t, o) { 5548 if (t & 1) { 5549 let e = _(); 5550 l(0, "div", 28)(1, "div", 39)(2, "div", 40)(3, "div", 41), C(4), d(), f(5, w_, 2, 4, "div", 42), d()(), l(6, "div", 43)(7, "cw-winners-filter-tabs", 44), S("filterChange", function(n) { 5551 return y(e), w(c(2).onFilterClick(n)); 5552 })("scrollLeftClick", function() { 5553 return y(e), w(c(2).onScrollLeftClick()); 5554 })("scrollRightClick", function() { 5555 return y(e), w(c(2).onScrollRightClick()); 5556 }), d(), f(8, P_, 2, 3, "p", 35), f(9, S_, 2, 4, "p", 35), f(10, M_, 1, 1, "ds-loading-spinner", 36), f(11, k_, 2, 1), d()(); 5557 } 5558 if (t & 2) { 5559 let e = c(2); 5560 a(3), k("color", e.globalMessages().winnersTextColor), a(), E(" ", e.displayFilterName(), " "), a(), h(e.winnerCount() || e.winnerCount() === 0 ? 5 : -1), a(2), p("filters", e.filters())("activeFilter", e.winnersWidgetService.activeFilter())("filterMinWidth", e.config().filterMinWidth)("filterBgColor", e.globalMessages().filterCarousalIconBgColor || "")("getButtonText", e.getFilterButtonText.bind(e)), a(), h(e.winnersWidgetService.hasError() && e.winnerCount() === 0 ? 8 : -1), a(), h(!e.winnersWidgetService.isLoading() && !e.winnersWidgetService.hasError() && e.winnerCount() === 0 ? 9 : -1), a(), h(e.config().enableLoadingIcon && e.winnersWidgetService.isLoading() && !e.winnersWidgetService.hasError() ? 10 : -1), a(), h(!e.winnersWidgetService.isLoading() && !e.winnersWidgetService.hasError() && e.winnersWidgetService.winners().length > 0 ? 11 : -1); 5561 } 5562} 5563function T_(t, o) { 5564 if (t & 1 && (l(0, "div")(1, "div"), f(2, d_, 1, 3, "cw-parallax-animation", 25), l(3, "div", 26), f(4, y_, 13, 8, "div", 27)(5, I_, 12, 13, "div", 28), d()()()), t & 2) { 5565 let e = c(); 5566 L("casino-backgroungImage-Clr", !e.config().hasParallaxImages), a(), L("casino-backgroungImage-layer", e.config().parallaxSrc1)("casino-backgroungImage-parallax", e.config().parallaxSrc2 || e.config().parallaxSrc3), a(), h(e.config().hasParallaxImages ? 2 : -1), a(2), h(e.isTouch() ? 4 : 5); 5567 } 5568} 5569function N_(t, o) { 5570 t & 1 && (l(0, "cw-lobby-container-placeholder", 4), b(1, "cw-winners-skeleton"), d()), t & 2 && p("containerId", c().containerMetadata().id); 5571} 5572function L_(t, o) { 5573 if (t & 1 && (H(0, "div")(1, "div", 1), C(2), K()()), t & 2) { 5574 let e = c(); 5575 W("gradient-number-wrapper " + e.wrapperClass()), a(), L("second-digit", e.isMultipleDigit()), a(), x(e.gradientIndex()); 5576 } 5577} 5578function G_(t, o) { 5579 if (t & 1 && b(0, "cw-image-loader", 5), t & 2) { 5580 let e = c(); 5581 p("icon", e.game().icon)("gameId", e.game().gameId)("alt", e.game().name ?? ""); 5582 } 5583} 5584function E_(t, o) { 5585 if (t & 1 && (l(0, "div", 1)(1, "div", 6), b(2, "img", 7), d()()), t & 2) { 5586 let e = o, n = c(); 5587 T("data-testid", "top-ten-top-slot-" + n.tileIndex()), a(2), k("object-position", e.objectPosition), p("ngSrc", e.src)("priority", n.tileIndex() === 1 && n.containerIndex() === 1)("width", e.spriteWidth)("height", e.frameHeight), T("aria-hidden", !0)("data-testid", "top-ten-top-slot-sprite-" + n.tileIndex()); 5588 } 5589} 5590function A_(t, o) { 5591 if (t & 1 && b(0, "div"), t & 2) { 5592 let e = c(), n = le(2); 5593 W(e.vm().themedGradientClass), k("background-image", n?.backgroundImage)("background-position", n?.backgroundPosition)("background-size", n?.backgroundSize)("background-repeat", n?.backgroundRepeat), T("data-testid", "top-ten-branded-digit-" + e.tileIndex()); 5594 } 5595} 5596function R_(t, o) { 5597 t & 1 && b(0, "cw-gradient-number", 3), t & 2 && p("gradientIndex", c().tileIndex()); 5598} 5599function D_(t, o) { 5600 if (t & 1 && (l(0, "div", 5)(1, "div", 8), b(2, "img", 9), d()()), t & 2) { 5601 let e = o, n = c(); 5602 T("data-testid", "top-ten-bottom-slot-" + n.tileIndex()), a(2), k("object-position", e.objectPosition), p("ngSrc", e.src)("width", e.spriteWidth)("height", e.frameHeight), T("aria-hidden", !0)("data-testid", "top-ten-bottom-slot-sprite-" + n.tileIndex()); 5603 } 5604} 5605function z_(t, o) { 5606 if (t & 1) { 5607 let e = _(); 5608 l(0, "div", 2)(1, "ds-arrow", 8), S("click", function() { 5609 return y(e), w(c().onPreviousPage()); 5610 }), d()(); 5611 } 5612 t & 2 && (a(), T("aria-label", "Previous games")); 5613} 5614function B_(t, o) { 5615 if (t & 1 && (l(0, "div", 9)(1, "div", 10)(2, "span"), C(3), d()()()), t & 2) { 5616 let e = c(); 5617 k("--%NS%col-span", 1)("--%NS%row-span", 1), a(), k("border-color", e.emptyStateStyles().borderColor)("color", e.emptyStateStyles().color), a(2), x(e.emptyStateMessage()); 5618 } 5619} 5620function F_(t, o) { 5621 if (t & 1 && b(0, "cw-top-ten-game-tile", 16), t & 2) { 5622 let e = c(3), n = e.$implicit, i = e.$index, r = c(); 5623 p("game", n)("tileIndex", i + 1)("layoutId", r.layoutId())("containerId", r.containerId())("containerIndex", r.containerIndex())("containerTitle", r.containerTitle())("containerType", r.containerType())("isBackgroun
5623dImageLayerPresent", r.isBackgroundImageLayerPresent())("themeSlot", r.themeSlots()?.["" + (i + 1)]); 5624 } 5625} 5626function V_(t, o) { 5627 t & 1 && te(0, F_, 1, 9, "cw-top-ten-game-tile", 17); 5628} 5629function j_(t, o) { 5630 if (t & 1 && b(0, "cw-game-tile", 14), t & 2) { 5631 let e = c(3), n = e.$implicit, i = e.$index, r = c(); 5632 p("game", n)("layoutId", r.layoutId())("containerId", r.containerId())("gameIndex", i + 1)("containerIndex", r.containerIndex())("isBackgroundImageLayerPresent", r.isBackgroundImageLayerPresent())("containerTitle", r.containerTitle())("priority", i === 0 && r.containerIndex() === 1)("containerType", r.containerType())("isRpFavWidget", r.isRpFavWidget()); 5633 } 5634} 5635function $_(t, o) { 5636 if (t & 1 && (b(0, "cw-gradient-number", 18), te(1, j_, 1, 10, "cw-game-tile", 19)), t & 2) { 5637 let e = c(2).$index; 5638 p("gradientIndex", e + 1); 5639 } 5640} 5641function W_(t, o) { 5642 if (t & 1 && (l(0, "div", 12), f(1, V_, 1, 0, "cw-top-ten-game-tile", 16)(2, $_, 2, 1), d()), t & 2) { 5643 let e = c(), n = e.$implicit, i = e.$index, r = c(); 5644 T("aria-label", "Play " + n.name + ", ranked number " + (i + 1)), a(), h(r.useThemedLayout() ? 1 : 2); 5645 } 5646} 5647function U_(t, o) { 5648 if (t & 1 && b(0, "cw-standout-games", 13), t & 2) { 5649 let e = c(), n = e.$implicit, i = e.$index, r = c(); 5650 p("game", n)("gameIndex", i + 1)("layoutId", r.layoutId())("containerId", r.containerId())("containerIndex", r.containerIndex())("containerTitle", r.containerTitle())("containerType", r.containerType()); 5651 } 5652} 5653function H_(t, o) { 5654 if (t & 1 && b(0, "cw-game-tile", 14), t & 2) { 5655 let e = c(2), n = e.$implicit, i = e.$index, r = c(); 5656 p("game", n)("layoutId", r.layoutId())("containerId", r.containerId())("gameIndex", i + 1)("containerIndex", r.containerIndex())("isBackgroundImageLayerPresent", r.isBackgroundImageLayerPresent())("containerTitle", r.containerTitle())("priority", i === 0 && r.containerIndex() === 1)("containerType", r.containerType())("isRpFavWidget", r.isRpFavWidget()); 5657 } 5658} 5659function q_(t, o) { 5660 t & 1 && te(0, H_, 1, 10, "cw-game-tile", 19); 5661} 5662function J_(t, o) { 5663 if (t & 1 && b(0, "img", 21), t & 2) { 5664 c(); 5665 let e = le(1), n = le(2), i = le(3), r = c().$implicit; 5666 p("alt", r.name || r.gameId)("loading", i)("placeholder", !n)("priority", n)("ngSrc", e); 5667 } 5668} 5669function Y_(t, o) { 5670 if (t & 1 && (l(0, "div", 20), Et(1)(2)(3), f(4, J_, 1, 5, "img", 21), d()), t & 2) { 5671 let e = c(), n = e.$implicit, i = e.$index, r = c(); 5672 a(); 5673 let u = Fe(n.icon?.src || ""); 5674 a(); 5675 let v = Fe(i === 0); 5676 a(), Fe(v ? void 0 : "auto"), a(), h(r.containerWidth() > 0 && u ? 4 : -1); 5677 } 5678} 5679function K_(t, o) { 5680 if (t & 1) { 5681 let e = _(); 5682 l(0, "div", 11), S("prefetch", function() { 5683 return y(e), w(c().loadNextGames.emit()); 5684 }), f(1, W_, 3, 2, "div", 12)(2, U_, 1, 7, "cw-standout-games", 13)(3, q_, 1, 0, "cw-game-tile", 14), te(4, Y_, 5, 4, "div", 15), d(); 5685 } 5686 if (t & 2) { 5687 let e = o.$implicit, n = o.$index, i = c(); 5688 k("--%NS%col-span", e.colSpan || 1)("--%NS%row-span", e.rowSpan || 1)("grid-column", e.gridColumn ? e.gridColumn + " / span " + (e.colSpan ?? 1) : null)("grid-row", e.gridRow ? e.gridRow + " / span " + (e.rowSpan ?? 1) : null), L("portrait", e.colSpan === 1 && e.rowSpan === 2)("landscape", e.colSpan === 2 && e.rowSpan === 1), p("useContainment", i.useContainment())("enabled", n === i.prefetchCheckIndex()), a(), h(i.isTopTen() ? 1 : i.isTopFive() ? 2 : 3); 5689 } 5690} 5691function Q_(t, o) { 5692 t & 1 && oe(0, 6), t & 2 && p("ngTemplateOutlet", o); 5693} 5694function X_(t, o) { 5695 if (t & 1) { 5696 let e = _(); 5697 l(0, "div", 7)(1, "ds-arrow", 22), S("click", function() { 5698 return y(e), w(c().onNextPage()); 5699 }), d()(); 5700 } 5701 t & 2 && (a(), p("inverse", !1), T("aria-label", "Next games")); 5702} 5703function Z_(t) { 5704 let { orientation: o, windowWidth: e, lobbyType: n, viewType: i, config: r } = t; 5705 if (i !== U.Grid || o !== "portrait" || e < Ph || e > Sh || !n || !r?.length) return; 5706 let u = n.toLowerCase(), v = r.find((P) => P?.lobbyType?.toLowerCase() === u)?.countValue; 5707 return typeof v == "number" && v ? v : void 0; 5708} 5709function e0(t, o) { 5710 if (t & 1) { 5711 let e = _(); 5712 l(0, "cw-game-tile", 3), S("prefetch", function() { 5713 return y(e), w(c().loadNextGames.emit()); 5714 }), d(); 5715 } 5716 if (t & 2) { 5717 let e = o.$implicit, n = o.$index, i = c(); 5718 L("portrait", (e.colSpan ?? 1) === 1 && (e.rowSpan ?? 1) === 2)("landscape", (e.colSpan ?? 1) === 2 && (e.rowSpan ?? 1) === 1), p("enabled", n === i.prefetchCheckIndex())("game", e)("layoutId", i.layoutId())("containerId", i.containerId())("gameIndex", n + 1)("containerIndex", i.containerIndex())("isBackgroun
5718dImageLayerPresent", i.isBackgroundImageLayerPresent())("containerTitle", i.containerTitle())("priority", n === 0 && i.containerIndex() === 1)("containerType", i.containerType())("isRpFavWidget", i.isRpFavWidget()); 5719 } 5720} 5721function t0(t, o) { 5722 t & 1 && oe(0, 2), t & 2 && p("ngTemplateOutlet", o); 5723} 5724function n0(t, o) { 5725 if (t & 1) { 5726 let e = _(); 5727 l(0, "cw-game-carousel", 2), S("loadNextGames", function() { 5728 return y(e), w(c(2).loadNextGames.emit()); 5729 }), d(); 5730 } 5731 if (t & 2) { 5732 let e = c(2); 5733 p("viewType", e.viewType())("enableCarousel", e.enableCarousel())("games", e.games())("layoutId", e.layoutId())("themeConfig", e.themeConfig())("emptyStateMessage", e.emptyStateMessage())("emptyStateStyles", e.emptyStateStyles())("containerIndex", e.containerIndex())("containerId", e.containerId())("containerTitle", e.containerTitle())("containerType", e.containerType())("isRpFavWidget", e.isRpFavWidget())("colOverride", e.colOverride())("trailingContent", e.trailingContent())("isBackgroundImageLayerPresent", e.isBackgroundImageLayerPresent()); 5734 } 5735} 5736function i0(t, o) { 5737 if (t & 1) { 5738 let e = _(); 5739 l(0, "cw-game-grid", 3), S("loadNextGames", function() { 5740 return y(e), w(c(2).loadNextGames.emit()); 5741 }), d(); 5742 } 5743 if (t & 2) { 5744 let e = c(2); 5745 p("viewType", e.viewType())("layoutId", e.layoutId())("games", e.games())("containerIndex", e.containerIndex())("containerId", e.containerId())("containerTitle", e.containerTitle())("containerType", e.containerType())("isRpFavWidget", e.isRpFavWidget())("trailingContent", e.trailingContent())("isBackgroundImageLayerPresent", e.isBackgroundImageLayerPresent()); 5746 } 5747} 5748function a0(t, o) { 5749 t & 1 && f(0, n0, 1, 15, "cw-game-carousel", 0)(1, i0, 1, 10, "cw-game-grid", 1), t & 2 && h(c().isCarouselMode() ? 0 : 1); 5750} 5751function o0(t) { 5752 return t === U.Grid; 5753} 5754function Si(t, o) { 5755 return o0(t) ? o() ?? 0 : 0; 5756} 5757function Mi(t) { 5758 return t === void 0 ? 1 : Math.max(dr[t] ?? 1, _h[t] ?? 1); 5759} 5760function Oi(t, o, e = !1) { 5761 return t === U.TopTen ? "top-ten" : t === U.LandscapeV2 ? o ? "icon-7-touch" : e ? "icon-7-carousel" : "icon-7" : t === U.Carousel3D ? "carousel-3d" : o ? "touch" : "default"; 5762} 5763function xi(t, o) { 5764 return o ?? kh[t] ?? U.Grid; 5765} 5766function r0(t, o) { 5767 t & 1 && Pe(0, "div", 3); 5768} 5769function s0(t, o) { 5770 if (t & 1 && b(0, "cw-parallax-animation", 2), t & 2) { 5771 let e, n, i, r = c(2); 5772 p("src1", (e = r.container()) == null || e.parallaxImage == null || e.parallaxImage.parallaxBackgroundImage1 == null ? null : e.parallaxImage.parallaxBackgroundImage1.src)("src2", (n = r.container()) == null || n.parallaxImage == null || n.parallaxImage.parallaxBackgroundImage2 == null ? null : n.parallaxImage.parallaxBackgroundImage2.src)("src3", (i = r.container()) == null || i.parallaxImage == null || i.parallaxImage.parallaxBackgroundImage3 == null ? null : i.parallaxImage.parallaxBackgroundImage3.src); 5773 } 5774} 5775function c0(t, o) { 5776 if (t & 1) { 5777 let e = _(); 5778 l(0, "cw-feature-grid", 6), S("loadNextGames", function() { 5779 return y(e), w(c(2).loadNextGames()); 5780 }), d(); 5781 } 5782 if (t & 2) { 5783 let e = o, n = c(2); 5784 p("layoutId", n.layoutId())("viewType", e.viewType ?? n.defaultViewType)("enableCarousel", e.enableCarousel ?? !1)("games", n.visibleGames())("containerIndex", n.containerIndex())("containerId", e.id ?? "")("containerTitle", e.title ?? "")("containerType", n.gameContainerType())("isBackgroundImageLayerPresent", n.hasParallaxImages()); 5785 } 5786} 5787function l0(t, o) { 5788 if (t & 1) { 5789 let e = _(); 5790 l(0, "div")(1, "div"), f(2, s0, 1, 3, "cw-parallax-animation", 2), l(3, "div", 3)(4, "cw-container-header", 4), S("seeAllClick", function() { 5791 return y(e), w(c().onSeeAllClick()); 5792 })("moreInfoClick", function() { 5793 return y(e), w(c().onMoreInfoClick()); 5794 })("moreInfoOverlayLoad", function() { 5795 return y(e), w(c().onMoreInfoOverlay("load")); 5796 })("moreInfoOverlayCtaClick", function(n) { 5797 return y(e), w(c().onMoreInfoOverlayCtaClick(n)); 5798 })("moreInfoOverlayClose", function() { 5799 return y(e), w(c().onMoreInfoOverlay("close")); 5800 }), d(), l(5, "div"), f(6, c0, 1, 9, "cw-feature-grid", 5), d()()()(); 5801 } 5802 if (t & 2) { 5803 let e, n, i, r, u, v = c(); 5804 L("casino-backgroungImage-Clr", !v.hasParallaxImages()), a(), L("casino-backgroungImage-layer", v.container()?.parallaxImage?.parallaxBackgroun
5804dImage1)("casino-backgroungImage-parallax", v.container()?.parallaxImage?.parallaxBackgroundImage2 || v.container()?.parallaxImage?.parallaxBackgroundImage3), a(), h(v.hasParallaxImages() ? 2 : -1), a(2), p("iconName", (e = v.container()) == null ? null : e.iconName)("title", (n = v.container()) == null ? null : n.title)("subtitle", (i = v.container()) == null ? null : i.subtitle)("showViewAllButton", !!v.container()?.viewAllTarget)("headingTextColor", v.headingTextColor())("showMoreInfo", v.showMoreInfo())("moreInfoDialog", (r = v.container()) == null ? null : r.moreInfoDialog), a(), W("feature-grid-games-container " + v.getContainerClass()), k("overflow-x", v.isTouch ? "scroll" : "hidden"), L("non-touch-scrollable-games", !v.isTouch && v.getContainerClass() === "scrollable-games"), a(), h((u = v.container()) ? 6 : -1, u); 5805 } 5806} 5807function d0(t, o) { 5808 if (t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-favourites-skeleton"), d()), t & 2) { 5809 let e = c(); 5810 p("containerId", e.containerMetadata().id)("rows", e.placeholderRows())("ladder", e.placeholderL
5810adder())("gameCount", e.placeholderGameCount()); 5811 } 5812} 5813function g0(t, o) { 5814 if (t & 1) { 5815 let e = _(); 5816 l(0, "div", 0)(1, "img", 1), S("error", function() { 5817 return y(e), w(c().onImageError()); 5818 }), d()(); 5819 } 5820 if (t & 2) { 5821 let e = c(); 5822 a(), p("ngSrc", e.src())("priority", !0); 5823 } 5824} 5825function m0() { 5826 return { 5827 0: { 5828 slidesPerView: ge.MOBILE_SLIDES_PER_VIEW + .065, 5829 coverflowEffect: { 5830 rotate: 0, 5831 stretch: "42%", 5832 depth: 360, 5833 modifier: 1, 5834 slideShadows: !1 5835 } 5836 }, 5837 768: { 5838 slidesPerView: ge.SLIDES_PER_VIEW - .96, 5839 coverflowEffect: { 5840 rotate: 0, 5841 stretch: "70%", 5842 depth: 149, 5843 modifier: 1, 5844 slideShadows: !1 5845 } 5846 }, 5847 790: { 5848 slidesPerView: 7, 5849 coverflowEffect: { 5850 rotate: 0, 5851 stretch: "80%", 5852 depth: 125, 5853 modifier: 1, 5854 slideShadows: !1 5855 } 5856 }, 5857 1200: { 5858 slidesPerView: ge.SLIDES_PER_VIEW + .09, 5859 spaceBetween: 0, 5860 coverflowEffect: { 5861 rotate: 0, 5862 stretch: "47%", 5863 depth: 196, 5864 modifier: 1, 5865 slideShadows: !1 5866 } 5867 } 5868 }; 5869} 5870function p0(t) { 5871 return { 5872 effect: "coverflow", 5873 keyboard: { enabled: !1 }, 5874 centeredSlides: !0, 5875 speed: ge.SWIPER_SPEED, 5876 initialSlide: t, 5877 spaceBetween: 0, 5878 loop: !1, 5879 slideToClickedSlide: !1, 5880 touchRatio: 1, 5881 threshold: 5, 5882 longSwipesRatio: .3, 5883 longSwipesMs: 300, 5884 touchReleaseOnEdges: !0, 5885 resistanceRatio: 0, 5886 freeMode: !1, 5887 watchSlidesProgress: !0, 5888 observer: !0, 5889 observeParents: !0, 5890 observeSlideChildren: !0, 5891 slidesPerView: ge.SLIDES_PER_VIEW, 5892 updateOnWindowResize: !0, 5893 breakpoints: m0(), 5894 navigation: { enabled: !1 }, 5895 a11y: { slideLabelMessage: Eh }, 5896 injectStyles: [Gh] 5897 }; 5898} 5899function u0(t, o) { 5900 if (t.length === 0) return []; 5901 let e = t.slice(-o), n = t.slice(0, o); 5902 return [ 5903 ...e, 5904 ...t, 5905 ...n 5906 ]; 5907} 5908function Xd(t, o, e) { 5909 return e === 0 ? -1 : ((t - o) % e + e) % e; 5910} 5911function h0(t, o, e) { 5912 return e === 0 ? "" : `${Xd(t, o, e) + 1} / ${e}`; 5913} 5914function f0(t, o, e) { 5915 return Math.floor(t / ge.TOTAL_COLUMNS) * o - e; 5916} 5917function v0(t, o) { 5918 return { 5919 start: t, 5920 end: t + o - 1 5921 }; 5922} 5923function Zd(t, o, e) { 5924 let { start: n, end: i } = v0(o, e); 5925 return t < n ? { 5926 kind: "jump", 5927 jumpToIndex: i - (n - 1 - t) 5928 } : t > i ? { 5929 kind: "jump", 5930 jumpToIndex: n + (t - i - 1) 5931 } : { kind: "within" }; 5932} 5933function b0(t, o, e) { 5934 let n = Zd(t, o, e);
5935 return n.kind === "jump" ? n.jumpToIndex : null; 5936} 5937function C0(t, o, e) { 5938 let n = (o - t + e) % e, i = (t - o + e) % e; 5939 return n <= i ? { 5940 direction: "next", 5941 steps: n 5942 } : { 5943 direction: "prev", 5944 steps: i 5945 }; 5946} 5947function Pn(t, o, e) { 5948 return !!t && o >= t.left && o <= t.right && e >= t.top && e <= t.bottom; 5949} 5950function y0(t, o, e) { 5951 return Pn(t.active, o, e) ? !1 : Pn(t.prev, o, e) || Pn(t.next, o, e); 5952} 5953function w0(t, o, e) { 5954 return Pn(t.container, o, e) ? Pn(t.active, o, e) ? "active" : Pn(t.prev, o, e) ? "prev" : Pn(t.next, o, e) ? "next" : "none" : "outside"; 5955} 5956function P0(t, o) { 5957 return t === 1 ? "slide-distance-1" : t === 2 ? "slide-distance-2" : t >= 3 && !o ? "slide-distance-3" : null; 5958} 5959function S0(t, o) { 5960 if (t & 1) { 5961 let e = _(); 5962 l(0, "swiper-slide", 6), S("click", function(n) { 5963 let i = y(e).$index; 5964 return w(c().onSlideClick(i, n)); 5965 }), b(1, "cw-game-lobby", 7), d(); 5966 } 5967 if (t & 2) { 5968 let e = o.$implicit, n = o.$index, i = c(); 5969 p("id", i.containerId() + "_" + e.key), T("data-swiper-slide-index", n)("aria-label", e.ariaLabel)("tabindex", i.slideTabindex()), a(), p("game", e.game)("layoutId", i.layoutId())("containerId", i.containerId())("containerIndex", i.containerIndex())("gameIndex", n)("containerTitle", i.containerTitle())("containerType", i.containerType())("showStickers", n === i.activeSlideIndex())("inCarousel3d", !0)("disableLaunch", i.hoverInteractionSuppressed()); 5970 } 5971} 5972function M0(t, o) { 5973 if (t & 1) { 5974 let e = _(); 5975 l(0, "div", 5)(1, "div", 8)(2, "ds-arrow", 9), S("click", function() { 5976 return y(e), w(c().onPrevClick()); 5977 }), d()(), l(3, "div", 8)(4, "ds-arrow", 10), S("click", function() { 5978 return y(e), w(c().onNextClick()); 5979 }), d()()(); 5980 } 5981 if (t & 2) { 5982 let e = c(); 5983 a(2), p("disabled", e.isSlideTransitionActive()), T("aria-label", "Previous slide")("aria-disabled", e.isSlideTransitionActive() ? "true" : null)("data-category", e.containerId()), a(2), p("disabled", e.isSlideTransitionActive()), T("aria-label", "Next slide")("aria-disabled", e.isSlideTransitionActive() ? "true" : null)("data-category", e.containerId()); 5984 } 5985} 5986function O0(t, o) { 5987 if (t & 1 && (l(0, "div", 5)(1, "ds-badge", 19), C(2), d()()), t & 2) { 5988 let e = c(); 5989 a(2), x(e.card().tagLabel); 5990 } 5991} 5992function x0(t, o) { 5993 if (t & 1 && (l(0, "div", 20), b(1, "vn-icon", 22), l(2, "span", 23), C(3), d()()), t & 2) { 5994 let e = c(2); 5995 a(3), x(e.card().playerCount); 5996 } 5997} 5998function _0(t, o) { 5999 if (t & 1 && (l(0, "div", 21), C(1), d()), t & 2) { 6000 let e = c(2); 6001 a(), Le("", e.card().minBet, " - ", e.card().maxBet); 6002 } 6003} 6004function k0(t, o) { 6005 if (t & 1 && (l(0, "div", 15), f(1, x0, 4, 1, "div", 20), f(2, _0, 2, 2, "div", 21), d()), t & 2) { 6006 let e = c(); 6007 a(), h(e.hideActivePlayerCount() ? -1 : 1), a(), h(!e.hideMinMaxBet() && e.card().minBet && e.card().maxBet ? 2 : -1); 6008 } 6009} 6010function I0(t, o) { 6011 t & 1 && b(0, "div", 26); 6012} 6013function T0(t, o) { 6014 if (t & 1 && (l(0, "div", 25), C(1), d(), f(2, I0, 1, 0, "div", 26)), t & 2) { 6015 let e = o.$implicit, n = o.$index; 6016 k("background", c(2).lastResultNumberColor(e)), a(), E(" ", e, " "), a(), h(n === 0 ? 2 : -1); 6017 } 6018} 6019function N0(t, o) { 6020 if (t & 1 && (l(0, "div", 18)(1, "div", 24), D(2, T0, 3, 4, null, null, Ze), d()()), t & 2) { 6021 let e = c(); 6022 a(2), R(e.sliceLastResults(e.card().results)); 6023 } 6024} 6025function eg(t, o) { 6026 if (t === void 0 || t === -1) return ""; 6027 let e = t < 1 || t % 1 !== 0 ? 2 : 0, n = t.toLocaleString(void 0, { 6028 minimumFractionDigits: e, 6029 maximumFractionDigits: e 6030 }); 6031 return o ? `${o}${n}` : n; 6032} 6033function L0(t, o) { 6034 if (t & 1) { 6035 let e = _(); 6036 l(0, "cw-game-card", 6), S("markGameAsFavourite", function(n) { 6037 return y(e), w(c(2).onFavouriteToggle(n)); 6038 })("launchGameRequest", function(n) { 6039 return y(e), w(c(2).onGameLaunch(n)); 6040 }), d(); 6041 } 6042 if (t & 2) { 6043 let e = c().$implicit, n = c(); 6044 p("card", e)("hideMinMaxBet", n.hideMinMaxBet())("hideActivePlayerCount", n.hideActivePlayerCount())("useFavouriteHeart", n.useFavouriteHeart()); 6045 } 6046} 6047function G0(t, o) { 6048 if (t & 1 && (l(0, "div", 4), f(1, L0, 1, 4, "cw-game-card", 5), d()), t & 2) { 6049 let e = o.$index, n = c(); 6050 a(), h(n.activeIndices().has(e) ? 1 : -1); 6051 } 6052} 6053function E0(t, o) { 6054 if (t & 1 && (l(0, "div", 3), C(1), d()), t & 2) { 6055 let e = c(); 6056 a(), x(e.game().label); 6057 } 6058} 6059function A0(t, o) { 6060 if (t & 1 && (l(0, "div", 7), C(1), d()), t & 2) { 6061 let e = c(2); 6062 a(), Le("", e.game().minBet, " - ", e.game().maxBet); 6063 } 6064} 6065function R0(t, o) { 6066 if (t & 1 && (l(0, "div", 8), b(1, "vn-icon", 9), C(2), d()), t & 2) { 6067 let e = c(2); 6068 a(2), E(" ", e.game().playerCount, "mil "); 6069 } 6070} 6071function D0(t, o) { 6072 if (t & 1 && (l(0, "div", 6), f(1, A0, 2, 2, "div", 7), f(2, R0, 3, 1, "div", 8), d()), t & 2) { 6073 let e = c(); 6074 a(), h(e.showBetAmount() ? 1 : -1), a(), h(e.showPlayerCount() ? 2 : -1); 6075 } 6076} 6077function z0(t, o) { 6078 if (t & 1) { 6079 let e = _(); 6080 H(0, "button", 4), Qt("click", function() { 6081 let n = y(e).$implicit; 6082 return w(c().select(n)); 6083 }), C(1), K(); 6084 } 6085 if (t & 2) { 6086 let e = o.$implicit, n = c(); 6087 k("background-color", n.buttonProps()[e].backgroundColor)("color", n.buttonProps()[e].color), L("footer__btn--active", n.isActive(e)), T("aria-checked", n.isActive(e)), a(), E(" ", n.labelFor(e), " "); 6088 } 6089} 6090function B0(t, o) { 6091 let e = t.slides, n = t.activeIndex;
6092 e.forEach((i, r) => { 6093 let u = Math.abs(r - n) <= 1; 6094 o.setStyle(i, "visibility", u ? Pf : Sf), o.setStyle(i, "opacity", u ? Mf : Of); 6095 }); 6096} 6097function F0(t, o, e, n) { 6098 return { 6099 modules: [Fl], 6100 slidesPerView: 1, 6101 initialSlide: 1, 6102 effect: xf, 6103 loop: !1, 6104 navigation: !o, 6105 cardsEffect: { 6106 perSlideRotate: 10, 6107 perSlideOffset: t ? 10 : 30, 6108 slideShadows: !1 6109 }, 6110 on: { 6111 init: e, 6112 slideChange: n 6113 } 6114 }; 6115} 6116function V0(t, o) { 6117 if (t & 1) { 6118 let e = _(); 6119 l(0, "div", 3)(1, "cw-volatility-range-card", 5), S("markGameAsFavourite", function(n) { 6120 return y(e), w(c().toggleFavourite(n)); 6121 })("launchGameRequest", function(n) { 6122 return y(e), w(c().onLaunchGame(n)); 6123 }), d()(); 6124 } 6125 if (t & 2) { 6126 let e = o.$implicit, n = c(); 6127 a(), p("game", e)("fallBackImageUrl", n.fallBackImageUrl())("hideMinMaxBet", n.hideMinMaxBet())("hideActivePlayerCount", n.hideActivePlayerCount()); 6128 } 6129} 6130function j0(t, o) { 6131 t & 1 && Pe(0, "div", 3); 6132} 6133function $0(t, o) { 6134 if (t & 1 && b(0, "cw-parallax-animation", 2), t & 2) { 6135 let e, n, i, r = c(2); 6136 p("src1", (e = r.container()) == null || e.parallaxImage == null || e.parallaxImage.parallaxBackgroundImage1 == null ? null : e.parallaxImage.parallaxBackgroundImage1.src)("src2", (n = r.container()) == null || n.parallaxImage == null || n.parallaxImage.parallaxBackgroundImage2 == null ? null : n.parallaxImage.parallaxBackgroundImage2.src)("src3", (i = r.container()) == null || i.parallaxImage == null || i.parallaxImage.parallaxBackgroundImage3 == null ? null : i.parallaxImage.parallaxBackgroundImage3.src); 6137 } 6138} 6139function W0(t, o) { 6140 if (t & 1 && b(0, "cw-enhanced-carousel-3d", 5), t & 2) { 6141 let e = c(2); 6142 p("games", e.games())("layoutId", e.layoutId())("containerId", e.container()?.id ?? "")("containerIndex", e.containerIndex())("containerTitle", e.container()?.title ?? "")("containerType", e.gameContainerType()); 6143 } 6144} 6145function U0(t, o) { 6146 if (t & 1) { 6147 let e = _(); 6148 l(0, "div", 3)(1, "cw-game-swiper-card-container", 8), S("loadNextGames", function() { 6149 return y(e), w(c(2).loadNextGames()); 6150 }), d()(); 6151 } 6152 if (t & 2) { 6153 let e = c(2); 6154 a(), p("containerMetadata", e.containerMetadata())("games", e.games())("lobbyType", e.layoutId())("containerTitle", e.container()?.title ?? "")("containerIndex", e.containerIndex()); 6155 } 6156} 6157function H0(t, o) { 6158 if (t & 1 && b(0, "cw-volatility-range", 6), t & 2) { 6159 let e = c(2); 6160 p("widgetData", e.volatilityWidgetData())("containerMetadata", e.containerMetadata()); 6161 } 6162} 6163function q0(t, o) { 6164 if (t & 1) { 6165 let e = _(); 6166 l(0, "div")(1, "cw-feature-grid", 9), S("loadNextGames", function() { 6167 return y(e), w(c(2).loadNextGames()); 6168 }), d()(); 6169 } 6170 if (t & 2) { 6171 c(); 6172 let e = le(5), n = c(); 6173 W("feature-grid-games-container " + e), k("overflow-x", !n.isTouch && !n.isTopFive() ? "hidden" : "scroll"), L("top-ten-games", n.isTopTen())("non-touch-scrollable-games", !n.isTouch && e === "scrollable-games"), a(), p("layoutId", n.layoutId())("viewType", n.fallbackViewType())("enableCarousel", n.enableCarouselForFallback())("games", n.games())("themeConfig", n.themeConfig())("containerIndex", n.containerIndex())("containerId", n.container()?.id ?? "")("containerTitle", n.container()?.title ?? "")("containerType", n.gameContainerType())("isBackgroundImageLayerPresent", n.hasParallaxImages()); 6174 } 6175} 6176function J0(t, o) { 6177 if (t & 1) { 6178 let e = _(); 6179 l(0, "div")(1, "div"), f(2, $0, 1, 3, "cw-parallax-animation", 2), l(3, "div", 3)(4, "cw-container-header", 4), S("seeAllClick", function() { 6180 return y(e), w(c().onSeeAllClick()); 6181 })("moreInfoClick", function() { 6182 return y(e), w(c().onMoreInfoClick()); 6183 })("moreInfoOverlayLoad", function() { 6184 return y(e), w(c().onMoreInfoOverlay("load")); 6185 })("moreInfoOverlayCtaClick", function(n) { 6186 return y(e), w(c().onMoreInfoOverlayCtaClick(n)); 6187 })("moreInfoOverlayClose", function() { 6188 return y(e), w(c().onMoreInfoOverlay("close")); 6189 }), d(), Et(5), f(6, W0, 1, 6, "cw-enhanced-carousel-3d", 5)(7, U0, 2, 5, "div", 3)(8, H0, 1, 2, "cw-volatility-range", 6)(9, q0, 2, 18, "div", 7), d()()(); 6190 } 6191 if (t & 2) { 6192 let e, n, i, r, u, v = c(); 6193 L("casino-backgroungImage-Clr", !v.hasParallaxImages()), a(), L("casino-backgroungImage-layer", v.container()?.parallaxImage?.parallaxBackgroun
6193dImage1)("casino-backgroungImage-parallax", v.container()?.parallaxImage?.parallaxBackgroundImage2 || v.container()?.parallaxImage?.parallaxBackgroundImage3), a(), h(v.hasParallaxImages() ? 2 : -1), a(), L("themed-top-ten-container", !!v.themeConfig()?.gradientImage), a(), p("iconName", (e = v.container()) == null ? null : e.iconName)("title", (n = v.container()) == null ? null : n.title)("subtitle", (i = v.container()) == null ? null : i.subtitle)("showViewAllButton", !!v.container()?.viewAllTarget)("isEpcotHeading", v.isEpcotHeading())("isThemedTopTen", !!v.themeConfig()?.gradientImage)("headingTextColor", v.headingTextColor())("showMoreInfo", v.showMoreInfo())("moreInfoDialog", (r = v.container()) == null ? null : r.moreInfoDialog), a(), Fe(v.containerClass()), a(), h((u = v.renderKind()) === "3d-carousel" ? 6 : u === "swiper-card" ? 7 : u === "threeCategoriesWidget" ? 8 : 9); 6194 } 6195} 6196function Y0(t, o) { 6197 if (t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-lobby-container-skeleton"), d()), t & 2) { 6198 let e = c(); 6199 p("containerId", e.containerMetadata().id)("rows", e.placeholderRows())("ladder", e.placeholderL
6199adder())("gameCount", e.placeholderGameCount()); 6200 } 6201} 6202function K0(t, o) { 6203 if (t & 1 && (yn(0), oe(1, 3), un()), t & 2) { 6204 let e = c(2), n = e.$implicit, i = e.$index, r = c(2); 6205 a(), p("ngTemplateOutlet", r.itemTemplate())("ngTemplateOutletContext", Xe(2, mo, n, i)); 6206 } 6207} 6208function Q0(t, o) { 6209 if (t & 1 && (l(0, "div"), b(1, "cw-lobby-container-placeholder", 6), d()), t & 2) { 6210 c(); 6211 let e = ee(1), n = c().$implicit; 6212 k("height", e.size().height || null, "px"), a(), p("containerId", n.id)("rows", n.reservedRows)("ladder", n.reservedLadder)("gameCount", n.reservedGames), T("data-cls-kind", n.clsKind); 6213 } 6214} 6215function X0(t, o) { 6216 t & 1 && (l(0, "div", 2, 0), te(2, K0, 2, 5, "ng-container", 4)(3, Q0, 2, 7, "div", 5), d()); 6217} 6218function Z0(t, o) { 6219 if (t & 1 && oe(0, 3), t & 2) { 6220 let e = c(), n = e.$implicit, i = e.$index; 6221 p("ngTemplateOutlet", c(2).itemTemplate())("ngTemplateOutletContext", Xe(2, mo, n, i)); 6222 } 6223} 6224function ek(t, o) { 6225 if (t & 1 && f(0, X0, 4, 0, "div", 2)(1, Z0, 1, 5, "ng-container", 3), t & 2) { 6226 let e = o.$implicit; 6227 h(e.virtualise ? 0 : 1); 6228 } 6229} 6230function tk(t, o) { 6231 if (t & 1 && (l(0, "div", 1), D(1, ek, 2, 1, null, null, Sc), d()), t & 2) { 6232 let e = c(); 6233 p("root", null), a(), R(e.entries()); 6234 } 6235} 6236function nk(t, o) { 6237 if (t & 1 && oe(0, 3), t & 2) { 6238 let e = o.$implicit, n = o.$index; 6239 p("ngTemplateOutlet", c(2).itemTemplate())("ngTemplateOutletContext", Xe(2, mo, e, n)); 6240 } 6241} 6242function ik(t, o) { 6243 t & 1 && D(0, nk, 1, 5, "ng-container", 3, Sc), t & 2 && R(c().entries()); 6244} 6245function ak() { 6246 return { 6247 provide: Yl, 6248 useFactory: () => { 6249 let t = s(Yl, { skipSelf: !0 }), o = t.enabled; 6250 if (!$b(o)) return t; 6251 let e = !1; 6252 return F(G({}, t), { enabled: g(() => (e ||= o(), e)) }); 6253 } 6254 }; 6255} 6256function ok(t, o) { 6257 if (t & 1 && (l(0, "div", 0), b(1, "span", 2), l(2, "span", 3), C(3), d()()), t & 2) { 6258 let e = c(); 6259 a(), W(e.SUCCESS_ICON_CLASS + " " + e.originalsConfig()[e.CONFIG_KEY.greenTick]), a(2), x(e.originalsConfig()[e.CONFIG_KEY.optedInText]); 6260 } 6261} 6262function rk(t, o) { 6263 if (t & 1) { 6264 let e = _(); 6265 l(0, "div", 1)(1, "button", 4), S("click", function(n) { 6266 return y(e), w(c().optIn(n)); 6267 }), C(2), d()(); 6268 } 6269 if (t & 2) { 6270 let e = c(); 6271 a(2), E(" ", e.originalsConfig()[e.CONFIG_KEY.optinText], " "); 6272 } 6273} 6274function sk(t, o) { 6275 if (t & 1 && (H(0, "div", 1), C(1), K()), t & 2) { 6276 let e = c(); 6277 a(), x(e.originalsConfig()[e.CONFIG_KEY.seeDetailsDesc]); 6278 } 6279} 6280function ck(t, o) { 6281 if (t & 1 && (H(0, "div", 2), C(1), Pe(2, "br"), H(3, "div", 8), C(4), K()()), t & 2) { 6282 let e = c(); 6283 a(), E(" ", e.originalsConfig()[e.CONFIG_KEY.prizeText]), a(3), x(e.originalsConfig()[e.CONFIG_KEY.prizeValue]); 6284 } 6285} 6286function lk(t, o) { 6287 if (t & 1 && (H(0, "div", 4), C(1), K()), t & 2) { 6288 let e = c(); 6289 a(), x(e.originalsConfig()[e.CONFIG_KEY.timeZoneText]); 6290 } 6291} 6292function dk(t, o) { 6293 t & 1 && (H(0, "span", 10), C(1, ":"), K()); 6294} 6295function gk(t, o) { 6296 if (t & 1 && (H(0, "span", 9), C(1), K(), H(2, "span", 9), C(3), K(), f(4, dk, 2, 0, "span", 10)), t & 2) { 6297 let e = o.$implicit, n = o.$index, i = o.$count; 6298 a(), x(e.digits[0]), a(2), x(e.digits[1]), a(), h(n !== i - 1 ? 4 : -1); 6299 } 6300} 6301function mk(t, o) { 6302 if (t & 1 && (H(0, "div", 7), C(1), K()), t & 2) { 6303 let e = o.$implicit, n = c(); 6304 a(), x(n.originalsConfig()[e.labelKey]); 6305 } 6306} 6307function pk(t, o) { 6308 if (t & 1 && b(0, "img", 6), t & 2) { 6309 let e = c(2), n = le(0); 6310 p("alt", le(1))("src", n[e.CONFIG_KEY.iconContent], Y); 6311 } 6312} 6313function uk(t, o) { 6314 if (t & 1 && (l(0, "div", 4)(1, "div", 5), f(2, pk, 1, 2, "img", 6), l(3, "span"), C(4), d()(), l(5, "span", 7), C(6), d()()), t & 2) { 6315 let e = c(), n = le(0); 6316 a(2), h(n[e.CONFIG_KEY.iconContent] ? 2 : -1), a(2), x(n[e.CONFIG_KEY.headerTitleText]), a(2), x(n[e.CONFIG_KEY.headerTitleSubText]); 6317 } 6318} 6319function hk(t, o) { 6320 if (t & 1) { 6321 let e = _(); 6322 l(0, "div", 8)(1, "button", 9), S("click", function(n) { 6323 return y(e), w(c().onSeeAllDetails(n)); 6324 }), C(2), d(), b(3, "cw-originals-optin", 10), d(); 6325 } 6326 if (t & 2) { 6327 let e = o.btnSize, n = c(), i = le(0); 6328 a(), p("size", e), a(), E(" ", i[n.CONFIG_KEY.seeDetailsText], " "), a(), p("originalsConfig", i); 6329 } 6330} 6331function fk(t, o) { 6332 if (t & 1) { 6333 let e = _(); 6334 l(0, "div", 11), S("click", function() { 6335 return y(e), w(c().onGotoSubNav()); 6336 }), C(1), b(2, "span", 12), d(); 6337 } 6338 if (t & 2) { 6339 let e = c(), n = le(0); 6340 a(), E(" ", n[e.CONFIG_KEY.viewGamesText], " "); 6341 } 6342} 6343function vk(t, o) { 6344 t & 1 && oe(0); 6345} 6346function bk(t, o) { 6347 t & 1 && oe(0); 6348} 6349function Ck(t, o) { 6350 t & 1 && oe(0); 6351} 6352function yk(t, o) { 6353 t & 1 && te(0, Ck, 1, 0, "ng-container", 16), t & 2 && (c(2), p("ngTemplateOutlet", ee(7))); 6354} 6355function wk(t, o) { 6356 if (t & 1) { 6357 let e = _(); 6358 l(0, "div", 13), S("click", function() { 6359 return y(e), w(c().onGotoSubNav()); 6360 }), l(1, "div", 14)(2, "div", 15), te(3, vk, 1, 0, "ng-container", 16), l(4, "p", 17), C(5), d(), te(6, bk, 1, 0, "ng-container", 18), d(), l(7, "div", 19), b(8, "cw-originals-timer", 20), d()(), f(9, yk, 1, 1, "ng-container"), d(); 6361 } 6362 if (t & 2) { 6363 let e = c(), n = ee(3), i = ee(5), r = le(0); 6364 k("background-image", "url(" + r[e.CONFIG_KEY.backGroundImage] + ")")("cursor", e.hasViewGames() ? "pointer" : "default"), a(3), p("ngTemplateOutlet", n), a(2), x(r[e.CONFIG_KEY.description]), a(), p("ngTemplateOutlet", i)("ngTemplateOutletContext", Lt(13, Af)), a(2), p("timerExpiryDate", r[e.CONFIG_KEY.timerExpiryDate])("originalsConfig", r)("isOriginalsSubnav", !1)("isMobile", !1), a(), h(e.hasViewGames() ? 9 : -1); 6365 } 6366} 6367function Pk(t, o) { 6368 t & 1 && oe(0); 6369} 6370function Sk(t, o) { 6371 t & 1 && oe(0); 6372} 6373function Mk(t, o) { 6374 t & 1 && te(0, Sk, 1, 0, "ng-container", 16), t & 2 && (c(2), p("ngTemplateOutlet", ee(7))); 6375} 6376function Ok(t, o) { 6377 t & 1 && oe(0); 6378} 6379function xk(t, o) { 6380 if (t & 1) { 6381 let e = _(); 6382 l(0, "div", 13), S("click", function() { 6383 return y(e), w(c().onGotoSubNav()); 6384 }), l(1, "div", 21), te(2, Pk, 1, 0, "ng-container", 16), f(3, Mk, 1, 1, "ng-container"), d(), l(4, "div", 22)(5, "p", 17), C(6), d(), te(7, Ok, 1, 0, "ng-container", 18), d()(), b(8, "cw-originals-timer", 20); 6385 } 6386 if (t & 2) { 6387 let e = c(), n = ee(3), i = ee(5), r = le(0); 6388 k("background-image", "url(" + r[e.CONFIG_KEY.mobileBackGroundImage] + ")")("cursor", e.hasViewGames() ? "pointer" : "default"), a(2), p("ngTemplateOutlet", n), a(), h(e.hasViewGames() ? 3 : -1), a(3), x(r[e.CONFIG_KEY.description]), a(), p("ngTemplateOutlet", i)("ngTemplateOutletContext", Lt(13, Rf)), a(), p("timerExpiryDate", r[e.CONFIG_KEY.timerExpiryDate])("originalsConfig", r)("isOriginalsSubnav", !1)("isMobile", !0); 6389 } 6390} 6391function _k(t, o) { 6392 if (t & 1) { 6393 let e = _(); 6394 l(0, "div", 4)(1, "button", 5), S("click", function(n) { 6395 return y(e), w(c().onSeeAllDetails(n)); 6396 }), C(2), d()(), b(3, "cw-originals-optin", 6); 6397 } 6398 if (t & 2) { 6399 let e = c(), n = le(0); 6400 a(2), E(" ", n[e.CONFIG_KEY.seeDetailsText], " "), a(), p("originalsConfig", n); 6401 } 6402} 6403function kk(t, o) { 6404 if (t & 1 && (l(0, "div", 7), b(1, "img", 8), d()), t & 2) { 6405 let e = c(2), n = le(0), i = le(1); 6406 a(), p("alt", i)("src", n[e.CONFIG_KEY.iconContent], Y); 6407 } 6408} 6409function Ik(t, o) { 6410 if (t & 1 && f(0, kk, 2, 2, "div", 7), t & 2) { 6411 let e = c(); 6412 h(le(0)[e.CONFIG_KEY.iconContent] ? 0 : -1); 6413 } 6414} 6415function Tk(t, o) { 6416 t & 1 && oe(0); 6417} 6418function Nk(t, o) { 6419 if (t & 1 && (l(0, "div", 24), C(1), d()), t & 2) { 6420 let e = c(2), n = le(0); 6421 a(), x(n[e.CONFIG_KEY.beforeOptInContent]); 6422 } 6423} 6424function Lk(t, o) { 6425 t & 1 && oe(0); 6426} 6427function Gk(t, o) { 6428 if (t & 1 && (l(0, "div", 9)(1, "div", 10)(2, "div", 11)(3, "div", 12), C(4), d(), l(5, "div", 13), C(6), d()(), l(7, "div", 14)(8, "div", 15), C(9), d(), l(10, "div", 16), b(11, "cw-originals-timer", 17), d(), l(12, "div", 18)(13, "div", 19), te(14, Tk, 1, 0, "ng-container", 20), l(15, "div", 21)(16, "div", 22), C(17), d(), l(18, "div", 23), C(19), d(), f(20, Nk, 2, 1, "div", 24), d(), l(21, "div", 25), te(22, Lk, 1, 0, "ng-container", 20), d()()()()()()), t & 2) { 6429 let e = c(), n = ee(4), i = ee(6), r = le(0), u = le(2); 6430 k("background-image", "url(" + r[e.CONFIG_KEY.categoryBackgroun
6430dImage] + ")"), a(4), x(r[e.CONFIG_KEY.headerTitleText]), a(2), x(r[e.CONFIG_KEY.headerTitleSubText]), a(3), x(r[e.CONFIG_KEY.seeDetailsDesc]), a(2), p("timerExpiryDate", r[e.CONFIG_KEY.timerExpiryDate])("originalsConfig", r)("isOriginalsSubnav", !0)("isMobile", !1), a(3), p("ngTemplateOutlet", i), a(3), x(r[e.CONFIG_KEY.overlayHeaderText]), a(2), x(u), a(), h(e.isOptedIn() ? -1 : 20), a(2), p("ngTemplateOutlet", n); 6431 } 6432} 6433function Ek(t, o) { 6434 t & 1 && oe(0); 6435} 6436function Ak(t, o) { 6437 if (t & 1 && (l(0, "div", 31), C(1), d()), t & 2) { 6438 let e = c(2), n = le(0); 6439 a(), x(n[e.CONFIG_KEY.beforeOptInContent]); 6440 } 6441} 6442function Rk(t, o) { 6443 t & 1 && oe(0); 6444} 6445function Dk(t, o) { 6446 if (t & 1 && (l(0, "div", 26)(1, "div", 11)(2, "div", 12), C(3), d()(), l(4, "div", 27), b(5, "cw-originals-timer", 17), d(), l(6, "div", 14)(7, "div", 18)(8, "div", 19)(9, "div", 28), te(10, Ek, 1, 0, "ng-container", 20), l(11, "div", 21)(12, "div", 29), C(13), d(), l(14, "div", 30), C(15), d(), f(16, Ak, 2, 1, "div", 31), d()(), l(17, "div", 32), te(18, Rk, 1, 0, "ng-container", 20), d()()()()()), t & 2) { 6447 let e = c(), n = ee(4), i = ee(6), r = le(0), u = le(1), v = le(2); 6448 k("background-image", "url(" + r[e.CONFIG_KEY.mobileCategoryBackgroundImage] + ")"), a(3), x(u), a(2), p("timerExpiryDate", r[e.CONFIG_KEY.timerExpiryDate])("originalsConfig", r)("isOriginalsSubnav", !0)("isMobile", !0), a(5), p("ngTemplateOutlet", i), a(3), x(r[e.CONFIG_KEY.overlayHeaderText]), a(2), x(v), a(), h(e.isOptedIn() ? -1 : 16), a(2), p("ngTemplateOutlet", n); 6449 } 6450} 6451function zk(t, o) { 6452 if (t & 1 && (l(0, "div", 0), b(1, "cw-container-header", 3), d()), t & 2) { 6453 c(); 6454 let e = le(1); 6455 a(), p("title", e.title)("subtitle", e.subtitle)("iconName", e.iconName)("headingTextColor", e.headingTextColor); 6456 } 6457} 6458function Bk(t, o) { 6459 if (t & 1) { 6460 let e = _(); 6461 l(0, "cw-originals-home-lobby", 4), S("seeAllDetails", function(n) { 6462 return y(e), w(c(2).seeAllDetails(n)); 6463 })("gotoSubNav", function() { 6464 return y(e), w(c(2).gotoSubNav()); 6465 }), d(); 6466 } 6467 if (t & 2) { 6468 c(); 6469 let e = le(0), n = c(); 6470 p("config", e)("isMobile", n.isMobile())("hasViewGames", n.hasViewGames()); 6471 } 6472} 6473function Fk(t, o) { 6474 if (t & 1) { 6475 let e = _(); 6476 l(0, "cw-originals-subnav", 5), S("seeAllDetails", function(n) { 6477 return y(e), w(c(2).seeAllDetails(n)); 6478 }), d(); 6479 } 6480 if (t & 2) { 6481 c(); 6482 let e = le(0), n = c(); 6483 p("config", e)("isMobile", n.isMobile()); 6484 } 6485} 6486function Vk(t, o) { 6487 if (t & 1 && (Et(0)(1), f(2, zk, 2, 4, "div", 0), l(3, "div")(4, "div"), f(5, Bk, 1, 3, "cw-originals-home-lobby", 1)(6, Fk, 1, 2, "cw-originals-subnav", 2), d()()), t & 2) { 6488 let e = c(); 6489 Fe(e.originalsConfig()), a(), Fe(e.containerHeader()), a(), h(e.isOriginalsSubnav() ? -1 : 2), a(), W(e.isOriginalsSubnav() ? "category-Level-Originals" : ""), a(), W(e.isMobile() ? "casino-originals-mobile" : "casino-originals-desktop"), a(), h(e.isOriginalsSubnav() ? 6 : 5); 6490 } 6491} 6492function jk(t, o) { 6493 if (!t) return ""; 6494 let e = t.ctaList?.indexOf(ze.OPTIN) !== -1, n = t.ctaList?.indexOf(ze.OPTIN_EXPIRED) !== -1; 6495 return t.isOptinWithCoins && (e || n) ? "" : t.isLive ? t.ctaList?.indexOf(ze.PLAY) !== -1 ? o.PlayNow || Gn.PlayNow : e ? o.OptIn || Gn.OptInPlay : t.gameVariantList && t.gameVariantList.length > 1 ? o.PickGame || Gn.PickGame : o.PlayNow || Gn.PlayNow : e ? o.OptIn || Gn.OptIn : o.PickGame || Gn.PickGame; 6496} 6497function $k(t, o, e, n) { 6498 if (!t) return !0; 6499 if (o) return t.ctaList?.indexOf(ze.OPTIN) === -1; 6500 let i = t.subType?.toUpperCase(); 6501 return i === pt.FREE_PLAY_TECH && t.optinLimit !== 0 && e === t.optinLimit && t.ctaList?.indexOf(ze.OPTIN) !== -1 ? !0 : t.isLive ? t.ctaList?.indexOf(ze.OPTIN_EXPIRED) !== -1 || (i === pt.FREE_TO_PLAY || i === pt.FREE_PLAY_TECH) && n <= 0 : t.ctaList?.indexOf(ze.OPTIN) === -1; 6502} 6503function Gr(t, o) { 6504 if (!t?.additionalParams) return ""; 6505 let e = t.additionalParams.awardType?.toLowerCase() || ""; 6506 return e === Ie.COINS ? "" : e && o[e] ? o[e] : ""; 6507} 6508function Er(t) { 6509 return t?.additionalParams ? (t.additionalParams.awardType?.toLowerCase() || "") === Ie.COINS : !1; 6510} 6511function tg(t) { 6512 return t?.additionalParams ? (t.additionalParams.awardType?.toLowerCase() || "") !== Ie.COINS && t.additionalParams.isCoinAward === "YES" : !1; 6513} 6514function ng(t, o) { 6515 if (!t?.additionalParams) return ""; 6516 let e = t.additionalParams, n = e.totaL_PRIZE || e.totalPrize || e.totalPrizes || e.totaL_NUMBER_OF_PRIZE || "", i = e.currency || "", r = e.awardType?.toLowerCase() || ""; 6517 return n ? $f.includes(r) ? Number(n) : i ? o.transform(Number(n), i, "symbol-narrow", "1.2-2") || n :
6517Number(n) : ""; 6518} 6519function Wk(t, o, e) { 6520 let n = o.additionalParams?.currency || ""; 6521 return n ? e.transform(t, n, "symbol-narrow", "1.2-2") || `${t}` : `${t}`; 6522} 6523function Uk(t, o, e) { 6524 let n = t?.criteriaDtls; 6525 if (!t || !n) return { 6526 min: "", 6527 max: "", 6528 hasMax: !1 6529 }; 6530 let i = (r) => r === void 0 ? "" : Wk(r, t, o); 6531 return { 6532 min: i(e ? n.min : n.total), 6533 max: i(n.max), 6534 hasMax: !!e && !!n.max 6535 }; 6536} 6537function Hk(t, o) { 6538 if (!t) return { 6539 value: 0, 6540 unit: "" 6541 }; 6542 let e = Math.ceil((new Date(t.endTime).getTime() - new Date(t.startTime).getTime()) / 6e4); 6543 return e < kc ? { 6544 value: e, 6545 unit: o.Minutes || "min" 6546 } : { 6547 value: Math.floor(e / kc), 6548 unit: o.Days || "days" 6549 }; 6550} 6551function qk(t) { 6552 if (t <= 1e3) return Wf; 6553 let o = Math.floor(t / 1e3), e = Math.floor(o / 60), n = Math.floor(e / 60), i = (r) => `0${r}`.slice(-2); 6554 return `${i(n)}:${i(e % 60)}:${i(o % 60)}`; 6555} 6556function Jk(t) { 6557 let o = t?.promotion, e = o?.prizes ? vi(o.prizes) ?? [] : [], n = o?.beatBanker ? vi(o.beatBanker) ?? [] : []; 6558 return [...e, ...n]; 6559} 6560function ig(t, o) { 6561 let e = t.awardType.toLowerCase(); 6562 return Uf.has(e) || !t.currency ? `${Number(t.value)}` : o.transform(t.value, t.currency, "symbol-narrow", "1.2-2") || t.value; 6563} 6564function Yk(t, o) { 6565 let e = {}; 6566 for (let n of t ?? []) !n?.awardType || !n.value || (e.awardType = n.awardType, n.awardType.toLowerCase() === Ie.COINS ? (e.isDisplayCoin = !0, e.coinValue = n.value) : e.prize = ig(n, o)); 6567 return e; 6568} 6569function Ar(t, o) { 6570 let e = t.rankDetails ?? [], n = Jk(t.content); 6571 return e.map((i) => { 6572 let r = n.find((v) => Number(i.rank) >= Number(v.FromRank) && Number(i.rank) < Number(v.ToRank)), u = F(G({}, i), { points: Math.trunc(i.points) }); 6573 for (let v of i.configMaps ?? []) !v?.awardType || !v.value || (u.prizeIcon = r?.Icon ?? "", v.awardType.toLowerCase() === Ie.COINS ? (u.isDisplayCoin = !0, u.coinValue = v.value) : u.prize = ig(v, o)); 6574 return u; 6575 }); 6576} 6577function ag(t, o, e) { 6578 try { 6579 return JSON.parse(t); 6580 } catch (n) { 6581 return console.warn(`[SlotRacesPrizes] Malformed ${o} content for promo "${e}" \u2014 labels unavailable.`, n), []; 6582 } 6583} 6584function Kk(t) { 6585 let o = t.content?.promotion, e = []; 6586 if (o?.prizes && (e = ag(o.prizes, "promotion.prizes", t.promoId)), o?.beatBanker) { 6587 let n = ag(o.beatBanker, "promotion.beatBanker", t.promoId); 6588 e = [...e, ...n.map((i) => F(G({}, i), { isBeatBanker: !0 }))]; 6589 } 6590 return e; 6591} 6592function Qk(t, o) { 6593 return t.froM_RANK && t.tO_RANK && Number(t.froM_RANK) + 1 !== Number(t.tO_RANK) ? (o.PrizePositionFromTo || "{0} to {1}").replace("{0}", String(t.froM_RANK)).replace("{1}", String(Number(t.tO_RANK) - 1)) : t.froM_RANK ? `${t.froM_RANK}${Xk(String(t.froM_RANK), o)} ${o.PrizePosition || "Place"}` : o.BeatBankerPrizeText || "Beat the score"; 6594} 6595function Xk(t, o) { 6596 switch (t) { 6597 case "1": return o.FirstPositionSuffix || "st"; 6598 case "2": return o.SecondPositionSuffix || "nd"; 6599 case "3": return o.ThirdPositionSuffix || "rd"; 6600 default: return o.RemainingPositionSuffix || "th"; 6601 } 6602} 6603function og(t, o) { 6604 return o.find((e) => e.FromRank === String(t.froM_RANK) && e.ToRank === String(t.tO_RANK) || t.isBeatBanker && t.isBeatBanker === e.isBeatBanker); 6605} 6606function Zk(t, o, e) { 6607 let n = og(t, o); 6608 if (!n || !t.value) return {}; 6609 let i = String(t.awardType || "").toLowerCase(), r = i === Ie.FREE_SPINS || i === Ie.FREE_SPIN || !t.currency ? String(Number(t.value)) : e.transform(Number(t.value), String(t.currency), "symbol-narrow", "1.2-2") || String(t.value); 6610 return { 6611 Icon: n.Icon, 6612 Description: n.Description?.replace(Vn.VALUE, r) 6613 }; 6614} 6615function eI(t, o, e = [t]) { 6616 let n = og(t, o), i = {}; 6617 return n && t.value && String(t.awardType || "").toLowerCase() === Ie.COINS && (i.showCoinPrize = e.every((r) => String(r?.awardType || "").toLowerCase() === Ie.COINS), i.isDisplayCoin = !0, i.coinValue = t.value, i.Icon = n.Icon, t.isBeatBanker && (i.beatBankerClass = Hf)), t.isBeatBanker && t.isCoinAward && (i.isDisplayCoin = !0, i.coinValue = t.totalCoins), i; 6618} 6619function tI(t, o, e, n) { 6620 let i = null; 6621 return { 6622 prizes: t.map((r) => { 6623 if (!Array.isArray(r)) return []; 6624 let u = r; 6625 return u.map((v) => { 6626 let P = G(G(F(G({}, v), { rank: Qk(v, e) }), Zk(v, o, n)), eI(v, o, u)); 6627 return P.isBeatBanker && (i = P), P; 6628 }); 6629 }), 6630 beatBanker: i 6631 }; 6632} 6633function nI(t, o) { 6634 let e = null; 6635 for (let n of t) for (let i of n) String(i.awardType || "").toLowerCase() === Ie.COINS && Number(i.tO_RANK) - 1 === Number(o) && (e = i); 6636 return e; 6637} 6638function iI(t, o, e) { 6639 let n = [...t]; 6640 if (e) { 6641 let r = o ? n.length - 2 : n.length - 1; 6642 n.splice(r, 1); 6643 } 6644 let i = Ic * Math.trunc(n.length / Ic); 6645 return { 6646 prizesOne: n.slice(0, i), 6647 prizesTwo: n.slice(i) 6648 }; 6649} 6650function aI(t, o, e) { 6651 return !t?.length || o.length === 0 ? [] : t.filter((n) => o.includes(n)).slice(0, 3).map((n) => ({ 6652 gameId: n, 6653 icon: e(n) 6654 })); 6655} 6656function oI(t) { 6657 return { 6658 preventPopupTitle: t[mn.title], 6659 preventPopupClose: t[mn.close], 6660 preventPopupSingleGameDescription: t[mn.singleGameDescription], 6661 preventPopupMultipleGameDescription: t[mn.multipleGameDescription], 6662 preventPopupLaunchUnfinishedGame: t[mn.launchUnfinishedGame] 6663 }; 6664} 6665function rI(t) { 6666 return { 6667 preventIconSrc: t[mn.preventIcon], 6668 radialShadowSrc: t[mn.radialShadow] 6669 }; 6670} 6671function sI(t, o) { 6672 if (t & 1 && (l(0, "div", 6), C(1), d()), t & 2) { 6673 let e = c(3); 6674 a(), E("+", e.overlayCount()); 6675 } 6676} 6677function cI(t, o) { 6678 if (t & 1 && (l(0, "mat-grid-tile", 4), b(1, "img", 5), f(2, sI, 2, 1, "div", 6), d()), t & 2) { 6679 let e = o.$implicit, n = o.$index, i = o.$count, r = c(2); 6680 p("colspan", e.colspan), a(), p("src", e.src, Y)("alt", e.gameId)("draggable", !0), a(), h(n === i - 1 && r.overlayApplicable() ? 2 : -1); 6681 } 6682} 6683function lI(t, o) { 6684 if (t & 1) { 6685 let e = _(); 6686 l(0, "div", 2), S("click", function() { 6687 return y(e), w(c().onIconClick()); 6688 })("keydown.enter", function() { 6689 return y(e), w(c().onIconClick()); 6690 }), l(1, "mat-grid-list", 3), D(2, cI, 3, 5, "mat-grid-tile", 4, qf), d()(); 6691 } 6692 if (t & 2) { 6693 let e = c(); 6694 k("cursor", e.isClickable() ? "pointer" : "inherit"), a(2), R(e.gameVariantIconList()); 6695 } 6696} 6697function dI(t, o) { 6698 if (t & 1) { 6699 let e = _(); 6700 l(0, "div", 7), S("click", function() { 6701 return y(e), w(c().onIconClick()); 6702 })("keydown.enter", function() { 6703 return y(e), w(c().onIconClick()); 6704 }), b(1, "img", 8), d(); 6705 } 6706 if (t & 2) { 6707 let e = c(); 6708 k("cursor", e.isClickable() ? "pointer" : "inherit"), a(), p("src", e.singleIconSrc(), Y)("draggable", !0); 6709 } 6710} 6711function gI(t, o) { 6712 if (t & 1 && (l(0, "div"), oe(1, 7), d()), t & 2) { 6713 let e = c(); 6714 a(), p("ngComponentOutlet", e.cardComponent())("ngComponentOutletInputs", e.cardInputs()); 6715 } 6716} 6717function mI(t, o) { 6718 if (t & 1) { 6719 let e = _();
6720 l(0, "mat-grid-tile")(1, "cw-slot-races-icon", 8), S("iconClick", function() { 6721 let n = y(e), i = n.$implicit, r = n.$index; 6722 return w(c().launchGame(i, r)); 6723 }), d()(); 6724 } 6725 if (t & 2) { 6726 let e = o.$implicit, n = c(); 6727 a(), p("gameVariantList", ne(4, Yf, e))("layoutId", n.layoutId())("isLive", n.race().isLive)("isClickable", n.isClickable()); 6728 } 6729} 6730function pI(t, o) { 6731 if (t & 1 && (l(0, "th", 15), C(1), d()), t & 2) { 6732 let e = c(); 6733 a(), x(e.messages().RankTitle ?? "Rank"); 6734 } 6735} 6736function uI(t, o) { 6737 if (t & 1 && (l(0, "td", 16), C(1), d()), t & 2) { 6738 let e = o.$implicit; 6739 a(), x(e.rank); 6740 } 6741} 6742function hI(t, o) { 6743 if (t & 1 && (l(0, "span", 17)(1, "span", 19), b(2, "img", 20), d()()), t & 2) { 6744 let e = c(2); 6745 a(2), p("src", e.coinImg(), Y); 6746 } 6747} 6748function fI(t, o) { 6749 if (t & 1 && (l(0, "th", 15), b(1, "i"), f(2, hI, 3, 1, "span", 17), l(3, "span", 18), C(4), d()()), t & 2) { 6750 let e = c(); 6751 a(), W(e.prizeIconClass()), a(), h(e.showHeaderCoin() && e.coinImg() ? 2 : -1), a(2), x(e.messages().PrizeIconTitle ?? "Prize"); 6752 } 6753} 6754function vI(t, o) { 6755 t & 1 && b(0, "span", 23); 6756} 6757function bI(t, o) { 6758 t & 1 && b(0, "img", 20), t & 2 && p("src", c(4).coinImg(), Y); 6759} 6760function CI(t, o) { 6761 if (t & 1 && (l(0, "span", 17), f(1, vI, 1, 0, "span", 23), l(2, "span", 19), f(3, bI, 1, 1, "img", 20), l(4, "span"), C(5), d()()()), t & 2) { 6762 let e = c(2).$implicit, n = c(); 6763 a(), h(e.prize ? 1 : -1), a(2), h(n.coinImg() ? 3 : -1), a(2), x(e.coinValue); 6764 } 6765} 6766function yI(t, o) { 6767 if (t & 1 && (l(0, "div", 22)(1, "span"), C(2), d(), f(3, CI, 6, 3, "span", 17), d()), t & 2) { 6768 let e = c().$implicit; 6769 a(2), x(e.prize), a(), h(e.isDisplayCoin ? 3 : -1); 6770 } 6771} 6772function wI(t, o) { 6773 if (t & 1 && (l(0, "td", 21), f(1, yI, 4, 2, "div", 22), d()), t & 2) { 6774 let e = o.$implicit; 6775 a(), h(e.prize || e.isDisplayCoin ? 1 : -1); 6776 } 6777} 6778function PI(t, o) { 6779 t & 1 && b(0, "th", 15); 6780} 6781function SI(t, o) { 6782 if (t & 1 && b(0, "div", 26), t & 2) { 6783 let e = c().$implicit; 6784 p("innerHTML", e.prizeIcon, _e); 6785 } 6786} 6787function MI(t, o) { 6788 if (t & 1 && (l(0, "td", 24)(1, "div", 25), f(2, SI, 1, 1, "div", 26), d()()), t & 2) { 6789 let e = o.$implicit; 6790 a(2), h(e.prizeIcon ? 2 : -1); 6791 } 6792} 6793function OI(t, o) { 6794 if (t & 1 && (l(0, "th", 15), C(1), d()), t & 2) { 6795 let e = c(); 6796 a(), x(e.messages().PlayerTitle ?? "Player"); 6797 } 6798} 6799function xI(t, o) { 6800 if (t & 1 && (l(0, "td", 21), C(1), d()), t & 2) { 6801 let e = o.$implicit; 6802 a(), x(e.playerName); 6803 } 6804} 6805function _I(t, o) { 6806 if (t & 1 && (l(0, "th", 15), C(1), d()), t & 2) { 6807 let e = c(); 6808 a(), x(e.messages().PointsTitle ?? "Points"); 6809 } 6810} 6811function kI(t, o) { 6812 if (t & 1 && (l(0, "td", 27), C(1), d()), t & 2) { 6813 let e = o.$implicit; 6814 a(), x(e.points); 6815 } 6816} 6817function II(t, o) { 6818 t & 1 && b(0, "tr", 28); 6819} 6820function TI(t, o) { 6821 if (t & 1 && b(0, "tr", 29), t & 2) { 6822 let e = o.$implicit; 6823 L("sr-user-row", e.isUser); 6824 } 6825} 6826function NI(t, o) { 6827 if (t & 1 && (l(0, "div", 14), oe(1, 15), d()), t & 2) { 6828 let e = o.$implicit; 6829 c(4); 6830 let n = ee(2); 6831 a(), p("ngTemplateOutlet", n)("ngTemplateOutletContext", ne(2, ji, e)); 6832 } 6833} 6834function LI(t, o) { 6835 if (t & 1 && (l(0, "vn-swiper-wrapper", 12), D(1, NI, 2, 4, "div", 14, uo), d()), t & 2) { 6836 let e = c(3); 6837 p("swiperOptions", e.swiperOptions), a(), R(e.pointsView()); 6838 } 6839} 6840function GI(t, o) { 6841 if (t & 1 && oe(0, 15), t & 2) { 6842 let e = o.$implicit; 6843 c(4), p("ngTemplateOutlet", ee(2))("ngTemplateOutletContext", ne(2, ji, e)); 6844 } 6845} 6846function EI(t, o) { 6847 if (t & 1 && (l(0, "div", 13), D(1, GI, 1, 4, "ng-container", 15, uo), d()), t & 2) { 6848 let e = c(3); 6849 a(), R(e.pointsView()); 6850 } 6851} 6852function AI(t, o) { 6853 if (t & 1 && (l(0, "div")(1, "div", 8), C(2), d(), l(3, "div", 9), C(4), l(5, "span", 10), C(6), d()(), l(7, "div", 11), f(8, LI, 3, 1, "vn-swiper-wrapper", 12)(9, EI, 3, 0, "div", 13), d()()), t & 2) { 6854 let e = c(2); 6855 a(2), x(e.messages().PointsDescriptionTitleV2 || "Earning points is simple."), a(2), E(" ", e.messages().PointsDescriptionV2 || "", " "), a(2), x(e.messages().TnCApply || "T&C's Apply"), a(), L("mobile-mode", !e.showCarousel)("one-stresk", e.pointsData().length === 1), a(), h(e.showCarousel ? 8 : 9); 6856 } 6857} 6858function RI(t, o) { 6859 t & 1 && b(0, "div", 25); 6860} 6861function DI(t, o) { 6862 if (t & 1 && (l(0, "div", 18)(1, "div", 19)(2, "div", 20)(3, "div", 21)(4, "div", 22), C(5), l(6, "span", 23), C(7), d()()()(), l(8, "div", 24), C(9), d()(), f(10, RI, 1, 0, "div", 25), d()), t & 2) { 6863 let e = o.$implicit, n = o.$index, i = o.$count;
6864 a(3), k("background-image", "url(" + e.pointsImage?.src + ")"), a(2), E(" ", e.pointValue, " "), a(2), E(" ", e.pointsText, " "), a(2), E(" ", e.pointsDescription, " "), a(), h(n !== i - 1 ? 10 : -1); 6865 } 6866} 6867function zI(t, o) { 6868 if (t & 1 && (l(0, "div", 16)(1, "div", 17), C(2), d(), D(3, DI, 11, 6, "div", 18, uo), d()), t & 2) { 6869 let e = c(2); 6870 W(e.pointsCountClass()), k("color", e.pointsContentColor()), a(2), x(e.messages().Pointstext), a(), R(e.pointsData()); 6871 } 6872} 6873function BI(t, o) { 6874 if (t & 1 && (l(0, "div", 4)(1, "mat-expansion-panel", 5, 2)(3, "mat-expansion-panel-header")(4, "mat-panel-title", 6), C(5), d(), l(6, "mat-panel-description")(7, "mat-icon"), b(8, "span"), d()()(), f(9, AI, 10, 8, "div")(10, zI, 5, 5, "div", 7), d()()), t & 2) { 6875 let e = ee(2), n = c(); 6876 L("points-panel-closed", !e.open()), a(), p("expanded", !0), a(4), x(n.messages().Points || "Points"), a(3), W(e.open() ? "theme-minus" : "theme-plus"), a(), h(n.showPointsV2() ? 9 : 10); 6877 } 6878} 6879function FI(t, o) { 6880 if (t & 1 && (oe(0, 15), l(1, "span"), C(2, " =\xA0 "), d(), l(3, "div", 30)(4, "span", 31), C(5), d(), C(6), d()), t & 2) { 6881 let e = c().$implicit; 6882 c(2), p("ngTemplateOutlet", ee(4))("ngTemplateOutletContext", ne(4, ji, e)), a(5), x(e.points), a(), E(" ", e.pointsLabel, " "); 6883 } 6884} 6885function VI(t, o) { 6886 if (t & 1 && (l(0, "div", 30)(1, "span", 31), C(2), d(), l(3, "span", 32), C(4), d()(), oe(5, 15)), t & 2) { 6887 let e = c().$implicit; 6888 c(2); 6889 let n = ee(4); 6890 a(2), x(e.points), a(2), x(e.pointsLabel), a(), p("ngTemplateOutlet", n)("ngTemplateOutletContext", ne(4, ji, e)); 6891 } 6892} 6893function jI(t, o) { 6894 if (t & 1 && (l(0, "div", 28)(1, "div", 21)(2, "div")(3, "div", 29), f(4, FI, 7, 6)(5, VI, 6, 6), d()()()()), t & 2) { 6895 let e = c().$implicit; 6896 a(), k("background-image", "url(" + e.pointsImage?.src + ")"), a(3), h(e.isCompact ? 4 : 5); 6897 } 6898} 6899function $I(t, o) { 6900 if (t & 1 && (l(0, "div")(1, "div", 26), C(2), d(), l(3, "div", 27), C(4), l(5, "span", 10), C(6), d()(), D(7, jI, 6, 3, "div", 28, Qf), d()), t & 2) { 6901 let e = o.$implicit, n = c(); 6902 W(e.slabClass), a(2), x(e.ruleTitle), a(2), E(" ", e.ruleDescription, " "), a(2), x(n.messages().MoreOnTnC || "More on T&C"), a(), R(e.slabs); 6903 } 6904} 6905function WI(t, o) { 6906 if (t & 1 && (l(0, "span"), C(1), d()), t & 2) { 6907 let e = c().$implicit; 6908 a(), E("", e.ruleConfig, "\xA0"); 6909 } 6910} 6911function UI(t, o) { 6912 if (t & 1 && (l(0, "span"), C(1), d()), t & 2) { 6913 let e = c().$implicit; 6914 a(), x(e.ruleConfig); 6915 } 6916} 6917function HI(t, o) { 6918 if (t & 1 && (l(0, "div", 33), f(1, WI, 2, 1, "span"), l(2, "span", 23), C(3), d(), f(4, UI, 2, 1, "span"), d()), t & 2) { 6919 let e = o.$implicit; 6920 a(), h(e.isWinXTimesOnBet ? -1 : 1), a(2), x(e.descLabel), a(), h(e.isWinXTimesOnBet ? 4 : -1); 6921 } 6922} 6923function qI(t, o) { 6924 let e = ["points-new"]; 6925 return t > ho && e.push("point-typetwo"), o && e.push(`points-counts-${o}`), e.join(" "); 6926} 6927function JI(t, o) { 6928 if (t & 1 && (l(0, "mat-panel-title", 5)(1, "div", 12), C(2), d()()), t & 2) { 6929 let e = c(2); 6930 a(2), E(" ", e.title(), " "); 6931 } 6932} 6933function YI(t, o) { 6934 if (t & 1 && (l(0, "mat-panel-description")(1, "mat-icon"), b(2, "span"), d()()), t & 2) { 6935 c(); 6936 let e = ee(3); 6937 a(2), W(e.open() ? "theme-minus" : "theme-plus"); 6938 } 6939} 6940function KI(t, o) { 6941 if (t & 1 && (l(0, "span", 21), C(1), d()), t & 2) { 6942 let e = c(); 6943 a(), x(e.Description || e.value); 6944 } 6945} 6946function QI(t, o) { 6947 t & 1 && b(0, "span", 23); 6948} 6949function XI(t, o) { 6950 if (t & 1 && (l(0, "div", 22), f(1, QI, 1, 0, "span", 23), l(2, "span", 24), b(3, "img", 25), l(4, "span"), C(5), d()()()), t & 2) { 6951 let e = c(), n = c(2); 6952 a(), h(n.showBeatBankerCash() ? 1 : -1), a(2), p("src", n.coinImg(), Y), a(2), x(e.coinValue); 6953 } 6954} 6955function ZI(t, o) { 6956 if (t & 1 && (l(0, "div", 7)(1, "div", 13)(2, "div", 14)(3, "div", 15), C(4), d(), l(5, "div", 16), C(6), d()(), l(7, "div", 17)(8, "div", 18)(9, "span"), C(10), d()(), l(11, "div", 19)(12, "span", 20), C(13), d(), f(14, KI, 2, 1, "span", 21), f(15, XI, 6, 3, "div", 22), d()()()()), t & 2) { 6957 let e = c(2); 6958 a(4), x(e.messages().beatBankerTitle || "Score to Beat"), a(2), E(" ", e.messages().beatBankerDiscription, " "), a(4), E("", e.race().beatBanker?.minPoints || "0", " Pts"), a(3), x(e.messages().beatBankerRevardText || e.messages().Reward || "Reward"), a(), h(e.showBeatBankerCash() ? 14 : -1), a(), h(o.isDisplayCoin && e.coinImg() ? 15 :
6958-1); 6959 } 6960} 6961function e2(t, o) { 6962 t & 1 && oe(0); 6963} 6964function t2(t, o) { 6965 if (t & 1 && (l(0, "mat-grid-tile", 26), te(1, e2, 1, 0, "ng-container", 27), d()), t & 2) { 6966 let e = o.$implicit; 6967 c(3); 6968 let n = ee(2); 6969 a(), p("ngTemplateOutlet", n)("ngTemplateOutletContext", ne(2, ev, e)); 6970 } 6971} 6972function n2(t, o) { 6973 if (t & 1 && (l(0, "mat-grid-list", 8), D(1, t2, 2, 4, "mat-grid-tile", 26, ht), d()), t & 2) { 6974 let e = c(2); 6975 a(), R(e.prizesOne()); 6976 } 6977} 6978function i2(t, o) { 6979 t & 1 && oe(0); 6980} 6981function a2(t, o) { 6982 if (t & 1 && (l(0, "mat-grid-tile", 26), te(1, i2, 1, 0, "ng-container", 27), d()), t & 2) { 6983 let e = o.$implicit; 6984 c(3); 6985 let n = ee(2); 6986 a(), p("ngTemplateOutlet", n)("ngTemplateOutletContext", ne(2, tv, e)); 6987 } 6988} 6989function o2(t, o) { 6990 if (t & 1 && (l(0, "mat-grid-list", 10), D(1, a2, 2, 4, "mat-grid-tile", 26, ht), d()), t & 2) { 6991 let e = c(2); 6992 p("cols", e.prizesTwo().length), a(), R(e.prizesTwo()); 6993 } 6994} 6995function r2(t, o) { 6996 if (t & 1 && (l(0, "mat-grid-list", 11)(1, "mat-grid-tile", 26)(2, "div", 28)(3, "div", 24), b(4, "img", 25), d(), l(5, "div", 29), C(6), d(), l(7, "div", 30), C(8), d()()()()), t & 2) { 6997 let e = c(2); 6998 a(4), p("src", e.coinImg(), Y), a(2), Le("", o.value, " ", e.messages().Coin), a(2), E("(", e.messages().ParticipateReward, ")"); 6999 } 7000} 7001function s2(t, o) { 7002 if (t & 1 && (l(0, "div")(1, "div", 3)(2, "mat-expansion-panel", 4, 1)(4, "mat-expansion-panel-header"), f(5, JI, 3, 1, "mat-panel-title", 5), f(6, YI, 3, 2, "mat-panel-description"), d(), l(7, "div")(8, "div", 6), f(9, ZI, 16, 6, "div", 7), f(10, n2, 3, 0, "mat-grid-list", 8), b(11, "div", 9), f(12, o2, 3, 1, "mat-grid-list", 10), f(13, r2, 9, 4, "mat-grid-list", 11), d()()()()()), t & 2) { 7003 let e, n, i = c(); 7004 L("casino-beat-the-banker-prize", !!i.race().beatBanker), a(2), W(i.isExpansionDisabled()), p("expanded", i.isExpanded())("srPanelState", i.isExpanded()), a(3), h(i.showHeader() ? 5 : -1), a(), h(i.isCollapsible() ? 6 : -1), a(3), h((e = i.prizeValueForBeatBanker()) ? 9 : -1, e), a(), h(i.prizesOne().length ? 10 : -1), a(2), h(i.prizesTwo().length ? 12 : -1), a(), h((n = i.participateReward()) ? 13 : -1, n); 7005 } 7006} 7007function c2(t, o) { 7008 if (t & 1 && b(0, "div", 32), t & 2) { 7009 let e = c(2).$implicit; 7010 p("innerHTML", e.Icon, _e); 7011 } 7012} 7013function l2(t, o) { 7014 if (t & 1 && (l(0, "div"), f(1, c2, 1, 1, "div", 32), l(2, "div", 33), C(3), d(), b(4, "div", 34), d()), t & 2) { 7015 let e = c().$implicit; 7016 a(), h(e.Icon ? 1 : -1), a(2), x(e.rank), a(), p("innerHTML", e.Description, _e); 7017 } 7018} 7019function d2(t, o) { 7020 if (t & 1 && b(0, "div", 32), t & 2) { 7021 let e = c(3).$implicit; 7022 p("innerHTML", e.Icon, _e); 7023 } 7024} 7025function g2(t, o) { 7026 if (t & 1 && (l(0, "div", 33), C(1), d()), t & 2) { 7027 let e = c(3).$implicit; 7028 a(), x(e.rank); 7029 } 7030} 7031function m2(t, o) { 7032 t & 1 && b(0, "span", 23); 7033} 7034function p2(t, o) { 7035 if (t & 1 && (l(0, "div"), f(1, d2, 1, 1, "div", 32), f(2, g2, 2, 1, "div", 33), l(3, "div", 35), f(4, m2, 1, 0, "span", 23), l(5, "span", 24), b(6, "img", 25), l(7, "span"), C(8), d()()()()), t & 2) { 7036 let e = c(2).$implicit, n = c().coinClass, i = c(); 7037 W(n), a(), h(e.Icon && e.showCoinPrize ? 1 : -1), a(), h(e.showCoinPrize ? 2 : -1), a(2), h(e.showCoinPrize ? -1 : 4), a(2), p("src", i.coinImg(), Y), a(2), x(e.coinValue); 7038 } 7039} 7040function u2(t, o) { 7041 if (t & 1 && (l(0, "div"), f(1, p2, 9, 7, "div", 31), d()), t & 2) { 7042 let e = c().$implicit; 7043 W(e.beatBankerClass || ""), a(), h(e.isDisplayCoin ? 1 : -1); 7044 } 7045} 7046function h2(t, o) { 7047 if (t & 1 && (f(0, l2, 5, 3, "div"), f(1, u2, 2, 3, "div", 31)), t & 2) { 7048 let e = o.$implicit; 7049 h(e.awardType !== "COINS" ? 0 : -1), a(), h(e.awardType === "COINS" || e.isBeatBanker || e.isCoinAward ? 1 : -1); 7050 } 7051} 7052function f2(t, o) { 7053 if (t & 1 && D(0, h2, 2, 2, null, null, nv), t & 2) { 7054 let e = o.$implicit; 7055 R(e); 7056 } 7057} 7058function v2(t, o) { 7059 t & 1 && oe(0); 7060} 7061function b2(t, o) { 7062 if (t & 1 && (l(0, "mat-expansion-panel", 4), b(1, "mat-expansion-panel-header"), te(2, v2, 1, 0, "ng-container", 6), d()), t & 2) { 7063 c(); 7064 let e = ee(5); 7065 p("expanded", !0), a(2), p("ngTemplateOutlet", e); 7066 } 7067} 7068function C2(t, o) { 7069 t & 1 && oe(0); 7070} 7071function y2(t, o) { 7072 if (t & 1 && (l(0, "mat-expansion-panel", 5, 1)(2, "mat-expansion-panel-header")(3, "mat-panel-title", 7), C(4), d(), l(5, "mat-panel-description")(6, "mat-icon"), b(7, "span"), d()()(), te(8, C2, 1, 0, "ng-container", 6), d()), t & 2) { 7073 let e = ee(1), n = c(), i = ee(5); 7074 p("expanded", !0), a(4), x(n.messages().Rules ?? "Rules"), a(3), W(e.open() ? "theme-minus" : "theme-plus"), a(), p("ngTemplateOutlet", i); 7075 } 7076} 7077function w2(t, o) { 7078 if (t & 1 && b(0, "img", 11), t & 2) { 7079 let e = c().$implicit; 7080 p("src", e.image.src, Y)("alt", e.title); 7081 } 7082} 7083function P2(t, o) { 7084 if (t & 1 && (l(0, "div", 9)(1, "div", 10), f(2, w2, 1, 2, "img", 11), l(3, "div", 12), C(4), d(), b(5, "div", 13), d()()), t & 2) { 7085 let e = o.$implicit; 7086 a(2), h(e.image.src ? 2 : -1), a(2), x(e.title), a(), p("innerHTML", e.text, _e); 7087 } 7088} 7089function S2(t, o) { 7090 if (t & 1 && (l(0, "div", 8), D(1, P2, 6, 3, "div", 9, ov), d()), t & 2) { 7091 let e = c(); 7092 a(), R(e.rules()); 7093 } 7094} 7095function M2(t, o) { 7096 if (t & 1 && (l(0, "div", 6), b(1, "img", 10), d()), t & 2) { 7097 let e = c().$implicit; 7098 a(), p("src", e.src, Y)("alt", e.title); 7099 } 7100} 7101function O2(t, o) { 7102 if (t & 1 && (l(0, "div")(1, "div", 5), f(2, M2, 2, 2, "div", 6), l(3, "div", 7)(4, "div", 8), C(5), d(), b(6, "div", 9), d()()()), t & 2) { 7103 let e = o.$implicit; 7104 a(2), h(e.src ? 2 : -1), a(3), x(e.title), a(), p("innerHTML", e.text, _e); 7105 } 7106} 7107function x2(t, o) { 7108 if (t & 1 && (l(0, "div", 1)(1, "mat-expansion-panel", 2, 0)(3, "mat-expansion-panel-header")(4, "mat-panel-title", 3), C(5), d(), l(6, "mat-panel-description")(7, "mat-icon"), b(8, "span"), d()()(), l(9, "div", 4), D(10, O2, 7, 3, "div", null, rv), d()()()), t & 2) { 7109 let e = ee(2), n = c(); 7110 a(), p("expanded", !0), a(4), x(n.messages().Tips ?? "Tips"), a(3), W(e.open() ? "theme-minus" : "theme-plus"), a(2), R(n.tips()); 7111 } 7112} 7113function _2(t, o) { 7114 t & 1 && b(0, "div", 6), t & 2 && p("vnDynamicHtml", c(2).tnc()); 7115} 7116function k2(t, o) { 7117 if (t & 1 && (l(0, "div", 7), b(1, "vn-page-matrix", 8), d()), t & 2) { 7118 let e = c(2); 7119 a(), p("path", e.globalTncPath)("product", e.currentProduct); 7120 } 7121} 7122function I2(t, o) { 7123 if (t & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "div", 3), C(4), d()(), l(5, "div", 4)(6, "div", 5), f(7, _2, 1, 1, "div", 6)(8, k2, 2, 2, "div", 7), d()()()()), t & 2) { 7124 let e = c(); 7125 a(4), x(e.messages().TermsAndConditions ?? "Terms & Conditions"), a(3), h(e.race() && e.tnc() ? 7 : e.race() ? -1 : 8); 7126 } 7127} 7128function T2(t, o) { 7129 if (t & 1 && (l(0, "div", 11)(1, "div", 12)(2, "div", 13), C(3), d()()()), t & 2) { 7130 let e = c(2); 7131 a(), k("background-image", "url(" + e.rulesBannerImage() + ")"), a(2), x(e.rulesBannerTitle()); 7132 } 7133} 7134function N2(t, o) { 7135 if (t & 1) { 7136 let e = _(); 7137 l(0, "div", 8)(1, "div", 9), C(2), d(), l(3, "span", 10), S("click", function() { 7138 return y(e), w(c().close()); 7139 })("keydown.enter", function() { 7140 return y(e), w(c().close()); 7141 }), d()(), f(4, T2, 4, 3, "div", 11); 7142 } 7143 if (t & 2) { 7144 let e = c(); 7145 a(2), x(e.messages().TermsAndConditionsTitle || "Rules & Terms"), a(2), h(e.rulesBannerImage() ? 4 : -1); 7146 } 7147} 7148function L2(t, o) { 7149 if (t & 1 && (l(0, "div", 2), b(1, "cw-slot-races-prizes", 14), d()), t & 2) { 7150 let e = c(); 7151 a(), p("race", o)("coinImg", e.resolvedCoinImg)("showHeader", !0)("isCollapsible", !0)("isExpanded", !0); 7152 } 7153} 7154function G2(t, o) { 7155 t & 1 && (l(0, "div", 6), b(1, "cw-slot-races-tips"), d()); 7156} 7157function E2(t, o) { 7158 if (t & 1 && oe(0, 6), t & 2) { 7159 let e = c(); 7160 p("ngComponentOutlet", e.cardComponent())("ngComponentOutletInputs", qb(2, dv, e.race(), e.trackingLocation(), e.layoutId(), e.coinImg())); 7161 } 7162} 7163function A2(t, o) { 7164 if (t & 1 && b(0, "cw-slot-races-leaderboard", 8), t & 2) { 7165 let e = c(2); 7166 p("race", e.race())("coinImg", e.coinImg()); 7167 } 7168} 7169function R2(t, o) { 7170 if (t & 1 && (l(0, "div"), f(1, A2, 1, 2, "cw-slot-races-leaderboard", 8), b(2, "cw-slot-races-rules-and-tnc", 8), d()), t & 2) { 7171 let e = c();
7172 a(), h(e.race().rankDetails && e.race().rankDetails.length > 0 ? 1 : -1), a(), p("race", e.race())("coinImg", e.coinImg()); 7173 } 7174} 7175function D2(t, o) { 7176 if (t & 1 && (l(0, "div", 7), b(1, "cw-slot-races-rules-and-tnc", 8), d()), t & 2) { 7177 let e = c(); 7178 a(), p("race", e.race())("coinImg", e.coinImg()); 7179 } 7180} 7181function z2(t, o) { 7182 if (t & 1 && b(0, "img", 11), t & 2) { 7183 let e = o.$implicit; 7184 p("src", e.icon, Y)("alt", e.gameId); 7185 } 7186} 7187function B2(t) { 7188 let o = G({}, Vf); 7189 for (let e of Object.keys(o)) { 7190 let n = t?.[e]; 7191 n != null && (o[e] = n); 7192 } 7193 return o; 7194} 7195function F2(t, o) { 7196 if (t & 1) { 7197 let e = _(); 7198 l(0, "div", 35), S("click", function() { 7199 return y(e), w(c(2).onInfoClick()); 7200 })("keydown.enter", function() { 7201 return y(e), w(c(2).onInfoClick()); 7202 }), d(); 7203 } 7204 t & 2 && T("aria-label", c(2).messages().RaceInfo || "View race information"); 7205} 7206function V2(t, o) { 7207 if (t & 1 && b(0, "img", 3), t & 2) { 7208 let e = c(2); 7209 p("src", e.backgroundImageSrc(), Y)("alt", e.cardTitle()); 7210 } 7211} 7212function j2(t, o) { 7213 if (t & 1) { 7214 let e = _(); 7215 l(0, "div", 4)(1, "div", 36), C(2), d(), b(3, "div", 37), l(4, "div", 38), C(5), d(), l(6, "div", 39), S("click", function() { 7216 return y(e), w(c(2).hideRaceCard()); 7217 })("keydown.enter", function() { 7218 return y(e), w(c(2).hideRaceCard()); 7219 }), d()(); 7220 } 7221 if (t & 2) { 7222 let e = c(), n = c(); 7223 a(2), x(e.startTimeAMPM), a(), L("red-dot-first", n.first())("red-dot-last", n.last()), a(2), x(n.cardTitle()); 7224 } 7225} 7226function $2(t, o) { 7227 if (t & 1) { 7228 let e = _(); 7229 l(0, "div", 5)(1, "div", 40), C(2), d(), l(3, "div", 41), S("click", function() { 7230 return y(e), w(c(2).toggleCardExpansion()); 7231 })("keydown.enter", function() { 7232 return y(e), w(c(2).toggleCardExpansion()); 7233 }), d()(); 7234 } 7235 if (t & 2) { 7236 let e = c(2); 7237 a(2), x(e.cardTitle()), a(), L("expanded", e.expandCard())("collapsed", !e.expandCard()), T("aria-expanded", e.expandCard()); 7238 } 7239} 7240function W2(t, o) { 7241 if (t & 1 && (l(0, "div", 6), C(1), d()), t & 2) { 7242 let e = c(2); 7243 a(), E(" ", e.cardTitle(), " "); 7244 } 7245} 7246function U2(t, o) { 7247 if (t & 1) { 7248 let e = _(); 7249 l(0, "div", 8)(1, "cw-slotrace-cta", 42), S("ctaClick", function() { 7250 return y(e), w(c(2).onCtaClick()); 7251 }), d()(); 7252 } 7253 if (t & 2) { 7254 let e = c(2); 7255 a(), p("ctaText", e.ctaText())("disabled", e.ctaDisabled())("csDecoratorClass", e.ctaClass.PLAY)("coinsForOptin", e.coinCtaCount())("imgSrc", e.coinImg()); 7256 } 7257} 7258function H2(t, o) { 7259 if (t & 1 && (l(0, "span", 14), b(1, "img", 43), d()), t & 2) { 7260 let e = c(2); 7261 a(), p("src", e.coinImg(), Y); 7262 } 7263} 7264function q2(t, o) { 7265 if (t & 1 && (b(0, "span", 44), l(1, "span", 14), b(2, "img", 43), d()), t & 2) { 7266 let e = c(2); 7267 a(2), p("src", e.coinImg(), Y); 7268 } 7269} 7270function J2(t, o) { 7271 if (t & 1 && (l(0, "span")(1, "div", 45)(2, "span", 46), C(3), d(), l(4, "div", 47), C(5), d()()()), t & 2) { 7272 let e = c(2); 7273 a(3), x(e.messages().MinBet || "Min. Bet"), a(2), x(e.messages().Free2Play || "FREE"); 7274 } 7275} 7276function Y2(t, o) { 7277 if (t & 1 && (l(0, "div", 45)(1, "span", 46), C(2), d(), l(3, "div", 47), C(4), d()()), t & 2) { 7278 let e = c(3); 7279 a(2), x(e.messages().MaxBet || "Max. Bet"), a(2), x(e.maxBetDisplay()); 7280 } 7281} 7282function K2(t, o) { 7283 if (t & 1 && (l(0, "span")(1, "div", 45)(2, "span", 46), C(3), d(), l(4, "div", 47), C(5), d()(), f(6, Y2, 5, 2, "div", 45), d()), t & 2) { 7284 let e = c(2); 7285 a(3), x(e.showMaxBet() ? e.messages().MinBet || "Min. Bet" : e.messages().MinimumBet || e.messages().MinBet || "Min. Bet"), a(2), x(e.minBetDisplay()), a(), h(e.showMaxBet() ? 6 : -1); 7286 } 7287} 7288function Q2(t, o) { 7289 if (t & 1 && (l(0, "mat-slider", 51), b(1, "input", 53), d()), t & 2) { 7290 let e = c(3); 7291 p("disabled", !0)("max", e.beatBankerSliderMax()), a(), p("value", e.beatBankerSliderValue()); 7292 } 7293} 7294function X2(t, o) { 7295 if (t & 1 && (l(0, "div", 52), C(1), l(2, "span"), C(3), d()()), t & 2) { 7296 let e = c(3); 7297 a(), E(" ", e.beatBankerSliderValue()), a(2), E("/", e.beatBankerMinPoints(), " Pts"); 7298 } 7299} 7300function Z2(t, o) { 7301 if (t & 1 && (l(0, "div", 52)(1, "span"), C(2), d()()), t & 2) { 7302 let e = c(3); 7303 a(2), E("", e.beatBankerMinPoints(), " Pts"); 7304 } 7305} 7306function eT(t, o) { 7307 if (t & 1 && (l(0, "div", 48)(1, "div", 49), C(2), d(), l(3, "div", 50), f(4, Q2, 2, 3, "mat-slider", 51), d(), f(5, X2, 4, 2, "div", 52)(6, Z2, 3, 1, "div", 52), d()), t & 2) { 7308 let e = c(2); 7309 L("btb-progress-bar", e.showBeatBankerProgress()), a(2), x(e.messages().beatBankerTitle || "Score to Beat"), a(2), h(e.showBeatBankerProgress() ? 4 : -1), a(), h(e.showBeatBankerProgress() ? 5 : 6); 7310 } 7311} 7312function tT(t, o) { 7313 if (t & 1 && (l(0, "div", 21)(1, "mat-slider", 54), b(2, "input", 53), d()()), t & 2) { 7314 let e = c(2); 7315 a(), p("disabled", !0)("max", e.sliderMaxValue()), a(), p("value", e.progressValue()); 7316 } 7317} 7318function nT(t, o) { 7319 if (t & 1) { 7320 let e = _(); 7321 l(0, "div", 55), S("click", function() { 7322 return y(e), w(c(2).onNotificationClick()); 7323 })("keydown.enter", function() { 7324 return y(e), w(c(2).onNotificationClick()); 7325 })("keydown.space", function(n) { 7326 return y(e), c(2).onNotificationClick(), w(n.preventDefault()); 7327 }), d(); 7328 } 7329 if (t & 2) { 7330 let e = c(2); 7331 W(e.notificationBellClass()), T("aria-label", e.messages().RaceNotification || "Toggle race start notification"); 7332 } 7333} 7334function iT(t, o) { 7335 if (t & 1) { 7336 let e = _(); 7337 l(0, "div", 34)(1, "cw-slotrace-cta", 42), S("ctaClick", function() { 7338 return y(e), w(c(2).onCtaClick()); 7339 }), d()(); 7340 } 7341 if (t & 2) { 7342 let e = c(2); 7343 a(), p("ctaText", e.ctaText())("disabled", e.ctaDisabled())("csDecoratorClass", e.ctaClass.PLAY)("coinsForOptin", e.coinCtaCount())("imgSrc", e.coinImg()); 7344 } 7345} 7346function aT(t, o) { 7347 if (t & 1) { 7348 let e = _(); 7349 l(0, "div", 1), f(1, F2, 1, 1, "div", 2), f(2, V2, 1, 2, "img", 3), f(3, j2, 7, 6, "div", 4), f(4, $2, 4, 6, "div", 5), f(5, W2, 2, 1, "div", 6), l(6, "div", 7), f(7, U2, 2, 5, "div", 8), l(8, "div", 9)(9, "cw-slot-races-icon", 10), S("iconCl
7349ick", function() { 7350 return y(e), w(c().onIconClick()); 7351 }), d()(), l(10, "div", 11)(11, "div", 12)(12, "span", 13), C(13), d(), b(14, "i"), f(15, H2, 2, 1, "span", 14), l(16, "span", 15), C(17), d(), f(18, q2, 3, 1), d(), l(19, "div", 16)(20, "div", 17)(21, "span", 18), C(22), d(), l(23, "div", 19), C(24), d()(), f(25, J2, 6, 2, "span")(26, K2, 7, 3, "span"), d()()(), f(27, eT, 7, 5, "div", 20), f(28, tT, 3, 3, "div", 21), l(29, "div", 22)(30, "div", 23)(31, "span", 24), C(32), d(), l(33, "div", 25), C(34), d()(), l(35, "div", 26)(36, "span", 27), C(37), d(), l(38, "div", 28), C(39), l(40, "span", 29), C(41), d()()(), l(42, "div", 30)(43, "span", 31), C(44), d(), l(45, "div", 32), C(46), d()(), f(47, nT, 1, 3, "div", 33)(48, iT, 2, 5, "div", 34), d()(); 7352 } 7353 if (t & 2) { 7354 let e = o, n = c(); 7355 k("color", n.cardTextColor())("background", n.cardBackground()), L("no-blur", n.showImage())("collapse", !n.expandCard())("sr-multi-game", n.isMultiGame())("casino-beat-the-banker", n.isBeatBanker()), a(), h(n.showRaceInfo() ? 1 : -1), a(), h(n.showImage() ? 2 : -1), a(), h(n.showCardMenu() ? 3 : -1), a(), h(e.isLive ? 4 : -1), a(), h(!e.isLive && (!n.showRaceInfo() || n.fromPickGameOverlay()) || !e.isLive && n.showPlaceholderCard() ? 5 : -1), a(2), h(e.isLive || !n.isFreeTournament() ? 7 : -1), a(2), p("gameVariantList", e.gameVariantList)("layoutId", n.layoutId())("isLive", e.isLive)("isClickable", !n.fromPickGameOverlay() && n.iconCl
7355ickable()), a(), L("sr-max-bet", n.showMaxBet()), a(3), x(n.messages().TotalPrizes || "Total Prizes"), a(), W(n.prizeIconClass()), a(), h(n.showCoinIcon() ? 15 : -1), a(2), x(n.totalPrizeDisplay()), a(), h(n.showSupplementaryCoin() && n.coinImg() ? 18 : -1), a(), L("sr-card-counter-bet-box-max", n.showMaxBet()), a(3), x(e.isLive ? n.messages().EndsIn || "Ends In" : n.messages().StartsIn || "Starts In"), a(2), x(n.formattedTime()), a(), h(n.isFreeTournament() ? 25 : 26), a(2), h(n.isBeatBanker() ? 27 : -1), a(), h(e.isLive ? 28 : -1), a(), k("background", n.messages().CardBottomColor || null), L("optin-limit", n.isFreePlayTech()), a(3), x(n.messages().PlayerTitle || "Players"), a(2), E(" ", n.playerCount(), " "), a(3), x(n.messages().Duration || "Duration"), a(), T("aria-label", n.slotRaceDuration().value + " " + n.slotRaceDuration().unit), a(), E(" ", n.slotRaceDuration().value, " "), a(2), x(n.slotRaceDuration().unit), a(3), E(" ", e.subType?.toLowerCase() === "free_play_tech" ? n.messages().ChipsLimit || "Chips Limit" : n.messages().SpinsLimit || "Spins limit", " "), a(2), x(n.spinCount()), a(), h(n.showNotificationBell() ? 47 : 48); 7356 } 7357} 7358function oT(t, o) { 7359 if (t & 1 && (l(0, "div", 6)(1, "div"), b(2, "cw-slot-race-card", 7), d()()), t & 2) { 7360 let e = o.$implicit, n = c(3); 7361 a(2), p("race", e)("trackingLocation", n.trackingLocation())("layoutId", n.layoutId())("coinImg", n.coinImg())("showPlaceholderCard", n.showPlaceholderCard()); 7362 } 7363} 7364function rT(t, o) { 7365 if (t & 1 && (l(0, "div", 6), oe(1, 5), d()), t & 2) { 7366 c(3); 7367 let e = ee(4); 7368 a(), p("ngTemplateOutlet", e); 7369 } 7370} 7371function sT(t, o) { 7372 if (t & 1 && (l(0, "vn-swiper-wrapper", 4), D(1, oT, 3, 5, "div", 6, dl().raceTrackFn, !0), f(3, rT, 2, 1, "div", 6), d()), t & 2) { 7373 let e = c(2); 7374 p("swiperOptions", e.swiperOptions), a(), R(e.races()), a(2), h(e.showPlaceholderCard() ? 3 : -1); 7375 } 7376} 7377function cT(t, o) { 7378 t & 1 && oe(0, 5), t & 2 && (c(2), p("ngTemplateOutlet", ee(4))); 7379} 7380function lT(t, o) { 7381 if (t & 1 && (l(0, "div", 2), f(1, sT, 4, 2, "vn-swiper-wrapper", 4)(2, cT, 1, 1, "ng-container", 5), d()), t & 2) { 7382 let e = c(); 7383 a(), h(e.races().length > 0 ? 1 : e.showPlaceholderCard() ? 2 : -1); 7384 } 7385} 7386function dT(t, o) { 7387 if (t & 1 && (l(0, "div")(1, "div"), b(2, "cw-slot-race-card", 9), d()()), t & 2) { 7388 let e = o.$implicit, n = o.$index, i = c(2); 7389 L("card-width", i.isTouchLayout)("sr-new-cards", !i.isTouchLayout), T("data-index", n), a(2), p("race", e)("trackingLocation", i.trackingLocation())("layoutId", i.layoutId())("coinImg", i.coinImg())("first", n === 0)("collapsible", i.isTouchLayout)("showPlaceholderCard", i.showPlaceholderCard()); 7390 } 7391} 7392function gT(t, o) { 7393 if (t & 1 && (l(0, "div"), oe(1, 5), d()), t & 2) { 7394 let e = c(2), n = ee(4); 7395 L("card-width", e.isTouchLayout)("sr-new-cards", !e.isTouchLayout), a(), p("ngTemplateOutlet", n); 7396 } 7397} 7398function mT(t, o) { 7399 if (t & 1 && (l(0, "div"), D(1, dT, 3, 12, "div", 8, dl().raceTrackFn, !0), f(3, gT, 2, 5, "div", 8), d()), t & 2) { 7400 let e = c(); 7401 L("casino-sr-card-wrapper", e.isTouchLayout)("casino-sr-card-wrapper-non-touch", !e.isTouchLayout)("sr-card-leaderboard", e.showLeaderboard())("sr-card-odd", !e.isTouchLayout && e.races().length % 2 !== 0), a(), R(e.races()), a(2), h(e.showPlaceholderCard() ? 3 : -1); 7402 } 7403} 7404function pT(t, o) { 7405 if (t & 1) { 7406 let e = _(); 7407 l(0, "div", 10), b(1, "img", 11), l(2, "div", 12), b(3, "div", 13), l(4, "div", 14), C(5), d()(), l(6, "div", 15)(7, "div", 16)(8, "cw-slotrace-cta", 17), S("ctaClick", function() { 7408 return y(e), w(c().gotoSlotRaces()); 7409 }), d()()()(); 7410 } 7411 if (t & 2) { 7412 let e = c(); 7413 a(), p("alt", e.messages().PlaceholderCardAlt ?? "Upcoming tournament placeholder")("src", e.placeholderImage(), Y), a(4), E(" ", e.messages().SoonToBeAnnounced || "new tournaments will soon be announced", " "), a(3), p("ctaText", e.messages().SeeAllRaces || "SEE ALL TOURNAMENTS")("csDecoratorClass", e.ctaClass.NONE); 7414 } 7415} 7416function uT(t, o) { 7417 t & 1 && b(0, "span", 18); 7418} 7419function hT(t, o) { 7420 if (t & 1 && (l(0, "span", 13), f(1, uT, 1, 0, "span", 18), l(2, "span", 19), b(3, "img", 20), d(), l(4, "span"), C(5), d()()), t & 2) { 7421 let e = c(), n = le(6); 7422 a(), h(n.prize ? 1 : -1), a(2), p("src", e.coinImg(), Y), a(2), x(n.
7422coinValue); 7423 } 7424} 7425function fT(t, o) { 7426 t & 1 && b(0, "div", 14), t & 2 && (c(), p("innerHTML", le(6).prizeIcon, _e)); 7427} 7428function vT(t, o) { 7429 if (t & 1 && (l(0, "span", 22), C(1), d()), t & 2) { 7430 let e = c(2); 7431 a(), x(e.messages().Last5Races || "Last 5 Races"); 7432 } 7433} 7434function bT(t, o) { 7435 t & 1 && b(0, "li", 25); 7436} 7437function CT(t, o) { 7438 t & 1 && b(0, "span", 33); 7439} 7440function yT(t, o) { 7441 if (t & 1 && (l(0, "span", 30), f(1, CT, 1, 0, "span", 33), l(2, "span", 34), b(3, "img", 35), d(), l(4, "span"), C(5), d()()), t & 2) { 7442 let e = c().$implicit, n = c(2); 7443 a(), h(e.prize ? 1 : -1), a(2), p("src", n.coinImg(), Y), a(2), x(e.coinValue); 7444 } 7445} 7446function wT(t, o) { 7447 if (t & 1 && b(0, "div", 31), t & 2) { 7448 let e = c().$implicit; 7449 p("innerHTML", e.prizeIcon, _e); 7450 } 7451} 7452function PT(t, o) { 7453 if (t & 1) { 7454 let e = _(); 7455 l(0, "li", 36), S("click", function() { 7456 y(e); 7457 let n = c().$implicit; 7458 return w(c(2).openRaceInfoDialog(n)); 7459 })("keydown.enter", function() { 7460 y(e); 7461 let n = c().$implicit; 7462 return w(c(2).openRaceInfoDialog(n)); 7463 }), d(); 7464 } 7465 t & 2 && T("aria-label", c(3).messages().InfoRaceTitle || "Info race"); 7466} 7467function ST(t, o) { 7468 if (t & 1 && (l(0, "ul", 26)(1, "li"), b(2, "cw-slot-races-icon", 27), d(), l(3, "li"), C(4), d(), l(5, "li"), b(6, "i", 28), l(7, "span", 29), C(8), f(9, yT, 6, 3, "span", 30), d()(), l(10, "li"), f(11, wT, 1, 1, "div", 31), C(12), d(), l(13, "li"), C(14), d(), f(15, PT, 1, 1, "li", 32), d()), t & 2) { 7469 let e = o.$implicit, n = c(2); 7470 a(2), p("gameVariantList", e.gameVariantList)("isClickable", !1), a(2), x(e.dateStr), a(2), p("ngClass", n.awardIconClass(e.awardType)), a(2), E(" ", e.prize || "--", " "), a(), h(e.isDisplayCoin && n.coinImg() ? 9 : -1), a(2), h(e.prizeIcon ? 11 : -1), a(), E(" ", e.rank, " "), a(2), x(e.points), a(), h(n.enableResultsHistoryPage() ? 15 : -1); 7471 } 7472} 7473function MT(t, o) { 7474 if (t & 1 && (l(0, "div", 21), f(1, vT, 2, 1, "span", 22), l(2, "div", 23)(3, "ul", 24)(4, "li"), C(5), d(), l(6, "li"), C(7), d(), l(8, "li"), C(9), d(), l(10, "li"), C(11), d(), l(12, "li"), C(13), d(), f(14, bT, 1, 0, "li", 25), d(), D(15, ST, 16, 10, "ul", 26, hv), d()()), t & 2) { 7475 let e = c(); 7476 L("result-history-enabled", e.enableResultsHistoryPage()), a(), h(e.initialLoad() ? 1 : -1), a(4), x(e.messages().Game || "Game"), a(2), x(e.messages().Date || "Date"), a(2), x(e.messages().Prize || "Prize"), a(2), x(e.messages().YourPlace || "Your Place"), a(2), x(e.messages().Points || "Points"), a(), h(e.enableResultsHistoryPage() ? 14 : -1), a(), R(e.displayedResults()); 7477 } 7478} 7479function OT(t, o) { 7480 if (t & 1 && (l(0, "div", 20), C(1), d()), t & 2) { 7481 let e = c(); 7482 a(), x(e.resultsErrorMsg() || e.messages().NoResultsFound || "No results found"); 7483 } 7484} 7485function xT(t, o) { 7486 if (t & 1 && (l(0, "div", 5), C(1), d()), t & 2) { 7487 let e = c(2); 7488 a(), E(" ", e.messages().OptinCoinText || "Opt-in with Coins", " "); 7489 } 7490} 7491function _T(t, o) { 7492 if (t & 1 && (l(0, "span", 7), b(1, "vn-icon", 10), d()), t & 2) { 7493 let e = c(2); 7494 a(), p("name", e.trophyIcon()); 7495 } 7496} 7497function kT(t, o) { 7498 if (t & 1 && (l(0, "span", 8), b(1, "img", 11), d()), t & 2) { 7499 let e = c(2); 7500 a(), p("src", e.coinImg(), Y); 7501 } 7502} 7503function IT(t, o) { 7504 if (t & 1 && (b(0, "span", 12), l(1, "span", 8), b(2, "img", 11), d()), t & 2) { 7505 let e = c(2); 7506 a(2), p("src", e.coinImg(), Y); 7507 } 7508} 7509function TT(t, o) { 7510 if (t & 1) { 7511 let e = _(); 7512 l(0, "div", 1)(1, "div", 2), C(2), d(), b(3, "div", 3), l(4, "div", 4), C(5), f(6, xT, 2, 1, "div", 5), d(), l(7, "div", 6), C(8), d(), f(9, _T, 2, 1, "span", 7), f(10, kT, 2, 1, "span", 8), f(11, IT, 3, 1), l(12, "div", 9), S("click", function() { 7513 return y(e), w(c().toggleRaceCardVisibility()); 7514 })("keydown.enter", function() { 7515 return y(e), w(c().toggleRaceCardVisibility()); 7516 }), d()(); 7517 } 7518 if (t & 2) { 7519 let e = c(); 7520 L("slot-list-last", e.last()), a(2), x(e.race().startTimeAMPM), a(), L("red-dot-first", e.first())("red-dot-last", e.last()), a(2), E(" ", e.title(), " "), a(), h(e.race().isOptinWithCoins ? 6 : -1), a(2), x(e.prizeAmount()), a(), h(e.showCoinIcon() ? -1 : 9), a(), h(e.showCoinIcon() && e.coinImg() ? 10 : -1), a(), h(e.showSupplementaryCoin() && e.coinImg() ? 11 : -1), a(), T("aria-label", e.showRaceCard() ? "Collapse race details" : "Expand race details")("aria-expanded", e.showRaceCard()); 7521 } 7522} 7523function NT(t, o) { 7524 if (t & 1) { 7525 let e = _(); 7526 l(0, "div")(1, "div", 13)(2, "cw-slot-race-card", 14), S("hideCard", function() { 7527 return y(e), w(c().toggleRaceCardVisibility()); 7528 }), d()()(); 7529 } 7530 if (t & 2) { 7531 let e = c(); 7532 a(2), p("race", e.race())("trackingLocation", e.trackingLocation())("layoutId", e.layoutId())("coinImg", e.coinImg())("showCardMenu", !0)("showRaceInfo", !0)("first", e.first())("last", e.last()); 7533 } 7534} 7535function rg(t, o) { 7536 return this.raceTrackFn(o); 7537} 7538function LT(t, o) { 7539 if (t & 1) { 7540 let e = _(); 7541 l(0, "li", 13), S("click", function() { 7542 let n = y(e).$implicit; 7543 return w(c(2).onFilterSelect(n)); 7544 })("keydown.enter", function() { 7545 let n = y(e).$implicit; 7546 return w(c(2).onFilterSelect(n)); 7547 }), C(1), d(); 7548 } 7549 if (t & 2) { 7550 let e = o.$implicit, n = c(2); 7551 L("active", n.selectedOption() === e), a(), E(" ", n.entryDetails()[e], " "); 7552 } 7553} 7554function GT(t, o) { 7555 if (t & 1 && (l(0, "div", 11)(1, "ul"), D(2, LT, 2, 3, "li", 12, ht), d()()), t & 2) { 7556 let e = c(); 7557 L("coineconmy-filter-non-touch", e.isNonTouch), a(2), R(e.entryDetailsKeys()); 7558 } 7559} 7560function ET(t, o) { 7561 if (t & 1 && (l(0, "div", 14), b(1, "span", 15), l(2, "span", 16), C(3), d()(), b(4, "cw-slot-races-cards", 17)), t & 2) { 7562 let e = c(); 7563 a(3), x(e.messages().LiveNow || "Live Now"), a(), p("layoutId", e.layoutId())("trackingLocation", e.trackingLocation())("showLeaderboard", !0)("showPlaceholderCard", !1)("selectedOption", e.selectedOption()); 7564 } 7565} 7566function AT(t, o) { 7567 if (t & 1 && b(0, "vn-page-matrix", 8), t & 2) { 7568 let e = c(); 7569 p("path", "MobileCasino-v1.0/CasinoSlotRaces/NoUpcomingRaces/NoMoreRaces")("product", e.currentProduct()); 7570 } 7571} 7572function RT(t, o) { 7573 if (t & 1) { 7574 let e = _(); 7575 l(0, "div")(1, "cw-slot-races-item", 20), S("openRaceInfo", function() { 7576 let n = y(e).$implicit; 7577 return w(c(2).openRaceInfoDialog(n)); 7578 })("openPickGameOverlay", function() { 7579 let n = y(e).$implicit; 7580 return w(c(2).openPickGameDialog(n)); 7581 }), d()(); 7582 } 7583 if (t & 2) { 7584 let e = o.$implicit, n = o.$index, i = o.$count, r = c(2); 7585 L("play-tech", e.subType?.toUpperCase() === r.RACE_SUB_TYPE.FREE_PLAY_TECH), a(), p("race", e)("layoutId", r.layoutId())("trackingLocation", r.trackingLocation())("coinImg", r.coinImg())("messages", r.messages())("first", n === 0)("last", n === i - 1)("toggleFirstCardOn", r.expandFirstUpcomingToday()); 7586 } 7587} 7588function DT(t, o) { 7589 if (t & 1 && (l(0, "div", 14), b(1, "div", 18), l(2, "div", 16), C(3), d()(), D(4, RT, 2, 10, "div", 19, rg, !0)), t & 2) { 7590 let e = c(); 7591 a(3), x(e.messages().UpcomingToday || "Coming Up Today"), a(), R(e.upcomingTodayList()); 7592 } 7593} 7594function zT(t, o) { 7595 if (t & 1) { 7596 let e = _(); 7597 l(0, "div")(1, "cw-slot-races-item", 20), S("openRaceInfo", function() { 7598 let n = y(e).$implicit; 7599 return w(c(2).openRaceInfoDialog(n)); 7600 })("openPickGameOverlay", function() { 7601 let n = y(e).$implicit; 7602 return w(c(2).openPickGameDialog(n)); 7603 }), d()(); 7604 } 7605 if (t & 2) { 7606 let e = o.$implicit, n = o.$index, i = o.$count, r = c(2); 7607 L("play-tech", e.subType?.toUpperCase() === r.RACE_SUB_TYPE.FREE_PLAY_TECH), a(), p("race", e)("layoutId", r.layoutId())("trackingLocation", r.trackingLocation())("coinImg", r.coinImg())("messages", r.messages())("first", n === 0)("last", n === i - 1)("toggleFirstCardOn", r.expandFirstUpcomingTomorrow()); 7608 } 7609} 7610function BT(t, o) { 7611 if (t & 1 && (l(0, "div", 14), b(1, "div", 21), l(2, "div", 16), C(3), d()(), D(4, zT, 2, 10, "div", 19, rg, !0)), t & 2) { 7612 let e = c(); 7613 a(3), x(e.messages().UpcomingTomorrow || "Coming Up Tomorrow"), a(), R(e.upcomingTomorrowList()); 7614 } 7615} 7616function FT(t, o) { 7617 if (t & 1) { 7618 let e = _(); 7619 l(0, "div", 10)(1, "cw-slotrace-cta", 22), S("ctaClick", function() { 7620 return y(e), w(c().showResults()); 7621 }), d()(); 7622 } 7623 if (t & 2) { 7624 let e = c(); 7625 a(), p("ctaText", e.messages().SeeResults || "See Your Results")("csDecoratorClass", e.ctaClass.SUB_PAGE_SHOW_RESULTS); 7626 } 7627} 7628function VT(t, o) { 7629 if (t & 1 && (l(0, "div", 2)(1, "div", 3), b(2, "cw-container-header", 4), d()()), t & 2) { 7630 let e = c(2), n = e.containerHeader(); 7631 k("top", e.stickyHeaderTop, "px"), a(2), p("title", n.title)("subtitle", n.subtitle)("iconName", n.iconName)("headingTextColor", n.headingTextColor); 7632 } 7633} 7634function jT(t, o) { 7635 if (t & 1 && (f(0, VT, 3, 6, "div", 0), b(1, "cw-casinocore-error-handler")(2, "cw-slot-races", 1)), t & 2) { 7636 let e = c(); 7637 h(e.isMobile() ? -1 : 0), a(2), p("layoutId", e.effectiveLayoutId())("trackingLocation", e.trackingLocation()); 7638 } 7639} 7640function $T(t, o) { 7641 if (t & 1) { 7642 let e = _(); 7643 l(0, "div", 5)(1, "div", 6)(2, "cw-container-header", 7), S("seeAllClick", function() { 7644 return y(e), w(c(2).gotoUpcoming()); 7645 }), d()(), l(3, "cw-slot-races-cards", 8), S("seeAllClick", function() { 7646 return y(e), w(c(2).gotoUpcoming()); 7647 }), d()(); 7648 } 7649 if (t & 2) { 7650 let e = c(2), n = e.containerHeader(); 7651 a(2), p("title", n.title)("subtitle", n.subtitle)("iconName", n.iconName)("headingTextColor", n.headingTextColor)("showViewAllButton", !0)("seeAllText", e.seeUpcomingText()), a(), p("layoutId", e.effectiveLayoutId())("trackingLocation", e.trackingLocation())("addUpcoming", !0); 7652 } 7653} 7654function WT(t, o) { 7655 t & 1 && f(0, $T, 4, 9, "div", 5), t & 2 && h(c().showHomeContainer() ? 0 : -1); 7656} 7657function sg(t) { 7658 return t < 0 ? 0 : t; 7659} 7660function UT(t, o) { 7661 t & 1 && Pe(0, "div", 2); 7662} 7663function HT(t, o) {
7664 if (t & 1 && b(0, "vn-page-matrix", 6), t & 2) { 7665 let e = c(); 7666 p("path", o)("product", e.casinoProduct); 7667 } 7668} 7669function qT(t, o) { 7670 if (t & 1 && (l(0, "div", 9), b(1, "span", 10), d()), t & 2) { 7671 let e = o.$index, n = c(); 7672 a(), L("activeProgressBar", e === n.activeStoryIndex())("completedProgressBar", e < n.activeStoryIndex()); 7673 } 7674} 7675function JT(t, o) { 7676 t & 1 && (l(0, "cw-lobby-container-placeholder", 0), b(1, "cw-stories-skeleton"), d()), t & 2 && p("containerId", c().containerMetadata().id); 7677} 7678function YT(t, o) { 7679 if (t & 1 && b(0, "img", 10), t & 2) { 7680 let e = c().$implicit; 7681 p("ngSrc", e.storyThumbnailImage.src)("alt", e.storyThumbnailImage.alt || e.promoTitle)("width", e.storyThumbnailImage.width || 60)("height", e.storyThumbnailImage.height || 60); 7682 } 7683} 7684function KT(t, o) { 7685 if (t & 1) { 7686 let e = _(); 7687 l(0, "div", 5)(1, "div", 6)(2, "div", 7)(3, "div", 8), S("click", function() { 7688 let n = y(e).$index; 7689 return w(c(2).openStory(n)); 7690 })("keydown", function(n) { 7691 let i = y(e).$index; 7692 return w(c(2).onStoryKeydown(n, i)); 7693 }), l(4, "div", 9), f(5, YT, 1, 4, "img", 10), d()(), l(6, "span", 11), C(7), d()()()(); 7694 } 7695 if (t & 2) { 7696 let e = o.$implicit, n = c(2); 7697 a(3), W(Pt("", n.storyIconShape(), " casino-mobilestories-promo-icon")), k("border-color", e.viewed ? n.storyStyles().viewedPromotionBrClr : n.storyStyles().notviewedPromotionBrClr), L("viewed", e.viewed), T("tabindex", 0)("role", "button")("aria-label", e.promoTitle), a(2), h(e.storyThumbnailImage?.src ? 5 : -1), a(), k("color", e.viewed ? n.storyStyles().viewedpromotionTxtClr : n.storyStyles().promotionTxtClr), L("viewedClr", e.viewed), a(), x(e.promoTitle); 7698 } 7699} 7700function QT(t, o) { 7701 if (t & 1 && (l(0, "div", 2)(1, "div", 3)(2, "vn-swiper", 4), D(3, KT, 8, 16, "div", 5, Fv), d()()()), t & 2) { 7702 let e = c(); 7703 k("background-color", e.storyStyles().promotionsBgClr), a(), L("instacarousal", e.promoList().length <= e.instaCarouselThreshold)("touch-mobilestories-carousel", e.isTouch), a(), p("swiperOptions", e.swiperOptions), a(), R(e.promoList()); 7704 } 7705} 7706function XT(t, o) { 7707 if (t & 1 && b(0, "cw-container-winners-widget", 0), t & 2) { 7708 let e = c(); 7709 p("containerMetadata", e.containerMetadata())("layoutId", e.layoutId())("containerIndex", e.containerIndex()); 7710 } 7711} 7712function ZT(t, o) { 7713 if (t & 1 && b(0, "cw-container-stories", 1), t & 2) { 7714 let e = c(); 7715 p("containerMetadata", e.containerMetadata())("containerIndex", e.containerIndex())("layoutId", e.layoutId()); 7716 } 7717} 7718function eN(t, o) { 7719 if (t & 1 && b(0, "cw-container-tournaments", 2), t & 2) { 7720 let e = c(); 7721 p("containerMetadata", e.containerMetadata())("layoutId", e.layoutId()); 7722 } 7723} 7724function tN(t, o) { 7725 if (t & 1 && b(0, "cw-container-originals-widget", 0), t & 2) { 7726 let e = c(); 7727 p("containerMetadata", e.containerMetadata())("layoutId", e.layoutId())("containerIndex", e.containerIndex()); 7728 } 7729} 7730function nN(t, o) { 7731 t & 1 && Pe(0, "div", 3); 7732} 7733function iN(t, o) { 7734 if (t & 1 && b(0, "cw-parallax-animation", 2), t & 2) { 7735 let e = c(); 7736 p("src1", e.parallaxImage == null || e.parallaxImage.parallaxBackgroundImage1 == null ? null : e.parallaxImage.parallaxBackgroundImage1.src)("src2", e.parallaxImage == null || e.parallaxImage.parallaxBackgroundImage2 == null ? null : e.parallaxImage.parallaxBackgroundImage2.src)("src3", e.parallaxImage == null || e.parallaxImage.parallaxBackgroundImage3 == null ? null : e.parallaxImage.parallaxBackgroundImage3.src); 7737 } 7738} 7739function aN(t, o) { 7740 if (t & 1) { 7741 let e = _(); 7742 l(0, "div")(1, "div"), f(2, iN, 1, 3, "cw-parallax-animation", 2), l(3, "div", 3)(4, "cw-container-header", 4), S("seeAllClick", function() { 7743 let n = y(e); 7744 return w(c().onSeeAllClick(n.id)); 7745 })("moreInfoClick", function() { 7746 let n = y(e); 7747 return w(c().onMoreInfoClick(n.id)); 7748 })("moreInfoOverlayLoad", function() { 7749 let n = y(e); 7750 return w(c().onMoreInfoOverlay("load", n.id)); 7751 })("moreInfoOverlayCtaClick", function(n) { 7752 let i = y(e); 7753 return w(c().onMoreInfoOverlayCtaClick(n, i.id)); 7754 })("moreInfoOverlayClose", function() { 7755 let n = y(e); 7756 return w(c().onMoreInfoOverlay("close", n.id)); 7757 }), d(), l(5, "div"), b(6, "cw-feature-grid", 5), d()()()(); 7758 } 7759 if (t & 2) { 7760 let e = o, n = c(); 7761 L("casino-backgroungImage-Clr", !n.hasParallaxImages()), a(), L("casino-backgroungImage-layer", e.parallaxImage?.parallaxBackgroun
7761dImage1)("casino-backgroungImage-parallax", e.parallaxImage?.parallaxBackgroundImage2 || e.parallaxImage?.parallaxBackgroundImage3), a(), h(n.hasParallaxImages() ? 2 : -1), a(2), p("iconName", e.iconName)("title", e.title)("subtitle", e.subtitle)("showViewAllButton", !!e.viewAllTarget)("headingTextColor", n.headingTextColor())("showMoreInfo", n.showMoreInfo())("moreInfoDialog", e.moreInfoDialog); 7762 let i = n.containerClass(); 7763 a(), W("feature-grid-games-container " + i), k("overflow-x", n.isTouch ? "scroll" : "hidden"), L("non-touch-scrollable-games", !n.isTouch && i === "scrollable-games"), a(), p("layoutId", n.layoutId())("viewType", e.viewType)("enableCarousel", e.enableCarousel)("games", e.games)("containerIndex", n.containerIndex())("containerId", e.id)("containerTitle", e.title ?? "")("containerType", n.gameContainerType())("isBackgroundImageLayerPresent", n.hasParallaxImages()); 7764 } 7765} 7766function oN(t, o) { 7767 if (t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-recently-played-skeleton"), d()), t & 2) { 7768 let e = c(); 7769 p("containerId", e.containerMetadata().id)("rows", e.placeholderRows())("ladder", e.placeholderL
7769adder())("gameCount", e.placeholderGameCount()); 7770 } 7771} 7772function rN(t, o) { 7773 if (t & 1) { 7774 let e = _(); 7775 l(0, "div", 3)(1, "ds-arrow", 7), S("click", function() { 7776 return y(e), w(c(2).scrollPrev()); 7777 }), d()(); 7778 } 7779 t & 2 && (a(), T("aria-label", "Previous games")); 7780} 7781function sN(t, o) { 7782 if (t & 1 && (l(0, "div"), b(1, "cw-game-lobby", 8), d()), t & 2) { 7783 let e = o.$implicit, n = o.$index, i = c(2); 7784 W(Pt("carousel-item-wrapper game-tile icon-", e.iconType || "1")), k("--%NS%col-span", e.colSpan ?? 1)("--%NS%row-span", e.rowSpan ?? 1), a(), p("game", e)("layoutId", i.layoutId())("containerId", i.container().id)("containerIndex", i.containerIndex())("gameIndex", n + 1)("containerTitle", i.gameSectionFor(e))("priority", n === 0 && i.containerIndex() === 1)("containerType", i.gameContainerTypeFor(e)); 7785 } 7786} 7787function cN(t, o) { 7788 if (t & 1) { 7789 let e = _(); 7790 l(0, "div", 6)(1, "ds-arrow", 9), S("click", function() { 7791 return y(e), w(c(2).scrollNext()); 7792 }), d()(); 7793 } 7794 t & 2 && (a(), T("aria-label", "Next games")); 7795} 7796function lN(t, o) { 7797 if (t & 1) { 7798 let e = _(); 7799 l(0, "div", 1), f(1, rN, 2, 1, "div", 3), l(2, "div", 4, 0), S("scroll", function() { 7800 return y(e), w(c().onScroll()); 7801 }), D(4, sN, 2, 15, "div", 5, Hc), d(), f(6, cN, 2, 1, "div", 6), d(); 7802 } 7803 if (t & 2) { 7804 let e = c(); 7805 a(), h(e.canScrollPrev() ? 1 : -1), a(3), R(e.games()), a(2), h(e.canScrollNext() ? 6 : -1); 7806 } 7807} 7808function dN(t, o) { 7809 if (t & 1 && (l(0, "div"), b(1, "cw-game-lobby", 8), d()), t & 2) { 7810 let e = o.$implicit, n = o.$index, i = c(2); 7811 W(Pt("game-tile icon-", e.iconType || "1")), k("--%NS%col-span", e.colSpan ?? 1)("--%NS%row-span", e.rowSpan ?? 1), L("portrait", (e.colSpan ?? 1) === 1 && (e.rowSpan ?? 1) === 2)("landscape", (e.colSpan ?? 1) === 2 && (e.rowSpan ?? 1) === 1), a(), p("game", e)("layoutId", i.layoutId())("containerId", i.container().id)("containerIndex", i.containerIndex())("gameIndex", n + 1)("containerTitle", i.gameSectionFor(e))("priority", n === 0 && i.containerIndex() === 1)("containerType", i.gameContainerTypeFor(e)); 7812 } 7813} 7814function gN(t, o) { 7815 if (t & 1 && (l(0, "div", 2), D(1, dN, 2, 19, "div", 10, Hc), d()), t & 2) { 7816 let e = c(); 7817 a(), R(e.games()); 7818 } 7819} 7820function mN(t, o) { 7821 if (t & 1 && b(0, "cw-container-header", 8), t & 2) { 7822 let e = c(3); 7823 p("iconName", e.containerInfo().iconName)("classes", "sticky-header-rp-gyml")("title", e.recentlyPlayedTitle())("showViewAllButton", e.showAllButton); 7824 } 7825} 7826function pN(t, o) { 7827 if (t & 1 && (l(0, "div", 9), b(1, "cw-game-lobby", 11), d()), t & 2) { 7828 let e = o.$implicit, n = o.$index, i = c(3); 7829 p("id", i.getRPGymlTrackingId(e))("hidden", !e.isRecentlyPlayed), a(), L("casino-recentlyPromo", e.isRecentlyPlayed && !e.isUnfinishedGame), p("game", e)("layoutId", i.lobbyType())("containerId", i.containerInfo().id)("containerIndex", i.containerIndex())("gameIndex", n + 1)("containerTitle", i.gameSectionFor(e))("priority", n === 0 && i.containerIndex() === 1)("containerType", i.gameContainerTypeFor(e)); 7830 } 7831} 7832function uN(t, o) { 7833 if (t & 1 && (l(0, "div", 9), b(1, "cw-game-lobby", 11), d()), t & 2) { 7834 let e = o.$implicit, n = o.$index, i = c(3); 7835 p("id", i.getRPGymlTrackingId(e))("hidden", e.isRecentlyPlayed), a(), L("casino-recentlyPromo", e.isRecentlyPlayed && !e.isUnfinishedGame), p("game", e)("layoutId", i.lobbyType())("containerId", i.containerInfo().id)("containerIndex", i.containerIndex())("gameIndex", n + 1)("containerTitle", i.gameSectionFor(e))("priority", n === 0 && i.containerIndex() === 1)("containerType", i.gameContainerTypeFor(e)); 7836 } 7837} 7838function hN(t, o) { 7839 if (t & 1 && (l(0, "div", 4)(1, "div", 5)(2, "div", 6)(3, "div", 7), f(4, mN, 1, 4, "cw-container-header", 8), l(5, "div"), D(6, pN, 2, 12, "div", 9, Co), d()(), l(8, "div", 10), b(9, "cw-container-header", 8), l(10, "div"), D(11, uN, 2, 12, "div", 9, Co), d()()()()()), t & 2) { 7840 let e = c(2); 7841 p("ngClass", ne(8, sb, e.staticGYML)), a(), L("casino-base-category-nontouch", !e.isTouch), a(3), h(e.recentGamesCount > e.recentStartIndex ? 4 : -1), a(2), R(e.unfinishedRPANDGYMLGames), a(3), p("iconName", e.containerInfo().iconName)("classes", "sticky-header-rp-gyml")("title", e.gymlSectionTitle())("showViewAllButton", e.showAllButton), a(2), R(e.unfinishedRPANDGYMLGames); 7842 } 7843} 7844function fN(t, o) { 7845 if (t & 1 && b(0, "cw-container-header", 8), t & 2) { 7846 let e = c(3); 7847 p("iconName", e.containerInfo().iconName)("classes", "non-touch-sticky-header-rp-gyml non-touch-casino-lobby-header")("title", e.recentlyPlayedTitle())("showViewAllButton", e.showAllButton); 7848 } 7849} 7850function vN(t, o) { 7851 if (t & 1 && b(0, "cw-container-header", 8), t & 2) { 7852 let e = c(3); 7853 p("iconName", e.containerInfo().iconName)("classes", "non-touch-sticky-header-rp-gyml non-touch-casino-lobby-header")("title", e.gymlSectionTitle())("showViewAllButton", e.showAllButton); 7854 } 7855} 7856function bN(t, o) { 7857 if (t & 1 && b(0, "cw-container-header", 8), t & 2) { 7858 let e = c(6); 7859 p("iconName", e.containerInfo().iconName)("classes", "casino-uk-header-gymltext non-touch-casino-lobby-header")("title", e.gymlSectionTitle())("showViewAllButton", e.showAllButton); 7860 } 7861} 7862function CN(t, o) { 7863 if (t & 1 && b(0, "cw-game-lobby", 11), t & 2) { 7864 let e = c(), n = e.$implicit, i = e.$index, r = c(5); 7865 L("casino-recentlyPromo", n.isRecentlyPlayed && !n.isUnfinishedGame), p("game", n)("layoutId", r.lobbyType())("containerId", r.containerInfo().id)("containerIndex", r.containerIndex())("gameIndex", i + 1)("containerTitle", r.gameSectionFor(n))("priority", i === 0 && r.containerIndex() === 1)("containerType", r.gameContainerTypeFor(n)); 7866 } 7867} 7868function yN(t, o) { 7869 if (t & 1 && b(0, "cw-game-lobby", 11), t & 2) { 7870 let e = c(), n = e.$implicit, i = e.$index, r = c(5); 7871 L("casino-recentlyPromo", n.isRecentlyPlayed && !n.isUnfinishedGame), p("game", n)("layoutId", r.lobbyType())("containerId", r.containerInfo().id)("containerIndex", r.containerIndex())("gameIndex", i + 1)("containerTitle", r.gameSectionFor(n))("priority", i === 0 && r.containerIndex() === 1)("containerType", r.gameContainerTypeFor(n)); 7872 } 7873} 7874function wN(t, o) { 7875 if (t & 1 && (l(0, "div", 14), f(1, bN, 1, 4, "cw-container-header", 8), l(2, "div", 15), f(3, CN, 1, 10, "cw-game-lobby", 16), f(4, yN, 1, 10, "cw-game-lobby", 17), d()()), t & 2) { 7876 let e = o.$implicit, n = o.$index, i = c(5); 7877 a(), h(n === i.recentGamesCount && i.recentGamesCount > i.recentStartIndex ? 1 : -1), a(), p("id", i.getRPGymlTrackingId(e)), a(), h(e.isRecentlyPlayed ? 3 : -1), a(), h(e.isRecentlyPlayed ? -1 : 4); 7878 } 7879} 7880function PN(t, o) { 7881 if (t & 1 && (l(0, "vn-swiper", 13), D(1, wN, 5, 4, "div", 14, Co), d()), t & 2) { 7882 let e = c(4); 7883 p("swiperOptions", e.swiperOptions)("showPagination", !1)("inverse", !1)("arrowSize", "medium"), a(), R(e.unfinishedRPANDGYMLGames); 7884 } 7885} 7886function SN(t, o) { 7887 t & 1 && f(0, PN, 3, 4, "vn-swiper", 13), t & 2 && h(c(3).setSubCategoryStyle() === "unscrollable-games" ? 0 : -1); 7888} 7889function MN(t, o) { 7890 if (t & 1 && (l(0, "div")(1, "div", 5)(2, "div", 12), f(3, fN, 1, 4, "cw-container-header", 8), f(4, vN, 1, 4, "cw-container-header", 8), d(), f(5, SN, 1, 1), d()()), t & 2) { 7891 let e = c(2); 7892 a(), L("casino-base-category-nontouch", !e.isTouch), a(2), h(e.recentGamesCount > e.recentStartIndex ? 3 : -1), a(), h(e.recentGamesCount <= e.recentStartIndex ? 4 : -1), a(), h(e.showFeatureGrid() ? 5 : -1); 7893 } 7894} 7895function ON(t, o) { 7896 if (t & 1) { 7897 let e = _(); 7898 l(0, "div", 2)(1, "div", 3), S("scroll", function() { 7899 return y(e), w(c().scrollGYML()); 7900 }), f(2, hN, 13, 10, "div", 4), f(3, MN, 6, 5, "div"), d()(); 7901 } 7902 if (t & 2) { 7903 let e = c(); 7904 W("gametracking " + e.trackingClass), p("ngClass", ne(10, rb, e.isCrossSaleIOS)), a(), k("overflow-x", e.isTouch === !1 ? "hidden" : "scroll"), L("non-touch-scrollable-games", !e.isTouch && e.setSubCategoryStyle() === "scrollable-games"), p("ngClass", e.setSubCategoryStyle()), a(), h(e.isTouch && e.unfinishedRPANDGYMLGames && e.unfinishedRPANDGYMLGames.length > 0 ? 2 : -1), a(), h(!e.isTouch && e.unfinishedRPANDGYMLGames && e.unfinishedRPANDGYMLGames.length > 0 ? 3 : -1); 7905 } 7906} 7907function xN(t, o) { 7908 if (t & 1 && (l(0, "div"), b(1, "cw-feature-css-grid", 21), d()), t & 2) { 7909 let e = c(2); 7910 a(), p("layoutId", e.lobbyType())("container", e.containerInfo())("games", e.games)("isTouch", e.isTouch)("type", "scrollable-games")("containerIndex", e.containerIndex()); 7911 } 7912} 7913function _N(t, o) { 7914 if (t & 1 && (l(0, "div", 18), b(1, "cw-container-header", 19), l(2, "div", 20), f(3, xN, 2, 6, "div"), d()()), t & 2) { 7915 let e = c(); 7916 W("gametracking " + e.trackingClass + " casino-lobby-games casino-game-tile-wrapper casino-lobby-width-gametile"), p("ngClass", ne(11, cb, e.isCrossSaleIOS)), a(), p("iconName", e.containerInfo().iconName)("title", e.nonCombinedTitle())("showViewAllButton", e.showAllButton), a(), k("overflow-x", e.isTouch ? "scroll" : "hidden"), L("non-touch-scrollable-games", !e.isTouch), a(), h(e.showFeatureGrid() && e.games.length > 0 ? 3 : -1); 7917 } 7918} 7919function kN(t, o) { 7920 t & 1 && Pe(0, "div", 3); 7921} 7922function IN(t, o) { 7923 if (t & 1 && (l(0, "div", 0), b(1, "cw-rp-gyml", 2), d()), t & 2) { 7924 let e = c(); 7925 a(), p("lobbyType", e.lobbyType())("containerInfo", e.containerInfo())("containerIndex", e.containerIndex()); 7926 } 7927} 7928function TN(t, o) { 7929 if (t & 1 && (l(0, "cw-lobby-container-placeholder", 1), b(1, "cw-rp-gyml-skeleton"), d()), t & 2) { 7930 let e = c(); 7931 p("containerId", e.containerMetadata().id)("rows", e.placeholderRows())("ladder", e.placeholderL
7931adder())("gameCount", e.placeholderGameCount()); 7932 } 7933} 7934function NN(t, o) { 7935 t & 1 && b(0, "div", 7), t & 2 && W("icon-widget " + c(2).rpIcon()); 7936} 7937function LN(t, o) { 7938 if (t & 1) { 7939 let e = _(); 7940 l(0, "button", 4), S("click", function() { 7941 return y(e), w(c().tabChanged.emit("rp")); 7942 }), f(1, NN, 1, 2, "div", 5), C(2), b(3, "cw-chevron", 6), d(); 7943 } 7944 if (t & 2) { 7945 let e = c(); 7946 p("kind", e.activeTab() === "rp" ? "secondary" : "primary")("inverse", e.activeTab() === "rp"), T("aria-selected", e.activeTab() === "rp")("aria-expanded", e.activeTab() === "rp")("aria-controls", "rpfavWidget_rcp_gyml"), a(), h(e.rpIcon() ? 1 : -1), a(), E(" ", e.labels().rpTabLabel, " "), a(), p("kind", e.rpChevronKind()); 7947 } 7948} 7949function GN(t, o) { 7950 t & 1 && b(0, "div", 7), t & 2 && W("icon-widget " + c(2).favIcon()); 7951} 7952function EN(t, o) { 7953 if (t & 1) { 7954 let e = _(); 7955 l(0, "button", 8), S("click", function() { 7956 return y(e), w(c().tabChanged.emit("fav")); 7957 }), f(1, GN, 1, 2, "div", 5), C(2), b(3, "cw-chevron", 6), d(); 7958 } 7959 if (t & 2) { 7960 let e = c(); 7961 p("kind", e.activeTab() === "fav" ? "secondary" : "primary")("inverse", e.activeTab() === "fav"), T("aria-selected", e.activeTab() === "fav")("aria-expanded", e.activeTab() === "fav")("aria-controls", "rpfavWidget_fav_gyml"), a(), h(e.favIcon() ? 1 : -1), a(), E(" ", e.labels().favTabLabel, " "), a(), p("kind", e.favChevronKind()); 7962 } 7963} 7964function AN(t, o) { 7965 if (t & 1) { 7966 let e = _(); 7967 l(0, "button", 9), S("click", function() { 7968 return y(e), w(c().closed.emit()); 7969 }), d(); 7970 } 7971 t & 2 && k("color", c().activeColor()); 7972} 7973function RN(t, o) { 7974 if (t & 1) { 7975 let e = _(); 7976 l(0, "div", 0)(1, "div", 1)(2, "cw-rp-fav-widget-toggle", 2), S("tabChanged", function(n) { 7977 return y(e), w(c().onTabChange(n)); 7978 })("closed", function() { 7979 return y(e), w(c().onClose()); 7980 }), d()(), l(3, "div", 3), b(4, "cw-rp-fav-widget-scroll-row", 4), d(), l(5, "div", 5), b(6, "cw-rp-fav-widget-scroll-row", 4), d()(); 7981 } 7982 if (t & 2) { 7983 let e = c(); 7984 a(), k("background-color", e.widgetService.activeTab() ? e.widgetService.widgetStyles().backgroundColor : e.widgetService.widgetStyles().backgroundTransparent), L("rcp-btns", e.widgetService.activeTab())("sticky", e.widgetService.isStickyEnabled()), a(), p("activeTab", e.widgetService.activeTab())("showRpTab", e.widgetService.showRpTab())("showFavTab", e.widgetService.showFavTab())("labels", e.widgetService.labels())("styles", e.widgetService.widgetStyles()), a(), k("display", e.widgetService.activeTab() === "rp" ? "block" : "none")("background-color", e.widgetService.widgetStyles().backgroundColor), a(), p("games", e.widgetService.rpGamesEnriched())("emptyStateMessage", e.widgetService.activeTab() === "rp" ? e.widgetService.emptyStateMessage() : "")("widgetStyles", e.widgetService.widgetStyles())("layoutId", e.layoutId())("containerId", e.rpContainer.containerId)("containerTitle", e.rpContainer.containerTitle)("containerType", e.rpContainer.containerType), a(), k("display", e.widgetService.activeTab() === "fav" ? "block" : "none")("background-color", e.widgetService.widgetStyles().backgroundColor), a(), p("games", e.widgetService.favGamesEnriched())("emptyStateMessage", e.widgetService.activeTab() === "fav" ? e.widgetService.emptyStateMessage() : "")("widgetStyles", e.widgetService.widgetStyles())("layoutId", e.layoutId())("containerId", e.favContainer.containerId)("containerTitle", e.favContainer.containerTitle)("containerType", e.favContainer.containerType); 7985 } 7986} 7987function DN(t, o) { 7988 if (t & 1 && b(0, "cw-parallax-animation", 3), t & 2) { 7989 let e = c(2); 7990 p("src1", e.container()?.parallaxImage?.parallaxBackgroundImage1?.src)("src2", e.container()?.parallaxImage?.parallaxBackgroundImage2?.src)("src3", e.container()?.parallaxImage?.parallaxBackgroundImage3?.src); 7991 } 7992} 7993function zN(t, o) { 7994 if (t & 1) { 7995 let e = _(); 7996 l(0, "div", 8)(1, "ds-segmented-control", 9), S("activeOptionChange", function(n) { 7997 return y(e), w(c(2).onTabChange(n)); 7998 }), b(2, "ds-segmented-option", 10)(3, "ds-segmented-option", 11), d()(); 7999 } 8000 if (t & 2) { 8001 let e = c(2); 8002 k("width", e.toggleWidth()), a(), p("fullWidth", !0)("activeOption", e.activeTab()), T("aria-label", e.toggleAriaLabel()), a(), p("title", e.recentTabTitle()), a(), p("title", e.favouriteTabTitle()); 8003 } 8004} 8005function BN(t, o) { 8006 if (t & 1 && (l(0, "div"), b(1, "cw-feature-grid", 12), d()), t & 2) { 8007 let e = o, n = c(3), i = ee(2), r = n.containerClass(); 8008 W("rp-favorite-toggle-widget-grid feature-grid-games-container " + r), k("overflow-x", n.isTouch ? "scroll" : "hidden"), L("non-touch-scrollable-games", !n.isTouch && r === "scrollable-games"), a(), p("layoutId", n.layoutId())("viewType", e.viewType ?? n.defaultViewType)("enableCarousel", e.enableCarousel ?? !1)("games", n.displayedGames())("containerIndex", n.containerIndex())("containerId", e.id ?? "")("containerTitle", e.title ?? "")("containerType", n.gameContainerType())("colOverride", n.mobileColOverride())("trailingContent", n.showSeeAll() ? i : null)("isBackgroun
8008dImageLayerPresent", n.showParallax()); 8009 } 8010} 8011function FN(t, o) { 8012 if (t & 1 && f(0, BN, 2, 17, "div", 7), t & 2) { 8013 let e; 8014 h((e = c(2).gameContainer()) ? 0 : -1, e); 8015 } 8016} 8017function VN(t, o) { 8018 if (t & 1 && (l(0, "div")(1, "div", 13)(2, "p", 14), C(3), d()()()), t & 2) { 8019 let e = c(2); 8020 W("rp-favorite-toggle-widget-grid feature-grid-games-container " + e.containerClass()), k("overflow-x", e.isTouch ? "scroll" : "hidden"), L("non-touch-scrollable-games", !e.isTouch && e.containerClass() === "scrollable-games"), a(), k("--%NS%lobby-col-override", e.mobileColOverride()), a(2), x(e.emptyStateMessage()); 8021 } 8022} 8023function jN(t, o) { 8024 if (t & 1 && (l(0, "section", 2)(1, "div"), f(2, DN, 1, 3, "cw-parallax-animation", 3), l(3, "div", 4)(4, "cw-container-header", 5), f(5, zN, 4, 7, "div", 6), d(), f(6, FN, 1, 1)(7, VN, 4, 9, "div", 7), d()()()), t & 2) { 8025 let e = c(); 8026 k("background-image", e.backgroundImageUrl()), a(), L("casino-backgroungImage-Clr", !e.showParallax())("casino-backgroungImage-layer", e.showParallax() && e.container()?.parallaxImage?.parallaxBackgroundImage1)("casino-backgroungImage-parallax", e.showParallax() && (e.container()?.parallaxImage?.parallaxBackgroundImage2 || e.container()?.parallaxImage?.parallaxBackgroundImage3)), a(), h(e.showParallax() ? 2 : -1), a(2), p("iconName", e.container()?.iconName)("title", e.container()?.title)("subtitle", e.container()?.subtitle)("showViewAllButton", !1)("headingTextColor", e.headingTextColor()), a(), h(e.showToggle() ? 5 : -1), a(), h(e.displayedGames().length > 0 ? 6 : e.showEmptyState() ? 7 : -1); 8027 } 8028} 8029function $N(t, o) { 8030 t & 1 && b(0, "span", 17); 8031} 8032function WN(t, o) { 8033 if (t & 1) { 8034 let e = _(); 8035 l(0, "div", 15)(1, "div", 16), D(2, $N, 1, 0, "span", 17, ht), d(), l(4, "cw-see-all", 18), S("seeAllClick", function() { 8036 return y(e), w(c().onSeeAllClick()); 8037 }), d()(); 8038 } 8039 if (t & 2) { 8040 let e = c(); 8041 a(), T("aria-hidden", !0), a(), R(e.seeAllBlocks); 8042 } 8043} 8044function UN(t, o) { 8045 t & 1 && (H(0, "h2", 1), C(1), K()), t & 2 && (a(), x(o.message)); 8046} 8047function HN(t, o) { 8048 if (t & 1 && (H(0, "div"), f(1, UN, 2, 1, "h2", 1), K()), t & 2) { 8049 let e, n = c(); 8050 W(n.containerClasses()), a(), h((e = n.resolvedGreeting()) ? 1 : -1, e); 8051 } 8052} 8053function Wn(t) { 8054 return typeof t == "string" ? t : ""; 8055} 8056function qN(t, o) { 8057 t & 1 && b(0, "vn-not-found"); 8058} 8059function JN(t, o) { 8060 if (t & 1 && b(0, "cw-seo-content-box", 6), t & 2) { 8061 let e, n, i = c(2); 8062 p("heading", (e = i.seoContent()) == null ? null : e.heading)("body", (n = i.seoContent()) == null ? null : n.body); 8063 } 8064} 8065function YN(t, o) { 8066 if (t & 1 && (l(0, "div", 2), b(1, "cw-lobby-background", 3)(2, "cw-lobby-virtual-scroll", 4)(3, "cw-navigation-bar")(4, "cw-casinocore-error-handler")(5, "cw-lobby-virtual-scroll", 4)(6, "cw-game-overlay-wrapper"), l(7, "cw-lobby-footer"), b(8, "cw-scroll-to-top", 5)(9, "cw-rp-fav-widget"), d(), f(10, JN, 1, 2, "cw-seo-content-box", 6), d()), t & 2) { 8067 let e = c(), n = ee(3); 8068 L("cls-skeleton-off", !e.skeletonEnabled()), a(), p("image", e.backgroundImage()), a(), p("entries", e.aboveSubnavRenderPlan())("itemTemplate", n), a(3), p("entries", e.renderPlan())("itemTemplate", n), a(3), p("widgetExpanded", e.rpFavWidgetExpanded()), a(2), h(e.isSeoContentBoxEnabled() ? 10 : -1); 8069 } 8070} 8071function KN(t, o) { 8072 if (t & 1 && b(0, "cw-teaser-block", 7), t & 2) { 8073 let e = c(), n = e.$implicit, i = e.index, r = c(); 8074 p("containerMetadata", n.container)("containerIndex", n.aboveSubnav ? -1 : i)("layoutId", r.effectiveLayoutId())("subNavId", r.subnavId()); 8075 } 8076} 8077function QN(t, o) { 8078 if (t & 1 && b(0, "cw-rp-gyml-section", 8), t & 2) { 8079 let e = c(), n = e.$implicit, i = e.index; 8080 p("lobbyType", c().effectiveLayoutId())("containerMetadata", n.container)("containerIndex", i + 1); 8081 } 8082} 8083function XN(t, o) { 8084 if (t & 1 && b(0, "cw-recently-played-container", 9), t & 2) { 8085 let e = c(), n = e.$implicit, i = e.index; 8086 p("layoutId", c().effectiveLayoutId())("containerMetadata", n.container)("containerIndex", i + 1); 8087 } 8088} 8089function ZN(t, o) { 8090 if (t & 1 && b(0, "cw-rp-favorite-toggle-widget-container", 9), t & 2) { 8091 let e = c(), n = e.$implicit, i = e.index; 8092 p("layoutId", c().effectiveLayoutId())("containerMetadata", n.container)("containerIndex", i + 1); 8093 } 8094} 8095function e3(t, o) { 8096 if (t & 1 && b(0, "cw-welcomebox", 10), t & 2) { 8097 let e = c(), n = e.$implicit, i = e.index; 8098 p("containerMetadata", n.container)("containerIndex", i + 1); 8099 } 8100} 8101function t3(t, o) { 8102 if (t & 1 && b(0, "cw-favourites-container", 11), t & 2) { 8103 let e = c(), n = e.$implicit, i = e.index, r = c(); 8104 p("containerMetadata", n.container)("layoutId", r.effectiveLayoutId())("containerIndex", i + 1); 8105 } 8106} 8107function n3(t, o) { 8108 if (t & 1 && b(0, "cw-jackpot-widgets", 12), t & 2) { 8109 let e = c(), n = e.$implicit, i = e.index, r = c(); 8110 p("containerMetadata", n.container)("lobbyType", r.effectiveLayoutId())("isTouch", r.isTouch())("changeCarouselView", !1)("containerIndex", i + 1); 8111 } 8112} 8113function i3(t, o) { 8114 if (t & 1 && b(0, "cw-super-button-container", 15), t & 2) { 8115 let e = c(2), n = e.$implicit, i = e.index, r = c(); 8116 p("subnav", r.subnavId())("containerMetadata", n.container)("containerIndex", i + 1)("layoutId", r.effectiveLayoutId()); 8117 } 8118} 8119function a3(t, o) { 8120 t & 1 && f(0, i3, 1, 4, "cw-super-button-container", 15), t & 2 && h(c(2).isMobilePhone() ? 0 : -1); 8121} 8122function o3(t, o) { 8123 if (t & 1 && b(0, "cw-newsfeed-container", 13), t & 2) { 8124 let e = c(), n = e.$implicit, i = e.index, r = c(); 8125 p("containerMetadata", n.container)("containerIndex", n.aboveSubnav ? 0 : i + 1)("layoutId", r.effectiveLayoutId()); 8126 } 8127} 8128function r3(t, o) {
8129 if (t & 1 && b(0, "cw-minimal-container", 13), t & 2) { 8130 let e = c(), n = e.$implicit, i = e.index, r = c(); 8131 p("containerMetadata", n.container)("containerIndex", n.aboveSubnav ? 0 : i + 1)("layoutId", r.effectiveLayoutId()); 8132 } 8133} 8134function s3(t, o) { 8135 if (t & 1 && b(0, "cw-container-casino-video", 10), t & 2) { 8136 let e = c(), n = e.$implicit, i = e.index; 8137 p("containerMetadata", n.container)("containerIndex", i + 1); 8138 } 8139} 8140function c3(t, o) { 8141 if (t & 1 && b(0, "cw-cabinet-container", 9), t & 2) { 8142 let e = c(), n = e.$implicit, i = e.index; 8143 p("layoutId", c().effectiveLayoutId())("containerMetadata", n.container)("containerIndex", i + 1); 8144 } 8145} 8146function l3(t, o) { 8147 if (t & 1 && b(0, "cw-lobby-container", 14), t & 2) { 8148 let e = c(), n = e.$implicit, i = e.index, r = c(); 8149 p("layoutId", r.effectiveLayoutId())("containerMetadata", n.container)("containerIndex", i + 1)("isVirtualisationEnabled", r.virtualisationEnabled()); 8150 } 8151} 8152function d3(t, o) { 8153 if (t & 1 && f(0, KN, 1, 4, "cw-teaser-block", 7)(1, QN, 1, 3, "cw-rp-gyml-section", 8)(2, XN, 1, 3, "cw-recently-played-container", 9)(3, ZN, 1, 3, "cw-rp-favorite-toggle-widget-container", 9)(4, e3, 1, 2, "cw-welcomebox", 10)(5, t3, 1, 3, "cw-favourites-container", 11)(6, n3, 1, 5, "cw-jackpot-widgets", 12)(7, a3, 1, 1)(8, o3, 1, 3, "cw-newsfeed-container", 13)(9, r3, 1, 3, "cw-minimal-container", 13)(10, s3, 1, 2, "cw-container-casino-video", 10)(11, c3, 1, 3, "cw-cabinet-container", 9)(12, l3, 1, 4, "cw-lobby-container", 14), t & 2) { 8154 let e, n = o.$implicit;
8155 h((e = n.kind) === "teaser" ? 0 : e === "rp-gyml" ? 1 : e === "recently-played" ? 2 : e === "rp-favorite-toggle-widget" ? 3 : e === "welcomebox" ? 4 : e === "favorites" ? 5 : e === "jackpot" ? 6 : e === "superbutton" ? 7 : e === "newsfeed" ? 8 : e === "minimal" ? 9 : e === "casino-video" ? 10 : e === "cabinet" ? 11 : 12); 8156 } 8157} 8158function g3(t, o) { 8159 return o !== "minimal" ? o : t.featureType && Sb[t.featureType] || o; 8160} 8161function m3(t) { 8162 let o = t.type?.toLowerCase(); 8163 return o === Ce.Teaser.toLowerCase() ? "teaser" : o === Ce.RPGYML.toLowerCase() ? "rp-gyml" : o === Ce.RecentlyPlayed.toLowerCase() ? "recently-played" : o === Ce.Jackpot.toLowerCase() ? "jackpot" : o === Ce.Favourites.toLowerCase() ? "favorites" : o === Ce.SuperButton.toLowerCase() ? "superbutton" : o === Ce.NewsFeed.toLowerCase() ? "newsfeed" : o === Ce.MinimalFeature.toLowerCase() ? "minimal" : o === Ce.CasinoVideo.toLowerCase() ? "casino-video" : o === Ce.Cabinet.toLowerCase() ? "cabinet" : o === Ce.RpFavoriteToggleWidget.toLowerCase() ? "rp-favorite-toggle-widget" : o === Ce.Welcomebox.toLowerCase() ? "welcomebox" : o === Ce.ThreeCategoriesWidget.toLowerCase() ? "ThreeCategoriesWidget" : "lobby"; 8164} 8165var Ea, cg, jt, Rr, lg, dg, gg, mg, pg, ug, Dr, hg, Un, fg, Aa, vg, ie, bg, Cg, yg, zr, Br, Ra, Sn, wg, Hn, Pg, Fr, Sg, Da, Vr, Mg, jr, Og, xg, $r, Wr, za, _g, Ur, kg, Mn, Ig, Hr, Tg, Ng, $t, Lg, Gg, Eg, On, qr, _i, Ag, Rg, Ba, It, Dg, zg, Bg, Fg, st, Jr, Vg, jg, xn, _n, vt, Fa, Va, $g, Yr, ja, Wg, Ug, Hg, qg, Jg, Yg, Kg, Qg, Xg, Zg, Kr, em, tm, nm, Qr, im, Xr, am, Zr, sn, es, $a, cn, ki, om, rm, Ii, Wt, Wa, ts, ns, Ua, is, sm, cm, lm, as, os, rs, dm, gm, mm, pm, um, ss, cs, ls, hm, fm, vm, bm, ct, Cm, Ha, ds, ym, wm, Pm, Sm, gs, ms, ps, us, hs, Mm, Om, xm, fs, _m, km, vs, qa, Im, Tm, Nm, Ja, bs, Ya, qn, kn, Tt, Lm, Cs, ys, Ti, $e, Jn, Gm, ws, Ni, Li, Ps, Em, Ut, Ka, Am, Rm, Ss, Ms, Dm, Os, zm, Bm, Fm, Vm, jm, $m, Wm, Um, Hm, qm, Jm, In, Ym, Km, Qm, Xm, Zm, Be, ep, tp, xs, _s, ks, np, ip, Is, ap, Ts, op, rp, sp, cp, lp, dp, gp, mp, pp, up, hp, fp, Ns, vp, bp, Cp, yp, wp, Pp, Sp, Mp, Op, xp, _p, kp, Ip, Ls, Tp, Gs, Es, Qa, Np, As, Xa, Lp, Gp, Ep, Ap, Za, Rp, Dp, zp, Rs, Ds, Bp, Fp, Vp, jp, $p, Gi, ln, Wp, Ei, Ht, zs, Up, Hp, Bs, Fs, Vs, qp, js, Jp, $s, Yp, Ws, Kp, Qp, Xp, Zp, eu, tu, nu, iu, au, ou, ru, su, cu, lu, eo, du, gu, mu, Us, Hs, to, pu, uu, hu, fu, vu, bu, Cu, yu, qs, Tn, wu, Pu, Js, Su, Mu, Ys, Ks, Ou, xu, no, _u, ku, Qs, Xs, Zs, Iu, Tu, Nu, Ai, io, Ri, ec, Lu, ao, Gu, Eu, Au, Ru, Du, zu, Bu, tc, Fu, Vu, ju, nc, $u, Wu, Uu, ic, Hu, oo, qu, Ju, Yu, Ku, Qu, Xu, Zu, eh, ac, th, nh, ih, ah, oh, rh, sh, ch, lh, dh, oc, gh, mh, ph, ro, uh, hh, fh, vh, rc, bh, so, Ch, qt, Yn, Kn, sc, yh, wh, co, Ph, Sh, Mh, Di, Qn, cc, Oh, xh, dn, _h, kh, Ih, Th, Nh, ge, Lh, Gh, Eh, lc, dc, gc, mc, pc, Ah, Rh, Dh, zh, Bh, Fh, Vh, jh, $h, Wh, Uh, Hh, qh, Jh, Yh, uc, Kh, hc, fc, vc, bc, Nn, Cc, Qh, Xh, Zh, yc, lo, ef, tf, nf, af, of, wc, rf, go, sf, cf, lf, Pc, df, gf, mf, pf, uf, hf, ff, vf, zi, bf, Cf, yf, wf, Pf, Sf, Mf, Of, xf, Jt, _f, kf, If, mo, Sc, Tf, Nf, Lf, Gf, xe, ye, Mc, Oc, gn, Xn, Ef, po, xc, _c, Af, Rf, Df, zf, Bf, Ff, Vf, jf, Bi, Ln, Gn, $f, kc, Wf, Uf, Ic, Hf, mn, qf, Jf, Fi, Yf, Tc, Kf, Nc, Lc, Gc, Vi, ji, uo, Qf, ho, Xf, Zf, ev, tv, nv, iv, av, ov, Ec, rv, sv, cv, lv, Ac, dv, Rc, gv, mv, pv, $i, fo, Dc, uv, hv, zc, fv, vv, bv, Cv, yv, wv, Pv, Sv, Mv, Ov, xv, _v, kv, Yt, Bc, Fc, Iv, Tv, Nv, Lv, Gv, Ev, Av, Vc, vo, Rv, Dv, jc, zv, $c, Wc, bo, Bv, Fv, Vv, jv, $v, Wv, Uv, Hv, qv, Jv, Yv, Uc, Kv, Qv, Xv, Zv, eb, tb, nb, ib, Hc, ab, ob, rb, sb, cb, Co, lb, db, gb, mb, pb, ub, Wi, hb, qc, fb, Jc, Yc, yo, Kc, Qc, vb, Xc, En, bb, An, wo, Cb, yb, bt, Po, Zc, el, tl, wb, Pb, So, Mo, Sb, Oo, Mb, Ob, nl, il, xb, _b, kb; 8166function Ib() { 8167 return (Ib = pi((() => { 8168 qi(), ti(), ul(), oC(), sC(), Bo(), Xi(), Zi(), Fo(), pC(), jo(), uC(), vl(), mC(), vC(), Cl(), yC(), ta(), wl(), EC(), jC(), WC(), $C(), Uo(), UC(), qC(), xl(), Pl(), Ll(), QC(), KC(), XC(), Tl(), ZC(), ey(), by(), xy(), hy(), Cy(), ty(), ny(), Nl(), cy(), ly(), Ny(), dy(), my(), uy(), Ay(), Ry(), Dy(), yy(), Ly(), _y(), Oy(), Gy(), Al(), gy(), py(), Sy(), Bl(), Ty(), Ey(), Vl(), zy(), jy(), $y(), Wy(), vw(), t1(), i1(), id(), Yy(), By(), Fy(), Xl(), d1(), Ky(), Qy(), Xy(), Zy(), w1(), T1(), P1(), S1(), k1(), N1(), R1(), s1(), D1(), $1(), Uy(), j1(), e1(), W1(), ba(), aa(), od(), sd(), ar(), cr(), _r(), Cw(), U1(), ww(), kr(), ad(), vr(), tw(), mr(), Ea = { 8169 DIGIT: {
8170 stride: 120, 8171 totalWidth: 1200, 8172 displayWidth: 120, 8173 displayHeight: 120 8174 }, 8175 TOP_SLOT: { 8176 stride: 220, 8177 totalWidth: 2200, 8178 displayWidth: 220, 8179 displayHeight: 40, 8180 initialOffset: 0 8181 }, 8182 BOTTOM_SLOT: { 8183 stride: 257, 8184 totalWidth: 2570, 8185 displayWidth: 257, 8186 displayHeight: 60, 8187 initialOffset: 10 8188 } 8189 }, cg = (() => { 8190 class t { 8191 casinoManager = s(Ve); 8192 isOverlay; 8193 setOverlayStatus(e) { 8194 this.isOverlay = e; 8195 } 8196 getOverlayStatus() { 8197 return this.isOverlay; 8198 } 8199 isOverLayOnAProduct(e = "") { 8200 return e ? this.casinoManager.IsFeatureEnabledForLobbyType(e, []) === !0 : !1; 8201 } 8202 static ɵfac = function(e) { 8203 return new (e || t)(); 8204 }; 8205 static ɵprov = A({ 8206 token: t, 8207 factory: t.ɵfac, 8208 providedIn: "root" 8209 }); 8210 } 8211 return t; 8212 })(), jt = (() => { 8213 class t { 8214 configProviderService = s(V); 8215 getContainerHeadingColor(e) { 8216 let n = this.configProviderService.provideGlobalConfig(); 8217 return e?.headingTextColor ?? n.lobbyConfigurations?.subCategoryTextColor; 8218 } 8219 appendTheme(e, n) { 8220 let i = this.configProviderService.provideFeaturesConfig(), r = "", u = e; 8221 if (i?.gameIconTheming) { 8222 let v = i.gameIconTheming[n]; 8223 if (v) for (let P in v) v[P] && (r = P); 8224 } 8225 if (r && u && u.indexOf(r) < 0) { 8226 let v = u?.split("/"); 8227 v && (v.splice(v.length - 1, 0, r), u = v.join("/")); 8228 } 8229 return u; 8230 } 8231 static ɵfac = function(e) { 8232 return new (e || t)(); 8233 }; 8234 static ɵprov = A({ 8235 token: t, 8236 factory: t.ɵfac, 8237 providedIn: "root" 8238 }); 8239 } 8240 return t; 8241 })(), Rr = "_enablefeature", lg = "ds", dg = (() => { 8242 class t { 8243 activatedRoute = s(Dt); 8244 configProvider = s(V); 8245 isEnabled() { 8246 let e = this.activatedRoute.snapshot.queryParams, n = this.configProvider.provideFeaturesConfig().activateDesignSystem; 8247 return this.isEnabledInQueryParameter(e) || n; 8248 } 8249 isEnabledInQueryParameter(e) { 8250 let n = Object.keys(e).find((r) => r.trim().toLowerCase() === Rr), i = Object.entries(e).find((r) => r[0].trim().toLowerCase() === Rr); 8251 return !!(n && i && (i[1] || "").trim().toLowerCase() === lg); 8252 } 8253 static ɵfac = function(e) { 8254 return new (e || t)(); 8255 }; 8256 static ɵprov = A({ 8257 token: t, 8258 factory: t.ɵfac, 8259 providedIn: "root" 8260 }); 8261 } 8262 return t; 8263 })(), gg = (() => { 8264 class t { 8265 apiService = s(Ae); 8266 fetchPage$(e, n, i) { 8267 let r = { first: n.toString() }; 8268 i && (r.after = i); 8269 let u = i ? void 0 : { transferCache: !0 }; 8270 return this.apiService.get(e, r, u).pipe(Gt((v) => (this.handleFetchError(e, v), Ao(() => v)))); 8271 } 8272 fetchNext(e, n, i) { 8273 return i.hasNextPage ? this.fetchPage$(e, n, i?.endCursor).pipe(Xt((r) => dt(r))) : dt(void 0); 8274 } 8275 handleFetchError(e, n) { 8276 console.error(`Network error while fetching from ${e}`, n); 8277 } 8278 static ɵfac = function(e) { 8279 return new (e || t)(); 8280 }; 8281 static ɵprov = A({ 8282 token: t, 8283 factory: t.ɵfac, 8284 providedIn: "root" 8285 }); 8286 } 8287 return t; 8288 })(), mg = (() => { 8289 class t { 8290 symbolCache = /* @__PURE__ */ new Map(); 8291 static THOUSANDS_REGEX = /\B(?=(\d{3})+(?!\d))/g; 8292 static MAX_CACHE_SIZE = 100; 8293 parseNumericValue(e) { 8294 if (!e) return 0; 8295 let n = e.replace(/( |\s)/g, "").replace(/[^\d]/g, ""); 8296 return n ? n.length > 2 ? parseFloat(`${n.slice(0, -2)}.${n.slice(-2)}`) : parseFloat(n) : 0; 8297 } 8298 extractSymbol(e) { 8299 if (!e) return ""; 8300 let n = this.symbolCache.get(e); 8301 if (n !== void 0) return n; 8302 if (this.symbolCache.size >= t.MAX_CACHE_SIZE) { 8303 let r = this.symbolCache.keys().next().value; 8304 r !== void 0 && this.symbolCache.delete(r); 8305 } 8306 let i = e.replace(/( |\s)/g, "").match(/[^\d.,]/g)?.join("").replace(/[,.]/g, "") ?? ""; 8307 return this.symbolCache.set(e, i), i; 8308 } 8309 extractCurrencyInfo(e, n) { 8310 let i = this.extractSymbol(e); 8311 if (!i) return { 8312 symbol: "", 8313 currencyOnRight: n ?? !1 8314 }; 8315 let r = e.replace(/( |\s)/g, "").indexOf(i) > 0; 8316 return { 8317 symbol: i, 8318 currencyOnRight: n ?? r 8319 }; 8320 } 8321 format(e, n) { 8322 try { 8323 let [i, r] = e.toFixed(2).split("."), u = i.replace(t.THOUSANDS_REGEX, ","), v = r ? `${u}.${r}` : u; 8324 return n.currencyOnRight ? `${v} ${n.symbol}` : `${n.symbol} ${v}`; 8325 } catch { 8326 return String(e); 8327 } 8328 } 8329 static ɵfac = function(e) { 8330 return new (e || t)(); 8331 }; 8332 static ɵprov = A({ 8333 token: t, 8334 factory: t.ɵfac, 8335 providedIn: "root" 8336 }); 8337 } 8338 return t; 8339 })(), pg = "casino_games", ug = "Casino Games", Dr = "not applicable", hg = 3e4, Un = (() => { 8340 class t { 8341 vanillaTrackingAdapter = s(we); 8342 timerService = s(de); 8343 ngZone = s(bn); 8344 window = s(pe); 8345 document = s(Ge); 8346 destroyRef = s(q); 8347 platformId = s(To); 8348 buffer = O([]); 8349 seenGames = /* @__PURE__ */ new Set(); 8350 MAX_BATCH_SIZE = 10; 8351 timerHandle; 8352 constructor() { 8353 Do(this.platformId) && this.registerFlushTriggers(); 8354 } 8355 reportImpression(e) { 8356 let n = `${e.containerId}:${e.gameId}`; 8357 this.seenGames.has(n) || (this.seenGames.add(n), this.buffer.update((i) => [...i, e]), this.buffer().length >= this.MAX_BATCH_SIZE && this.flush("batch_full")); 8358 } 8359 trackClick(e) { 8360 let n = Kd(F(G({}, e), { triggerCondition: "game_tile_click" })); 8361 this.clearEcommerce(), this.pushSelectItem(n); 8362 } 8363 flush(e) { 8364 let n = this.buffer(); 8365 if (n.length === 0) return; 8366 let i = n.map((r) => Kd(F(G({}, r), { triggerCondition: e }))); 8367 this.clearEcommerce(), this.pushViewItemList(i), this.buffer.set([]); 8368 } 8369 resetAndFlush(e) { 8370 this.flush(e), this.seenGames.clear(); 8371 } 8372 pushViewItemList(e) { 8373 this.vanillaTrackingAdapter.update({ data: { 8374 event: "view_item_list", 8375 ecommerce: { items: e } 8376 } }); 8377 } 8378 pushSelectItem(e) { 8379 this.vanillaTrackingAdapter.update({ data: { 8380 event: "select_item", 8381 ecommerce: { items: [e] } 8382 } }); 8383 } 8384 clearEcommerce() { 8385 this.vanillaTrackingAdapter.update({ data: { ecommerce: null } }); 8386 } 8387 registerFlushTriggers() { 8388 this.ngZone.runOutsideAngular(() => { 8389 this.timerHandle = this.timerService.setIntervalOutsideAngularZone(() => this.flush("timer"), hg); 8390 let e = () => { 8391 this.document.visibilityState === "hidden" && this.flush("visibility_hidden"); 8392 }; 8393 this.document.addEventListener("visibilitychange", e); 8394 let n = () => this.resetAndFlush("navigation"); 8395 this.window.addEventListener("popstate", n); 8396 let i = () => this.flush("before_unload"); 8397 this.window.addEventListener("beforeunload", i), this.destroyRef.onDestroy(() => { 8398 this.timerService.clearInterval(this.timerHandle), this.document.removeEventListener("visibilitychange", e), this.window.removeEventListener("popstate", n), this.window.removeEventListener("beforeunload", i); 8399 }); 8400 }); 8401 } 8402 static ɵfac = function(e) { 8403 return new (e || t)(); 8404 }; 8405 static ɵprov = A({ 8406 token: t, 8407 factory: t.ɵfac, 8408 providedIn: "root" 8409 }); 8410 } 8411 return t; 8412 })(), fg = { 8413 load: tn.LOAD, 8414 click: ve.CLICK, 8415 close: ve.CLOSE 8416 }, Aa = (() => { 8417 class t { 8418 router = s(Rt); 8419 configProvider = s(V); 8420 gameOwnershipRegistry = /* @__PURE__ */ new Map(); 8421 containerStates = /* @__PURE__ */ new Map(); 8422 containerOrder = []; 8423 exhaustedContainers = /* @__PURE__ */ new Set(); 8424 rounds = /* @__PURE__ */ new Map(); 8425 navigationEnd = Q(this.router.events.pipe(We((e) => e instanceof Qi))); 8426 constructor() { 8427 Z(() => { 8428 this.navigationEnd() && this.clear(); 8429 }); 8430 } 8431 registerContainerOrder(e) { 8432 this.containerOrder = e; 8433 } 8434 markExhausted(e) {
8435 this.exhaustedContainers.add(e); 8436 let n = this.containerOrder.indexOf(e); 8437 if (n !== -1) for (let i of this.rounds.values()) i.get(n)?.resolve(); 8438 } 8439 dedup(e) { 8440 return Hi(this, null, function* () { 8441 if (!this.isEnabled()) return e.gameIds; 8442 if (e.scrollTriggered) return this.processContainer(e.containerId, e.gameIds); 8443 let n = this.containerOrder.indexOf(e.containerId); 8444 if (n === -1) return this.processContainer(e.containerId, e.gameIds); 8445 let i = this.getPriorityCount(), r = this.getOrCreateRoundSlots(e.page), u = Math.min(n, i), v = Array.from({ length: u }, (P, N) => r.get(N)?.promise).filter((P) => P != null); 8446 v.length > 0 && (yield Promise.all(v)); 8447 try { 8448 return this.processContainer(e.containerId, e.gameIds); 8449 } finally { 8450 r.get(n)?.resolve(); 8451 } 8452 }); 8453 } 8454 getContainerState(e) { 8455 return this.containerStates.get(e); 8456 } 8457 getContainerIds() { 8458 return this.containerStates.keys(); 8459 } 8460 getClaimant(e) { 8461 return this.gameOwnershipRegistry.get(e); 8462 } 8463 getContainerPosition(e) { 8464 return this.containerOrder.indexOf(e); 8465 } 8466 getPriorityContainerCount() { 8467 return this.getPriorityCount(); 8468 } 8469 clear() { 8470 this.gameOwnershipRegistry.clear(), this.containerStates.clear(), this.containerOrder = [], this.exhaustedContainers.clear(), this.rounds.clear(); 8471 } 8472 getOrCreateRoundSlots(e) { 8473 let n = this.rounds.get(e); 8474 if (!n) { 8475 n = /* @__PURE__ */ new Map(); 8476 let i = this.getPriorityCount(); 8477 for (let r = 0; r < i; r++) n.set(r, this.exhaustedContainers.has(this.containerOrder[r]) ? cP() : sP()); 8478 this.rounds.set(e, n); 8479 } 8480 return n; 8481 } 8482 processContainer(e, n) { 8483 let i = [], r = []; 8484 for (let v of n) { 8485 let P = this.gameOwnershipRegistry.get(v); 8486 P == null ? (this.gameOwnershipRegistry.set(v, e), i.push(v)) : P === e ? i.push(v) : r.push(v); 8487 } 8488 let u = this.getContainerState(e); 8489 return u ? (u.survivingGameIds.push(...i), u.dedupedGameIds.push(...r)) : this.containerStates.set(e, { 8490 survivingGameIds: [...i], 8491 dedupedGameIds: [...r] 8492 }), i; 8493 } 8494 getPriorityCount() { 8495 return this.configProvider.provideLobbyDedupConfig()?.priorityContainerCount ?? 0; 8496 } 8497 isEnabled() { 8498 return this.configProvider.provideLobbyDedupConfig()?.enabled ?? !1; 8499 } 8500 static ɵfac = function(e) { 8501 return new (e || t)(); 8502 }; 8503 static ɵprov = A({ 8504 token: t, 8505 factory: t.ɵfac, 8506 providedIn: "root" 8507 }); 8508 } 8509 return t; 8510 })(), vg = new Set([ 8511 Ce.Favourites, 8512 Ce.RecentlyPlayed, 8513 Ce.RPGYML 8514 ].map((t) => t.toLowerCase())), ie = (() => { 8515 class t { 8516 gameBuilderService = s(ft); 8517 paginationService = s(gg); 8518 configProviderService = s(V); 8519 dedupService = s(Aa); 8520 cacheOrchestration = s(Pa); 8521 destroyRef = s(q); 8522 logger = s(Ot); 8523 isRequestInProgress = O(!1); 8524 static CAROUSEL_3D_MAX_PAGES = 10; 8525 containerSubject$ = new nt(null); 8526 container = O(void 0); 8527 container$ = this.containerSubject$.asObservable(); 8528 isInitialFetch = O(!0); 8529 hasError = O(!1); 8530 paginationState = O({ 8531 hasNextPage: !0, 8532 endCursor: null 8533 }); 8534 containerId; 8535 pageCounter = 0; 8536 scrollTriggered = !1; 8537 carousel3dGames = []; 8538 carousel3dRendered = !1; 8539 isCarousel3D(e) { 8540 return ui(e.viewType); 8541 } 8542 combineContainers(e, n) { 8543 return F(G({}, n), { games: [...e?.games || [], ...n?.games || []] }); 8544 } 8545 getConfigForGamesToFetch(e) { 8546 let { lobbyPagination: n } = this.configProviderService.featuresConfig, i = n?.gameCountByViewType || hi, r = Sw(e.type, e.viewType, { cabinetLayout: this.container()?.cabinet?.layoutType }).toLowerCase(), u = i[Object.keys(i).find((v) => v.toLowerCase() === r)] ?? hi[U.SingleRow]; 8547 return this.isFiniteNonScrollContainer(e.viewType, e.enableCarousel, e.type) ? u : u * (this.isInitialFetch() ? n?.initialRowFetchMultiplier || 1 : n?.rowFetchMultiplier || 2); 8548 } 8549 fetchAndSetContainer(e, n = !1) { 8550 if (this.isRequestInProgress() || !this.isInitialFetch() && this.isFiniteNonScrollContainer(e.viewType, e.enableCarousel, e.type)) return; 8551 if (this.containerId ??= e.id, this.scrollTriggered = n, this.hasError.
8551set(!1), this.isCarousel3D(e)) { 8552 if (!this.isInitialFetch() && !this.paginationState().hasNextPage) return; 8553 this.fetchFromNetwork(e); 8554 return; 8555 } 8556 if (n) { 8557 this.fetchFromNetwork(e); 8558 return; 8559 } 8560 if (this.isCacheExcludedType(e.type)) { 8561 this.fetchFromNetwork(e); 8562 return; 8563 } 8564 this.isRequestInProgress.set(!0); 8565 let i = () => this.paginationService.fetchNext(`v1/containers/${e.id}`, this.getConfigForGamesToFetch(e), this.paginationState()); 8566 Ki(this.cacheOrchestration.getContainer(e.id, i)).pipe(z(this.destroyRef)).subscribe({ 8567 next: (r) => { 8568 if (r) { 8569 this.paginationState.set({ 8570 hasNextPage: r.cursor.hasNextPage, 8571 endCursor: r.cursor.nextCursor 8572 }); 8573 let u = r.data, v = F(G(G({}, u), e), { 8574 type: u.type ?? e.type, 8575 games: this.buildGameList(u.games, e.viewType) 8576 }); 8577 this.container.set(v), this.containerSubject$.next(v), this.isInitialFetch.set(!1), this.isRequestInProgress.set(!1); 8578 } else this.fetchFromNetwork(e); 8579 }, 8580 error: () => { 8581 this.fetchFromNetwork(e); 8582 } 8583 }); 8584 } 8585 fetchFromNetwork(e) { 8586 let n = this.getConfigForGamesToFetch(e); 8587 this.hasError.set(!1), this.isRequestInProgress.set(!0), this.paginationService.fetchNext(`v1/containers/${e.id}`, n, this.paginationState()).pipe(z(this.destroyRef)).subscribe(this.setContainerFromResponse(e)); 8588 } 8589 setContainerFromResponse(e) { 8590 let n = this.isCarousel3D(e); 8591 return { 8592 next: (i) => Hi(this, null, function* () { 8593 if (!i || !this.containerId) return; 8594 this.paginationState.set(i.pageInfo ?? { 8595 hasNextPage: !1, 8596 endCursor: null 8597 }); 8598 let r = i.data.games?.map((fe) => fe.gameId) ?? [], u = yield this.dedupService.dedup({ 8599 containerId: this.containerId, 8600 gameIds: r, 8601 page: this.pageCounter, 8602 scrollTriggered: this.scrollTriggered 8603 }); 8604 this.pageCounter++; 8605 let v = new Set(u), P = i.data.games?.filter((fe) => v.has(fe.gameId)) ?? [], N = this.paginationState().hasNextPage; 8606 if (!N && this.containerId && this.dedupService.markExhausted(this.containerId), n) { 8607 this.carousel3dGames = [...this.carousel3dGames, ...P]; 8608 let fe = this.carousel3dGames.length >= 20, re = !N; 8609 (re || fe && !this.carousel3dRendered) && (this.carousel3dRendered = !0, this.emitMergedContainer(F(G({}, i.data), { games: this.carousel3dGames }), e, re)), N && this.pageCounter < t.CAROUSEL_3D_MAX_PAGES ? this.fetchFromNetwork(e) : (N && (this.logger.warn(`[ContainerService] Carousel3D ${this.containerId} stopped at ${t.CAROUSEL_3D_MAX_PAGES}-page cap with hasNextPage still true`), !this.carousel3dRendered && this.carousel3dGames.length > 0 && this.emitMergedContainer(F(G({}, i.data), { games: this.carousel3dGames }), e, !1)), this.carousel3dGames = [], this.carousel3dRendered = !1); 8610 return; 8611 } 8612 let $ = F(G({}, i.data), { games: P }), me = this.combineContainers(this.container(), $); 8613 this.emitMergedContainer(me, e); 8614 }), 8615 complete: () => { 8616 this.isRequestInProgress.set(!1); 8617 }, 8618 error: () => { 8619 this.containerId && this.dedupService.markExhausted(this.containerId), this.carousel3dGames = [], this.isRequestInProgress.set(!1), this.hasError.set(!0); 8620 } 8621 }; 8622 } 8623 emitMergedContainer(e, n, i = !0) { 8624 let r = F(G(G({}, e), n), { 8625 type: e.type ?? n.type, 8626 games: this.buildGameList(e.games, n.viewType) 8627 }); 8628 if (this.container.set(r), this.containerSubject$.next(r), this.isInitialFetch.set(!1), i && this.containerId && !this.isCacheExcludedType(n.type)) { 8629 let u = this.paginationState(); 8630 this.cacheOrchestration.cacheContainer(this.containerId, r, { 8631 nextCursor: u.endCursor, 8632 hasNextPage: u.hasNextPage 8633 }); 8634 } 8635 } 8636 buildGameList(e = [], n) { 8637 let i = this.getViewTypeIconOverride(n); 8638 return this.gameBuilderService.buildGameList(e, i); 8639 } 8640 static VIEW_TYPE_ICON_OVERRIDE = { 8641 [U.SemiCircle]: ue.SemiCircle, 8642 [U.LandscapeV2]: ue.LandscapeV2, 8643 [U.Disk]: ue.Disk 8644 }; 8645 getViewTypeIconOverride(e) { 8646 return e ? t.VIEW_TYPE_ICON_OVERRIDE[e] : void 0; 8647 } 8648 isFiniteNonScrollContainer(e, n = !1, i) { 8649 return i === Ce.Cabinet ? !1 : !n && Sa(e); 8650 } 8651 isCacheExcludedType(e) { 8652 return vg.has(e?.toLowerCase() ?? ""); 8653 } 8654 static isTopTenViewType(e) { 8655 return e?.toLowerCase() === U.TopTen.toLowerCase(); 8656 } 8657 static isGameSwiperCardViewType(e) { 8658 return e?.toLowerCase() === U.GameSwiperCard.toLowerCase(); 8659 } 8660 static isThreeCategoriesWidgetViewType(e) { 8661 return e?.toLowerCase() === U.ThreeCategoriesWidget.toLowerCase(); 8662 } 8663 static isTopFiveViewType(e) { 8664 return e?.toLowerCase() === U.TopFive.toLowerCase(); 8665 } 8666 resetAndRefetch(e) { 8667 this.containerId = void 0, this.container.set(void 0), this.containerSubject$.next(null), this.resetPaginationState(), this.fetchAndSetContainer(e); 8668 } 8669 refetchInPlace(e) { 8670 this.isRequestInProgress() || (this.containerId = e.id, this.container.set(void 0), this.resetPaginationState(), this.fetchAndSetContainer(e)); 8671 } 8672 resetPaginationState() { 8673 this.pageCounter = 0, this.scrollTriggered = !1, this.carousel3dGames = [], this.carousel3dRendered = !1, this.isInitialFetch.set(!0), this.paginationState.set({ 8674 hasNextPage: !0, 8675 endCursor: null 8676 }), this.isRequestInProgress.set(!1); 8677 } 8678 static ɵfac = function(e) { 8679 return new (e || t)(); 8680 }; 8681 static ɵprov = A({ 8682 token: t, 8683 factory: t.ɵfac 8684 }); 8685 } 8686 return t; 8687 })(), bg = 20, Cg = 6e4, yg = (() => { 8688 class t { 8689 api = s(Ql); 8690 configProvider = s(V); 8691 dedupService = s(Aa);
8692 webWorkerService = s(Ol); 8693 destroyRef = s(q); 8694 platform = s(X); 8695 queue = []; 8696 lastReportedAt = /* @__PURE__ */ new Map(); 8697 constructor() { 8698 this.platform.isBrowser && this.webWorkerService.createWorker($o.OverlapReportingInterval, { interval: Cg }, () => this.tick()), s(Rt).events.pipe(We((e) => e instanceof Qi), z()).subscribe(() => { 8699 this.queue.length = 0, this.lastReportedAt.clear(); 8700 }); 8701 } 8702 tick() { 8703 this.checkAllContainers(), this.flushReports(); 8704 } 8705 checkAllContainers() { 8706 let e = this.configProvider.provideLobbyDedupConfig()?.overlapReportingThreshold ?? 30; 8707 for (let n of this.dedupService.getContainerIds()) { 8708 let i = this.dedupService.getContainerState(n); 8709 if (!i) continue; 8710 let r = i.dedupedGameIds.length, u = i.survivingGameIds.length + r; 8711 if (u < (this.lastReportedAt.get(n) ?? 0) + bg) continue; 8712 let v = r / u * 100; 8713 if (v <= e) continue; 8714 let P = this.dedupService.getContainerPosition(n), N = this.dedupService.getPriorityContainerCount(), $ = this.buildClaimants(i.dedupedGameIds); 8715 this.queue.push({ 8716 containerName: n, 8717 containerPosition: P, 8718 isInPriorityZone: P < N, 8719 totalFetched: u, 8720 dedupedCount: r, 8721 dedupRatio: Math.round(v * 100) / 100, 8722 claimants: $ 8723 }), this.lastReportedAt.set(n, u); 8724 } 8725 } 8726 buildClaimants(e) { 8727 let n = /* @__PURE__ */ new Map(); 8728 for (let i of e) { 8729 let r = this.dedupService.getClaimant(i); 8730 if (!r) continue; 8731 let u = n.get(r); 8732 u ? n.set(r, F(G({}, u), { claimedCount: u.claimedCount + 1 })) : n.set(r, { 8733 containerName: r, 8734 containerPosition: this.dedupService.getContainerPosition(r), 8735 claimedCount: 1 8736 }); 8737 } 8738 return Array.from(n.values()); 8739 } 8740 flushReports() { 8741 if (this.queue.length === 0) return; 8742 let e = [...this.queue]; 8743 this.api.post("v1/analytics/overlap-report", e, { showSpinner: !1 }).pipe(et(1), z(this.destroyRef)).subscribe({ 8744 next: () => this.queue.splice(0, e.length), 8745 error: () => {} 8746 }); 8747 } 8748 static ɵfac = function(e) { 8749 return new (e || t)(); 8750 }; 8751 static ɵprov = A({ 8752 token: t, 8753 factory: t.ɵfac, 8754 providedIn: "root" 8755 }); 8756 } 8757 return t; 8758 })(), zr = (() => { 8759 class t { 8760 recentGamesService = s(at); 8761 userService = s(Je); 8762 configProviderService = s(V); 8763 static DEFAULT_STICKER_KEYS = ["LMS_LATEST"]; 8764 get stickerKeys() { 8765 let e = this.configProviderService.provideFeaturesConfig().signpostingStickerKeys; 8766 return e?.length ? e : t.DEFAULT_STICKER_KEYS; 8767 } 8768 isSignPostingSticker(e) { 8769 return this.stickerKeys.some((n) => n.toLowerCase() === e.key?.toLowerCase()); 8770 } 8771 filterStickers(e, n, i) { 8772 return e?.length ? !e.some((r) => this.isSignPostingSticker(r)) || !this.userService.isAuthenticated ? e : (i ?? this.recentGamesService.getrecentGames()).includes(n) ? e.filter((r) => !this.isSignPostingSticker(r)) : e : []; 8773 } 8774 isSignPostedGame(e) { 8775 return e.stickers?.some((n) => this.isSignPostingSticker(n)) ? this.userService.isAuthenticated ? !this.recentGamesService.getrecentGames().includes(e.gameId) : !0 : !1; 8776 } 8777 static ɵfac = function(e) { 8778 return new (e || t)(); 8779 }; 8780 static ɵprov = A({ 8781 token: t, 8782 factory: t.ɵfac, 8783 providedIn: "root" 8784 }); 8785 } 8786 return t; 8787 })(), Br = "promoted-games", Ra = (() => { 8788 class t { 8789 apiService = s(Ae); 8790 destroyRef = s(q); 8791 cacheOrchestration = s(Pa); 8792 platform = s(X); 8793 promotedGamesSubject = new nt([]); 8794 feedInProgress = !1; 8795 promotedGames$ = this.promotedGamesSubject.pipe(Me((e) => e.map((n) => n.gameId)), gl({ 8796 bufferSize: 1, 8797 refCount: !1 8798 })); 8799 _loaded = O(!1); 8800 loaded = this._loaded.asReadonly(); 8801 getPromotedGames() { 8802 return this.promotedGamesSubject.getValue().map((e) => e.gameId); 8803 } 8804 getPromotedGameName(e) { 8805 return this.findGame(e)?.name; 8806 } 8807 getPromotedGameProvider(e) { 8808 return this.findGame(e)?.provider; 8809 } 8810 feedPromotedGamesData() { 8811 if (!this.platform.isBrowser) { 8812 this._loaded.set(!0); 8813 return; 8814 } 8815 if (this.feedInProgress) return; 8816 this.feedInProgress = !0, this._loaded.set(!1); 8817 let e = () => this.apiService.get("v1/feeds/promoted-games"); 8818 Ki(this.cacheOrchestration.getPromotedGames(Br, e)).pipe(z(this.destroyRef), Xt((n) => n ? dt(n) : e().pipe(et(1), rl((i) => this.cacheOrchestration.cachePromotedGames(Br, i)))), Gt(() => dt(null)), Ub(() => { 8819 this.feedInProgress = !1, this._loaded.set(!0); 8820 })).subscribe((n) => { 8821 n && this.promotedGamesSubject.next(n.games); 8822 }); 8823 } 8824 findGame(e) { 8825 return this.promotedGamesSubject.getValue().find((n) => n.gameId === e); 8826 } 8827 static ɵfac = function(e) { 8828 return new (e || t)(); 8829 }; 8830 static ɵprov = A({ 8831 token: t, 8832 factory: t.ɵfac, 8833 providedIn: "root" 8834 }); 8835 } 8836 return t; 8837 })(), Sn = { 8838 RP: "rp", 8839 FAV: "fav" 8840 }, wg = [ 8841 "promoted", 8842 "unfinished", 8843 "recent" 8844 ], Hn = { 8845 rpTabLabel: "Recently Played", 8846 favTabLabel: "Favourites", 8847 emptyRpMessage: "You have no Recently Played Games yet", 8848 emptyFavMessage: "You have no Favourites yet" 8849 }, Pg = "unfinished,recent", Fr = "thumbnail_dismissed_", Sg = "v1/layouts", Da = (() => { 8850 class t { 8851 apiService = s(Ae); 8852 userService = s(Je); 8853 casino2UserService = s(Ca); 8854 window = s(pe); 8855 logger = s(Ot); 8856 platform = s(X); 8857 destroyRef = s(q); 8858 thumbnailDataMap = O({}); 8859 styleConfig = O(null);
8860 dismissedMap = O({}); 8861 lastFetchedLayoutId = null; 8862 constructor() { 8863 this.casino2UserService.authenticated$.pipe(z(this.destroyRef)).subscribe(() => { 8864 let e = this.lastFetchedLayoutId; 8865 this.clearThumbnailData(), e && this.fetchThumbnailDataIfNeeded(e); 8866 }); 8867 } 8868 fetchThumbnailDataIfNeeded(e) { 8869 this.platform.isBrowser && this.lastFetchedLayoutId !== e && (this.lastFetchedLayoutId = e, this.fetchThumbnailData(e)); 8870 } 8871 clearThumbnailData() { 8872 this.thumbnailDataMap.set({}), this.styleConfig.set(null), this.lastFetchedLayoutId = null; 8873 } 8874 resolveThumbnail(e, n) { 8875 let i = this.thumbnailDataMap()[e]; 8876 if (!i?.length) return null; 8877 let r = this.isVipPlayer(), u; 8878 r ? u = [...i.filter((N) => N.isVipThumbnail), ...i.filter((N) => !N.isVipThumbnail)] : u = i.filter((N) => !N.isVipThumbnail); 8879 let v = n ? u.find((N) => !this.isDismissed(n, e, N.gameId)) : u[0]; 8880 if (!v) return null; 8881 let P = this.styleConfig(); 8882 return { 8883 gameId: v.gameId, 8884 title: v.title ?? "", 8885 subTitle: v.subTitle, 8886 isVipThumbnail: v.isVipThumbnail, 8887 sticker: v.sticker, 8888 provider: v.provider ?? null, 8889 bgColor: v.isVipThumbnail ? P?.vipThumbnailColor ?? "" : P?.anonymousThumbnailColor ?? "", 8890 textColor: v.isVipThumbnail ? P?.vipTextColor ?? "" : P?.anonymousTextColor ?? "", 8891 ctaText: v.isVipThumbnail ? P?.vipCTAText ?? "" : P?.anonymousCTAText ?? "", 8892 stickerColor: P?.vipStickerColor ?? "", 8893 stickerBgColor: P?.vipStickerBackgroundColor ?? "" 8894 }; 8895 } 8896 isDismissed(e, n, i) { 8897 let r = this.dismissedMap(), u = `${Fr}${e}_${n}`; 8898 if (r[u]?.includes(i)) return !0; 8899 try { 8900 let v = this.window.localStorage.getItem(u); 8901 if (!v) return !1; 8902 try { 8903 let P = JSON.parse(v); 8904 return Array.isArray(P) && P.includes(i); 8905 } catch { 8906 return v === i; 8907 } 8908 } catch { 8909 return !1; 8910 } 8911 } 8912 dismiss(e, n, i) { 8913 let r = `${Fr}${e}_${n}`; 8914 this.dismissedMap.update((u) => { 8915 let v = u[r] ?? []; 8916 return v.includes(i) ? u : F(G({}, u), { [r]: [...v, i] }); 8917 }); 8918 try { 8919 let u = this.window.localStorage.getItem(r), v = u ? JSON.parse(u) : []; 8920 v.includes(i) || (v.push(i), this.window.localStorage.setItem(r, JSON.stringify(v))); 8921 } catch { 8922 this.logger.warn(`Failed to persist thumbnail dismissal to localStorage for key: ${r}`); 8923 } 8924 } 8925 fetchThumbnailData(e) { 8926 this.apiService.get(`${Sg}/${e}/gamethumbnail`).pipe(et(1)).subscribe({ 8927 next: (n) => { 8928 n?.gameThumbnail && this.thumbnailDataMap.set(n.gameThumbnail), n?.config && this.styleConfig.set(n.config); 8929 }, 8930 error: () => { 8931 this.logger.warn(`Failed to fetch thumbnail data for layout: ${e}`); 8932 } 8933 }); 8934 } 8935 isVipPlayer() { 8936 return !!this.userService.claims?.get("vipLevel"); 8937 } 8938 static ɵfac = function(e) { 8939 return new (e || t)(); 8940 }; 8941 static ɵprov = A({ 8942 token: t, 8943 factory: t.ɵfac, 8944 providedIn: "root" 8945 }); 8946 } 8947 return t; 8948 })(), Vr = /\s+/, Mg = [], jr = (() => { 8949 class t { 8950 _ngEl = s(tt); 8951 csDecoratorClass = m(); 8952 initialClasses = Mg; 8953 stateMap = /* @__PURE__ */ new Map(); 8954 decoratorClassHost; 8955 constructor() { 8956 Z(() => { 8957 let e = this.csDecoratorClass(); 8958 e && this._processClasses(e); 8959 }); 8960 } 8961 ngAfterViewInit() { 8962 this.decoratorClassHost = this._ngEl.nativeElement.querySelector("[data-decoratorclass-host]"), this._applyStateDiff(); 8963 } 8964 _processClasses(e) { 8965 if (typeof e == "string") { 8966 let n = e.trim().split(Vr); 8967 for (let i of n) this._updateState(i, !0); 8968 } else if (Array.isArray(e) || e instanceof Set) for (let n of e) this._updateState(n, !0); 8969 else if (e != null) for (let n of Object.keys(e)) this._updateState(n, !!e[n]); 8970 this._applyStateDiff(); 8971 } 8972 ngDoCheck() { 8973 for (let e of this.initialClasses) this._updateState(e, !0); 8974 } 8975 _updateState(e, n) { 8976 let i = this.stateMap.get(e); 8977 i === void 0 ? this.stateMap.set(e, { 8978 enabled: n, 8979 changed: !0, 8980 touched: !0 8981 }) : (i.enabled !== n && (i.changed = !0, i.enabled = n), i.touched = !0); 8982 } 8983 _applyStateDiff() { 8984 for (let e of this.stateMap) { 8985 let n = e[0], i = e[1]; 8986 i.changed ? (this._toggleClass(n, i.enabled), i.changed = !1) : i.touched || (i.enabled && this._toggleClass(n, !1), this.stateMap.delete(n)), i.touched = !1; 8987 } 8988 } 8989 _toggleClass(e, n) { 8990 let i = e.trim(); 8991 i.length > 0 && i.split(Vr).forEach((r) => { 8992 n ? this.decoratorClassHost && this.decoratorClassHost.classList.add(r) : this.decoratorClassHost && this.decoratorClassHost.classList.remove(r); 8993 }); 8994 } 8995 static ɵfac = function(e) { 8996 return new (e || t)(); 8997 }; 8998 static ɵdir = Dn({ 8999 type: t, 9000 selectors: [[ 9001 "", 9002 "cwDecoratorClass", 9003 "" 9004 ]], 9005 inputs: { csDecoratorClass: [1, "csDecoratorClass"] } 9006 }); 9007 } 9008 return t; 9009 })(), Og = [ 9010 [[ 9011 "", 9012 "slot", 9013 "start" 9014 ]], 9015 [[ 9016 "", 9017 "slot", 9018 "end" 9019 ]], 9020 [[ 9021 "", 9022 "slot", 9023 "start" 9024 ]], 9025 [[ 9026 "", 9027 "slot", 9028 "end" 9029 ]] 9030 ], xg = [ 9031 "[slot=start]", 9032 "[slot=end]", 9033 "[slot=start]", 9034 "[slot=end]" 9035 ], $r = ["slot", "start"], Wr = ["slot", "end"], za = (() => { 9036 class t { 9037 size = m("large"); 9038 variant = m("filled"); 9039 kind = m("primary"); 9040 inverse = m(!1); 9041 cta_text = m(""); 9042 casinoDsClass = m(""); 9043 csDecoratorClass = m(""); 9044 customBgColor = m(""); 9045 customTextColor = m(""); 9046 inlineStyle = m(""); 9047 isLegacy = m(!1, { transform: hn }); 9048 disabled = m(!1, { transform: hn }); 9049 ctaWidth = m(void 0, { transform: pl }); 9050 computedStyle = g(() => `width: ${this.ctaWidth()}%; background-color: ${this.customBgColor()}; color: ${this.customTextColor()}; ${this.inlineStyle()}`); 9051 static ɵfac = function(e) { 9052 return new (e || t)(); 9053 }; 9054 static ɵcmp = I({ 9055 type: t, 9056 selectors: [["cw-gametile-cta"]], 9057 inputs: { 9058 size: [1, "size"], 9059 variant: [1, "variant"], 9060 kind: [1, "kind"], 9061 inverse: [1, "inverse"], 9062 cta_text: [1, "cta_text"], 9063 casinoDsClass: [1, "casinoDsClass"], 9064 csDecoratorClass: [1, "csDecoratorClass"], 9065 customBgColor: [1, "customBgColor"], 9066 customTextColor: [1, "customTextColor"], 9067 inlineStyle: [1, "inlineStyle"], 9068 isLegacy: [1, "isLegacy"], 9069 disabled: [1, "disabled"], 9070 ctaWidth: [1, "ctaWidth"] 9071 }, 9072 ngContentSelectors: xg, 9073 decls: 2, 9074 vars: 2, 9075 consts: [ 9076 [ 9077 "ds-button", 9078 "", 9079 3, 9080 "kind", 9081 "variant", 9082 "size", 9083 "class", 9084 "disabled", 9085 "style" 9086 ], 9087 [ 9088 "ds-button", 9089 "", 9090 "cwDecoratorClass", 9091 "", 9092 "data-legacy", 9093 "true", 9094 3, 9095 "kind", 9096 "variant", 9097 "size", 9098 "disabled", 9099 "inverse", 9100 "class", 9101 "width" 9102 ], 9103 [ 9104 "ds-button", 9105 "", 9106 3, 9107 "kind", 9108 "variant", 9109 "size", 9110 "disabled" 9111 ], 9112 [ 9113 "ds-button", 9114 "", 9115 "cwDecoratorClass", 9116 "", 9117 "data-legacy", 9118 "true", 9119 3, 9120 "kind", 9121 "variant", 9122 "size", 9123 "disabled", 9124 "inverse" 9125 ] 9126 ], 9127 template: function(e, n) { 9128 e & 1 && (ai(Og), f(0, gP, 4, 9, "button", 0), f(1, mP, 4, 10, "button", 1)), e & 2 && (h(n.isLegacy() ? -1 : 0), a(), h(n.isLegacy() ? 1 : -1)); 9129 }, 9130 dependencies: [ke, jr], 9131 encapsulation: 2 9132 }); 9133 } 9134 return t; 9135 })(), _g = "dismissed", Ur = "cta-navigated", kg = (() => { 9136 class t { 9137 data = s(Ke); 9138 dialogRef = s(Ye); 9139 sanitizer = s(zo); 9140 navigation = s(qe); 9141 deviceService = s(J); 9142 window = s(pe); 9143 document = s(Ge); 9144 renderer = s(lt); 9145 timerService = s(de); 9146 platform = s(X); 9147 htmlContent; 9148 title; 9149 ctaText; 9150 badgeStatus; 9151 isTouch; 9152 ctaURL; 9153 closeCtaText; 9154 ctaClick = j(); 9155 boundAdjustModalSize = this.adjustModalSize.bind(this); 9156 scrollTimer; 9157 ngOnInit() { 9158 if (this.data?.htmlContent) { 9159 let e = this.sanitizer.sanitize(1, this.data.htmlContent) || ""; 9160 this.htmlContent = this.sanitizer.bypassSecurityTrustHtml(e); 9161 } 9162 this.title = this.data?.title, this.badgeStatus = this.data?.badgeStatus, this.closeCtaText = this.data?.closeCtaText, this.data?.ctaText && (this.ctaText = this.data?.ctaText), this.ctaURL = this.data?.ctaURL, this.isTouch = this.deviceService.isTouch, this.window.addEventListener("resize", this.boundAdjustModalSize); 9163 } 9164 ngOnDestroy() { 9165 this.window.removeEventListener("resize", this.boundAdjustModalSize), this.scrollTimer && this.timerService.clearTimeout(this.scrollTimer); 9166 } 9167 closeModel(e) { 9168 this.dialogRef.close(e ? _g : Ur); 9169 } 9170 adjustModalSize() { 9171 let e = this.document.getElementById("container-more-info-modal"); 9172 if (e) { 9173 let n = e.scrollHeight, i = this.window.innerHeight * .9; 9174 n > i ? this.renderer.setStyle(e, "height", i + "px") : this.renderer.setStyle(e, "height", "auto"); 9175 } 9176 } 9177 seeAll(e) { 9178 e && (this.ctaClick.emit({ 9179 ctaText: this.ctaText, 9180 url: e 9181 }), this.navigation.goTo(e), this.closeModel(!1), this.scrollTimer = this.timerService.setTimeout(() => { 9182 this.window.scrollTo(0, 0); 9183 }, 500)); 9184 } 9185 ngAfterViewInit() { 9186 this.platform.isBrowser && (this.adjustModalSize(), this.setAnimation()); 9187 } 9188 setAnimation() { 9189 if (this.deviceService.isiOS) { 9190 let e = this.document.getElementsByClassName("custom-dialog-container")[0]; 9191 e && (this.renderer.setStyle(e, "opacity", "0"), this.timerService.setTimeout(() => { 9192 this.renderer.setStyle(e, "opacity", "1"), this.renderer.setStyle(e, "transition", "opacity 1s"); 9193 }, 300)); 9194 } 9195 } 9196 static ɵfac = function(e) { 9197 return new (e || t)(); 9198 }; 9199 static ɵcmp = I({ 9200 type: t, 9201 selectors: [["cw-container-more-info-modal"]], 9202 outputs: { ctaClick: "ctaClick" }, 9203 decls: 1, 9204 vars: 1, 9205 consts: [ 9206 [ 9207 "id", 9208 "container-more-info-modal", 9209 1, 9210 "jackpot-moreinfo-modal" 9211 ], 9212 [1, "jackpot-category-tittle-info"], 9213 [1, "jackpot-category-tittle-badge-layout"], 9214 [1, "jackpot-category-tittle"], 9215 [1, "jackpot-category-badge-layout"], 9216 [1, "close-button"], 9217 [1, "jackpot-category-moreinfo-layout"], 9218 [ 9219 1, 9220 "jackpot-category-moreinfo", 9221 3, 9222 "innerHTML" 9223 ], 9224 [1, "see-all-cta"], 9225 [1, "jackpot-category-badge"], 9226 [ 9227 "ds-button", 9228 "", 9229 "variant", 9230 "outline", 9231 "kind", 9232 "tertiary", 9233 "size", 9234 "medium", 9235 3, 9236 "click" 9237 ], 9238 [ 9239 "ds-button", 9240 "", 9241 "variant", 9242 "filled", 9243 "kind", 9244 "primary", 9245 "size", 9246 "large", 9247 1, 9248 "w-100", 9249 3, 9250 "click" 9251 ] 9252 ], 9253 template: function(e, n) { 9254 e & 1 && f(0, vP, 9, 5, "div", 0), e & 2 && h(n.htmlContent ? 0 : -1); 9255 }, 9256 dependencies: [ke], 9257 encapsulation: 2 9258 }); 9259 } 9260 return t; 9261 })(), Mn = new ll("casino2.global-messages", { 9262 providedIn: "root", 9263 factory: () => O({}) 9264 }), Ig = (() => { 9265 class t { 9266 key = m.required(); 9267 fallback = m(""); 9268 messages = s(Mn); 9269 value = g(() => this.messages()[this.key()] || this.fallback()); 9270 static ɵfac = function(e) { 9271 return new (e || t)(); 9272 }; 9273 static ɵcmp = I({ 9274 type: t, 9275 selectors: [["cw-global-translate"]], 9276 inputs: { 9277 key: [1, "key"], 9278 fallback: [1, "fallback"] 9279 }, 9280 decls: 1, 9281 vars: 1, 9282 template: function(e, n) { 9283 e & 1 && C(0), e & 2 && x(n.value()); 9284 }, 9285 encapsulation: 2 9286 }); 9287 } 9288 return t; 9289 })(), Hr = (() => { 9290 class t { 9291 textColor = m(); 9292 text = m(""); 9293 seeAllClick = j(); 9294 onSeeAllClick() { 9295 this.seeAllClick.emit(); 9296 } 9297 onSpaceActivate(e) { 9298 e.preventDefault(), this.onSeeAllClick(); 9299 } 9300 static ɵfac = function(e) { 9301 return new (e || t)(); 9302 }; 9303 static ɵcmp = I({ 9304 type: t, 9305 selectors: [["cw-see-all"]], 9306 inputs: { 9307 textColor: [1, "textColor"], 9308 text: [1, "text"] 9309 }, 9310 outputs: { seeAllClick: "seeAllClick" }, 9311 decls: 5, 9312 vars: 3, 9313 consts: [ 9314 [ 9315 "data-testid", 9316 "see-all-button", 9317 "role", 9318 "button", 9319 "tabindex", 9320 "0", 9321 1, 9322 "casino-seeall-text", 9323 3, 9324 "click", 9325 "keydown.enter", 9326 "keydown.space" 9327 ], 9328 [ 9329 "key", 9330 "SeeAll", 9331 "fallback", 9332 "See All" 9333 ], 9334 [1, "theme-right"] 9335 ], 9336 template: function(e, n) { 9337 e & 1 && (l(0, "div", 0), S("click", function() { 9338 return n.onSeeAllClick(); 9339 })("keydown.enter", function() { 9340 return n.onSeeAllClick(); 9341 })("keydown.space", function(i) { 9342 return n.onSpaceActivate(i); 9343 }), l(1, "span"), f(2, bP, 1, 1)(3, CP, 1, 0, "cw-global-translate", 1), d(), b(4, "span", 2), d()), e & 2 && (k("color", n.textColor()), a(2), h(n.text() ? 2 : 3)); 9344 }, 9345 dependencies: [Ig], 9346 encapsulation: 2 9347 }); 9348 } 9349 return t; 9350 })(), Tg = [[[ 9351 "", 9352 "headerActions", 9353 "" 9354 ]]], Ng = ["[headerActions]"], $t = (() => { 9355 class t { 9356 title = m(); 9357 subtitle = m(""); 9358 iconName = m(""); 9359 showViewAllButton = m(!1); 9360 isThemedTopTen = m(!1); 9361 isEpcotHeading = m(!1); 9362 seeAllText = m(""); 9363 headingTextColor = m(); 9364 showMoreInfo = m(!1); 9365 moreInfoDialog = m(); 9366 classes = m(""); 9367 containerMoreInfoModalDialog = s(Bt);
9368 appliedClasses = g(() => { 9369 let e = `game-tile-heading casino-lobby-header casino-uk-header ${this.classes()}`; 9370 return this.isEpcotHeading() && (e += " epcot-heading"), this.isThemedTopTen() && (e += " themed-top-ten-heading"), e; 9371 }); 9372 seeAllClick = j(); 9373 moreInfoClick = j(); 9374 moreInfoOverlayLoad = j(); 9375 moreInfoOverlayCtaClick = j(); 9376 moreInfoOverlayClose = j(); 9377 onSeeAllClick() { 9378 this.seeAllClick.emit(); 9379 } 9380 onMoreInfoSpaceKey(e) { 9381 e.preventDefault(), this.openDialog(e); 9382 } 9383 openDialog(e) { 9384 if (e && e.stopImmediatePropagation(), this.moreInfoClick.emit(), this.moreInfoDialog()?.htmlContent) { 9385 let n = { 9386 htmlContent: this.moreInfoDialog()?.htmlContent, 9387 title: this.title(), 9388 ctaText: this.moreInfoDialog()?.ctaText, 9389 badgeStatus: this.moreInfoDialog()?.badgeStatus, 9390 ctaURL: this.moreInfoDialog()?.ctaURL, 9391 closeCtaText: this.moreInfoDialog()?.closeCtaText 9392 }, i = this.containerMoreInfoModalDialog.open(kg, { 9393 data: n, 9394 panelClass: "custom-dialog-container" 9395 }); 9396 i.afterOpened().subscribe(() => this.moreInfoOverlayLoad.emit()), i.componentInstance?.ctaClick.subscribe((r) => this.moreInfoOverlayCtaClick.emit(r)), i.afterClosed().subscribe((r) => { 9397 r !== Ur && this.moreInfoOverlayClose.emit(); 9398 }); 9399 } 9400 } 9401 static ɵfac = function(e) { 9402 return new (e || t)(); 9403 }; 9404 static ɵcmp = I({ 9405 type: t, 9406 selectors: [["cw-container-header"]], 9407 inputs: { 9408 title: [1, "title"], 9409 subtitle: [1, "subtitle"], 9410 iconName: [1, "iconName"], 9411 showViewAllButton: [1, "showViewAllButton"], 9412 isThemedTopTen: [1, "isThemedTopTen"], 9413 isEpcotHeading: [1, "isEpcotHeading"], 9414 seeAllText: [1, "seeAllText"], 9415 headingTextColor: [1, "headingTextColor"], 9416 showMoreInfo: [1, "showMoreInfo"], 9417 moreInfoDialog: [1, "moreInfoDialog"], 9418 classes: [1, "classes"] 9419 }, 9420 outputs: { 9421 seeAllClick: "seeAllClick", 9422 moreInfoClick: "moreInfoClick", 9423 moreInfoOverlayLoad: "moreInfoOverlayLoad", 9424 moreInfoOverlayCtaClick: "moreInfoOverlayCtaClick", 9425 moreInfoOverlayClose: "moreInfoOverlayClose" 9426 }, 9427 ngContentSelectors: Ng, 9428 decls: 1, 9429 vars: 1, 9430 consts: [ 9431 [1, "cw-container-header-row"], 9432 ["xmlns", "http://www.w3.org/1999/html"], 9433 [1, "ul-icon"], 9434 [ 9435 "data-testid", 9436 "container-title", 9437 1, 9438 "title-uk", 9439 3, 9440 "color" 9441 ], 9442 [ 9443 "tabindex", 9444 "0", 9445 "role", 9446 "button", 9447 1, 9448 "jacpot-moreinfo", 9449 "theme-info" 9450 ], 9451 [ 9452 1, 9453 "subtitle-uk", 9454 3, 9455 "color" 9456 ], 9457 [1, "casino-uk-header"], 9458 [ 9459 "aria-hidden", 9460 "true", 9461 1, 9462 "uk-icon", 9463 "right-align" 9464 ], 9465 [ 9466 "aria-hidden", 9467 "true", 9468 3, 9469 "name" 9470 ], 9471 [ 9472 "data-testid", 9473 "container-title", 9474 1, 9475 "title-uk" 9476 ], 9477 [ 9478 "tabindex", 9479 "0", 9480 "role", 9481 "button", 9482 1, 9483 "jacpot-moreinfo", 9484 "theme-info", 9485 3, 9486 "click", 9487 "keydown.enter", 9488 "keydown.space" 9489 ], 9490 [1, "subtitle-uk"], 9491 [ 9492 3, 9493 "seeAllClick", 9494 "textColor", 9495 "text" 9496 ] 9497 ], 9498 template: function(e, n) { 9499 e & 1 && (ai(Tg), f(0, OP, 11, 7, "div", 0)), e & 2 && h(n.title() || n.subtitle() || n.iconName()?.trim() || n.showViewAllButton() ? 0 : -1); 9500 }, 9501 dependencies: [Ee, Hr], 9502 styles: ["@charset \"UTF-8\";[_nghost-%COMP%] h2.themed-top-ten-heading[_ngcontent-%COMP%]{padding-bottom:0}[_nghost-%COMP%] .cw-container-header-row[_ngcontent-%COMP%]{display:flex;align-items:center}[_nghost-%COMP%] .cw-container-header-row[_ngcontent-%COMP%] > h2[_ngcontent-%COMP%]{flex:1 1 auto}@media only screen and (min-width:768px){[_nghost-%COMP%] h2.non-touch-sticky-header-rp-gyml.non-touch-casino-lobby-header[_ngcontent-%COMP%]{top:1px!important}[_nghost-%COMP%] h2.casino-uk-header-gymltext[_ngcontent-%COMP%]{top:-40px!important}}"] 9503 }); 9504 } 9505 return t; 9506 })(), Lg = (() => { 9507 class t { 9508 platform = s(X); 9509 document = s(Ge); 9510 window = s(pe); 9511 name = "parallaxDirective"; 9512 config = m(); 9513 cssKey = m("backgroundPosition"); 9514 parallaxCss = m(); 9515 styleProperty = m("backgroundPositionY"); 9516 parallaxAxis = m(); 9517 axis = m("Y"); 9518 parallaxRatio = m(); 9519 ratio = m(-.7); 9520 parallaxInitVal = m(); 9521 initialValue = m(0); 9522 parallaxIf = m(); 9523 disabled = m(!1); 9524 scrollerId = m(); 9525 scrollerSelector = m(); 9526 scrollElement = m(); 9527 maxValue = m(); 9528 minValue = m(); 9529 cssUnit = m("px"); 9530 cb = m(); 9531 cb_context = m(); 9532 cb_args = m(); 9533 parallaxElement = m(); 9534 update = j(); 9535 styles = {}; 9536 cssValue; 9537 isSpecialVal = !1; 9538 hostElement; 9539 hasInitialized = !1; 9540 computedCssKey; 9541 computedRatio; 9542 computedInitialValue; 9543 computedAxis; 9544 computedDisabled; 9545 computedScrollElement; 9546 computedParallaxElement; 9547 attachedScrollElement; 9548 baselineOffset; 9549 constructor() { 9550 let e = s(tt); 9551 this.hostElement = e.nativeElement; 9552 } 9553 evaluateScroll = (e) => { 9554 if (this.computedDisabled) return; 9555 let n, i, r = this.getElementViewportOffset(); 9556 this.baselineOffset === void 0 && (this.baselineOffset = r + this.getCurrentScroll()), i = (this.baselineOffset - r) * this.computedRatio + this.computedInitialValue; 9557 let u = this.maxValue(), v = this.minValue(); 9558 u !== void 0 && i >= u ? i = u : v !== void 0 && i <= v && (i = v), this.computedCssKey === "backgroundPosition" ? n = this.computedAxis === "X" ? `${i + this.cssUnit()} 0` : `0 ${i}${this.cssUnit()}` : this.isSpecialVal ? n = `${this.cssValue}(${i}${this.cssUnit()})` : n = i + this.cssUnit(); 9559 let P = this.cb(); 9560 P && P.bind(this.cb_context() || this.hostElement)(e, ...this.cb_args() || []), this.computedParallaxElement.style[this.computedCssKey] = n, this.update.emit(e); 9561 }; 9562 ngAfterViewInit() { 9563 this.platform.isBrowser && (this.prepareConfig(), this.addScrollListener(), this.prepareParallax()); 9564 } 9565 ngOnChanges() { 9566 this.hasInitialized && this.platform.isBrowser && (this.removeScrollListener(), this.prepareConfig(), this.addScrollListener(), this.prepareParallax()); 9567 } 9568 ngOnDestroy() { 9569 this.platform.isBrowser && this.removeScrollListener(); 9570 } 9571 getCurrentScroll() { 9572 return this.computedScrollElement instanceof Window ? this.computedScrollElement.scrollY : this.computedScrollElement.scrollTop; 9573 } 9574 getElementViewportOffset() { 9575 let e = this.computedParallaxElement.getBoundingClientRect().top; 9576 return this.computedScrollElement instanceof Window ? e : e - this.computedScrollElement.getBoundingClientRect().top; 9577 } 9578 addScrollListener() { 9579 this.computedScrollElement && (this.computedScrollElement.addEventListener("scroll", this.evaluateScroll), this.attachedScrollElement = this.computedScrollElement); 9580 } 9581 removeScrollListener() { 9582 this.attachedScrollElement && (this.attachedScrollElement.removeEventListener("scroll", this.evaluateScroll), this.attachedScrollElement = void 0); 9583 } 9584 prepareParallax() { 9585 this.baselineOffset = void 0; 9586 let e = new MouseEvent("scroll", { 9587 bubbles: !1, 9588 cancelable: !0 9589 }); 9590 this.computedScrollElement && this.computedScrollElement.dispatchEvent(e); 9591 } 9592 prepareConfig() { 9593 let e = this.config() || {}, n = e.parallaxCss || this.parallaxCss(), i = e.styleProperty || this.styleProperty(), r = e.parallaxAxis || this.parallaxAxis(), u = e.parallaxRatio || this.parallaxRatio(), v = e.ratio || this.ratio(), P = e.parallaxInitVal || this.parallaxInitVal(), N = e.initialValue ?? this.initialValue(), $ = e.parallaxIf ?? this.parallaxIf(), me = e.disabled ?? this.disabled(), fe = e.scrollerId || this.scrollerId(), re = e.scrollerSelector || this.scrollerSelector(), Nt = e.scrollElement || this.scrollElement(), Rn = e.parallaxElement || this.parallaxElement(), Zn = e.axis || this.axis(), ei = [], Ct = i || n || "backgroundPositionY"; 9594 if (Ct.includes("backgroundPosition")) { 9595 let Ui = Ct.slice(-1).toUpperCase(); 9596 ["X", "Y"].includes(Ui) && (Zn = Ui), Ct = "backgroundPosition"; 9597 } 9598 if (ei = Ct.split(":"), this.computedCssKey = ei[0], this.cssValue = ei[1], this.isSpecialVal = !!this.cssValue, this.cssValue || (this.cssValue = this.computedCssKey), this.computedRatio = +(v || u || 0
9598) || -.7, this.computedInitialValue = +(N || P || 0) || 0, this.computedParallaxElement = Rn || this.hostElement, Nt) this.computedScrollElement = Nt; 9599 else if (re) { 9600 let Ui = this.document.querySelector(re); 9601 this.computedScrollElement = Ui || this.window; 9602 } else fe && (this.computedScrollElement = this.document.getElementById(fe)); 9603 this.computedScrollElement || (this.computedScrollElement = this.window), this.computedAxis = Zn || r || "Y", this.computedDisabled = me || ($ === void 0 ? !1 : !$) || !1; 9604 } 9605 static ɵfac = function(e) { 9606 return new (e || t)(); 9607 }; 9608 static ɵdir = Dn({ 9609 type: t, 9610 selectors: [[ 9611 "", 9612 "cwParallax", 9613 "" 9614 ]], 9615 inputs: { 9616 config: [1, "config"], 9617 cssKey: [1, "cssKey"], 9618 parallaxCss: [1, "parallaxCss"], 9619 styleProperty: [1, "styleProperty"], 9620 parallaxAxis: [1, "parallaxAxis"], 9621 axis: [1, "axis"], 9622 parallaxRatio: [1, "parallaxRatio"], 9623 ratio: [1, "ratio"], 9624 parallaxInitVal: [1, "parallaxInitVal"], 9625 initialValue: [1, "initialValue"], 9626 parallaxIf: [1, "parallaxIf"], 9627 disabled: [1, "disabled"], 9628 scrollerId: [1, "scrollerId"], 9629 scrollerSelector: [1, "scrollerSelector"], 9630 scrollElement: [1, "scrollElement"], 9631 maxValue: [1, "maxValue"], 9632 minValue: [1, "minValue"], 9633 cssUnit: [1, "cssUnit"], 9634 cb: [1, "cb"], 9635 cb_context: [1, "cb_context"], 9636 cb_args: [1, "cb_args"], 9637 parallaxElement: [1, "parallaxElement"] 9638 }, 9639 outputs: { update: "update" }, 9640 features: [_o] 9641 }); 9642 } 9643 return t; 9644 })(), Gg = () => ({ parallaxInitVal: 0 }), Eg = (t, o) => ({ 9645 parallaxInitVal: 0, 9646 parallaxRatio: t, 9647 ratio: o 9648 }), On = (() => { 9649 class t { 9650 src1 = m(); 9651 src2 = m(); 9652 src3 = m(); 9653 backgroundImage1 = g(() => { 9654 let e = this.src1(); 9655 return e ? `url(${e})` : ""; 9656 }); 9657 backgroundImage2 = g(() => { 9658 let e = this.src2(); 9659 return e ? `url(${e})` : ""; 9660 }); 9661 backgroundImage3 = g(() => { 9662 let e = this.src3(); 9663 return e ? `url(${e})` : ""; 9664 }); 9665 static ɵfac = function(e) { 9666 return new (e || t)(); 9667 }; 9668 static ɵcmp = I({ 9669 type: t, 9670 selectors: [["cw-parallax-animation"]], 9671 inputs: { 9672 src1: [1, "src1"], 9673 src2: [1, "src2"], 9674 src3: [1, "src3"] 9675 }, 9676 decls: 3, 9677 vars: 3, 9678 consts: [ 9679 [ 9680 1, 9681 "parallax-backgroundImage", 9682 3, 9683 "background-image" 9684 ], 9685 [ 9686 "cwParallax", 9687 "", 9688 "scrollerSelector", 9689 "#casinocoreoverlay", 9690 1, 9691 "parallax-section", 9692 "parallax-image1", 9693 3, 9694 "config", 9695 "background-image" 9696 ], 9697 [ 9698 "cwParallax", 9699 "", 9700 "scrollerSelector", 9701 "#casinocoreoverlay", 9702 1, 9703 "parallax-blurImage", 9704 "parallax-section", 9705 "parallax-image2", 9706 3, 9707 "config", 9708 "background-image" 9709 ], 9710 [1, "parallax-backgroundImage"], 9711 [ 9712 "cwParallax", 9713 "", 9714 "scrollerSelector", 9715 "#casinocoreoverlay", 9716 1, 9717 "parallax-section", 9718 "parallax-image1", 9719 3, 9720 "config" 9721 ], 9722 [ 9723 "cwParallax", 9724 "", 9725 "scrollerSelector", 9726 "#casinocoreoverlay", 9727 1, 9728 "parallax-blurImage", 9729 "parallax-section", 9730 "parallax-image2", 9731 3, 9732 "config" 9733 ] 9734 ], 9735 template: function(e, n) { 9736 e & 1 && (f(0, xP, 1, 2, "div", 0), f(1, _P, 1, 4, "div", 1), f(2, kP, 1, 6, "div", 2)), e & 2 && (h(n.backgroundImage1() ? 0 : -1), a(), h(n.backgroundImage2() ? 1 : -1), a(), h(n.backgroundImage3() ? 2 : -1)); 9737 }, 9738 dependencies: [Lg], 9739 encapsulation: 2 9740 }); 9741 } 9742 return t; 9743 })(), qr = (() => { 9744 class t { 9745 static ɵfac = function(e) { 9746 return new (e || t)(); 9747 }; 9748 static ɵcmp = I({ 9749 type: t, 9750 selectors: [["cw-casinocore-error-handler"]], 9751 decls: 1, 9752 vars: 1, 9753 consts: [[3, "scope"]], 9754 template: function(e, n) { 9755 e & 1 && b(0, "vn-message-panel", 0), e & 2 && p("scope", "casinocorelobby"); 9756 }, 9757 dependencies: [Ko], 9758 encapsulation: 2, 9759 changeDetection: 1 9760 }); 9761 } 9762 return t; 9763 })(), _i = (() => { 9764 class t { 9765 enabled = m(!1); 9766 prefetch = j(); 9767 el = s(tt).nativeElement; 9768 ngZone = s(bn); 9769 injector = s(Rb); 9770 window = s(pe); 9771 loading = O(!1); 9772 observer = null; 9773 isInitialCallback = !1; 9774 constructor() { 9775 Z(() => { 9776 this.disconnectObserver(), this.enabled() && (this.loading.set(!1), this.isInitialCallback = !0, this.ngZone.runOutsideAngular(() => { 9777 this.observer = Mt((e) => this.handleIntersection(e), { threshold: .5 }, this.injector), this.observer.observe(this.el); 9778 })); 9779 }); 9780 } 9781 handleIntersection(e) { 9782 let n = e[0]; 9783 if (n.isIntersecting && !this.loading()) { 9784 this.emitPrefetch(); 9785 return; 9786 } 9787 this.isInitialCallback && !n.isIntersecting && !this.loading() && (this.isInitialCallback = !1, this.isElementScrolledPast(
9787) && this.emitPrefetch()), this.isInitialCallback = !1; 9788 } 9789 isElementScrolledPast() { 9790 let e = this.el.getBoundingClientRect(), n = this.window.innerHeight, i = this.window.innerWidth, r = e.bottom < 0, u = e.right < 0, v = e.top > n || e.left > i; 9791 return (r || u) && !v; 9792 } 9793 emitPrefetch() { 9794 this.loading.set(!0), this.ngZone.run(() => this.prefetch.emit()); 9795 } 9796 disconnectObserver() { 9797 this.observer?.disconnect(), this.observer = null; 9798 } 9799 static ɵfac = function(e) { 9800 return new (e || t)(); 9801 }; 9802 static ɵdir = Dn({ 9803 type: t, 9804 selectors: [[ 9805 "", 9806 "cwInfiniteScrollPrefetch", 9807 "" 9808 ]], 9809 inputs: { enabled: [1, "enabled"] }, 9810 outputs: { prefetch: "prefetch" } 9811 }); 9812 } 9813 return t; 9814 })(), Ag = (() => { 9815 class t { 9816 heading = m(void 0); 9817 body = m(void 0); 9818 collapsed = !1; 9819 userClicked = !1; 9820 device = s(J); 9821 constructor() { 9822 let e = s(NC), n = s(q); 9823 e.observe().pipe(We(() => !this.userClicked && !this.device.isRobot), Me((i) => "gt-md" in i.breakpoints && i.breakpoints["gt-md"]), Lo(), z(n)).subscribe(() => this.collapsed = !0); 9824 } 9825 toggle() { 9826 this.collapsed = !this.collapsed, this.userClicked = !0; 9827 } 9828 static ɵfac = function(e) { 9829 return new (e || t)(); 9830 }; 9831 static ɵcmp = I({ 9832 type: t, 9833 selectors: [["cw-seo-content-box"]], 9834 hostAttrs: [ 9835 1, 9836 "seo-content-box-scope", 9837 "mc-seoboxes" 9838 ], 9839 inputs: { 9840 heading: [1, "heading"], 9841 body: [1, "body"] 9842 }, 9843 decls: 1, 9844 vars: 1, 9845 consts: [ 9846 ["content", ""], 9847 [ 9848 1, 9849 "context-box-container", 9850 3, 9851 "elevated", 9852 "border" 9853 ], 9854 [ 9855 "size", 9856 "large", 9857 "surface", 9858 "lowest", 9859 3, 9860 "openedChange", 9861 "withCard", 9862 "open" 9863 ], 9864 [1, "content-box-header"], 9865 ["slot", "start"], 9866 ["slot", "title"], 9867 [1, "header-title"], 9868 [1, "content-box"], 9869 [ 9870 1, 9871 "content", 9872 "pc-txt", 9873 3, 9874 "innerHTML" 9875 ] 9876 ], 9877 template: function(e, n) { 9878 e & 1 && f(0, TP, 9, 5, "ds-card", 1), e & 2 && h(n.heading() && n.body() ? 0 : -1); 9879 }, 9880 dependencies: [ 9881 Ul, 9882 Hy, 9883 Jy, 9884 qy, 9885 ky 9886 ], 9887 styles: ["[_nghost-%COMP%]{display:block;padding:var(--%NS%semantic-spacing-container-padding-2xl)}.mc-seoboxes[_nghost-%COMP%] .content[_ngcontent-%COMP%] h1[_ngcontent-%COMP%], .mc-seoboxes[_nghost-%COMP%] .content[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .mc-seoboxes[_nghost-%COMP%] .content[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:0;padding:0}.mc-seoboxes[_nghost-%COMP%] h1.header-title[_ngcontent-%COMP%]{font-family:var(--%NS%semantic-typography-title-font-family);font-size:var(--%NS%semantic-typography-title-sm-strong-font-size);font-weight:var(--%NS%semantic-typography-title-sm-strong-font-weight);line-height:var(--%NS%semantic-typography-title-sm-strong-line-height);margin:0;padding:0}.content-box-header[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-xl);padding-bottom:0}.content-box[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-2xl) var(--%NS%semantic-spacing-container-padding-sm)}"] 9888 }); 9889 } 9890 return t; 9891 })(), Rg = (() => { 9892 class t { 9893 kind = m("down"); 9894 static ɵfac = function(e) { 9895 return new (e || t)(); 9896 }; 9897 static ɵcmp = I({ 9898 type: t, 9899 selectors: [["cw-chevron"]], 9900 inputs: { kind: [1, "kind"] }, 9901 decls: 2, 9902 vars: 2, 9903 consts: [[ 9904 1, 9905 "theme-arrow-down", 9906 "theme-arrow-up" 9907 ], [1, "theme-arrow-down"]], 9908 template: function(e, n) { 9909 e & 1 && (f(0, NP, 1, 0, "i", 0), f(1, LP, 1, 0, "i", 1)), e & 2 && (h(n.kind() === "up" ? 0 : -1), a(), h(n.kind() === "down" ? 1 : -1)); 9910 }, 9911 styles: [".theme-arrow-up[_ngcontent-%COMP%]:before{vertical-align:middle;margin-top:0;padding-right:0;font-size:.75rem;transform:rotate(-180deg)}"] 9912 }); 9913 } 9914 return t; 9915 })(), Ba = "casino-gototop-enabled", It = { 9916 hide: "gs:hideFloatingEntry", 9917 show: "gs:showFloatingEntry", 9918 classify: "gs:classifyFloatingEntry", 9919 deClassify: "gs:deClassifyFloatingEntry", 9920 entryPointActive: "gs:productstub:entrypoint:active" 9921 }, Dg = (() => { 9922 class t { 9923 deviceService = s(J); 9924 window = s(pe); 9925 platform = s(X); 9926 destroyRef = s(q); 9927 widgetExpanded = m(!1, { transform: hn }); 9928 visible = g(() => this.deviceService.scrollTop() > 0); 9929 constructor() { 9930 Z(() => { 9931 let e = this.visible(), n = this.widgetExpanded(); 9932 this.platform.isBrowser && this.syncSearchFab(e, n); 9933 }), this.platform.isBrowser && this.window.addEventListener(It.entryPointActive, this.onSearchFabActive), this.destroyRef.onDestroy(() => { 9934 this.platform.isBrowser && (this.window.removeEventListener(It.entryPointActive, this.onSearchFabActive), this.dispatch(It.show), this.dispatch(It.deClassify, Ba)); 9935 }); 9936 } 9937 scrollToTop() { 9938 this.window.scrollTo({ 9939 top: 0, 9940 behavior: "smooth" 9941 }); 9942 } 9943 onSearchFabActive = () => { 9944 this.syncSearchFab(this.visible(), this.widgetExpanded()); 9945 }; 9946 syncSearchFab(e, n) { 9947 if (n) { 9948 this.dispatch(It.hide), this.dispatch(It.deClassify, Ba); 9949 return; 9950 } 9951 this.dispatch(It.show), this.dispatch(e ? It.classify : It.deClassify, Ba); 9952 } 9953 dispatch(e, n) { 9954 this.window.dispatchEvent(new this.window.CustomEvent(e, n ? { detail: n } : void 0)); 9955 } 9956 static ɵfac = function(e) { 9957 return new (e || t)(); 9958 }; 9959 static ɵcmp = I({ 9960 type: t, 9961 selectors: [["cw-scroll-to-top"]], 9962 inputs: { widgetExpanded: [1, "widgetExpanded"] }, 9963 decls: 1, 9964 vars: 1, 9965 consts: [ 9966 [ 9967 "type", 9968 "button", 9969 1, 9970 "cw-scroll-to-top-btn" 9971 ], 9972 [ 9973 "type", 9974 "button", 9975 1, 9976 "cw-scroll-to-top-btn", 9977 3, 9978 "click" 9979 ], 9980 [ 9981 "name", 9982 "theme-up", 9983 3, 9984 "decorative" 9985 ] 9986 ], 9987 template: function(e, n) { 9988 e & 1 && f(0, GP, 2, 2, "button", 0), e & 2 && h(n.visible() ? 0 : -1); 9989 }, 9990 dependencies: [Ee], 9991 styles: ["[_nghost-%COMP%]{display:contents}.cw-scroll-to-top-btn[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;width:var(--%NS%semantic-size-x11);height:var(--%NS%semantic-size-x11);margin:0 var(--%NS%semantic-spacing-inline-md);padding:0;border:0;border-radius:var(--%NS%semantic-radius-max);background:#656667b3;color:var(--%NS%semantic-color-on-surface-base-inverse);font-size:21px;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);bottom:3.75rem;position:fixed}.cw-scroll-to-top-btn[_ngcontent-%COMP%]:focus-visible{outline:2px solid currentColor;outline-offset:2px}"] 9992 }); 9993 } 9994 return t; 9995 })(), zg = ["*"], Bg = (() => { 9996 class t { 9997 static ɵfac = function(e) { 9998 return new (e || t)(); 9999 }; 10000 static ɵcmp = I({ 10001 type: t, 10002 selectors: [["cw-lobby-footer"]], 10003 ngContentSelectors: zg, 10004 decls: 2, 10005 vars: 0, 10006 consts: [[1, "cw-lobby-footer"]], 10007 template: function(e, n) { 10008 e & 1 && (ai(), H(0, "div", 0), ut(1), K()); 10009 }, 10010 styles: [`@charset "UTF-8";.cw-lobby-footer{position:fixed;right:0;bottom:calc(var(--%NS%bottom-nav-height, 0px) + env(safe-area-inset-bottom,0px));left:0;z-index:99;display:flex;flex-direction:column;gap:var(--%NS%semantic-spacing-stack-md);pointer-events:none}.cw-lobby-footer>*{pointer-events:auto}.cw-lobby-footer .cw-scroll-to-top-btn{align-self:flex-end}.cw-lobby-footer cw-rp-fav-widget{width:100%}.cw-lobby-footer .casino-rcp-widget,.casino-lobby-container-main .cw-lobby-footer .casino-rcp-widget{position:static;inset:auto;width:100%} 10011`], 10012 encapsulation: 2 10013 }); 10014 } 10015 return t; 10016 })(), Fg = ["*"], st = (() => { 10017 class t { 10018 containerId = m.required(); 10019 rows = m(1); 10020 gameCount = m(); 10021 ladder = m("default"); 10022 ladderClass = g(() => { 10023 let e = this.ladder(); 10024 return e === "default" ? "" : `ladder-${e}`; 10025 }); 10026 static ɵfac = function(e) { 10027 return new (e || t)(); 10028 }; 10029 static ɵcmp = I({ 10030 type: t, 10031 selectors: [["cw-lobby-container-placeholder"]], 10032 hostVars: 11, 10033 hostBindings: function(e, n) { 10034 e & 2 && (T("role", "status")("aria-busy", "true")("aria-l
10034ive", "polite")("aria-label", "Loading lobby section")("data-placeholder-for", n.containerId()), W(n.ladderClass()), k("--%NS%reserved-rows", n.rows())("--%NS%reserved-games", n.gameCount() ?? 0)); 10035 }, 10036 inputs: { 10037 containerId: [1, "containerId"], 10038 rows: [1, "rows"], 10039 gameCount: [1, "gameCount"], 10040 ladder: [1, "ladder"] 10041 }, 10042 ngContentSelectors: Fg, 10043 decls: 2, 10044 vars: 0, 10045 consts: [[ 10046 "aria-hidden", 10047 "true", 10048 1, 10049 "skeleton-shimmer" 10050 ]], 10051 template: function(e, n) { 10052 e & 1 && (ai(), H(0, "div", 0), ut(1), K()); 10053 }, 10054 styles: ["[_nghost-%COMP%]{display:block;width:100%;container-type:inline-size;container-name:cls-slot;overflow:hidden;box-sizing:border-box}.skeleton-shimmer[_ngcontent-%COMP%]{width:100%;display:flex;align-items:stretch;overflow:hidden;--%NS%cls-content-w: 100cqw}@media only screen and (min-width:960px){.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-content-w: calc(100cqw - 90px) }}@media only screen and (min-width:1210px){.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-content-w: calc(min(100cqw, 1250px) - 52px) }}.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-gutter: 6px}@container cls-slot (min-width: 568px){.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-gutter: 12px}}.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 2}@container cls-slot (min-width: 375px){.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 3}}@container cls-slot (min-width: 568px){.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 4}}@container cls-slot (min-width: 768px){.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 6}}.skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-row-h: calc(var(--%NS%cls-content-w) / var(--%NS%cols));--%NS%cls-rows-eff: max(var(--%NS%reserved-rows, 1), (var(--%NS%reserved-games, 0) / var(--%NS%cols) + 1));--%NS%cls-tile-body-h: calc(var(--%NS%cls-rows-eff) * var(--%NS%cls-row-h) + (var(--%NS%cls-rows-eff) - 1) * var(--%NS%cls-gutter));--%NS%cls-row-model-h: calc( var(--%NS%cls-fixed-content-h, var(--%NS%cls-tile-body-h)) + var(--%NS%cls-header, 36px) + var(--%NS%cls-body-chrome, 0px) );height:var(--%NS%cw-reserve-h, var(--%NS%cls-row-model-h))}.ladder-touch[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 2.5}@container cls-slot (min-width: 568px){.ladder-touch[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 4.5}}@container cls-slot (min-width: 768px){.ladder-touch[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 5.5}}.ladder-icon-7[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 2}@container cls-slot (min-width: 568px){.ladder-icon-7[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 4}}@container cls-slot (min-width: 1024px){.ladder-icon-7[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 8}}.ladder-icon-7[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-row-h: 100px;--%NS%cls-body-chrome: 12px;--%NS%cls-header: 60px}.ladder-icon-7-carousel[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 2}@container cls-slot (min-width: 568px){.ladder-icon-7-carousel[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 4}}@container cls-slot (min-width: 1024px){.ladder-icon-7-carousel[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 8}}.ladder-icon-7-carousel[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-gutter: 0px;--%NS%cls-body-chrome: 0px;--%NS%cls-header: 60px}.ladder-icon-7-touch[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 2.5}@container cls-slot (min-width: 568px){.ladder-icon-7-touch[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 4.5}}@container cls-slot (min-width: 1024px){.ladder-icon-7-touch[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 5.5}}.ladder-icon-7-touch[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-gutter: 0px;--%NS%cls-body-chrome: 0px;--%NS%cls-header: 60px}.ladder-icon-6[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 3}@container cls-slot (min-width: 520px){.ladder-icon-6[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 4}}@container cls-slot (min-width: 720px){.ladder-icon-6[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 6}}.ladder-top-ten[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 2}@container cls-slot (min-width: 375px){.ladder-top-ten[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 2.7}}@container cls-slot (min-width: 768px){.ladder-top-ten[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 3.7}}@container cls-slot (min-width: 1024px){.ladder-top-ten[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cols: 4.7}}.ladder-carousel-3d[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-c3d-w: min(100cqw, 1250px);--%NS%cls-fixed-content-h: calc( var(--%NS%cls-c3d-w) / 12 * 6 - 4px + 40px )}@media only screen and (min-width:768px){.ladder-carousel-3d[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{--%NS%cls-fixed-content-h: calc( var(--%NS%cls-c3d-w) / 12 * 4 - 8px + 40px )}}.skeleton-shimmer[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_cw-lobby-skeleton-pulse 1.4s ease-in-out infinite}@keyframes _ngcontent-%COMP%_cw-lobby-skeleton-pulse{0%{opacity:.7}50%{opacity:1}to{opacity:.7}}@media(prefers-reduced-motion:reduce){.skeleton-shimmer[_ngcontent-%COMP%]{animation:none;opacity:.85}}.cls-skeleton-off[_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%], .cls-skeleton-off [_nghost-%COMP%] .skeleton-shimmer[_ngcontent-%COMP%]{animation:none;visibility:hidden}"] 10055 }); 10056 } 10057 return t; 10058 })(), Jr = { 10059 RETURN_URL: "returnUrl", 10060 RETURN_URL_LOWER: "returnurl" 10061 }, Vg = { LAUNCH_NG: "launchng" }, jg = (() => { 10062 class t { 10063 dialogRef = s(Ye); 10064 data = s(Ke); 10065 configProviderService = s(V); 10066 navigator = s(qe); 10067 m2Page = s(zt); 10068 route = s(Dt); 10069 window = s(pe); 10070 geoLocationValidationService = s(cw); 10071 geoLocationErrorMessages = []; 10072 shouldRetryLocation = !1; 10073 geolocationConfig = s(n1); 10074 errorMessages = []; 10075 ngOnInit() { 10076 this.errorMessages = this.data.errorMessages, this.checkGeoLocationError(); 10077 } 10078 getGlobalConfig() { 10079 return this.configProviderService.provideGlobalConfig(); 10080 } 10081 get geoComplyErrorHeader() { 10082 return this.getGlobalConfig().messages.GeoComplyErrorHeader || "We Cannot Place Your Bet"; 10083 } 10084 get addressAboveItemsDescription() { 10085 return this.getGlobalConfig().messages.AddressAboveItemsDescription || "Please address the items above, then try again"; 10086 } 10087 get recheckLocation() { 10088 return this.getGlobalConfig().messages.RecheckLocation || "RECHECK LOCATION"; 10089 } 10090 get ok() { 10091 return this.getGlobalConfig().messages.Ok || "OK"; 10092 } 10093 get invalidLocation() { 10094 return this.getGlobalConfig().messages.InvalidLocation || "Ensure you are well within a permitted area to place your bet successfully"; 10095 } 10096 close() { 10097 if (this.dialogRef?.close(), this.window.location?.pathname?.toLowerCase()?.indexOf(Vg.LAUNCH_NG) >= 0) { 10098 let e = this.route?.snapshot?.queryParamMap?.get(Jr.RETURN_URL) || this.route?.snapshot?.queryParamMap?.get(Jr.RETURN_URL_LOWER); 10099 e ? this.navigator?.goTo(e) : this.navigator?.goTo("/" + this.m2Page.lang + "/casino"); 10100 } 10101 } 10102 reCheckLocation() { 10103 this.geolocationConfig.shouldCheckNativeGeoLocation ? this.geoLocationValidationService.fetchLocationDetail
10103sfromNativeEvent() : this.geoLocationValidationService.reCheckLocationClicked.next(!0), this.dialogRef?.close(); 10104 } 10105 formattingMessage(e) { 10106 return e.map((n) => F(G({}, n), { message: n.message.replace(/(\r\n|\n|\r|\n\n)/g, "<br/>") })); 10107 } 10108 checkGeoLocationError() { 10109 if (!this.errorMessages?.length) { 10110 this.geoLocationErrorMessages.push({ 10111 rule: "", 10112 retry: nd.NonRetry, 10113 message: this.invalidLocation 10114 }), this.geoLocationErrorMessages = this.formattingMessage(this.geoLocationErrorMessages); 10115 return; 10116 } 10117 this.geoLocationErrorMessages = this.formattingMessage([...this.errorMessages]), this.shouldRetryLocation = this.geolocationConfig.isRetryButtonEnabled && this.errorMessages.some((e) => e.retry === nd.Retry); 10118 } 10119 static ɵfac = function(e) { 10120 return new (e || t)(); 10121 }; 10122 static ɵcmp = I({ 10123 type: t, 10124 selectors: [["cw-geo-location-error"]], 10125 decls: 11, 10126 vars: 4, 10127 consts: [ 10128 [1, "geo-location-error-container"], 10129 [1, "geo-error-header"], 10130 [3, "textContent"], 10131 [ 10132 "type", 10133 "button", 10134 1, 10135 "theme-ex", 10136 "dialogclosebutton", 10137 3, 10138 "click" 10139 ], 10140 [1, "geo-error-content"], 10141 [3, "innerHTML"], 10142 [1, "geo-error-actions"], 10143 [ 10144 "ds-button", 10145 "", 10146 "kind", 10147 "primary", 10148 "variant", 10149 "filled" 10150 ], 10151 [ 10152 "ds-button", 10153 "", 10154 "kind", 10155 "primary", 10156 "variant", 10157 "filled", 10158 3, 10159 "click" 10160 ] 10161 ], 10162 template: function(e, n) { 10163 e & 1 && (l(0, "div", 0)(1, "div", 1), b(2, "h2", 2), l(3, "button", 3), S("click", function() { 10164 return n.close(); 10165 }), d()(), l(4, "div", 4), D(5, AP, 2, 3, "p", 5, Ze), b(7, "p", 2), d(), l(8, "div", 6), f(9, RP, 2, 1, "button", 7)(10, DP, 2, 1, "button", 7), d()()), e & 2 && (a(2), p("textContent", n.geoComplyErrorHeader), a(), T("aria-label", "Close"), a(2), R(n.geoLocationErrorMessages), a(2), p("textContent", n.addressAboveItemsDescription), a(2), h(n.shouldRetryLocation ? 9 : 10)); 10166 }, 10167 dependencies: [ke, sy], 10168 styles: [`:root{--%NS%geo-error-header-color: inherit;--%NS%geo-error-scrollbar-track-bg: #f1f1f1;--%NS%geo-error-scrollbar-thumb-bg: #888;--%NS%geo-error-scrollbar-thumb-hover-bg: #555}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;padding:var(--%NS%semantic-spacing-container-padding-2xl, 16px);background-color:transparent}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-header h2{font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);margin:0;width:100%;color:var(--%NS%geo-error-header-color)}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-header .dialogclosebutton{cursor:pointer;border:none;background:transparent;font-size:var(--%NS%semantic-typography-body-lg-font-size, 16px);padding:0}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-content{max-height:350px;overflow:auto;padding-left:4.8%;padding-top:4%}@media(min-width:500px){.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-content{max-height:250px;width:350px}}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-content p{font-size:var(--%NS%semantic-typography-label-md-font-size, 12px);padding:0 .5em 1em .125em;margin-right:3%}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-content::-webkit-scrollbar{width:var(--%NS%semantic-size-x1half, 6px)}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-content::-webkit-scrollbar-track{background:var(--%NS%geo-error-scrollbar-track-bg);border-radius:var(--%NS%semantic-radius-semi-rounded-sm, 6px)}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-content::-webkit-scrollbar-thumb{background:var(--%NS%geo-error-scrollbar-thumb-bg);border-radius:var(--%NS%semantic-radius-semi-rounded-sm, 6px)}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-content::-webkit-scrollbar-thumb:hover{background:var(--%NS%geo-error-scrollbar-thumb-hover-bg)}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-actions{padding:0 var(--%NS%semantic-spacing-container-padding-2xl, 16px) var(--%NS%semantic-spacing-container-padding-2xl, 16px)}.cdk-overlay-container .geo-comply-error-dialog .geo-location-error-container .geo-error-actions button{width:95%;text-transform:uppercase} 10169`], 10170 encapsulation: 2 10171 }); 10172 } 10173 return t; 10174 })(), xn = "GeoLoc_Pop-up how to", _n = { 10175 POPUP_LOADED: "Pop-up_Loaded", 10176 POPUP_CLOSE: "Pop-up_Close", 10177 STEP1_DOWNLOAD_CTA: "Step 1 - install or Open GeoGuard - CTA Clicked", 10178 STEP2_CONTINUE_CTA: "Step 2 - Geoguard is Intalled and running - CTA Clicked", 10179 APP_DOWNLOAD_CTA: "Continue to play on an APP_ CTA Clicked", 10180 INFO_CTA: "InfoTool - What is Geoguard - CTA Clicked" 10181 }, vt = { 10182 RETURN_URL: "returnUrl", 10183 RETURN_URL_LOWER: "returnurl", 10184 ORIGIN_URL: "originUrl", 10185 ORIGIN_URL_LOWER: "originurl", 10186 SPECIAL_PRODUCT: "specialproduct" 10187 }, Fa = { 10188 LAUNCH_NG: "launchng", 10189 FORCED_GAME_LAUNCH: "forcedgamelaunch", 10190 GLOBAL_SEARCH: "globalsearch" 10191 }, Va = { 10192 BLANK: "_blank", 10193 SELF: "_self" 10194 }, $g = (() => { 10195 class t { 10196 dialogRef = s(Ye); 10197 geolocationCoordinatorService = s(a1); 10198 geoLocationCheckService = s(gw); 10199 additionalInfo = s(Ke); 10200 _geolocationTrackingService = s(lw); 10201 configProviderService = s(V); 10202 navigationService = s(qe); 10203 m2Page = s(zt); 10204 route = s(Dt); 10205 loadingIndicatorService = s(dC); 10206 window = s(pe); 10207 deviceService = s(J); 10208 showLoader = O(!1); 10209 loadingIndicatorHandler; 10210 messages = g(() => this.getGlobalConfig().messages); 10211 constructor() { 10212 Se(() => { 10213 this._geolocationTrackingService.track(xn, _n.POPUP_LOADED); 10214 }); 10215 } 10216 get geoComplyMessage() { 10217 return this.configProviderService.provideDownloadAppFromDeviceConfig().geoComplyMessage || ""; 10218 } 10219 get isMobileInstaller() { 10220 return this.additionalInfo && this.additionalInfo.isMobileInstaller; 10221 } 10222 get continueButtonText() { 10223 return this.messages().GeoComplyContinueButtonText; 10224 } 10225 get downloadButtonText() { 10226 return this.messages().GeoComplyDownloadButtonText; 10227 } 10228 get geocomplyTitle() { 10229 return this.messages().GeoComplyTitle; 10230 } 10231 get geocomplyText() { 10232 return this.messages().GeoComplyText; 10233 } 10234 get geolocationMobileInstallerTitle() { 10235 return this.messages().GeolocationMobileInstallerTitle || "LOCATION"; 10236 } 10237 get oobeeInstallerHeadingText() { 10238 return this.messages().OobeeInstallerHeadingText || "Want to continue playing?"; 10239 } 10240 get oobeeInstallerHeadingInstruction() { 10241 return this.messages().OobeeInstallerHeadingInstruction || "Before you lau
10241nch a game we are required by law to confirm your location."; 10242 } 10243 get oobeeInstallerDownloadStepText() { 10244 return this.messages().OobeeInstallerDownloadStepText || "Step 1"; 10245 } 10246 get oobeeInstallerContinueStepText() { 10247 return this.messages().OobeeInstallerContinueStepText || "Step 2"; 10248 } 10249 get oobeeInstallerDownloadUserActionText() { 10250 return this.messages().OobeeInstallerDownloadUserActionText || "INSTALL OR OPEN GEOGUARD"; 10251 } 10252 get oobeeInstallerContinueUserActionText() { 10253 return this.messages().OobeeInstallerContinueUserActionText || "GEOGUARD IS INSTALLED AND RUNNING"; 10254 } 10255 get continuePlayOnAppInstructionText() { 10256 return this.messages().ContinuePlayOnAppInstructionText || "Continue play on our app, with automatic geolocation"; 10257 } 10258 get continuePlayOnAppUserActionText() { 10259 return this.messages().ContinuePlayOnAppUserActionText || "CONTINUE PLAY ON PLAYMGM APP"; 10260 } 10261 get continuePlayOnWebInstructionText() { 10262 return this.messages().ContinuePlayOnWebInstructionText || "To play on web, Geoguard needs to be installed and running on your device"; 10263 } 10264 get geoguardEnquiryUserActionText() { 10265 return this.messages().GeoguardEnquiryUserActionText || "WHAT IS GEOGUARD?"; 10266 } 10267 get geoGuardDescriptionText() { 10268 return this.messages().GeoGuardDescriptionText || "GeoGuard, a trusted 3rd party partner, allows you to obtain location data from your Android device. One time only install, launch every time you want to place a bet on web"; 10269 } 10270 get playOnAppOrWebPlayerOptionsSeparatorText() { 10271 return this.messages().PlayOnAppOrWebPlayerOptionsSeparatorText || "OR"; 10272 } 10273 continue() { 10274 this.showLoader.set(!0), this.loadingIndicatorHandler = this.loadingIndicatorService.start(), this.isMobileInstaller && this._geolocationTrackingService.track(xn, _n.STEP2_CONTINUE_CTA), this.geolocationCoordinatorService.initialize({ showPLCPopup: !0 }); 10275 let e = () => { 10276 this.showLoader.set(!1), this.loadingIndicatorHandler?.done(); 10277 }; 10278 this.geoLocationCheckService.checkGeolocation(e, e); 10279 } 10280 download() { 10281 let e = this.additionalInfo && this.additionalInfo.downloadUrl || ""; 10282 if (this.isMobileInstaller) { 10283 this._geolocationTrackingService.track(xn, _n.STEP1_DOWNLOAD_CTA), this.window.open(e, Va.BLANK); 10284 return; 10285 } 10286 this.window.open(e, Va.SELF); 10287 } 10288 close() { 10289 if (this.isMobileInstaller && this._geolocationTrackingService.track(xn, _n.POPUP_CLOSE), this.dialogRef?.close(), this.navigationService.location.search.has(vt.SPECIAL_PRODUCT) && this.navigationService.location.search.get(vt.
10289SPECIAL_PRODUCT) === Fa.GLOBAL_SEARCH) { 10290 let e = this.navigationService.location.search.has(vt.RETURN_URL_LOWER) ? this.navigationService.location.search.get(vt.RETURN_URL_LOWER) : this.navigationService.goToLastKnownProduct(); 10291 e && this.navigationService.goTo(e); 10292 } else if (this.window.location?.pathname?.toLowerCase()?.indexOf(Fa.LAUNCH_NG) >= 0) { 10293 let e = this.route?.snapshot?.queryParamMap?.get(vt.RETURN_URL) || this.route?.snapshot?.queryParamMap?.get(vt.RETURN_URL_LOWER); 10294 e ? this.navigationService?.goTo(e) : this.navigationService?.goTo("/" + this.m2Page.lang + "/casino"); 10295 } else if (this.window.location?.pathname?.toLowerCase()?.indexOf(Fa.FORCED_GAME_LAUNCH) >= 0) { 10296 let e = this.route?.snapshot?.queryParamMap?.get(vt.ORIGIN_URL) || this.route?.snapshot?.queryParamMap?.get(vt.ORIGIN_URL_LOWER) || this.route?.snapshot?.queryParamMap?.get(vt.RETURN_URL) || this.route?.snapshot?.queryParamMap?.get(vt.RETURN_URL_LOWER); 10297 e ? this.navigationService?.goTo(e) : this.navigationService?.goTo("/" + this.m2Page.lang + "/casino"); 10298 } 10299 } 10300 appDownloaderClicked() { 10301 let e = this.messages(), n = this.deviceService.isiOS, i = (n ? e.iOSAppID : e.AndroidAppID) || ""; 10302 this._geolocationTrackingService.trackPosition(xn, _n.APP_DOWNLOAD_CTA, i); 10303 let r = ""; 10304 n ? r = e.iOSAppDownloadLink : this.deviceService.isAndroid && (r = e.AndroidAppDownloadLink), r && this.window.open(r, Va.BLANK); 10305 } 10306 hideLoader() { 10307 this.showLoader.set(!1); 10308 } 10309 info() { 10310 this.isMobileInstaller && this._geolocationTrackingService.track(xn, _n.INFO_CTA); 10311 } 10312 getGlobalConfig() { 10313 return this.configProviderService.provideGlobalConfig(); 10314 } 10315 static ɵfac = function(e) { 10316 return new (e || t)(); 10317 }; 10318 static ɵcmp = I({ 10319 type: t, 10320 selectors: [["cw-geolocation-installer"]], 10321 decls: 3, 10322 vars: 2, 10323 consts: [ 10324 ["popper", ""], 10325 [ 10326 "id", 10327 "casino-geolocation-installer-container", 10328 1, 10329 "casino-geolocation-installer-container" 10330 ], 10331 [ 10332 "id", 10333 "geolocation-desktop-installer", 10334 1, 10335 "geolocation-desktop-installer", 10336 "geo-location-popup-container" 10337 ], 10338 [ 10339 "variant", 10340 "surface", 10341 "id", 10342 "geolocation-mobile-installer", 10343 1, 10344 "geolocation-mobile-installer" 10345 ], 10346 [1, "geo-title-heading"], 10347 [ 10348 "mat-dialog-title", 10349 "", 10350 1, 10351 "geo-title", 10352 3, 10353 "textContent" 10354 ], 10355 [ 10356 "type", 10357 "button", 10358 "id", 10359 "dialogclosebutton", 10360 1, 10361 "theme-ex", 10362 "dialogclosebutton", 10363 3, 10364 "click" 10365 ], 10366 [ 10367 "mat-dialog-content", 10368 "", 10369 1, 10370 "geo-content", 10371 3, 10372 "vnDynamicHtml" 10373 ], 10374 [ 10375 "mat-dialog-actions", 10376 "", 10377 1, 10378 "geo-buttons" 10379 ], 10380 [ 10381 "mat-button", 10382 "", 10383 1, 10384 "geo-left-button", 10385 3, 10386 "click", 10387 "textContent" 10388 ], 10389 [ 10390 "mat-button", 10391 "", 10392 "cdkFocusInitial", 10393 "", 10394 1, 10395 "geo-right-button", 10396 3, 10397 "click", 10398 "textContent" 10399 ], 10400 [3, "textContent"], 10401 [ 10402 "slot", 10403 "end", 10404 "ds-button", 10405 "", 10406 "size", 10407 "small", 10408 "kind", 10409 "tertiary", 10410 "variant", 10411 "flat", 10412 3, 10413 "click" 10414 ], 10415 [1, "theme-ex"], 10416 [1, "container-overlay"], 10417 [1, "theme-location-pin"], 10418 [1, "container-overlay-header"], 10419 [ 10420 1, 10421 "header-text", 10422 3, 10423 "textContent" 10424 ], 10425 [1, "clearfix"], 10426 [ 10427 "id", 10428 "appDownloaderLink", 10429 "type", 10430 "button", 10431 "ds-button", 10432 "", 10433 "kind", 10434 "primary", 10435 "variant", 10436 "filled", 10437 3, 10438 "click", 10439 "textContent" 10440 ], 10441 [1, "container-overlay-break"], 10442 [ 10443 1, 10444 "or-container", 10445 3, 10446 "textContent" 10447 ], 10448 [ 10449 1, 10450 "p-text-middle", 10451 3, 10452 "textContent" 10453 ], 10454 [1, "oobeeInstallerUserActionsContainer"], 10455 [ 10456 "id", 10457 "oobeeInstallerDownloadContainer", 10458 1, 10459 "oobeeInstallerDownloadContainer" 10460 ], 10461 [ 10462 "id", 10463 "oobeeInstallerDownloadStepText", 10464 1, 10465 "oobeeInstallerDownloadStepText", 10466 3, 10467 "textContent" 10468 ], 10469 [ 10470 "id", 10471 "btn-download", 10472 "type", 10473 "button", 10474 "ds-button", 10475 "", 10476 "kind", 10477 "secondary", 10478 "variant", 10479 "outline", 10480 1, 10481 "oobeeInstallerDownloadUserActionButton", 10482 "w-100", 10483 3, 10484 "click", 10485 "textContent" 10486 ], 10487 [ 10488 "id", 10489 "oobeeInstallerContinueContainer", 10490 1, 10491 "oobeeInstallerContinueContainer" 10492 ], 10493 [ 10494 "id", 10495 "oobeeInstallerContinueStepText", 10496 1, 10497 "oobeeInstallerContinueStepText", 10498 3, 10499 "textContent" 10500 ], 10501 [ 10502 "id", 10503 "btn-continue", 10504 "type", 10505 "button", 10506 "ds-button", 10507 "", 10508 "kind", 10509 "primary", 10510 "variant", 10511 "filled", 10512 1, 10513 "oobeeInstallerContinueUserActionButton", 10514 "w-100", 10515 3, 10516 "click", 10517 "textContent" 10518 ], 10519 [1, "container-overlay-footer"], 10520 [1, "geoGuardEnquiryUserActionContainer"], 10521 [ 10522 "type", 10523 "button", 10524 1, 10525 "ui-icon", 10526 "theme-info-i", 10527 "geoguard-info-btn", 10528 3, 10529 "click", 10530 "floatUi" 10531 ], 10532 [ 10533 "type", 10534 "button", 10535 1, 10536 "geoGuardEnquiryUserActionText", 10537 3, 10538 "click", 10539 "floatUi", 10540 "textContent" 10541 ], 10542 ["cssClass", "tooltip-info"], 10543 ["content", ""] 10544 ], 10545 template: function(e, n) { 10546 e & 1 && (l(0, "div", 1), f(1, zP, 8, 5, "div", 2), f(2, BP, 34, 18, "ds-modal", 3), d()), e & 2 && (a(), h(n.isMobileInstaller ? -1 : 1), a(), h(n.isMobileInstaller ? 2 : -1)); 10547 }, 10548 dependencies: [ 10549 _l, 10550 kl, 10551 na, 10552 Il, 10553 OC, 10554 Py, 10555 FC, 10556 Rl, 10557 fy, 10558 vy, 10559 ke 10560 ], 10561 styles: [`:root{--%NS%geo-installer-overlay-bg: #333;--%NS%geo-installer-title-color: #fff;--%NS%geo-installer-content-color: #fff;--%NS%geo-installer-download-btn-color: #fff;--%NS%geo-installer-download-btn-bg: #666;--%NS%geo-installer-download-btn-hover-bg: #555;--%NS%geo-installer-continue-btn-color: #fff;--%NS%geo-installer-continue-btn-bg: #4caf50;--%NS%geo-installer-continue-btn-hover-bg: #45a049;--%NS%geo-installer-close-btn-color: #666;--%NS%geo-installer-mobile-title-bg: #222;--%NS%geo-installer-mobile-title-color: #fff;--%NS%geo-installer-or-bg: #fff;--%NS%geo-installer-or-border-color: #b0afaf;--%NS%geo-installer-location-pin-color: rgb(204 187 145)}.cdk-overlay-container .geo-location-installer{width:400px}.casino-geolocation-installer-container .geolocation-desktop-installer,.casino-geolocation-installer-container .geo-location-popup-container{background:var(--%NS%geo-installer-overlay-bg);border:1px solid var(--%NS%semantic-color-supporting-gray-tint, #7a7a7a)}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-title-heading,.casino-geolocation-installer-container .geo-location-popup-container .geo-title-heading{width:100%;margin:0 auto;display:inline-block}
10561.casino-geolocation-installer-container .geolocation-desktop-installer .geo-title-heading .geo-title,.casino-geolocation-installer-container .geo-location-popup-container .geo-title-heading .geo-title{margin:0;padding:var(--%NS%semantic-spacing-container-padding-md, 6px) 0 var(--%NS%semantic-spacing-container-padding-xl, 12px) var(--%NS%semantic-spacing-container-padding-xl, 12px);color:var(--%NS%geo-installer-title-color);font-size:var(--%NS%semantic-typography-label-md-font-size, 12px);line-height:1.5;float:left;width:90%}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-title-heading .geo-title:before,.casino-geolocation-installer-container .geo-location-popup-container .geo-title-heading .geo-title:before{height:unset}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-title-heading .dialogclosebutton,.casino-geolocation-installer-container .geo-location-popup-container .geo-title-heading .dialogclosebutton{float:left;width:10%;text-align:center;cursor:pointer;margin:0;padding:var(--%NS%semantic-spacing-container-padding-md, 6px) 0 0 var(--%NS%semantic-spacing-container-padding-xl, 12px);color:var(--%NS%geo-installer-close-btn-color);font-size:var(--%NS%semantic-typography-body-lg-font-size, 16px);line-height:var(--%NS%semantic-typography-body-md-line-height, 20px);border:none;background:transparent}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-content,.casino-geolocation-installer-container .geo-location-popup-container .geo-content{margin:0;padding:0 var(--%NS%semantic-spacing-container-padding-xl, 12px) var(--%NS%semantic-spacing-container-padding-lg, 8px) var(--%NS%semantic-spacing-container-padding-xl, 12px);color:var(--%NS%geo-installer-content-color)}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-content p,.casino-geolocation-installer-container .geo-location-popup-container .geo-content p{margin:0;font-size:var(--%NS%semantic-typography-label-md-font-size, 12px);line-height:var(--%NS%semantic-typography-body-md-line-height, 20px)}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-buttons,.casino-geolocation-installer-container .geo-location-popup-container .geo-buttons{margin:0;padding:0 var(--%NS%semantic-spacing-container-padding-xl, 12px) var(--%NS%semantic-spacing-container-padding-xl, 12px) var(--%NS%semantic-spacing-container-padding-xl, 12px)}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-buttons .geo-left-button,.casino-geolocation-installer-container .geo-location-popup-container .geo-buttons .geo-left-button{color:var(--%NS%geo-installer-download-btn-color);background-color:var(--%NS%geo-installer-download-btn-bg);border:none;margin-right:var(--%NS%semantic-spacing-inline-sm, 4px);border-radius:var(--%NS%semantic-radius-semi-rounded-sm, 6px);text-transform:uppercase;font-size:var(--%NS%semantic-typography-label-md-font-size, 12px);padding:var(--%NS%semantic-spacing-container-padding-lg, 8px) var(--%NS%semantic-spacing-container-padding-2xl, 16px);cursor:pointer}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-buttons .geo-left-button:hover,.casino-geolocation-installer-container .geo-location-popup-container .geo-buttons .geo-left-button:hover{background-color:var(--%NS%geo-installer-download-btn-hover-bg)}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-buttons .geo-right-button,.casino-geolocation-installer-container .geo-location-popup-container .geo-buttons .geo-right-button{color:var(--%NS%geo-installer-continue-btn-color);background-color:var(--%NS%geo-installer-continue-btn-bg);border:none;border-radius:var(--%NS%semantic-radius-semi-rounded-sm, 6px);text-transform:uppercase;text-align:center;font-size:var(--%NS%semantic-typography-label-md-font-size, 12px);padding:var(--%NS%semantic-spacing-container-padding-lg, 8px) var(--%NS%semantic-spacing-container-padding-2xl, 16px);cursor:pointer}.casino-geolocation-installer-container .geolocation-desktop-installer .geo-buttons .geo-right-button:hover,.casino-geolocation-installer-container .geo-location-popup-container .geo-buttons .geo-right-button:hover{background-color:var(--%NS%geo-installer-continue-btn-hover-bg)}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay{padding:0 var(--%NS%semantic-spacing-container-padding-2xl, 16px);height:100%}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .theme-location-pin{font-size:5em;width:100%;text-align:center;color:var(--%NS%geo-installer-location-pin-color)}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .container-overlay-header{text-align:center}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .container-overlay-header h2{margin:0;font-size:var(--%NS%semantic-typography-title-lg-font-size, 20px);font-weight:var(--%NS%semantic-typography-title-lg-strong-font-we
10561ight, 700);line-height:1.5}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .container-overlay-header p{font-size:var(--%NS%semantic-typography-body-lg-font-size, 16px);line-height:1.5;text-align:center;margin:var(--%NS%semantic-spacing-container-padding-xl, 12px) 0 0 0}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .header-text{text-align:center;margin:var(--%NS%semantic-spacing-container-padding-4xl, 24px) 0 var(--%NS%semantic-spacing-container-padding-xl, 12px) 0;font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);line-height:1.5}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .container-overlay-footer{font-size:var(--%NS%semantic-typography-label-md-font-size, 12px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);margin-top:var(--%NS%semantic-spacing-container-padding-2xl, 16px)}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .container-overlay-footer .geoGuardEnquiryUserActionContainer{float:left;width:100%}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .container-overlay-footer .geoGuardEnquiryUserActionContainer .geoGuardEnquiryUserActionText{text-decoration:underline;border:none;background:transparent;cursor:pointer;padding:0}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay .container-overlay-footer .geoGuardEnquiryUserActionContainer .geoguard-info-btn{border:none;background:transparent;cursor:pointer;padding:0;margin:0;float:left;width:var(--%NS%semantic-size-x6, 24px);height:var(--%NS%semantic-size-icon-medium, 16px)}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay p,.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay h1,.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay h2{color:var(--%NS%theme-body);text-transform:none}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay-break{position:relative;width:100%;margin:0 auto}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay-break hr{border:solid 1px var(--%NS%geo-installer-or-border-color);background-color:var(--%NS%geo-installer-or-border-color);margin-top:0}.casino-geolocation-installer-container .geolocation-mobile-installer .container-overlay-break .or-container{top:-9px;left:40%;position:absolute;background:var(--%NS%geo-installer-or-bg);padding:0 var(--%NS%semantic-spacing-container-padding-xl, 12px)}.casino-geolocation-installer-container .geolocation-mobile-installer .p-text-middle{font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);line-height:1.5;margin:0 0 var(--%NS%semantic-spacing-container-padding-4xl, 24px) 0}.casino-geolocation-installer-container .geolocation-mobile-installer .clearfix:after{content:"";clear:both;display:table}.casino-geolocation-installer-container .geolocation-mobile-installer .clearfix a{width:100%;font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);line-height:1;letter-spacing:-.01px;text-align:center;padding:var(--%NS%semantic-spacing-container-padding-xl, 12px) 0}.casino-geolocation-installer-container .geolocation-mobile-installer .oobeeInstallerUserActionsContainer .oobeeInstallerDownloadContainer #oobeeInstallerDownloadStepText{margin:0 0 var(--%NS%semantic-spacing-container-padding-lg, 8px) 0;font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);line-height:1.5}.casino-geolocation-installer-container .geolocation-mobile-installer .oobeeInstallerUserActionsContainer .oobeeInstallerContinueContainer{margin-top:var(--%NS%semantic-spacing-container-padding-2xl, 16px)}.casino-geolocation-installer-container .geolocation-mobile-installer .oobeeInstallerUserActionsContainer .oobeeInstallerContinueContainer #oobeeInstallerContinueStepText{margin:0 0 var(--%NS%semantic-spacing-container-padding-lg, 8px) 0;font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);font-weight:var(--%NS%semantic-typography-body-md-strong-font-we
10561ight, 500);line-height:1.5} 10562`], 10563 encapsulation: 2 10564 }); 10565 } 10566 return t; 10567 })(), Yr = "/launchng/", ja = "gs:search:Casino_Data_Source", Wg = 2e3, Ug = (() => { 10568 class t { 10569 apiService = s(Ae); 10570 windowRef = s(pe); 10571 configProviderService = s(V); 10572 timerService = s(de); 10573 retryTimerId = null; 10574 lastDispatchedDetail = null; 10575 onFetchStart = null; 10576 onFetchEnd = null; 10577 fetchAndDispatch(e = "", n = [], i = !1) { 10578 this.clearRetryTimer(), i || this.onFetchStart?.(), this.apiService.get("v1/global-search/content", null, { transferCache: !1 }).subscribe({ 10579 next: (r) => { 10580 if (!r?.games?.length && !i) { 10581 this.retryTimerId = this.timerService.setTimeout(() => { 10582 this.retryTimerId = null, this.fetchAndDispatch(e, n, !0); 10583 }, Wg); 10584 return; 10585 } 10586 this.dispatch(r, e, n), this.onFetchEnd?.(); 10587 }, 10588 error: (r) => { 10589 this.windowRef.dispatchEvent(new CustomEvent(ja, { detail: { 10590 status: !1, 10591 content: null 10592 } })), this.onFetchEnd?.(); 10593 } 10594 }); 10595 } 10596 redispatchLastContent() { 10597 return this.lastDispatchedDetail ? (this.windowRef.dispatchEvent(new CustomEvent(ja, { detail: this.lastDispatchedDetail })), !0) : !1; 10598 } 10599 clearRetryTimer() { 10600 this.retryTimerId != null && (this.timerService.clearTimeout(this.retryTimerId), this.retryTimerId = null); 10601 } 10602 dispatch(e, n, i) { 10603 this.clearRetryTimer(); 10604 let r = { 10605 status: !0, 10606 content: e, 10607 gameIconImageSuffix: n, 10608 hiddenProviders: i, 10609 productRoute: this.configProviderService.provideLmtConfig().defaultProductHomeUrl || "games" 10610 }; 10611 this.lastDispatchedDetail = r, this.windowRef.dispatchEvent(new CustomEvent(ja, { detail: r })); 10612 } 10613 static ɵfac = function(e) { 10614 return new (e || t)(); 10615 }; 10616 static ɵprov = A({ 10617 token: t, 10618 factory: t.ɵfac, 10619 providedIn: "root" 10620 }); 10621 } 10622 return t; 10623 })(), Hg = (() => { 10624 class t { 10625 apiService = s(Ae); 10626 globalSearchConfig = s(nr); 10627 mostSearchedGameIds = O([]); 10628 msgSubject = new nt(null); 10629 msg$ = this.msgSubject.asObservable(); 10630 msgFeed() { 10631 let e = this.globalSearchConfig.mostSearchedGames; 10632 if (!e?.isEnabled) return dt([]); 10633 let n = { 10634 channelId: e.channelId ?? "", 10635 requestSource: e.requestSource ?? "" 10636 }; 10637 return this.apiService.post("MostSearchedGames/GetMostSearchedGames", n).pipe(Me((i) => i?.status?.toLowerCase() === "success" ? i?.mostSearchedGamesSet ?? [] : []), Gt(() => dt([]))); 10638 } 10639 feedMsgData() { 10640 if (this.mostSearchedGameIds().length > 0) { 10641 this.msgSubject.next(this.mostSearchedGameIds()); 10642 return; 10643 } 10644 this.msgFeed().subscribe((e) => { 10645 this.mostSearchedGameIds.set(e), this.msgSubject.next(this.mostSearchedGameIds()); 10646 }); 10647 } 10648 msgGamesData() { 10649 return this.mostSearchedGameIds(); 10650 } 10651 static ɵfac = function(e) { 10652 return new (e || t)(); 10653 }; 10654 static ɵprov = A({ 10655 token: t, 10656 factory: t.ɵfac, 10657 providedIn: "root" 10658 }); 10659 } 10660 return t; 10661 })(), qg = 500, Jg = 500, Yg = 2e3, Kg = "gs:search:Fetch_Start", Qg = "gs:search:Fetch_End", Xg = "gs:search:Update_Content", Zg = "casino", Kr = "gs:presentation:launchsearch", em = (() => { 10662 class t { 10663 windowRef = s(pe); 10664 platform = s(X); 10665 globalSearchContentService = s(Ug); 10666 casinoGlobalSearchConfig = s(nr); 10667 gameLaunchAggregator = s(Qe); 10668 deviceService = s(J); 10669 gameImageService = s(rt); 10670 gameCatalog = s(Oe); 10671 timerService = s(de); 10672 recentGamesService = s(at); 10673 favouriteService = s(Re); 10674 gymlService = s(_a); 10675 mostSearchedGamesService = s(Hg); 10676 configProviderService = s(V); 10677 destroyRef = s(q); 10678 isAppEnabledQuery = "isappenabled"; 10679 queryToken = "global-jackpot-query-isappenabled"; 10680 isBootstrapped = !1; 10681 isContentDispatched = !1; 10682 isFetchInProgress = !1; 10683 bootstrapTimerId = null; 10684 fallbackTimerId = null; 10685 gameLaunchHandler = (e) => { 10686 e?.detail?.gameParams && this.launchGameFromGlobalSearch(e.detail.gameParams); 10687 }; 10688 contentRequestHandler = () => this.serveContentRequest(); 10689 serveContentRequest() { 10690 this.globalSearchContentService.redispatchLastContent() || this.isFetchInProgress || this.startFetch(); 10691 } 10692 requestContent() { 10693 this.isContentDispatched || this.isFetchInProgress || this.startFetch(); 10694 } 10695 startFetch() { 10696 this.isFetchInProgress = !0; 10697 let e = this.getHiddenProviders(); 10698 this.globalSearchContentService.onFetchStart = () => this.dispatchFetchStart(), this.globalSearchContentService.onFetchEnd = () => this.dispatchFetchEnd(), this.globalSearchContentService.fetchAndDispatch(this.gameImageService.getIconSuffix(), e); 10699 } 10700 onAppInit() { 10701 return Hi(this, null, function* () { 10702 this.platform.isBrowser && (this.registerEventHandlers(), this.raiseIsAppEnabledQuery(), this.bootstrapGlobalSearch(), this.subscribeToDynamicContent(), this.requestContent()); 10703 }); 10704 } 10705 ngOnDestroy() { 10706 this.destroyEventHandlers(), this.globalSearchContentService.clearRetryTimer(), this.bootstrapTimerId != null && this.timerService.clearTimeout(this.bootstrapTimerId), this.fallbackTimerId != null && this.timerService.clearTimeout(this.fallbackTimerId); 10707 } 10708 subscribeToDynamicContent() { 10709 this.recentGamesService.recentGamesFeedObservable.pipe(z(this.destroyRef)).subscribe((e) => { 10710 e.length > 0 && this.dispatchRecentlyPlayedUpdate(e); 10711 }), this.gymlService.gyml$.pipe(z(this.destroyRef)).subscribe((e) => { 10712 e && e.length > 0 && this.dispatchGymlUpdate(e.map((n) => n.gameId)); 10713 }), this.mostSearchedGamesService.feedMsgData(), this.mostSearchedGamesService.msg$.pipe(z(this.destroyRef)).subscribe((e) => { 10714 e && e.length > 0 && this.dispatchMsgUpdate(e); 10715 }), this.favouriteService.favouritesUpdated$.pipe(z(this.destroyRef)).subscribe(() => { 10716 let e = this.favouriteService.favourites().map((n) => n.gameId); 10717 e.length > 0 && this.dispatchFavouritesUpdate(e); 10718 }); 10719 } 10720 dispatchRecentlyPlayedUpdate(e) { 10721 this.dispatchGroupTagsUpdate(e, ["recentlyplayed", "staticcontent"]); 10722 } 10723 dispatchFavouritesUpdate(e) { 10724 this.dispatchGroupTagsUpdate(e, ["favouritegames", "staticcontent"]); 10725 } 10726 dispatchGymlUpdate(e) { 10727 this.dispatchGroupTagsUpdate(e, [ 10728 "trendingandpopular", 10729 "staticcontent", 10730 "gyml" 10731 ]); 10732 } 10733 dispatchMsgUpdate(e) { 10734 this.dispatchGroupTagsUpdate(e, ["msg", "staticcontent"]); 10735 } 10736 dispatchGroupTagsUpdate(e, n) { 10737 let i = e.map((r) => ({ 10738 contentId: `casinogames:${r}`.toLowerCase(), 10739 groupAssociations: n, 10740 contentActionLink: "", 10741 title: "", 10742 keywords: [], 10743 additionalContext: {} 10744 })); 10745 this.windowRef.dispatchEvent(new CustomEvent(Xg, { detail: { 10746 contributorId: Zg, 10747 searchContent: i, 10748 skipNewEntry: !0 10749 } })), this.windowRef.dispatchEvent(new CustomEvent("gs:content:static:fetch")); 10750 } 10751 getHiddenProviders() { 10752 let e = this.configProviderService.provideGlobalConfig()?.lobbyConfigurations?.hiddenGameProviders; 10753 return e ? e.split(",").map((n) => n.trim().toLowerCase()).filter((n) => n.length > 0) : []; 10754 } 10755 dispatchFetchStart() { 10756 this.windowRef.dispatchEvent(new Event(Kg)); 10757 } 10758 dispatchFetchEnd() { 10759 this.isFetchInProgress = !1, this.windowRef.dispatchEvent(new Event(Qg)), this.timerService.setTimeout(() => { 10760 this.isContentDispatched = !0, this.flushDynamicContent(), this.windowRef.dispatchEvent(new CustomEvent("gs:content:static:fetch")); 10761 }, qg, { serverMode: "omit" }), this.timerService.setTimeout(() => this.windowRef.dispatchEvent(new CustomEvent("gs:content:static:fetch")), Jg, { serverMode: "omit" }); 10762 } 10763 flushDynamicContent() { 10764 let e = this.recentGamesService.getrecentGames(); 10765 e.length > 0 && this.dispatchRecentlyPlayedUpdate(e); 10766 let n = this.gymlService.gymlGames(); 10767 n.length > 0 && this.dispatchGymlUpdate(n.map((u) => u.gameId)); 10768 let i = this.mostSearchedGamesService.mostSearchedGameIds(); 10769 i.length > 0 && this.dispatchMsgUpdate(i); 10770 let r = this.favouriteService.favourites().map((u) => u.gameId); 10771 r.length > 0 && this.dispatchFavouritesUpdate(r); 10772 } 10773 launchGameFromGlobalSearch(e) { 10774 let n = e.searchParams.get("gameid"); 10775 if (!n) return; 10776 let i = Number(e.searchParams.get("tracking:position")), r = (Number.isFinite(i) ? i : 0) + 1, u = { 10777 game: { 10778 gameId: n, 10779 provider: e.searchParams.get("provider") || this.gameCatalog.getGameProvider(n) || "", 10780 name: e.searchParams.get("gameTitle") || this.gameCatalog.getGameName(n), 10781 lobbyType: e.searchParams.get("launchLobbyType") || "" 10782 }, 10783 isTouch: this.deviceService.isTouch, 10784 gamePosition: r, 10785 categoryType: e.searchParams.get("specialproduct") || "", 10786 from: "globalsearch", 10787 isDemoLaunch: !1, 10788 gameLaunchedFrom: "globalsearch", 10789 trackingproduct: e.searchParams.get("specialproduct") || "", 10790 returnUrl: e.searchParams.get("returnUrl") || "", 10791 clickTimeStamp: Number(e.searchParams.get("clickTimeStamp")) || Date.now(), 10792 globalSearchSection: e.searchParams.get("tracking:containerName")?.split("+").join(" ") || "", 10793 globalSearchGamePosition: r, 10794 recommendationType: e.searchParams.get("recommendationType") || "", 10795 gameContainer: "", 10796 isLive: !1, 10797 appendRUrlToLoginDialogWindow: !1, 10798 noGameTraking: !1, 10799 launchSource: "globalsearch", 10800 loadingIndicatorHandler: null, 10801 screennameGameLaunchTracking: "", 10802 currentProduct: "casino" 10803 }; 10804 this.gameLaunchAggregator.launchGame(u); 10805 } 10806 raiseIsAppEnabledQuery() { 10807 this.windowRef.dispatchEvent(new CustomEvent(bw, { detail: { 10808 query: this.isAppEnabledQuery, 10809 queryToken: this.queryToken 10810 } })), this.windowRef.dispatchEvent(new CustomEvent("gs:search:service:context:fetch")); 10811 } 10812 bootstrapGlobalSearch() { 10813 if (!this.isBootstrapped) { 10814 try { 10815 if (this.casinoGlobalSearchConfig.isEnabled === !1) return; 10816 } catch (e) { 10817 console.warn("[Global Search] Config not loaded yet, proceeding with bootstrap", e); 10818 } 10819 this.isBootstrapped = !0, this.windowRef.dispatchEvent(new CustomEvent("gs:search:bootstrap:app")), this.windowRef.dispatchEvent(new CustomEvent("gs:search:service:context:result", { detail: { appContext: { isEnabled: !0 } } })), this.bootstrapTimerId = this.timerService.setTimeout(() => { 10820 this.windowRef.dispatchEvent(new CustomEvent("gs:search:bootstrap:app")); 10821 }, Yg, { serverMode: "omit" }); 10822 } 10823 } 10824 launchSearchHandler = () => { 10825 this.windowRef.dispatchEvent(new CustomEvent("gs:search:bootstrap:app")); 10826 }; 10827 registerEventHandlers() { 10828 this.windowRef.addEventListener("gs:globalsearch:casinogamelaunch", this.gameLaunchHandler), this.windowRef.addEventListener("gs:search:Request_Casino_Source", this.contentRequestHandler), this.windowRef.addEventListener(Kr, this.launchSearchHandler); 10829 } 10830 destroyEventHandlers() { 10831 this.windowRef.removeEventListener("gs:globalsearch:casinogamelaunch", this.gameLaunchHandler), this.windowRef.removeEventListener("gs:search:Request_Casino_Source", this.contentRequestHandler), this.windowRef.removeEventListener(Kr, this.launchSearchHandler); 10832 } 10833 static ɵfac = function(e) { 10834 return new (e || t)(); 10835 }; 10836 static ɵprov = A({ 10837 token: t, 10838 factory: t.ɵfac, 10839 providedIn: "root" 10840 }); 10841 } 10842 return t; 10843 })(), tm = (() => { 10844 class t { 10845 configProviderService = s(V); 10846 execute() { 10847 this.configProviderService.fillClientConfig(!0); 10848 } 10849 static ɵfac = function(e) { 10850 return new (e || t)(); 10851 }; 10852 static ɵprov = A({ 10853 token: t, 10854 factory: t.ɵfac, 10855 providedIn: "root" 10856 }); 10857 } 10858 return t; 10859 })(), nm = (() => { 10860 class t { 10861 onAppInitHandler = s(tm); 10862 onAppInit() { 10863 this.onAppInitHandler.execute(); 10864 } 10865 static ɵfac = function(e) { 10866 return new (e || t)(); 10867 }; 10868 static ɵprov = A({ 10869 token: t, 10870 factory: t.ɵfac, 10871 providedIn: "root" 10872 }); 10873 } 10874 return t; 10875 })(), Qr = new ll("ON_CASINO_APP_INIT"), im = () => [ 10876 ...Nr(nm), 10877 ...Nr(em), 10878 ...Nr(mw), 10879 ...FP() 10880 ], Xr = (() => { 10881 class t {
10882 initializers = s(Qr); 10883 isAlreadyBootstrapped = !1; 10884 onCasinoAppInit() { 10885 return Hi(this, null, function* () { 10886 if (this.isAlreadyBootstrapped) return; 10887 let e = []; 10888 for (let n of this.initializers) { 10889 let i = n.onAppInit(); 10890 i instanceof Promise && e.push(i); 10891 } 10892 yield Promise.all(e), this.isAlreadyBootstrapped = !0; 10893 }); 10894 } 10895 static ɵfac = function(e) { 10896 return new (e || t)(); 10897 }; 10898 static ɵprov = A({ 10899 token: t, 10900 factory: t.ɵfac 10901 }); 10902 } 10903 return t; 10904 })(), am = (() => { 10905 class t { 10906 process(e) { 10907 let n = e.data?.product || en.CASINO; 10908 return F(G({}, e), { data: F(G({}, e.data), { product: n }) }); 10909 } 10910 static ɵfac = function(e) { 10911 return new (e || t)(); 10912 }; 10913 static ɵprov = A({ 10914 token: t, 10915 factory: t.ɵfac 10916 }); 10917 } 10918 return t; 10919 })(), Zr = (() => { 10920 class t { 10921 #e = s(Rt); 10922 #t = s(pe); 10923 #n = s(q); 10924 init() { 10925 this.#e.events.pipe(We((e) => e instanceof Qi), z(this.#n)).subscribe(() => { 10926 this.#t.scrollTo(0, 0); 10927 }); 10928 } 10929 static ɵfac = function(e) { 10930 return new (e || t)(); 10931 }; 10932 static ɵprov = A({ 10933 token: t, 10934 factory: t.ɵfac 10935 }); 10936 } 10937 return t; 10938 })(), sn = (function(t) { 10939 return t.Mp4 = "mp4", t.Cms = "cms", t.Gif = "gif", t.Svg = "svg", t; 10940 })(sn || {}), es = (function(t) { 10941 return t.V1 = "Video V1", t.V2 = "Video V2", t; 10942 })(es || {}), $a = { 10943 ReloadIcon: "NetflixReloadicon", 10944 SoundIcon: "NetflixSoundicon", 10945 MuteIcon: "NetflixMuteicon", 10946 IconBgColor: "NetflixIconBgClr", 10947 IconColor: "NetflixIconClr" 10948 }, cn = { 10949 DefaultCtaText: "Play Now", 10950 LaunchSegment: "/launchng/", 10951 FavouriteIcon: "theme-heart-solid", 10952 UnfavouriteIcon: "theme-heart", 10953 StreamClass: "streamClass" 10954 }, ki = { 10955 MuteVideo: "Mute video", 10956 UnmuteVideo: "Unmute video" 10957 }, om = { TEASER_BANNERS: "teaser banners" }, rm = "netflix teaser", Ii = { 10958 AUTOPLAY: "autoplay", 10959 PLAY: "play", 10960 ENDED: "ended", 10961 CLICK: "click" 10962 }, Wt = { 10963 VIDEO_IMG: "video img", 10964 PLAY_NOW_CTA: "play now cta", 10965 VIDEO_TAP: "user taps on video teaser" 10966 }, Wa = { 10967 ID: "netflix_teaser", 10968 NAME: "netflix teaser", 10969 TYPE_PREFIX: "teasers" 10970 }, ts = "not applicable", ns = (() => { 10971 class t { 10972 vanillaTrackingAdapter = s(we); 10973 navigationService = s(he); 10974 trackSubnavClick(e) { 10975 this.trackSubnavItemClick(e); 10976 } 10977 trackSubnavItemClick(e) { 10978 let { navItem: n, layoutId: i, navIndex: r } = e; 10979 if (!n.id) return; 10980 let u = this.navigationService.currentSubnav()?.id ?? ts; 10981 this.vanillaTrackingAdapter.trigger({ 10982 name: se.CasinoNavigation, 10983 data: { 10984 [M.ComponentCategoryEvent]: "navigation", 10985 [M.ComponentLabelEvent]: "quick navigation", 10986 [M.ComponentActionEvent]: ve.CLICK, 10987 [M.ComponentPositionEvent]: "categories", 10988 [M.ComponentLocationEvent]: u, 10989 [M.ComponentEventDetails]: n.id, 10990 [M.ComponentUrlClicked]: n.url || ts, 10991 [M.ComponentCategoryType]: i, 10992 [M.ComponentContentPosition]: r + 1 10993 } 10994 }); 10995 } 10996 static ɵfac = function(e) { 10997 return new (e || t)(); 10998 }; 10999 static ɵprov = A({ 11000 token: t, 11001 factory: t.ɵfac, 11002 providedIn: "root" 11003 }); 11004 } 11005 return t; 11006 })(), Ua = (() => { 11007 class t { 11008 counter = O(0); 11009 clickSource = O(Wt.VIDEO_IMG); 11010 router = s(Rt); 11011 destroyRef = s(q); 11012 trackingAdapter = s(we); 11013 navigationService = s(he); 11014 constructor() { 11015 this.router.events.pipe(We((e) => e instanceof lC), z(this.destroyRef)).subscribe(() => this.reset()); 11016 } 11017 register() { 11018 let e = this.counter() + 1; 11019 return this.counter.update((n) => n + 1), e; 11020 } 11021 reset() { 11022 this.counter.set(0), this.clickSource.set(Wt.VIDEO_IMG); 11023 } 11024 setClickSource(e) { 11025 this.clickSource.set(e); 11026 } 11027 getClickSource() { 11028 return this.clickSource(); 11029 } 11030 trackAutoplay(e, n) { 11031 this.trigger(Ii.AUTOPLAY, e, n, e); 11032 } 11033 trackPlay(e, n) { 11034 this.trigger(Ii.PLAY, e, n, e); 11035 } 11036 trackEnded(e, n, i) { 11037 this.trigger(Ii.ENDED, e, n, i); 11038 } 11039 trackClick(e, n, i) { 11040 this.trigger(Ii.CLICK, e, n, i || Wt.VIDEO_TAP); 11041 } 11042 trigger(e, n, i, r) { 11043 this.trackingAdapter.trigger({ 11044 name: se.CasinoVideoTeaser, 11045 data: { 11046 [M.ComponentCategoryEvent]: om.TEASER_BANNERS, 11047 [M.ComponentLabelEvent]: rm, 11048 [M.ComponentActionEvent]: e, 11049 [M.ComponentPositionEvent]: n || B.NOT_APPLICABLE, 11050 [M.ComponentLocationEvent]: this.navigationService.currentSubnav()?.id || B.NOT_APPLICABLE, 11051 [M.ComponentEventDetails]: r || B.NOT_APPLICABLE, 11052 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 11053 [M.ComponentContentPosition]: i, 11054 [M.ComponentCategoryType]: this.navigationService.currentLayout() || B.NOT_APPLICABLE 11055 } 11056 }); 11057 } 11058 static ɵfac = function(e) { 11059 return new (e || t)(); 11060 }; 11061 static ɵprov = A({ 11062 token: t, 11063 factory: t.ɵfac, 11064 providedIn: "root" 11065 }); 11066 } 11067 return t; 11068 })(), is = "Netflix", sm = (() => { 11069 class t { 11070 gameLaunchAggregator = s(Qe); 11071 deviceService = s(J); 11072 vanillaNavigationService = s(qe); 11073 navigationService = s(he); 11074 gameCatalogService = s(Oe); 11075 launchGameFromVideo(e) { 11076 let n = Tr(e.gameLink); 11077 if (!n) return; 11078 let i = this.navigationService.currentLayout(), r = this.navigationService.currentSubnav()?.id, u = { 11079 game: { 11080 gameId: n, 11081 lobbyType: i, 11082 name: this.gameCatalogService.getGameName(n) ?? e.fallbackName ?? void 0, 11083 provider: this.gameCatalogService.getGameProvider(n) ?? "" 11084 }, 11085 isTouch: this.deviceService.isTouch, 11086 gamePosition: e.position || 1, 11087 gridPosition: e.containerIndex, 11088 categoryType: r || i || "", 11089 from: is, 11090 isDemoLaunch: !1, 11091 gameLaunchedFrom: is, 11092 gameContainer: Wa.ID, 11093 gameSection: Wa.NAME, 11094 gameContainerType: `${Wa.TYPE_PREFIX} | ${e.teaserName}`,
11095 isBackgroundImageLayerPresent: !0, 11096 returnUrl: this.vanillaNavigationService.location.url(), 11097 clickTimeStamp: Date.now() 11098 }; 11099 this.gameLaunchAggregator.launchGame(u); 11100 } 11101 static ɵfac = function(e) { 11102 return new (e || t)(); 11103 }; 11104 static ɵprov = A({ 11105 token: t, 11106 factory: t.ɵfac, 11107 providedIn: "root" 11108 }); 11109 } 11110 return t; 11111 })(), cm = ["videoContainer"], lm = ["cmsVideoPlayer"], as = 3600, os = 60, rs = 2, dm = (() => { 11112 class t { 11113 videoData = m.required(); 11114 teaserName = m(""); 11115 containerIndex = m(0); 11116 timerService = s(de); 11117 platform = s(X); 11118 destroyRef = s(q); 11119 configProvider = s(V); 11120 videoGameService = s(Ua); 11121 renderer = s(lt); 11122 videoContainer = De("videoContainer"); 11123 cmsVideoPlayer = De("cmsVideoPlayer"); 11124 videoUrl = g(() => this.videoData().videoUrl ?? ""); 11125 isMuted = O(!0); 11126 isReplay = O(!1); 11127 displayVideo = O("block"); 11128 isScroll = O(!1); 11129 muteAriaLabel = g(() => this.isMuted() ? ki.UnmuteVideo : ki.MuteVideo); 11130 resolvedTeaserName = g(() => this.teaserName() || this.videoData().videoName || ""); 11131 icons = Qd(); 11132 gameLauncher = Ga(); 11133 netflixVolumBtn = this.icons.netflixVolumBtn; 11134 netflixReloadIcon = this.icons.netflixReloadIcon; 11135 viewportTimerId; 11136 observer = null; 11137 firstload = !1; 11138 timeoutValue = 0; 11139 viewportReached = !1; 11140 videoPosition; 11141 constructor() { 11142 this.videoPosition = this.videoGameService.register(), this.destroyRef.onDestroy(() => { 11143 this.timerService.clearTimeout(this.viewportTimerId), this.observer?.disconnect(); 11144 }), this.observer = Mt((e) => { 11145 let n = e[0]; 11146 n && this.handleViewportChange(n.isIntersecting); 11147 }, { threshold: [0] }), Se(() => { 11148 let e = this.videoContainer()?.nativeElement; 11149 e && this.observer?.observe(e), this.updateStreamClass(); 11150 }); 11151 } 11152 handleViewportChange(e) { 11153 if (this.platform.isBrowser) { 11154 if (!this.firstload && e && !this.isScroll()) { 11155 let n = this.configProvider.provideFeaturesConfig(); 11156 this.firstload = !0, this.timeoutValue = n.netflixVideoTimeout ?? 0, this.isScroll.set(!0), this.displayVideo.set("block"); 11157 } 11158 this.isReplay.set(!1), this.timerService.clearTimeout(this.viewportTimerId), this.viewportTimerId = this.timerService.setTimeout(() => { 11159 let n = this.cmsVideoPlayer()?.streamEl?.nativeElement; 11160 n && (e ? (this.viewportReached || (this.viewportReached = !0, this.timeoutValue = 0), n.play && n.play(), this.videoGameService.trackAutoplay(this.resolvedTeaserName(), this.videoPosition)) : (n.pause && n.pause(), this.viewportReached && this.trackVideoEnd(n))); 11161 }, this.timeoutValue); 11162 } 11163 } 11164 updateStreamClass() { 11165 let e = this.cmsVideoPlayer()?.streamEl?.nativeElement; 11166 e && !e.classList.contains(cn.StreamClass) && this.renderer.addClass(e, cn.StreamClass); 11167 } 11168 toggleMute() { 11169 if (this.platform.isBrowser) { 11170 let e = !this.isMuted(); 11171 this.isMuted.set(e), this.icons.updateMuteAndSoundIcons(e); 11172 } 11173 } 11174 replayVideo() { 11175 if (this.platform.isBrowser) { 11176 this.isReplay.set(!1); 11177 let e = this.cmsVideoPlayer()?.streamEl?.nativeElement; 11178 e && e.play && e.play(), this.videoGameService.trackPlay(this.resolvedTeaserName(), this.videoPosition); 11179 } 11180 } 11181 onVideoEnded() { 11182 this.isReplay.set(!0); 11183 let e = this.cmsVideoPlayer()?.streamEl?.nativeElement; 11184 this.trackVideoEnd(e); 11185 } 11186 trackVideoEnd(e) { 11187 let n = e?.currentTime, i = Number.isFinite(n) ? n : 0, r = String(Math.floor(i % as / os)).padStart(rs, "0"), u = String(Math.floor(i % as % os)).padStart(rs, "0"); 11188 this.videoGameService.trackEnded(this.resolvedTeaserName(), this.videoPosition, `${r}:${u}`); 11189 } 11190 launchGame(e, n) { 11191 let i = n || this.videoGameService.getClickSource(); 11192 this.videoGameService.trackClick(this.resolvedTeaserName(), this.videoPosition, i), this.videoGameService.setClickSource(Wt.VIDEO_IMG), this.gameLauncher.launchGame(e ?? this.videoData().gameLink, this.videoPosition, this.resolvedTeaserName(), this.containerIndex()); 11193 } 11194 onCtaClick(e) { 11195 let n = e.target?.closest("a"); 11196 n && (e.preventDefault(), this.videoGameService.setClickSource(Wt.PLAY_NOW_CTA), this.launchGame(n.getAttribute("href") ?? void 0, n.textContent?.trim() || void 0)); 11197 } 11198 static ɵfac = function(e) { 11199 return new (e || t)(); 11200 }; 11201 static ɵcmp = I({ 11202 type: t, 11203 selectors: [["cw-cms-video"]], 11204 viewQuery: function(e, n) { 11205 e & 1 && He(n.videoContainer, cm, 5)(n.cmsVideoPlayer, lm, 5), e & 2 && Ue(2); 11206 }, 11207 inputs: { 11208 videoData: [1, "videoData"], 11209 teaserName: [1, "teaserName"], 11210 containerIndex: [1, "containerIndex"] 11211 }, 11212 decls: 11, 11213 vars: 14, 11214 consts: [ 11215 ["videoContainer", ""], 11216 ["cmsVideoPlayer", ""], 11217 [1, "videocontainer"], 11218 ["id", "outofviewport"], 11219 [ 11220 "id", 11221 "cms-video-player", 11222 "preload", 11223 "auto", 11224 3, 11225 "ended", 11226 "click", 11227 "keydown.enter", 11228 "keydown.space", 11229 "controls", 11230 "src", 11231 "muted", 11232 "hidden", 11233 "autoplay", 11234 "loop" 11235 ], 11236 [ 11237 "type", 11238 "button", 11239 1, 11240 "video-phase2-overlay", 11241 3, 11242 "click", 11243 "keydown.enter", 11244 "keydown.space" 11245 ], 11246 [ 11247 1, 11248 "video-containerp2", 11249 3, 11250 "click", 11251 "vnDynamicHtml" 11252 ], 11253 [ 11254 "type", 11255 "button", 11256 1, 11257 "thumbnailimg-btn" 11258 ], 11259 [1, "sound-btn"], 11260 [1, "refresh-btn"], 11261 [ 11262 "type", 11263 "button", 11264 1, 11265 "thumbnailimg-btn", 11266 3, 11267 "click" 11268 ], 11269 [ 11270 1, 11271 "thumbnailimg", 11272 3, 11273 "src" 11274 ], 11275 [ 11276 "ds-button-icon", 11277 "", 11278 "size", 11279 "large", 11280 3, 11281 "click" 11282 ], 11283 [3, "name"] 11284 ], 11285 template: function(e, n) { 11286 if (e & 1) { 11287 let i = _(); 11288 l(0, "div", 2)(1, "div", 3, 0)(3, "div")(4, "cloudflare-stream", 4, 1), S("ended", function() { 11289 return n.onVideoEnded(); 11290 })("click", function() { 11291 return n.launchGame(); 11292 })("keydown.enter", function() { 11293 return n.launchGame(); 11294 })("keydown.space", function(r) { 11295 return y(i), n.launchGame(), w(r.preventDefault()); 11296 }), d(), l(6, "div", 5), S("click", function() { 11297 return n.launchGame(); 11298 })("keydown.enter", function() { 11299 return n.launchGame(); 11300 })("keydown.space", function(r) { 11301 return y(i), n.launchGame(), w(r.preventDefault()); 11302 }), d()(), l(7, "div", 6), S("click", function(r) { 11303 return n.onCtaClick(r); 11304 }), d(), f(8, jP, 2, 4, "button", 7), f(9, $P, 3, 3, "div", 8)(10, WP, 3, 3, "div", 9), d()(); 11305 } 11306 e & 2 && (a(4), k("display", n.displayVideo()), p("controls", !1)("src", n.videoUrl())("muted", n.isMuted())("hidden", n.isReplay())("autoplay", !0)("loop", n.videoData().loop), T("tabindex", 0), a(2), T("tabindex", 0)("aria-label", "Play " + (n.videoData().videoName || "game")), a(), p("vnDynamicHtml", n.videoData().ctaText), a(), h(n.isReplay() ? 8 : -1), a(), h(n.isReplay() ? 10 : 9)); 11307 }, 11308 dependencies: [ 11309 My, 11310 wy, 11311 na, 11312 Bn, 11313 Ee 11314 ], 11315 encapsulation: 2 11316 }); 11317 } 11318 return t; 11319 })(), gm = (() => { 11320 class t { 11321 videoData = m.required(); 11322 ctaText = m(cn.DefaultCtaText); 11323 containerInfo = m(); 11324 launchGame = j(); 11325 favouriteService = s(Re); 11326 videoGameService = s(Ua); 11327 navigationService = s(he); 11328 gameId = g(() => this.extractGameId(this.videoData().gameLink)); 11329 isFavourite = g(() => this.favouriteService.isFavourite(this.gameId())); 11330 favouriteIcon = g(() => this.isFavourite() ? cn.FavouriteIcon : cn.UnfavouriteIcon); 11331 onPlayClick() { 11332 this.videoGameService.setClickSource(Wt.PLAY_NOW_CTA), this.launchGame.emit(); 11333 } 11334 toggleFavourite(e) { 11335 e.stopImmediatePropagation(); 11336 let n = this.gameId(); 11337 n && this.favouriteService.toggleFavourite(n, F(G({ gameName: this.videoData().videoName }, Jd(this.containerInfo())), { 11338 categoryType: this.navigationService.currentLayout(), 11339 categorySubType: this.navigationService.currentSubnav()?.id 11340 })); 11341 } 11342 extractGameId(e) { 11343 if (!e) return ""; 11344 let n = e.indexOf(cn.LaunchSegment); 11345 return n === -1 ? "" : e.slice(n + cn.LaunchSegment.length); 11346 } 11347 static ɵfac = function(e) { 11348 return new (e || t)(); 11349 }; 11350 static ɵcmp = I({ 11351 type: t, 11352 selectors: [["cw-game-info"]], 11353 inputs: { 11354 videoData: [1, "videoData"], 11355 ctaText: [1, "ctaText"], 11356 containerInfo: [1, "containerInfo"] 11357 }, 11358 outputs: { launchGame: "launchGame" }, 11359 decls: 1, 11360 vars: 1, 11361 consts: [ 11362 [ 11363 1, 11364 "w-100", 11365 3, 11366 "roleType" 11367 ], 11368 [ 11369 3, 11370 "inverse", 11371 "size", 11372 "title", 11373 "showCenterSlot" 11374 ], 11375 [ 11376 "slot", 11377 "start", 11378 1, 11379 "game-icon" 11380 ], 11381 [ 11382 3, 11383 "src", 11384 "alt" 11385 ], 11386 [ 11387 "slot", 11388 "end", 11389 1, 11390 "action-buttons" 11391 ], 11392 [ 11393 "ds-button-icon", 11394 "", 11395 "slot", 11396 "end", 11397 1, 11398 "game-item-button-icon", 11399 3, 11400 "click", 11401 "variant", 11402 "kind", 11403 "size", 11404 "inverse" 11405 ], 11406 [3, "name"], 11407 [ 11408 "ds-button", 11409 "", 11410 "kind", 11411 "primary", 11412 3, 11413 "click", 11414 "variant", 11415 "size" 11416 ] 11417 ], 11418 template: function(e, n) { 11419 e & 1 && f(0, UP, 9, 17, "ds-list-group", 0), e & 2 && h(n.gameId() ? 0 : -1); 11420 }, 11421 dependencies: [ 11422 Yo, 11423 qo, 11424 Bn, 11425 ke, 11426 Ee 11427 ], 11428 encapsulation: 2 11429 }); 11430 } 11431 return t; 11432 })(), mm = (() => { 11433 class t { 11434 videoData = m.required(); 11435 gameLauncher = Ga(); 11436 isGif = g(() => this.videoData().videoType?.toLowerCase() === sn.Gif); 11437 isSvg = g(() => this.videoData().videoType?.toLowerCase() === sn.Svg); 11438 launchGame() { 11439 this.gameLauncher.launchGame(this.videoData().gameLink); 11440 } 11441 static ɵfac = function(e) { 11442 return new (e || t)(); 11443 }; 11444 static ɵcmp = I({ 11445 type: t, 11446 selectors: [["cw-gif-tag"]], 11447 inputs: { videoData: [1, "videoData"] }, 11448 decls: 2, 11449 vars: 2, 11450 consts: [ 11451 [ 11452 "type", 11453 "button", 11454 1, 11455 "gif" 11456 ], 11457 [ 11458 "type", 11459 "button", 11460 1, 11461 "svg" 11462 ], 11463 [ 11464 "type", 11465 "button", 11466 1, 11467 "gif", 11468 3, 11469 "click", 11470 "keydown.enter", 11471 "keydown.space" 11472 ], 11473 [3, "src"], 11474 [ 11475 "type", 11476 "button", 11477 1, 11478 "svg", 11479 3, 11480 "click", 11481 "keydown.enter", 11482 "keydown.space" 11483 ] 11484 ], 11485 template: function(e, n) { 11486 e & 1 && (f(0, HP, 2, 4, "div", 0), f(1, qP, 2, 4, "div", 1)), e & 2 && (h(n.isGif() ? 0 : -1), a(), h(n.isSvg() ? 1 : -1)); 11487 }, 11488 encapsulation: 2 11489 }); 11490 } 11491 return t; 11492 })(), pm = ["videoPlayer"], um = ["videoContainer"], ss = 3600, cs = 60, ls = 2, hm = (() => { 11493 class t { 11494 videoData = m.required(); 11495 teaserName = m(""); 11496 isVideoTileV2 = m.required(); 11497 containerIndex = m(0); 11498 configProvider = s(V); 11499 timerService = s(de); 11500 platform = s(X); 11501 destroyRef = s(q); 11502 videoGameService = s(Ua); 11503 videoPlayer = De("videoPlayer"); 11504 videoContainer = De("videoContainer"); 11505 videoUrl = O(""); 11506 isMuted = O(!0); 11507 isReplay = O(!1); 11508 viewportReached = O(!1); 11509 isScroll = O(!1); 11510 muteAriaLabel = g(() => this.isMuted() ? ki.UnmuteVideo : ki.MuteVideo); 11511 resolvedTeaserName = g(() => this.teaserName() || this.videoData().videoName || ""); 11512 icons = Qd(); 11513 gameLauncher = Ga(); 11514 netflixVolumBtn = this.icons.netflixVolumBtn; 11515 netflixReloadIcon = this.icons.netflixReloadIcon; 11516 viewportTimerId; 11517 firstload = !1; 11518 timeoutValue = 0; 11519 observer = null; 11520 videoPosition; 11521 constructor() { 11522 this.videoPosition = this.videoGameService.register(), this.destroyRef.onDestroy(() => { 11523 this.timerService.clearTimeout(this.viewportTimerId), this.observer?.disconnect(); 11524 }), this.observer = Mt((e) => { 11525 let n = e[0]; 11526 n && this.handleViewportChange(n.isIntersecting); 11527 }, { threshold: [0] }), Se(() => { 11528 let e = this.videoContainer()?.nativeElement; 11529 e && this.observer?.observe(e); 11530 }); 11531 } 11532 handleViewportChange(e) { 11533 if (this.platform.isBrowser) { 11534 if (!this.firstload && e && !this.isScroll()) { 11535 let n = this.configProvider.provideFeaturesConfig(); 11536 this.firstload = !0, this.timeoutValue = n.netflixVideoTimeout ?? 0, this.isScroll.set(!0); 11537 } 11538 this.isReplay.set(!1), this.timerService.clearTimeout(this.viewportTimerId), this.viewportTimerId = this.timerService.setTimeout(() => { 11539 let n = this.videoPlayer()?.nativeElement; 11540 n && (e ? (this.viewportReached() || (this.videoUrl.set(this.videoData().videoUrl ?? ""), this.viewportReached.set(!0), this.timeoutValue = 0), n.play()?.catch(() => {}), this.videoGameService.trackAutoplay(this.resolvedTeaserName(), this.videoPosition)) : (n.pause(), this.viewportReached() && this.trackVideoEnd(n))); 11541 }, this.timeoutValue); 11542 } 11543 } 11544 toggleMute() { 11545 let e = this.videoPlayer()?.nativeElement; 11546 e && this.platform.isBrowser && (e.muted = !e.muted, this.isMuted.set(e.muted), this.icons.updateMuteAndSoundIcons(e.muted)); 11547 } 11548 replayVideo() { 11549 let e = this.videoPlayer()?.nativeElement; 11550 e && this.platform.isBrowser && (this.isReplay.set(!1), e.currentTime = 0, e.play()?.catch(() => {}), this.videoGameService.trackPlay(this.resolvedTeaserName(), this.videoPosition)); 11551 } 11552 onVideoEnded() { 11553 this.isReplay.set(!0); 11554 let e = this.videoPlayer()?.nativeElement; 11555 e && this.trackVideoEnd(e); 11556 } 11557 launchGame(e, n) { 11558 let i = n || this.videoGameService.getClickSource(); 11559 this.videoGameService.trackClick(this.resolvedTeaserName(), this.videoPosition, i), this.videoGameService.setClickSource(Wt.VIDEO_IMG), this.gameLauncher.launchGame(e ?? this.videoData().gameLink, this.videoPosition, this.resolvedTeaserName(), this.containerIndex()); 11560 } 11561 onCtaClick(e) { 11562 let n = e.target?.closest("a"); 11563 n && (e.preventDefault(), this.videoGameService.setClickSource(Wt.PLAY_NOW_CTA), this.launchGame(n.getAttribute("href") ?? void 0, n.textContent?.trim() || void 0)); 11564 } 11565 trackVideoEnd(e) { 11566 let n = Number.isFinite(e.currentTime) ? e.currentTime : 0, i = String(Math.floor(n % ss / cs)).padStart(ls, "0"), r = String(Math.floor(n % ss % cs)).padStart(ls, "0"); 11567 this.videoGameService.trackEnded(this.resolvedTeaserName(), this.videoPosition, `${i}:${r}`); 11568 } 11569 static ɵfac = function(e) { 11570 return new (e || t)(); 11571 }; 11572 static ɵcmp = I({ 11573 type: t, 11574 selectors: [["cw-mp4-video"]], 11575 viewQuery: function(e, n) { 11576 e & 1 && He(n.videoPlayer, pm, 5)(n.videoContainer, um, 5), e & 2 && Ue(2); 11577 }, 11578 inputs: { 11579 videoData: [1, "videoData"], 11580 teaserName: [1, "teaserName"], 11581 isVideoTileV2: [1, "isVideoTileV2"], 11582 containerIndex: [1, "containerIndex"] 11583 }, 11584 decls: 7, 11585 vars: 3, 11586 consts: [ 11587 ["videoContainer", ""], 11588 ["videoPlayer", ""], 11589 [1, "videocontainer"], 11590 ["id", "outofviewport"], 11591 [ 11592 "autoplay", 11593 "", 11594 "playsinline", 11595 "", 11596 "onloadeddata", 11597 "this.play()", 11598 "role", 11599 "button", 11600 3, 11601 "src", 11602 "muted", 11603 "loop", 11604 "poster", 11605 "hidden" 11606 ], 11607 [ 11608 1, 11609 "video-containerp2", 11610 3, 11611 "click", 11612 "vnDynamicHtml" 11613 ], 11614 [1, "sound-btn"], 11615 [ 11616 "autoplay", 11617 "", 11618 "playsinline", 11619 "", 11620 "onloadeddata", 11621 "this.play()", 11622 "role", 11623 "button", 11624 3, 11625 "ended", 11626 "click", 11627 "keydown.enter", 11628 "keydown.space", 11629 "src", 11630 "muted", 11631 "loop", 11632 "poster", 11633 "hidden" 11634 ], 11635 [ 11636 "type", 11637 "button", 11638 1, 11639 "thumbnailimg-btn", 11640 3, 11641 "click" 11642 ], 11643 [ 11644 1, 11645 "thumbnailimg", 11646 3, 11647 "src" 11648 ], 11649 [1, "refresh-
11649btn"], 11650 [ 11651 "ds-button-icon", 11652 "", 11653 "size", 11654 "large", 11655 3, 11656 "click" 11657 ], 11658 [3, "name"] 11659 ], 11660 template: function(e, n) { 11661 e & 1 && (l(0, "div", 2)(1, "div", 3, 0), f(3, JP, 2, 7, "video", 4), l(4, "div", 5), S("click", function(i) { 11662 return n.onCtaClick(i); 11663 }), d(), f(5, YP, 5, 6)(6, KP, 3, 3, "div", 6), d()()), e & 2 && (a(3), h(n.isScroll() ? 3 : -1), a(), p("vnDynamicHtml", n.videoData().ctaText), a(), h(n.isReplay() ? 5 : 6)); 11664 }, 11665 dependencies: [ 11666 na, 11667 Bn, 11668 Ee 11669 ], 11670 encapsulation: 2 11671 }); 11672 } 11673 return t; 11674 })(), fm = (() => { 11675 class t { 11676 containerInfo = m.required(); 11677 containerIndex = m(0); 11678 gameLauncher = Ga(); 11679 videoData = g(() => this.containerInfo().casinoVideo); 11680 teaserName = g(() => this.videoData()?.videoName || this.containerInfo().title || ""); 11681 isVideoTileV2 = g(() => this.containerInfo().videoView === es.V2); 11682 isMp4Video = g(() => this.videoData()?.videoType?.toLowerCase() === sn.Mp4); 11683 isCmsVideo = g(() => this.videoData()?.videoType?.toLowerCase() === sn.Cms); 11684 isGifSvg = g(() => { 11685 let e = this.videoData()?.videoType?.toLowerCase(); 11686 return e === sn.Gif || e === sn.Svg; 11687 }); 11688 backgroundStyle = g(() => { 11689 let e = this.videoData()?.backgroundImage; 11690 return e ? `linear-gradient(180deg, rgba(0, 0, 0, 0.3) 10%, rgba(0, 0, 0, 0.8) 100%), url(${e})` : null; 11691 }); 11692 launchGame() { 11693 this.gameLauncher.launchGame(this.videoData()?.gameLink, 1, this.teaserName(), this.containerIndex()); 11694 } 11695 static ɵfac = function(e) { 11696 return new (e || t)(); 11697 }; 11698 static ɵcmp = I({ 11699 type: t, 11700 selectors: [["cw-casino-video"]], 11701 inputs: { 11702 containerInfo: [1, "containerInfo"], 11703 containerIndex: [1, "containerIndex"] 11704 }, 11705 decls: 1, 11706 vars: 1, 11707 consts: [ 11708 [ 11709 1, 11710 "video-wrapper-container", 11711 3, 11712 "V2", 11713 "backgroundImage" 11714 ], 11715 [1, "video-wrapper-container"], 11716 [1, "casino-gifsvg-img-wrapper"], 11717 [1, "mp4video"], 11718 [1, "gifsvg_img"], 11719 [ 11720 3, 11721 "videoData", 11722 "containerInfo" 11723 ], 11724 [ 11725 3, 11726 "videoData", 11727 "teaserName", 11728 "isVideoTileV2", 11729 "containerIndex" 11730 ], 11731 [3, "videoData"], 11732 [ 11733 3, 11734 "videoData", 11735 "teaserName", 11736 "containerIndex" 11737 ], 11738 [ 11739 3, 11740 "launchGame", 11741 "videoData", 11742 "containerInfo" 11743 ] 11744 ], 11745 template: function(e, n) { 11746 if (e & 1 && f(0, tS, 6, 8, "div", 0), e & 2) { 11747 let i; 11748 h((i = n.videoData()) ? 0 : -1, i); 11749 } 11750 }, 11751 dependencies: [ 11752 hm, 11753 dm, 11754 mm, 11755 gm 11756 ], 11757 encapsulation: 2 11758 }); 11759 } 11760 return t; 11761 })(), vm = (() => { 11762 class t { 11763 static ɵfac = function(e) { 11764 return new (e || t)(); 11765 }; 11766 static ɵcmp = I({ 11767 type: t, 11768 selectors: [["cw-casino-video-skeleton"]], 11769 decls: 1, 11770 vars: 0, 11771 consts: [[1, "sk"]], 11772 template: function(e, n) { 11773 e & 1 && Pe(0, "div", 0); 11774 }, 11775 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{width:100%;flex:1 1 auto;min-height:0;border-radius:var(--%NS%semantic-radius-semi-rounded-lg);background:var(--%NS%semantic-color-surface-container-high-base)}"] 11776 }); 11777 } 11778 return t; 11779 })(), bm = (() => { 11780 class t { 11781 containerService = s(ie); 11782 containerMetadata = m.required(); 11783 containerIndex = m(0); 11784 containerInfo = Q(this.containerService.container$); 11785 isLoading = g(() => !this.containerInfo() && !this.containerService.hasError()); 11786 ngOnInit() { 11787 this.containerMetadata() && this.containerService.fetchAndSetContainer(this.containerMetadata()); 11788 } 11789 static ɵfac = function(e) { 11790 return new (e || t)(); 11791 }; 11792 static ɵcmp = I({ 11793 type: t, 11794 selectors: [["cw-container-casino-video"]], 11795 inputs: { 11796 containerMetadata: [1, "containerMetadata"], 11797 containerIndex: [1, "containerIndex"] 11798 }, 11799 features: [ce([ie])], 11800 decls: 2, 11801 vars: 1, 11802 consts: [ 11803 [1, "casino-video-width"], 11804 [3, "containerId"], 11805 [ 11806 3, 11807 "containerInfo", 11808 "containerIndex" 11809 ] 11810 ], 11811 template: function(e, n) { 11812 e & 1 && f(0, nS, 2, 2, "div", 0)(1, iS, 2, 1, "cw-lobby-container-placeholder", 1), e & 2 && h(n.containerInfo() ? 0 : n.isLoading() ? 1 : -1); 11813 }, 11814 dependencies: [ 11815 fm, 11816 st, 11817 vm 11818 ], 11819 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: 237px}@media only screen and (min-width:481px){[_nghost-%COMP%]{--%NS%cw-reserve-h: 311px}}.casino-video-width[_ngcontent-%COMP%]{max-width:1200px;margin:0 auto}"] 11820 }); 11821 } 11822 return t; 11823 })(), ct = { 11824 CATEGORY: "casino widgets", 11825 LABEL: "game thumbnail", 11826 CONTAINER_NAME: "game thumbnail", 11827 CONTAINER_ID: "game_thumbnail", 11828 EVENT_DETAILS_CARD: "thumbnail card", 11829 CONTENT_POSITION: 0 11830 }, Cm = (() => { 11831 class t { 11832 trackingAdapter = s(we); 11833 trackDisplay(e, n) { 11834 this.trackingAdapter.trigger({
11835 name: se.GameThumbnail, 11836 data: { 11837 [M.ComponentCategoryEvent]: ct.CATEGORY, 11838 [M.ComponentLabelEvent]: ct.LABEL, 11839 [M.ComponentActionEvent]: tn.LOAD, 11840 [M.ComponentPositionEvent]: e.gameId, 11841 [M.ComponentLocationEvent]: n.subNavId || B.NOT_APPLICABLE, 11842 [M.ComponentEventDetails]: ct.EVENT_DETAILS_CARD, 11843 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 11844 [M.ComponentContentPosition]: ct.CONTENT_POSITION, 11845 [M.ComponentCategoryType]: n.layoutId || B.NOT_APPLICABLE 11846 } 11847 }); 11848 } 11849 trackClick(e, n, i) { 11850 this.trackingAdapter.trigger({ 11851 name: se.GameThumbnail, 11852 data: { 11853 [M.ComponentCategoryEvent]: ct.CATEGORY, 11854 [M.ComponentLabelEvent]: ct.LABEL, 11855 [M.ComponentActionEvent]: ve.CLICK, 11856 [M.ComponentPositionEvent]: e.gameId, 11857 [M.ComponentLocationEvent]: n.subNavId || B.NOT_APPLICABLE, 11858 [M.ComponentEventDetails]: e.ctaText || ct.EVENT_DETAILS_CARD, 11859 [M.ComponentUrlClicked]: i || B.NOT_APPLICABLE, 11860 [M.ComponentContentPosition]: ct.CONTENT_POSITION, 11861 [M.ComponentCategoryType]: n.layoutId || B.NOT_APPLICABLE 11862 } 11863 }); 11864 } 11865 trackClose(e, n) { 11866 this.trackingAdapter.trigger({ 11867 name: se.GameThumbnail, 11868 data: { 11869 [M.ComponentCategoryEvent]: ct.CATEGORY, 11870 [M.ComponentLabelEvent]: ct.LABEL, 11871 [M.ComponentActionEvent]: ve.CLOSE, 11872 [M.ComponentPositionEvent]: e.gameId, 11873 [M.ComponentLocationEvent]: n.subNavId || B.NOT_APPLICABLE, 11874 [M.ComponentEventDetails]: ct.EVENT_DETAILS_CARD, 11875 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 11876 [M.ComponentContentPosition]: ct.CONTENT_POSITION, 11877 [M.ComponentCategoryType]: n.layoutId || B.NOT_APPLICABLE 11878 } 11879 }); 11880 } 11881 static ɵfac = function(e) { 11882 return new (e || t)(); 11883 }; 11884 static ɵprov = A({ 11885 token: t, 11886 factory: t.ɵfac, 11887 providedIn: "root" 11888 }); 11889 } 11890 return t; 11891 })(), Ha = { 11892 CONTAINER_NAME: "game thumbnail", 11893 CONTAINER_ID: "game_thumbnail", 11894 CONTAINER_TYPE: "widgets | game thumbnail" 11895 }, ds = "thumbnail", ym = (() => { 11896 class t { 11897 subNavId = m.required(); 11898 layoutId = m.required(); 11899 isTouch = m(!1); 11900 thumbnailClosed = j(); 11901 thumbnailService = s(Da); 11902 gameLaunchService = s(Qe); 11903 gameImageService = s(rt); 11904 thumbnailTracking = s(Cm); 11905 gameCatalogService = s(Oe); 11906 deviceService = s(J); 11907 window = s(pe); 11908 #e = s(X); 11909 trackedDisplays = /* @__PURE__ */ new Set(); 11910 thumbnail = g(() => this.thumbnailService.resolveThumbnail(this.subNavId(), this.layoutId())); 11911 isVisible = g(() => !!this.thumbnail()); 11912 imageUrl = g(() => { 11913 let e = this.thumbnail(); 11914 if (!e) return ""; 11915 let n = { gameId: e.gameId }; 11916 return this.gameImageService.getIconConfig(n).src; 11917 }); 11918 stickers = g(() => { 11919 let e = this.thumbnail(); 11920 return e?.sticker ? e.sticker.split(",").map((n) => n.trim()).filter((n) => n.length > 0) : []; 11921 }); 11922 usesFallbackImage = O(!1); 11923 constructor() { 11924 Z(() => { 11925 let e = this.isVisible(), n = this.thumbnail(), i = this.subNavId(); 11926 if (e && n && this.#e.isBrowser) { 11927 let r = `${i}_${n.gameId}`; 11928 this.trackedDisplays.has(r) || (this.trackedDisplays.add(r), this.thumbnailTracking.trackDisplay(n, this.buildTrackingContext())); 11929 } 11930 }); 11931 } 11932 onGameIconError() { 11933 this.usesFallbackImage.set(!0); 11934 } 11935 launchGame() { 11936 let e = this.thumbnail(); 11937 if (!e) return; 11938 let n = e.gameId; 11939 this.thumbnailTracking.trackClick(e, this.buildTrackingContext(), this.window.location.href), this.thumbnailService.dismiss(this.layoutId(), this.subNavId(), e.gameId), this.thumbnailClosed.emit(); 11940 let i = { 11941 game: { 11942 gameId: n, 11943 lobbyType: this.layoutId(), 11944 name: this.gameCatalogService.getGameName(n) ?? e.title, 11945 provider: this.gameCatalogService.getGameProvider(n) ?? e.provider ?? "" 11946 }, 11947 isTouch: this.deviceService.isTouch, 11948 gamePosition: 1, 11949 gridPosition: 0, 11950 categoryType: this.subNavId(), 11951 from: ds, 11952 replaceRouteInHistory: !1, 11953 isDemoLaunch: !1, 11954 gameLaunchedFrom: ds, 11955 gameContainer: Ha.CONTAINER_ID, 11956 gameSection: Ha.CONTAINER_NAME,
11957 isBackgroundImageLayerPresent: !0, 11958 gameContainerType: Ha.CONTAINER_TYPE, 11959 clickTimeStamp: Date.now() 11960 }; 11961 this.gameLaunchService.launchGame(i); 11962 } 11963 dismissThumbnail(e) { 11964 e.stopPropagation(); 11965 let n = this.thumbnail(); 11966 n && (this.thumbnailTracking.trackClose(n, this.buildTrackingContext()), this.thumbnailService.dismiss(this.layoutId(), this.subNavId(), n.gameId), this.thumbnailClosed.emit()); 11967 } 11968 buildTrackingContext() { 11969 return { 11970 subNavId: this.subNavId(), 11971 layoutId: this.layoutId() 11972 }; 11973 } 11974 static ɵfac = function(e) { 11975 return new (e || t)(); 11976 }; 11977 static ɵcmp = I({ 11978 type: t, 11979 selectors: [["cw-game-thumbnail"]], 11980 inputs: { 11981 subNavId: [1, "subNavId"], 11982 layoutId: [1, "layoutId"], 11983 isTouch: [1, "isTouch"] 11984 }, 11985 outputs: { thumbnailClosed: "thumbnailClosed" }, 11986 decls: 1, 11987 vars: 1, 11988 consts: [ 11989 [1, "casino-thumbnail-arrow-down"], 11990 [1, "casino-thumbnail-wrapper"], 11991 [ 11992 "role", 11993 "button", 11994 "tabindex", 11995 "0", 11996 1, 11997 "thumbnail-data", 11998 2, 11999 "display", 12000 "flex", 12001 "align-items", 12002 "center", 12003 3, 12004 "click", 12005 "keydown.enter", 12006 "keydown.space" 12007 ], 12008 [ 12009 1, 12010 "thumbnail-icon-div", 12011 "vthumbnail-inline" 12012 ], 12013 [ 12014 1, 12015 "thumbnail-title-wrapper", 12016 "vthumbnail-inline" 12017 ], 12018 [1, "thumbnail-title"], 12019 [1, "thumbnail-subtitle"], 12020 [ 12021 "role", 12022 "list", 12023 "aria-label", 12024 "VIP sticker badges", 12025 1, 12026 "thumbnail-sticker-wrapper" 12027 ], 12028 [ 12029 "ds-button", 12030 "", 12031 "variant", 12032 "flat", 12033 "kind", 12034 "tertiary", 12035 "size", 12036 "small", 12037 1, 12038 "thumbnail-ctalink", 12039 "vthumbnail-inline", 12040 3, 12041 "click", 12042 "wrapText" 12043 ], 12044 [1, "clear"], 12045 [ 12046 1, 12047 "thumbnail-close", 12048 2, 12049 "z-index", 12050 "0" 12051 ], 12052 [ 12053 "role", 12054 "button", 12055 "tabindex", 12056 "0", 12057 "aria-label", 12058 "Dismiss promoted game banner", 12059 3, 12060 "click", 12061 "keydown.enter", 12062 "keydown.space" 12063 ], 12064 [ 12065 "name", 12066 "theme-ex", 12067 "size", 12068 "18" 12069 ], 12070 [ 12071 "width", 12072 "100", 12073 "height", 12074 "100", 12075 "priority", 12076 "", 12077 1, 12078 "thumbnail-icon", 12079 3, 12080 "error", 12081 "ngSrc", 12082 "alt" 12083 ], 12084 [ 12085 1, 12086 "thumbnail-icon", 12087 "thumbnail-icon-fallback" 12088 ], 12089 [ 12090 "role", 12091 "listitem", 12092 1, 12093 "thumbnail-sticker", 12094 3, 12095 "color", 12096 "background" 12097 ], 12098 [ 12099 "role", 12100 "listitem", 12101 1, 12102 "thumbnail-sticker" 12103 ] 12104 ], 12105 template: function(e, n) { 12106 e & 1 && f(0, dS, 16, 16), e & 2 && h(n.isVisible() ? 0 : -1); 12107 }, 12108 dependencies: [ 12109 Zt, 12110 Ee, 12111 ke 12112 ], 12113 styles: [".thumbnail-ctalink.ds-button[_ngcontent-%COMP%]{--%NS%ds-button-hover-color-bg: transparent;--%NS%ds-button-bg: transparent;flex-shrink:0}.thumbnail-ctalink.ds-button[_ngcontent-%COMP%] .ds-btn-text{white-space:nowrap}"] 12114 }); 12115 } 12116 return t; 12117 })(), wm = 8, Pm = 32, Sm = 64, gs = (() => { 12118 class t { 12119 navigationService = s(he); 12120 deviceService = s(J); 12121 platform = s(X); 12122 hideMore = O(!0); 12123 moreNavResult = g(() => { 12124 let e = this.navigationService.navItems().filter((i) => !i.isHidden); 12125 if (!this.platform.isBrowser) return { 12126 visibleNavItems: e, 12127 moreNavItems: [] 12128 }; 12129 let n = this.deviceService.windowWidth(); 12130 return this.calculateMoreNavItems(e, n); 12131 }); 12132 visibleNavItems = g(() => this.moreNavResult().visibleNavItems); 12133 moreNavItems = g(() => this.moreNavResult().moreNavItems); 12134 mobileNavItems = g(() => this.navigationService.navItems().filter((e) => !e.isHidden)); 12135 showMoreButton = g(() => this.moreNavItems().length > 0); 12136 showMoreDropdown = g(() => !this.hideMore()); 12137 showMoreActive = g(() => this.moreNavItems().some((e) => this.navigationService.isActiveNav(e))); 12138 layoutId = g(() => this.navigationService.layout()?.id); 12139 toggleMoreDropdown() { 12140 this.hideMore.set(!this.hideMore()); 12141 } 12142 setMoreDropdownVisibility(e) { 12143 this.hideMore.set(e); 12144 } 12145 calculateMoreNavItems(e, n) { 12146 let i = n - Sm, r = 0, u = [], v = []; 12147 return e.forEach((P) => { 12148 if (r += this.estimateItemWidth(P.title), r <= i) { 12149 u.push(P); 12150 return; 12151 } 12152 v.push(P); 12153 }), { 12154 visibleNavItems: u, 12155 moreNavItems: v 12156 }; 12157 } 12158 estimateItemWidth(e) { 12159 return Pm + e.length * wm; 12160 } 12161 static ɵfac = function(e) { 12162 return new (e || t)(); 12163 }; 12164 static ɵprov = A({ 12165 token: t, 12166 factory: t.ɵfac 12167 }); 12168 } 12169 return t; 12170 })(), ms = { 12171 [ae.Bwin]: { 12172 inverse: !0, 12173 variant: "strong" 12174 }, 12175 [ae.BwinDark]: { 12176 inverse: !1, 12177 variant: "strong" 12178 }, 12179 [ae.Coral]: { 12180 inverse: !0, 12181 variant: "strong" 12182 }, 12183 [ae.MgmDice]: { 12184 inverse: !0, 12185 variant: "strong" 12186 }, 12187 [ae.Gamebookers]: { 12188 inverse: !0, 12189 variant: "strong" 12190 }, 12191 [ae.Gamebookers2]: { 12192 inverse: !0, 12193 variant: "strong" 12194 }, 12195 [ae.PartyPoker]: { 12196 inverse: !0, 12197 variant: "current" 12198 }, 12199 [ae.SportingbetBr]: { 12200 inverse: !1, 12201 variant: "subtle" 12202 }, 12203 [ae.BetbooBr]: { 12204 inverse: !1, 12205 variant: "subtle" 12206 } 12207 }, ps = { 12208 inverse: !1, 12209 variant: "subtle" 12210 }, us = { 12211 [ae.Bwin]: { 12212 inverse: !0, 12213 variant: "primary" 12214 }, 12215 [ae.BwinDark]: { 12216 inverse: !1, 12217 variant: "primary" 12218 }, 12219 [ae.Coral]: { 12220 inverse: !0, 12221 variant: "neutral" 12222 }, 12223 [ae.MgmDice]: { 12224 inverse: !0, 12225 variant: "neutral" 12226 }, 12227 [ae.Gamebookers]: { 12228 inverse: !0, 12229 variant: "neutral" 12230 }, 12231 [ae.Gamebookers2]: { 12232 inverse: !0, 12233 variant: "neutral" 12234 }, 12235 [ae.SportingbetBr]: { 12236 inverse: !1, 12237 variant: "neutral" 12238 }, 12239 [ae.BetbooBr]: { 12240 inverse: !1, 12241 variant: "neutral" 12242 } 12243 }, hs = { 12244 inverse: !1, 12245 variant: "primary" 12246 }
12246, Mm = ["scrollContainer"], Om = (t, o) => o.id, xm = 99, fs = 200, _m = "16", km = (() => { 12247 class t { 12248 navigationService = s(he); 12249 navigationTrackingService = s(ns); 12250 deviceService = s(J); 12251 platform = s(X); 12252 page = s(zt); 12253 scrollContainer = De("scrollContainer"); 12254 navItems = g(() => this.navigationService.navItems().filter((e) => !e.isHidden)); 12255 currentSubnav = this.navigationService.currentSubnav; 12256 isMobile = this.deviceService.isMobileWidth; 12257 pillVariant = g(() => (ms[this.page.theme] ?? ps).variant); 12258 pillInverse = g(() => (ms[this.page.theme] ?? ps).inverse); 12259 bubbleVariant = g(() => (us[this.page.theme] ?? hs).variant); 12260 bubbleInverse = g(() => (us[this.page.theme] ?? hs).inverse); 12261 iconSize = _m; 12262 showLeftArrow = O(!1); 12263 showRightArrow = O(!1); 12264 layoutId = g(() => this.navigationService.layout()?.id ?? ""); 12265 injector = s(gt); 12266 constructor() { 12267 Z(() => { 12268 this.navItems(), Se(() => { 12269 this.updateScrollArrows(); 12270 }, { injector: this.injector }); 12271 }); 12272 } 12273 cappedCount(e) { 12274 return Math.min(e, xm); 12275 } 12276 isActive(e) { 12277 return this.navigationService.isActiveNav(e); 12278 } 12279 onPillClick(e, n) { 12280 e.preventDefault(); 12281 let i = this.navItems().findIndex((r) => r.id === n.id); 12282 this.navigationTrackingService.trackSubnavClick({ 12283 navItem: n, 12284 navIndex: i, 12285 layoutId: this.layoutId(), 12286 navItems: this.navItems() 12287 }), this.navigationService.goTo(n.url); 12288 } 12289 scrollLeft() { 12290 this.scroll(!0); 12291 } 12292 scrollRight() { 12293 this.scroll(!1); 12294 } 12295 onScroll() { 12296 this.updateScrollArrows(); 12297 } 12298 scroll(e) { 12299 if (!this.platform.isBrowser) return; 12300 let n = this.scrollContainer()?.nativeElement; 12301 if (!n) return; 12302 let i = n.scrollLeft; 12303 i = e ? i - fs : i + fs, i = Math.max(i, 0), n.scrollLeft = i, this.updateScrollArrows(); 12304 } 12305 updateScrollArrows() { 12306 if (!this.platform.isBrowser) return; 12307 let e = this.scrollContainer()?.nativeElement; 12308 if (!e) return; 12309 let { scrollLeft: n, scrollWidth: i, clientWidth: r } = e; 12310 this.showLeftArrow.set(n > 0), this.showRightArrow.set(n + r < i - 1); 12311 } 12312 static ɵfac = function(e) { 12313 return new (e || t)(); 12314 }; 12315 static ɵcmp = I({ 12316 type: t, 12317 selectors: [["cw-pill-navigation"]], 12318 viewQuery: function(e, n) { 12319 e & 1 && He(n.scrollContainer, Mm, 5), e & 2 && Ue(); 12320 }, 12321 decls: 10, 12322 vars: 10, 12323 consts: [ 12324 ["scrollContainer", ""], 12325 [ 12326 "id", 12327 "casino-nav", 12328 1, 12329 "casino-nav", 12330 "pills-subnav", 12331 "enabled-desktop-icons" 12332 ], 12333 [ 12334 1, 12335 "category-container", 12336 "casino-mobile-epcot-navigation" 12337 ], 12338 [ 12339 1, 12340 "casino-carousel-bg", 12341 "left-sec" 12342 ], 12343 [ 12344 1, 12345 "casino-carousel-bg", 12346 "right-sec" 12347 ], 12348 [ 12349 1, 12350 "resizable-container", 12351 "epcot-nav", 12352 3, 12353 "scroll" 12354 ], 12355 [1, "nav-pills-wrapper"], 12356 [1, "nav-pills"], 12357 [ 12358 3, 12359 "id", 12360 "class", 12361 "active" 12362 ], 12363 [ 12364 "type", 12365 "button", 12366 "aria-label", 12367 "Scroll left", 12368 1, 12369 "left", 12370 "scroll-btn", 12371 "theme-left", 12372 3, 12373 "click" 12374 ], 12375 [ 12376 "type", 12377 "button", 12378 "aria-label", 12379 "Scroll right", 12380 1, 12381 "right", 12382 "scroll-btn", 12383 "theme-right", 12384 3, 12385 "click" 12386 ], 12387 [3, "id"], 12388 [ 12389 "ds-pill", 12390 "", 12391 3, 12392 "click", 12393 "variant", 12394 "inverse", 12395 "selected", 12396 "href" 12397 ], 12398 ["slot", "start"], 12399 [ 12400 3, 12401 "size", 12402 "name" 12403 ], 12404 ["slot", "end"], 12405 [ 12406 "slot", 12407 "end", 12408 "size", 12409 "large", 12410 3, 12411 "variant", 12412 "inverse" 12413 ] 12414 ], 12415 template: function(e, n) { 12416 e & 1 && (l(0, "nav", 1)(1, "div", 2), f(2, gS, 2, 0, "div", 3), f(3, mS, 2, 0, "div", 4), l(4, "div", 5, 0), S("scroll", function() { 12417 return n.onScroll(); 12418 }), l(6, "div", 6)(7, "div", 7), D(8, hS, 7, 13, "div", 8, Om), d()()()()()), e & 2 && (L("pills-subnav-mobile", n.isMobile()), a(), L("casino-non-touch-device", !n.isMobile())("casino-touch-device", n.isMobile()), a(), h(!n.isMobile() && n.showLeftArrow() ? 2 : -1), a(), h(!n.isMobile() && n.showRightArrow() ? 3 : -1), a(), L("casino-touch-device", n.isMobile()), a(4), R(n.navItems())
12418); 12419 }, 12420 dependencies: [ 12421 Vy, 12422 Gl, 12423 Ee 12424 ], 12425 styles: ["[_nghost-%COMP%]{display:block}#casino-nav.pills-subnav[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-3xl)}#casino-nav.pills-subnav.pills-subnav-mobile[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-xl) 0 0}.pill-item[_ngcontent-%COMP%]{cursor:pointer}.nav-pills-wrapper[_ngcontent-%COMP%]{width:100%}"] 12426 }); 12427 } 12428 return t; 12429 })(), vs = (t) => ({ navItem: t }), qa = (t, o) => o.url, Im = 99, Tm = (() => { 12430 class t { 12431 navigationBarService = s(gs); 12432 navigationService = s(he); 12433 deviceService = s(J); 12434 headerService = s(hC); 12435 navigationTrackingService = s(ns); 12436 window = s(pe); 12437 document = s(Ge); 12438 gameThumbnailService = s(Da); 12439 elementRef = s(tt); 12440 configProviderService = s(V); 12441 #e = s(X); 12442 cappedCount(e) { 12443 return Math.min(e, Im); 12444 } 12445 subNavConfigEnableDesktopIcon = this.navigationService.configs?.enableDesktopIcon; 12446 enableTopNavStyling = this.navigationService.configs?.enableTopNavStyling; 12447 enableSubNav = this.navigationService.enableSubNav; 12448 navItems = this.navigationService.navItems; 12449 visibleNavItems = this.navigationBarService.visibleNavItems; 12450 moreNavItems = this.navigationBarService.moreNavItems; 12451 mobileNavItems = this.navigationBarService.mobileNavItems; 12452 showMoreButton = this.navigationBarService.showMoreButton; 12453 showMoreDropdown = this.navigationBarService.showMoreDropdown; 12454 showMoreActive = this.navigationBarService.showMoreActive; 12455 layoutId = this.navigationBarService.layoutId; 12456 isMobile = this.deviceService.isMobileWidth; 12457 enablePillsSubNavigation = g(() => this.configProviderService.provideSubNavigationConfig()?.enablePillsSubNavigation ?? !1); 12458 currentSubnav = this.navigationService.currentSubnav; 12459 visibleThumbnailIds = g(() => { 12460 let e = this.currentSubnav(); 12461 return !e || !e.isDefault ? [] : this.mobileNavItems().filter((n) => this.hasThumbnail(n.id)).map((n) => n.id); 12462 }); 12463 getArrowPositionFor(e) { 12464 if (!this.#e.isBrowser) return 0; 12465 let n = this.visibleThumbnailIds().length > 1 ? this.currentSubnav()?.id ?? e : e, i = this.elementRef.nativeElement.querySelector(`[data-subnav-id="${n}"]`); 12466 if (!i) return 0; 12467 let r = i.getBoundingClientRect().left + i.clientWidth / 2 - 10, u = this.window.innerWidth - 20; 12468 return Math.max(10, Math.min(r, u)); 12469 } 12470 hasThumbnail(e) { 12471 let n = this.layoutId() || ""; 12472 return this.gameThumbnailService.resolveThumbnail(e, n) != null; 12473 } 12474 hasHeaderElement = Q(this.headerService.whenReady.pipe(Me(() => this.headerService.hasHeaderElement())), { initialValue: !1 }); 12475 headerElementHeight = g(() => this.hasHeaderElement() ? this.headerService.headerElementRect().height : 0); 12476 subNavigationTop = g(() => this.headerElementHeight()); 12477 isActiveNav(e) { 12478 return this.navigationService.isActiveNav(e); 12479 } 12480 goTo(e, n) { 12481 e.preventDefault(); 12482 let i = this.navItems().findIndex((r) => r.id === n.id); 12483 this.navigationTrackingService.trackSubnavClick({ 12484 navItem: n, 12485 navIndex: i, 12486 layoutId: this.layoutId() || "", 12487 navItems: this.navItems() 12488 }), this.navigationService.goTo(n.url); 12489 } 12490 moreHover(e) { 12491 this.deviceService.isTouch || this.navigationBarService.setMoreDropdownVisibility(e); 12492 } 12493 moreMouseLeave() { 12494 this.navigationBarService.setMoreDropdownVisibility(!0); 12495 } 12496 overlayMouseEnter() { 12497 this.navigationBarService.setMoreDropdownVisibility(!1); 12498 } 12499 moreClick(e) { 12500 e.preventDefault(), this.navigationBarService.toggleMoreDropdown(), e.stopPropagation(); 12501 } 12502 hideMoreNavDropdown(e) { 12503 this.navigationBarService.setMoreDropdownVisibility(e); 12504 } 12505 constructor() { 12506 Se(() => { 12507 this.document.addEventListener("click", () => { 12508 this.hideMoreNavDropdown(!0); 12509 }); 12510 }); 12511 } 12512 static ɵfac = function(e) { 12513 return new (e || t)(); 12514 }; 12515 static ɵcmp = I({ 12516 type: t, 12517 selectors: [["cw-navigation-bar"]], 12518 hostVars: 2, 12519 hostBindings: function(e, n) { 12520 e & 2 && k("top", n.subNavigationTop(), "px"); 12521 }, 12522 features: [ce([gs])], 12523 decls: 1, 12524 vars: 1, 12525 consts: [ 12526 ["mobileNavBadge", ""], 12527 [ 12528 "id", 12529 "casino-nav", 12530 3, 12531 "enabled-desktop-icons", 12532 "top-nav-newstyling", 12533 "padding-right" 12534 ], 12535 ["id", "casino-nav"], 12536 [ 12537 1, 12538 "category-container", 12539 "casino-desktop-navigation" 12540 ], 12541 [1, "resizable-container"], 12542 [ 12543 "id", 12544 "deskNav", 12545 1, 12546 "navigation-main" 12547 ], 12548 [1, "deskNav-ul"], 12549 [ 12550 1, 12551 "nav-li", 12552 3, 12553 "active" 12554 ], 12555 [ 12556 "tabindex", 12557 "0", 12558 1, 12559 "nav-li", 12560 "more-categories", 12561 3, 12562 "active-more" 12563 ], 12564 [1, "nav-li"], 12565 [ 12566 3, 12567 "click", 12568 "href" 12569 ], 12570 [ 12571 "aria-hidden", 12572 "true", 12573 1, 12574 "icon", 12575 3, 12576 "ngClass" 12577 ], 12578 [1, "name"], 12579 ["size", "large"], 12580 [1, "thumbnail-newgame"], 12581 [ 12582 3, 12583 "subNavId", 12584 "layoutId" 12585 ], 12586 [ 12587 "tabindex", 12588 "0", 12589 1, 12590 "nav-li", 12591 "more-categories", 12592 3, 12593 "click", 12594 "mouseenter", 12595 "mouseleave" 12596 ], 12597 [ 12598 1, 12599 "icon", 12600 "more-desktop-icon" 12601 ], 12602 [ 12603 "id", 12604 "more-select", 12605 1, 12606 "more-select" 12607 ], 12608 [ 12609 "id", 12610 "more-select", 12611 1, 12612 "more-select", 12613 3, 12614 "mouseenter", 12615 "mouseleave" 12616 ], 12617 [ 12618 3, 12619 "active", 12620 "border-nav-active" 12621 ], 12622 [1, "more-select-item-content"], 12623 [ 12624 1, 12625 "category-container", 12626 "casino-mobile-navigation" 12627 ], 12628 [3, "href"], 12629 [ 12630 1, 12631 "icon", 12632 3, 12633 "ngClass" 12634 ], 12635 [ 12636 1, 12637 "badge", 12638 "badge-offset", 12639 "badge-t-r" 12640 ], 12641 [1, "sub-navigation-name"], 12642 [ 12643 3, 12644 "ngTemplateOutlet", 12645 "ngTemplateOutletContext" 12646 ], 12647 [ 12648 1, 12649 "casino-mobile-thumbnail-wrapper", 12650 "with" 12651 ], 12652 [ 12653 1,
12654 "casino-thumbnail-mobile", 12655 "thumbnailAnimate" 12656 ], 12657 [ 12658 "aria-hidden", 12659 "true", 12660 1, 12661 "casino-thumbnail-arrow-down-mobile" 12662 ], 12663 [ 12664 3, 12665 "subNavId", 12666 "layoutId", 12667 "isTouch" 12668 ] 12669 ], 12670 template: function(e, n) { 12671 e & 1 && f(0, zS, 3, 2), e & 2 && h(n.enableSubNav() ? 0 : -1); 12672 }, 12673 dependencies: [ 12674 At, 12675 mt, 12676 Gl, 12677 ym, 12678 km 12679 ], 12680 styles: ["[_nghost-%COMP%]{position:sticky;display:block;z-index:5;top:0}.nav-li[_ngcontent-%COMP%]{position:relative}.nav-li[_ngcontent-%COMP%] ds-notification-bubble[_ngcontent-%COMP%]{position:absolute;top:0;right:0}#more-select[_ngcontent-%COMP%] .more-select-item-content[_ngcontent-%COMP%]{display:flex;align-items:center;gap:4px}#more-select[_ngcontent-%COMP%] .more-select-item-content[_ngcontent-%COMP%] ds-notification-bubble[_ngcontent-%COMP%]{position:relative;top:auto;right:auto;flex-shrink:0}"], 12681 changeDetection: 1 12682 }); 12683 } 12684 return t; 12685 })(), Nm = .01, Ja = (() => { 12686 class t { 12687 jackpotDataService = s(on); 12688 jackpotConfigService = s(Na); 12689 currencyFormatter = s(mg); 12690 timerService = s(de); 12691 ngZone = s(bn); 12692 platform = s(X); 12693 destroyRef = s(q); 12694 state = O(/* @__PURE__ */ new Map()); 12695 amounts = this.state.asReadonly(); 12696 config = Q(this.jackpotConfigService.getJackpotConfig(), { initialValue: null }); 12697 ticking = g(() => this.config()?.ticking ?? null); 12698 tickerId = null; 12699 constructor() { 12700 this.jackpotDataService.jackpotFeedObservable.pipe(z(this.destroyRef)).subscribe((e) => { 12701 e && this.syncBaseAmounts(e); 12702 }), Z(() => { 12703 let e = this.ticking(); 12704 this.stopTicker(), this.platform.isBrowser && e?.enableTicking && e.interval > 0 && this.startTicker(e); 12705 }), this.destroyRef.onDestroy(() => this.stopTicker()); 12706 } 12707 formattedAmount(e) { 12708 return this.state().get(this.key(e))?.formatted; 12709 } 12710 numericAmount(e) { 12711 return this.state().get(this.key(e))?.numeric; 12712 } 12713 key(e) { 12714 return (e ?? "").toLowerCase(); 12715 } 12716 syncBaseAmounts(e) { 12717 let n = /* @__PURE__ */ new Map(); 12718 e.forEach((i) => { 12719 let r = this.key(i.jackpotName); 12720 if (!r || n.has(r)) return; 12721 let u = this.currencyFormatter.extractCurrencyInfo(i.amount), v = this.currencyFormatter.parseNumericValue(i.amount); 12722 n.set(r, { 12723 numeric: v, 12724 currency: u, 12725 formatted: this.currencyFormatter.format(v, u) 12726 }); 12727 }), this.state.set(n); 12728 } 12729 startTicker(e) { 12730 this.tickerId = this.timerService.setIntervalOutsideAngularZone(() => { 12731 this.ngZone.run(() => this.tick(e.tickIncrement)); 12732 }, e.interval); 12733 } 12734 tick(e) { 12735 let n = this.state(); 12736 if (n.size === 0) return; 12737 let i = /* @__PURE__ */ new Map();
12738 n.forEach((r, u) => { 12739 let v = r.numeric + e * Nm; 12740 i.set(u, { 12741 numeric: v, 12742 currency: r.currency, 12743 formatted: this.currencyFormatter.format(v, r.currency) 12744 }); 12745 }), this.state.set(i); 12746 } 12747 stopTicker() { 12748 this.tickerId != null && (this.timerService.clearInterval(this.tickerId), this.tickerId = null); 12749 } 12750 static ɵfac = function(e) { 12751 return new (e || t)(); 12752 }; 12753 static ɵprov = A({ 12754 token: t, 12755 factory: t.ɵfac, 12756 providedIn: "root" 12757 }); 12758 } 12759 return t; 12760 })(), bs = (function(t) { 12761 return t.Left = "left", t.Right = "right", t; 12762 })(bs || {}), Ya = (() => { 12763 class t { 12764 configProviderService = s(V); 12765 filterJpGroup(e, n) { 12766 let i = [], r = e.filter((u) => u.jackpotGroupName === n); 12767 return r && r[0]?.gamesAvailable && (i = r[0]?.gamesAvailable), i; 12768 } 12769 filterGames(e, n) { 12770 let i = []; 12771 e.forEach((u) => { 12772 n.forEach((v) => { 12773 u.game === v.gameId && i.push(v); 12774 }); 12775 }); 12776 let r = n.filter(({ gameId: u }) => !i.some(({ gameId: v }) => v === u)); 12777 return i.concat(r); 12778 } 12779 getLTileFontFamily(e) { 12780 let n = this.configProviderService.provideGlobalConfig().lobbyConfigurations.lobbyTileFontFamily; 12781 return String(n || ""); 12782 } 12783 getsubCategoryTextColor(e) { 12784 let n = this.configProviderService.provideGlobalConfig().lobbyConfigurations.subCategoryTextColor; 12785 return String(n || ""); 12786 } 12787 static ɵfac = function(e) { 12788 return new (e || t)(); 12789 }; 12790 static ɵprov = A({ 12791 token: t, 12792 factory: t.ɵfac, 12793 providedIn: "root" 12794 }); 12795 } 12796 return t; 12797 })(), Jb(), qn = (() => { 12798 let t = class al { 12799 enabled; 12800 liveCasinoApiFeedInterval; 12801 flagUrlPattern; 12802 avatarIcon; 12803 enableIconsForAll; 12804 enableFlagIconForEvolution; 12805 displayPlaytechBackgroundImage; 12806 displayPlaytechDealerImage; 12807 enableLiveCasinoRedesign; 12808 showActivePlayerCount; 12809 static ɵfac = function(e) { 12810 return new (e || al)(); 12811 }; 12812 static ɵprov = A({ 12813 token: al, 12814 factory: function(e) { 12815 let n = null; 12816 return e ? n = new e() : n = BS(Eb(HC)), n; 12817 }, 12818 providedIn: "root" 12819 }); 12820 }; 12821 return t = Zb([VC({ 12822 key: "csLiveCasinoApi", 12823 product: en.CASINO 12824 })], t), t; 12825 })(), kn = (() => { 12826 class t { 12827 platform = s(X); 12828 convertToClientTimeZone(e, n) { 12829 let i = this.getClientTimeZoneSeconds(e, n); 12830 return this.formatTimeFromSeconds(i); 12831 } 12832 getClientTimeZoneSeconds(e, n) { 12833 let i = this.getSecondsFromTimeString(e), r = this.getUTCSeconds(i, n); 12834 return this.platform.isBrowser ? r - (/* @__PURE__ */ new Date()).getTimezoneOffset() * 60 : r; 12835 } 12836 getUTCSeconds(e, n) { 12837 return e - this.getOffsetFromTimeZoneSeconds(n); 12838 } 12839 getOffsetFromTimeZoneSeconds(e) { 12840 return e === "UTC" || !this.platform.isBrowser ? 0 : (/* @__PURE__ */ new Date()).getTimezoneOffset() * -60; 12841 } 12842 getSecondsFromTimeString(e) { 12843 if (!e) return 0; 12844 let [n, i, r] = e.split(":"), u = n ? Number(n) : 0, v = i ? Number(i) : 0, P = r ? Number(r) : 0; 12845 return u * 3600 + v * 60 + P; 12846 } 12847 formatTimeFromSeconds(e) { 12848 let n = Math.floor(e / 3600), i = Math.floor((e - n * 3600) / 60), r = e - n * 3600 - i * 60; 12849 return this.pad(n) + ":" + this.pad(i) + ":" + this.pad(r); 12850 } 12851 getTimerStartInstance(e, n) { 12852 if (!this.platform.isBrowser) return null; 12853 let i = this.convertToClientTimeZone(e, n), r = this.getSecondsFromTimeString(i), u = /* @__PURE__ */ new Date(), v = r - (u.getHours() * 3600 + u.getMinutes() * 60 + u.getSeconds()); 12854 return v < 0 ? null : this.formatTimeFromSeconds(v); 12855 } 12856 pad(e) { 12857 return e ? e < 10 ? "0" + e : String(e) : "00"; 12858 } 12859 static ɵfac = function(e) { 12860 return new (e || t)(); 12861 }; 12862 static ɵprov = A({ 12863 token: t, 12864 factory: t.ɵfac, 12865 providedIn: "root" 12866 }); 12867 } 12868 return t; 12869 })(), Tt = (() => { 12870 class t { 12871 apiService = s(Ae); 12872 timerService = s(de); 12873 liveCasinoConfig = s(qn); 12874 timeZoneService = s(kn); 12875 destroyRef = s(q); 12876 platform = s(X); 12877 liveGamesMap = O(/* @__PURE__ */ new Map()); 12878 sitecoreDataSignal = O(null); 12879 feedLoadedSignal = O(!1); 12880 sitecore = this.sitecoreDataSignal.asReadonly(); 12881 liveGames = this.liveGamesMap.asReadonly(); 12882 feedLoaded = this.feedLoadedSignal.asReadonly(); 12883 pollInterval; 12884 constructor() { 12885 this.destroyRef.onDestroy(() => this.stopFeed()); 12886 } 12887 getLiveGameInfo(e) { 12888 return this.liveGamesMap().get(e.toLowerCase()); 12889 } 12890 reorderLiveGames(e) { 12891 if (!this.liveCasinoConfig.enabled) return null; 12892 let n = this.liveGames(); 12893 if (!n.size) return null; 12894 let i = [], r = []; 12895 for (let u of e) { 12896 let v = n.get(u.gameId.toLowerCase()); 12897 if (!v || !v.gameType) { 12898 i.push(u); 12899 continue; 12900 } 12901 let P = ""; 12902 v.tableStatus && v.countdown?.type?.toLowerCase() === "bounded" && v.countdown?.time && (P = this.timeZoneService.getTimerStartInstance(v.countdown.time + ":00", "UTC") || ""), wi(v, !1, P) ? i.push(u) : r.push(u); 12903 } 12904 return [...i, ...r]; 12905 } 12906 startFeed() { 12907 !this.platform.isBrowser || !this.liveCasinoConfig.enabled || this.pollInterval === void 0 && (this.fetchData(!0), this.pollInterval = this.timerService.setIntervalOutsideAngularZone(() => { 12908 this.fetchData(!1); 12909 }, this.liveCasinoConfig.liveCasinoApiFeedInterval)); 12910 } 12911 stopFeed() { 12912 this.pollInterval !== void 0 && (this.timerService.clearInterval(this.pollInterval), this.pollInterval = void 0), this.liveGamesMap.set(/* @__PURE__ */ new Map()), this.sitecoreDataSignal.set(null), this.feedLoadedSignal.set(!1); 12913 } 12914 fetchData(e) { 12915 this.apiService.get("livecasino/getdata", { isSitecoreInfoRequired: e }).pipe(et(1), z(this.destroyRef)).subscribe({ 12916 next: (n) => this.processResponse(n, e), 12917 error: () => {} 12918 }); 12919 } 12920 processResponse(e, n) { 12921 if (!e?.liveCasinoApiDataItems?.length) return; 12922 let i = new Map(this.liveGamesMap());
12923 e.liveCasinoApiDataItems.forEach((r) => { 12924 if (!r?.gamevariantname) return; 12925 let u = { 12926 gamevariantname: r.gamevariantname, 12927 gameType: r.gameType, 12928 vendorName: r.vendorname, 12929 tableStatus: r.tableStatus, 12930 countdown: r.countdown, 12931 betLimits: r.betLimits, 12932 players: r.players, 12933 results: r.results, 12934 seatsTaken: r.seatsTaken ?? (r.gameType?.toLowerCase() === "blackjack" ? [] : []), 12935 dealerInfo: r.dealerInfo, 12936 tableName: r.tableName, 12937 language: r.language 12938 }; 12939 i.set(r.gamevariantname.toLowerCase(), u); 12940 }), this.liveGamesMap.set(i), this.feedLoadedSignal.set(!0), n && e.liveCasinoApiItemSitecoreData && this.sitecoreDataSignal.set(e.liveCasinoApiItemSitecoreData); 12941 } 12942 static ɵfac = function(e) { 12943 return new (e || t)(); 12944 }; 12945 static ɵprov = A({ 12946 token: t, 12947 factory: t.ɵfac, 12948 providedIn: "root" 12949 }); 12950 } 12951 return t; 12952 })(), Lm = { 12953 "new games": "newgame", 12954 newgame: "newgame", 12955 jackpot: "jackpot", 12956 "targeted promotions": "promo", 12957 "big winners": "promo", 12958 "marketing flexible": "promo", 12959 promo_marketing_bigwinner: "promo", 12960 livecasinonewsfeeditem: "live-dealer" 12961 }, Cs = "NewsFeed", ys = { 12962 CONTAINER_ID: "newsfeed", 12963 CONTAINER_TYPE: "newsfeed | newsfeed carousel" 12964 }, Ti = (() => { 12965 class t { 12966 gameLaunchAggregator = s(Qe); 12967 deviceService = s(J); 12968 gameCatalogService = s(Oe); 12969 navigationService = s(he); 12970 launch(e, n, i, r = 0) { 12971 let u = e.gameId; 12972 if (!u) return; 12973 let v = { 12974 game: { 12975 gameId: u, 12976 name: this.gameCatalogService.getGameName(u) ?? e.name ?? void 0, 12977 provider: this.gameCatalogService.getGameProvider(u) ?? "", 12978 lobbyType: i 12979 }, 12980 isTouch: this.deviceService.isTouch, 12981 gamePosition: n + 1, 12982 gridPosition: Lr(r), 12983 categoryType: this.navigationService.currentSubnav()?.id || i, 12984 from: Cs, 12985 isDemoLaunch: !1, 12986 gameLaunchedFrom: Cs, 12987 gameContainer: ys.CONTAINER_ID, 12988 gameContainerType: ys.CONTAINER_TYPE, 12989 isBackgroundImageLayerPresent: !1, 12990 isLive: !1, 12991 clickTimeStamp: Date.now() 12992 }; 12993 this.gameLaunchAggregator.launchGame(v); 12994 } 12995 static ɵfac = function(e) { 12996 return new (e || t)(); 12997 }; 12998 static ɵprov = A({ 12999 token: t, 13000 factory: t.ɵfac, 13001 providedIn: "root" 13002 }); 13003 } 13004 return t; 13005 })(), $e = { 13006 CATEGORY: "casino widgets", 13007 LABEL: "newsfeed", 13008 EVENT_DETAILS_LOAD: "newsfeed carousel", 13009 NOT_APPLICABLE: B.NOT_APPLICABLE 13010 }, Jn = (() => { 13011 class t { 13012 trackingAdapter = s(we); 13013 navigationService = s(he); 13014 trackLoad(e, n) { 13015 this.trackingAdapter.trigger({ 13016 name: se.CasinoNewsfeed, 13017 data: { 13018 [M.ComponentCategoryEvent]: $e.CATEGORY, 13019 [M.ComponentLabelEvent]: $e.LABEL, 13020 [M.ComponentActionEvent]: tn.LOAD, 13021 [M.ComponentPositionEvent]: $e.NOT_APPLICABLE, 13022 [M.ComponentLocationEvent]: this.navigationService.currentSubnav()?.id || $e.NOT_APPLICABLE, 13023 [M.ComponentEventDetails]: $e.EVENT_DETAILS_LOAD, 13024 [M.ComponentUrlClicked]: $e.NOT_APPLICABLE, 13025 [M.ComponentContentPosition]: Lr(n), 13026 [M.ComponentCategoryType]: e || $e.NOT_APPLICABLE 13027 } 13028 }); 13029 } 13030 trackItemClick(e, n, i) { 13031 this.trackingAdapter.trigger({ 13032 name: se.CasinoNewsfeed, 13033 data: { 13034 [M.ComponentCategoryEvent]: $e.CATEGORY, 13035 [M.ComponentLabelEvent]: $e.LABEL, 13036 [M.ComponentActionEvent]: ve.CLICK, 13037 [M.ComponentPositionEvent]: $e.NOT_APPLICABLE, 13038 [M.ComponentLocationEvent]: this.navigationService.currentSubnav()?.id || $e.NOT_APPLICABLE, 13039 [M.ComponentEventDetails]: e.gameId || e.header || e.jackpotGroupName || $e.NOT_APPLICABLE, 13040 [M.ComponentUrlClicked]: e.link || $e.NOT_APPLICABLE, 13041 [M.ComponentContentPosition]: Lr(n), 13042 [M.ComponentCategoryType]: i || $e.NOT_APPLICABLE 13043 } 13044 }); 13045 } 13046 static ɵfac = function(e) { 13047 return new (e || t)(); 13048 }; 13049 static ɵprov = A({ 13050 token: t, 13051 factory: t.ɵfac, 13052 providedIn: "root" 13053 }); 13054 } 13055 return t; 13056 })(), Gm = (() => { 13057 class t { 13058 item = m.required(); 13059 index = m.required(); 13060 layout = m(""); 13061 containerIndex = m(0); 13062 attributes = m.required(); 13063 launchService = s(Ti); 13064 tracking = s(Jn); 13065 jackpotDataService = s(on); 13066 gameCatalog = s(Oe); 13067 destroyRef = s(q); 13068 jackpotTick = O(0); 13069 constructor() { 13070 this.jackpotDataService.jackpotFeedObservable.pipe(z(this.destroyRef)).subscribe(() => this.jackpotTick.update((e) => e + 1)); 13071 } 13072 jackpotGroup = g(() => { 13073 this.jackpotTick(); 13074 let e = this.item().jackpotGroupName?.toLowerCase(); 13075 if (!e) return; 13076 let n = this.jackpotDataService.getJackpotData(); 13077 if (n) return Object.values(n).find((i) => i.jackpotGroupName?.toLowerCase() === e); 13078 }); 13079 matchedGame = g(() => { 13080 let e = this.item().gameId, n = this.jackpotGroup(); 13081 if (!(!e || !n)) return n.gamesAvailable?.find((i) => i.game === e); 13082 }); 13083 showJackpotItem = g(() => !!this.jackpotGroup()?.amount && !!this.matchedGame()); 13084 jackpotAmount = g(() => this.jackpotGroup()?.amount || this.item().value || ""); 13085 jackpotHeader = g(() => this.item().header || this.item().jackpotGroupName || ""); 13086 gameName = g(() => { 13087 let e = this.item().gameId; 13088 return this.gameCatalog.games(), this.item().name || (e ? this.gameCatalog.getGameName(e) : "") || this.item().subHeader || this.item().subTitle || ""; 13089 }); 13090 onClick() { 13091 this.tracking.trackItemClick(this.item(), this.containerIndex(), this.layout()), this.launchService.launch(this.item(), this.index(), this.layout(), this.containerIndex()); 13092 } 13093 static ɵfac = function(e) { 13094 return new (e || t)(); 13095 }; 13096 static ɵcmp = I({ 13097 type: t, 13098 selectors: [["cw-news-feed-jackpot"]], 13099 inputs: { 13100 item: [1, "item"], 13101 index: [1, "index"], 13102 layout: [1, "layout"], 13103 containerIndex: [1, "containerIndex"], 13104 attributes: [1, "attributes"] 13105 }, 13106 decls: 1, 13107 vars: 1, 13108 consts: [ 13109 [ 13110 "role", 13111 "button", 13112 "tabindex", 13113 "0", 13114 1, 13115 "casino-news-feed-item-wrapper", 13116 3, 13117 "border-color", 13118 "background-color" 13119 ], 13120 [ 13121 "role", 13122 "button", 13123 "tabindex", 13124 "0", 13125 1, 13126 "casino-news-feed-item-wrapper", 13127 3, 13128 "click", 13129 "keydown.enter", 13130 "keydown.space" 13131 ], 13132 [ 13133 1, 13134 "casino-news-feed-icon-v2", 13135 "casino-news-valign" 13136 ], 13137 [ 13138 1, 13139 "casino-news-feed-content-v2", 13140 "casino-news-valign" 13141 ], 13142 [1, "news-feed-title-v2"], 13143 [1, "news-feed-name-v2"], 13144 [ 13145 1, 13146 "news-feed-jackpot-v2", 13147 "casino-news-valign" 13148 ] 13149 ], 13150 template: function(e, n) { 13151 e & 1 && f(0, $S, 9, 15, "div", 0), e & 2 && h(n.showJackpotItem() ? 0 : -1); 13152 }, 13153 encapsulation: 2 13154 }); 13155 } 13156 return t; 13157 })(), ws = (() => { 13158 class t { 13159 transform(e) { 13160 return e && e > 0 ? String(e) : null; 13161 } 13162 static ɵfac = function(e) { 13163 return new (e || t)(); 13164 }; 13165 static ɵpipe = xo({ 13166 name: "playersCount", 13167 type: t, 13168 pure: !0 13169 }); 13170 } 13171 return t; 13172 })(), Ni = [ 13173 ue.Landscape, 13174 ue.SuperSquare, 13175 ue.SuperRectangle 13176 ], Li = (() => { 13177 class t { 13178 timerService = s(de); 13179 timeZoneService = s(kn); 13180 destroyRef = s(q); 13181 platform = s(X); 13182 startTime = m.required(); 13183 showTimer = m(!0); 13184 showDays = m(!1); 13185 daysDisplayText = m(""); 13186 timerEnd = j(); 13187 displayTime = O(""); 13188 timerInstance; 13189 constructor() { 13190 this.destroyRef.onDestroy(() => this.clearTimer()); 13191 } 13192 ngOnChanges() { 13193 this.clearTimer(), this.displayTime.set(this.startTime()), this.platform.isBrowser && (this.timerInstance = this.timerService.setIntervalOutsideAngularZone(() => { 13194 let e = this.timeZoneService.getSecondsFromTimeString(this.displayTime()); 13195 if (e === 0) { 13196 this.clearTimer(), this.timerEnd.emit(!0); 13197 return; 13198 } 13199 this.displayTime.set(this.timeZoneService.formatTimeFromSeconds(e - 1)); 13200 }, 1e3)); 13201 } 13202 time = g(() => { 13203 if (!this.showDays()) return this.displayTime(); 13204 let e = this.timeZoneService.getSecondsFromTimeString(this.displayTime()), n = Math.ceil(e / 86400); 13205 return n > 1 ? n - 1 + (this.daysDisplayText() ? " " + this.daysDisplayText() : "")
13205: this.displayTime(); 13206 }); 13207 clearTimer() { 13208 this.timerInstance !== void 0 && (this.timerService.clearInterval(this.timerInstance), this.timerInstance = void 0); 13209 } 13210 static ɵfac = function(e) { 13211 return new (e || t)(); 13212 }; 13213 static ɵcmp = I({ 13214 type: t, 13215 selectors: [["cw-lc-timer"]], 13216 inputs: { 13217 startTime: [1, "startTime"], 13218 showTimer: [1, "showTimer"], 13219 showDays: [1, "showDays"], 13220 daysDisplayText: [1, "daysDisplayText"] 13221 }, 13222 outputs: { timerEnd: "timerEnd" }, 13223 features: [_o], 13224 decls: 1, 13225 vars: 1, 13226 template: function(e, n) { 13227 e & 1 && f(0, WS, 1, 1), e & 2 && h(n.showTimer() ? 0 : -1); 13228 }, 13229 encapsulation: 2 13230 }); 13231 } 13232 return t; 13233 })(), Ps = (t) => ({ color: t }), Em = () => ({}), Ut = (function(t) { 13234 return t.Green = "Last_Results_evolution_Vendor_Green_Color_Redesign", t.Red = "Last_Results_evolution_Vendor_Red_Color_Redesign", t.Black = "Last_Results_evolution_Vendor_Black_Color_Redesign", t; 13235 })(Ut || {}), Ka = (function(t) { 13236 return t.OnGreen = "Text_On_Green_Redesign", t.Default = "Text_Default_Redesign", t; 13237 })(Ka || {}), Am = { 13238 square: 3, 13239 landscape: 5, 13240 portrait: 3, 13241 superrectangle: 5, 13242 supersquare: 5 13243 }, Rm = (() => { 13244 class t { 13245 timeZoneService = s(kn); 13246 liveDealerService = s(Tt); 13247 page = s(zt); 13248 game = m.required(); 13249 liveGameInfo = m.required(); 13250 liveGamedata = m.required(); 13251 showActivePlayerCount = m(!1); 13252 timerEnd = j(); 13253 feedLoaded = this.liveDealerService.feedLoaded; 13254 timerCompleted = O(!1); 13255 offlineTableTime = g(() => { 13256 let e = this.liveGameInfo(); 13257 return !e.tableStatus || e.countdown?.type?.toLowerCase() !== "bounded" || !e.countdown?.time ? "" : this.timeZoneService.getTimerStartInstance(e.countdown.time + ":00", "UTC") ?? ""; 13258 }); 13259 isTableOnline = g(() => wi(this.liveGameInfo(), this.timerCompleted(), this.offlineTableTime())); 13260 lastResultsDisplayed = g(() => { 13261 let e = this.liveGameInfo(); 13262 if (!e?.results?.length) return []; 13263 let n = Am[this.game().iconType ?? ""] ?? 5; 13264 return e.results.filter((i) => !(typeof i == "string" && String(i).includes("|"))).slice(0, n); 13265 }); 13266 displayLastResults = g(() => this.lastResultsDisplayed().length > 0); 13267 formattedMin = g(() =>
13267 this.formatAmount(this.liveGameInfo().betLimits?.min)); 13268 formattedMax = g(() => this.formatAmount(this.liveGameInfo().betLimits?.max)); 13269 isMin = g(() => (this.liveGameInfo().betLimits?.min ?? -1) !== -1); 13270 isMax = g(() => Ni.includes(this.game().iconType ?? "") && (this.liveGameInfo().betLimits?.max ?? -1) !== -1); 13271 lastResultStylesMap = g(() => { 13272 let e = this.liveGamedata(), n = this.lastResultsDisplayed(), i = /* @__PURE__ */ new Map(); 13273 for (let r of n) { 13274 let u = this.getEvolutionBgColorKey(r), v = Number(r) === 0 ? Ka.OnGreen : Ka.Default; 13275 i.set(r, { 13276 "background-color": e[u] ?? "", 13277 color: e[v] ?? "" 13278 }); 13279 } 13280 return i; 13281 }); 13282 resultColorNameMap = g(() => { 13283 let e = this.lastResultsDisplayed(), n = /* @__PURE__ */ new Map(); 13284 for (let i of e) { 13285 let r = this.getEvolutionBgColorKey(i); 13286 r === Ut.Green ? n.set(i, "green") : r === Ut.Red ? n.set(i, "red") : n.set(i, "black"); 13287 } 13288 return n; 13289 }); 13290 onTableTimerEnd(e) { 13291 e && (this.timerCompleted.set(!0), this.timerEnd.emit(e)); 13292 } 13293 getEvolutionBgColorKey(e) { 13294 if (Number(e) === 0) return Ut.Green; 13295 let n = e % 2 === 0; 13296 return e >= 1 && e <= 10 || e >= 19 && e <= 28 ? n ? Ut.Black : Ut.Red : (e >= 11 && e <= 18 || e >= 29 && e <= 36) && n ? Ut.Red : Ut.Black; 13297 } 13298 formatAmount(e) { 13299 if (e === void 0 || e === -1) return ""; 13300 let n = Number(String(e).replace(/,/g, "")), i = n < 1 || n % 1 !== 0 ? 2 : 0; 13301 return n.toLocaleString(this.page.culture, {
13302 minimumFractionDigits: i, 13303 maximumFractionDigits: i 13304 }); 13305 } 13306 static ɵfac = function(e) { 13307 return new (e || t)(); 13308 }; 13309 static ɵcmp = I({ 13310 type: t, 13311 selectors: [["cw-roulette"]], 13312 inputs: { 13313 game: [1, "game"], 13314 liveGameInfo: [1, "liveGameInfo"], 13315 liveGamedata: [1, "liveGamedata"], 13316 showActivePlayerCount: [1, "showActivePlayerCount"] 13317 }, 13318 outputs: { timerEnd: "timerEnd" }, 13319 decls: 14, 13320 vars: 12, 13321 consts: [ 13322 [1, "livecasino-bottom-section"], 13323 [1, "bet-limits"], 13324 [ 13325 1, 13326 "min-bet", 13327 3, 13328 "ngStyle" 13329 ], 13330 [1, "hyphen"], 13331 [ 13332 1, 13333 "max-bet", 13334 3, 13335 "ngStyle" 13336 ], 13337 [1, "flag-icon"], 13338 [1, "active-players"], 13339 [1, "win-numbers-roulette"], 13340 [ 13341 "aria-live", 13342 "polite", 13343 1, 13344 "casino-tableoffline", 13345 3, 13346 "hidden" 13347 ], 13348 [1, "offlinecontent"], 13349 [3, "src"], 13350 [ 13351 "name", 13352 "theme-account-i", 13353 "width", 13354 "12", 13355 "height", 13356 "12" 13357 ], 13358 [1, "players-count"], 13359 [ 13360 "aria-label", 13361 "Recent roulette results", 13362 1, 13363 "win-results-list" 13364 ], 13365 [3, "ngStyle"], 13366 [1, "offlinecontent2"], 13367 [1, "time"], 13368 [ 13369 3, 13370 "timerEnd", 13371 "startTime" 13372 ] 13373 ], 13374 template: function(e, n) { 13375 if (e & 1 && (l(0, "div", 0)(1, "div", 1), f(2, US, 2, 5, "span", 2), f(3, HS, 2, 0, "span", 3), f(4, qS, 2, 5, "span", 4), f(5, JS, 2, 2, "span", 5), d(), Et(6), wt(7, "playersCount"), f(8, YS, 4, 1, "div", 6), f(9, QS, 4, 0, "div", 7), d(), l(10, "div", 8)(11, "p", 9), C(12), d(), f(13, XS, 4, 2), d()), e & 2) { 13376 let i; 13377 a(2), h(n.isMin() ? 2 : -1), a(), h(n.isMin() && n.isMax() ? 3 : -1), a(), h(n.isMax() ? 4 : -1), a(), h(n.liveGamedata().isFlagicon && n.liveGamedata().flagIconUrl ? 5 : -1), a(); 13378 let r = Fe(Cn(7, 9, (i = n.liveGameInfo()) == null ? null : i.players)); 13379 a(2), h(n.liveGamedata().isNumberofplayers && n.showActivePlayerCount() && r ? 8 : -1), a(), h(n.displayLastResults() && !n.showActivePlayerCount() ? 9 : -1), a(), p("hidden", !n.feedLoaded() || n.isTableOnline()), a(2), x(n.liveGamedata().TableOfflineContent1), a(), h(n.liveGameInfo().tableStatus && !n.isTableOnline() ? 13 : -1); 13380 } 13381 }, 13382 dependencies: [ 13383 zn, 13384 Li, 13385 Ee, 13386 ws 13387 ], 13388 styles: [".casino-tableoffline[_ngcontent-%COMP%]{width:100%;height:100%;position:absolute;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:0 auto;color:#000;background:#ffffffb3;cursor:default;z-index:3;border-radius:4px}.casino-tableoffline[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;padding:0}.casino-tableoffline[_ngcontent-%COMP%] .offlinecontent[_ngcontent-%COMP%]{text-transform:uppercase;font-size:14px;font-weight:700;line-height:1.5;text-align:center;width:100%;white-space:pre-line;color:#333}.casino-tableoffline[_ngcontent-%COMP%] .offlinecontent2[_ngcontent-%COMP%]{font-size:10px;font-weight:400;line-height:1.5;color:#333}.casino-tableoffline[_ngcontent-%COMP%] .time[_ngcontent-%COMP%]{font-size:24px;font-weight:400;line-height:1.5;color:#000}"] 13389 }); 13390 } 13391 return t; 13392 })(), Ss = (t) => ({ color: t }), Ms = (t) => ({ $implicit: t }), Dm = (() => { 13393 class t { 13394 timeZoneService = s(kn); 13395 liveDealerService = s(Tt); 13396 deviceService = s(J); 13397 page = s(zt); 13398 game = m.required(); 13399 liveGameInfo = m.required(); 13400 liveGamedata = m.required(); 13401 timerEnd = j(); 13402 feedLoaded = this.liveDealerService.feedLoaded; 13403 timerCompleted = O(!1); 13404 offlineTableTime = g(() => { 13405 let e = this.liveGameInfo(); 13406 return !e.tableStatus || e.countdown?.type?.toLowerCase() !== "bounded" || !e.countdown?.time ? "" : this.timeZoneService.getTimerStartInstance(e.countdown.time + ":00", "UTC") ?? ""; 13407 }); 13408 isTableOnline = g(() => wi(this.liveGameInfo(), this.timerCompleted(), this.offlineTableTime())); 13409 seatsAvailable = g(() => { 13410 let e = new Array(7).fill(!1);
13411 return (this.liveGameInfo().seatsTaken ?? []).forEach((n) => { 13412 n >= 1 && n <= 7 && (e[n - 1] = !0); 13413 }), e.reverse(); 13414 }); 13415 formattedMin = g(() => this.formatAmount(this.liveGameInfo().betLimits?.min)); 13416 formattedMax = g(() => this.formatAmount(this.liveGameInfo().betLimits?.max)); 13417 isMin = g(() => (this.liveGameInfo().betLimits?.min ?? -1) !== -1); 13418 isMax = g(() => Ni.includes(this.game().iconType ?? "") && (this.liveGameInfo().betLimits?.max ?? -1) !== -1); 13419 occupiedCount = g(() => this.seatsAvailable().filter(Boolean).length); 13420 isCompactTile = g(() => this.deviceService.isMobile && !Ni.includes(this.game().iconType ?? "")); 13421 occupancyDisplay = g(() => { 13422 let e = this.seatsAvailable().length, n = e - this.occupiedCount(), i = `${n}/${e}`; 13423 return n === 0 && this.liveGamedata().TableFullRedesign || i; 13424 }); 13425 isTableFull = g(() => this.occupiedCount() === this.seatsAvailable().length); 13426 onTableTimerEnd(e) { 13427 e && (this.timerCompleted.set(!0), this.timerEnd.emit(e)); 13428 } 13429 formatAmount(e) { 13430 if (e === void 0 || e === -1) return ""; 13431 let n = Number(String(e).replace(/,/g, "")), i = n < 1 || n % 1 !== 0 ? 2 : 0; 13432 return n.toLocaleString(this.page.culture, {
13433 minimumFractionDigits: i, 13434 maximumFractionDigits: i 13435 }); 13436 } 13437 static ɵfac = function(e) { 13438 return new (e || t)(); 13439 }; 13440 static ɵcmp = I({ 13441 type: t, 13442 selectors: [["cw-blackjack"]], 13443 inputs: { 13444 game: [1, "game"], 13445 liveGameInfo: [1, "liveGameInfo"], 13446 liveGamedata: [1, "liveGamedata"] 13447 }, 13448 outputs: { timerEnd: "timerEnd" }, 13449 decls: 18, 13450 vars: 10, 13451 consts: [ 13452 ["seatIcon", ""], 13453 [1, "livecasino-bottom-section"], 13454 [1, "bet-limits"], 13455 [ 13456 1, 13457 "min-bet", 13458 3, 13459 "ngStyle" 13460 ], 13461 [1, "hyphen"], 13462 [ 13463 1, 13464 "max-bet", 13465 3, 13466 "ngStyle" 13467 ], 13468 [1, "flag-icon"], 13469 [1, "seats-available"], 13470 [1, "seat-icons"], 13471 [1, "seat-count"], 13472 [1, "bet-behind"], 13473 [ 13474 "aria-live", 13475 "polite", 13476 1, 13477 "casino-tableoffline", 13478 3, 13479 "hidden" 13480 ], 13481 [1, "offlinecontent"], 13482 [3, "src"], 13483 [ 13484 "aria-hidden", 13485 "true", 13486 1, 13487 "seat-icon" 13488 ], 13489 [ 13490 "name", 13491 "theme-account-i", 13492 "width", 13493 "12", 13494 "height", 13495 "12" 13496 ], 13497 [ 13498 4, 13499 "ngTemplateOutlet", 13500 "ngTemplateOutletContext" 13501 ], 13502 [1, "offlinecontent2"], 13503 [1, "time"], 13504 [ 13505 3, 13506 "timerEnd", 13507 "startTime" 13508 ] 13509 ], 13510 template: function(e, n) { 13511 e & 1 && (l(0, "div", 1)(1, "div", 2), f(2, ZS, 2, 5, "span", 3), f(3, eM, 2, 0, "span", 4), f(4, tM, 2, 5, "span", 5), f(5, nM, 2, 2, "span", 6), d(), te(6, iM, 2, 4, "ng-template", null, 0, Ne), l(8, "div", 7), f(9, oM, 1, 4, "ng-container")(10, cM, 3, 0, "div", 8), l(11, "span", 9), C(12), d()(), f(13, lM, 3, 1, "div", 10), d(), l(14, "div", 11)(15, "p", 12), C(16), d(), f(17, dM, 4, 2), d()), e & 2 && (a(2), h(n.isMin() ? 2 : -1), a(), h(n.isMin() && n.isMax() ? 3 : -1), a(), h(n.isMax() ? 4 : -1), a(), h(n.liveGamedata().isFlagicon && n.liveGamedata().flagIconUrl ? 5 : -1), a(4), h(n.isCompactTile() ? 9 : 10), a(3), x(n.occupancyDisplay()), a(), h(n.isTableFull() ? 13 : -1), a(), p("hidden", !n.feedLoaded() || n.isTableOnline()), a(2), x(n.liveGamedata().TableOfflineContent1), a(), h(n.liveGameInfo().tableStatus && !n.isTableOnline() ? 17 : -1)); 13512 }, 13513 dependencies: [ 13514 zn, 13515 mt, 13516 Li, 13517 Ee 13518 ], 13519 styles: [".casino-tableoffline[_ngcontent-%COMP%]{width:100%;height:100%;position:absolute;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:0 auto;color:#000;background:#ffffffb3;cursor:default;z-index:3;border-radius:4px}.casino-tableoffline[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;padding:0}.casino-tableoffline[_ngcontent-%COMP%] .offlinecontent[_ngcontent-%COMP%]{text-transform:uppercase;font-size:14px;font-weight:700;line-height:1.5;text-align:center;width:100%;white-space:pre-line;color:#333}.casino-tableoffline[_ngcontent-%COMP%] .offlinecontent2[_ngcontent-%COMP%]{font-size:10px;font-weight:400;line-height:1.5;color:#333}.casino-tableoffline[_ngcontent-%COMP%] .time[_ngcontent-%COMP%]{font-size:24px;font-weight:400;line-height:1.5;color:#000}[_nghost-%COMP%]{--%NS%seat-color-available: #2ecc40;--%NS%seat-color-occupied: #e74c3c;--%NS%seat-strike-top: 50%;--%NS%seat-strike-offset: 0px;--%NS%seat-strike-height: 1.5px;--%NS%seat-text-color: #fff;display:block}.livecasino-bottom-section[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;width:100%;display:flex;align-items:center;padding:var(--%NS%semantic-spacing-container-padding-sm) var(--%NS%semantic-spacing-container-padding-lg);background:#131516b8;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:0 0 var(--%NS%semantic-radius-semi-rounded-sm) var(--%NS%semantic-radius-semi-rounded-sm);z-index:1}.livecasino-bottom-section[_ngcontent-%COMP%] .bet-limits[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:700;line-height:var(--%NS%semantic-typography-label-sm-strong-line-height);color:var(--%NS%seat-text-color)}.livecasino-bottom-section[_ngcontent-%COMP%] .bet-limits[_ngcontent-%COMP%] .hyphen[_ngcontent-%COMP%]{margin:0 var(--%NS%semantic-spacing-container-padding-xs);color:var(--%NS%seat-text-color)}.livecasino-bottom-section[_ngcontent-%COMP%] .bet-limits[_ngcontent-%COMP%] .flag-icon[_ngcontent-%COMP%]{margin-left:var(--%NS%semantic-spacing-container-padding-sm);vertical-align:middle}.livecasino-bottom-section[_ngcontent-%COMP%] .bet-limits[_ngcontent-%COMP%] .flag-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:14px;
13519height:10px}.livecasino-bottom-section[_ngcontent-%COMP%] .seats-available[_ngcontent-%COMP%]{display:flex;align-items:center;margin-left:auto;gap:var(--%NS%semantic-spacing-container-padding-sm)}.livecasino-bottom-section[_ngcontent-%COMP%] .seat-icons[_ngcontent-%COMP%]{display:flex;align-items:center;gap:var(--%NS%semantic-spacing-container-padding-xs)}.livecasino-bottom-section[_ngcontent-%COMP%] .seat-icon[_ngcontent-%COMP%]{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;position:relative}.livecasino-bottom-section[_ngcontent-%COMP%] .seat-icon--available[_ngcontent-%COMP%]{color:var(--%NS%seat-color-available)}.livecasino-bottom-section[_ngcontent-%COMP%] .seat-icon--occupied[_ngcontent-%COMP%]{color:var(--%NS%seat-color-occupied)}.livecasino-bottom-section[_ngcontent-%COMP%] .seat-icon--%NS%occupied[_ngcontent-%COMP%]:after{content:\"\";position:absolute;top:var(--%NS%seat-strike-top);left:var(--%NS%seat-strike-offset);right:var(--%NS%seat-strike-offset);height:var(--%NS%seat-strike-height);background:currentColor;transform:rotate(45deg);border-radius:1px}.livecasino-bottom-section[_ngcontent-%COMP%] .seat-count[_ngcontent-%COMP%]{color:var(--%NS%seat-text-color);font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-headline-md-strong-font-weight);line-height:var(--%NS%semantic-typography-label-sm-strong-line-height);white-space:nowrap}.livecasino-bottom-section[_ngcontent-%COMP%] .bet-behind[_ngcontent-%COMP%]{position:absolute;top:-17px;right:0;display:block;line-height:var(--%NS%semantic-typography-label-sm-strong-line-height);font-size:var(--%NS%semantic-typography-label-sm-strong-font-size);font-weight:var(--%NS%semantic-typography-headline-sm-strong-font-weight);padding:var(--%NS%semantic-spacing-container-padding-xs) var(--%NS%semantic-spacing-container-padding-lg);border-radius:var(--%NS%semantic-radius-semi-rounded-sm) 0 0 var(--%NS%semantic-radius-semi-rounded-sm);color:var(--%NS%seat-text-color);background:linear-gradient(45deg,#f01e28,#8a1117)}"] 13520 }); 13521 } 13522 return t; 13523 })(), Os = (t) => ({ color: t }), zm = (() => { 13524 class t { 13525 timeZoneService = s(kn); 13526 liveDealerService = s(Tt); 13527 page = s(zt); 13528 game = m.required(); 13529 liveGameInfo = m.required(); 13530 liveGamedata = m.required(); 13531 timerEnd = j(); 13532 feedLoaded = this.liveDealerService.feedLoaded; 13533 timerCompleted = O(!1); 13534 offlineTableTime = g(() => { 13535 let e = this.liveGameInfo(); 13536 return !e.tableStatus || e.countdown?.type?.toLowerCase() !== "bounded" || !e.countdown?.time ? "" : this.timeZoneService.getTimerStartInstance(e.countdown.time + ":00", "UTC") ?? ""; 13537 }); 13538 isTableOnline = g(() => wi(this.liveGameInfo(), this.timerCompleted(), this.offlineTableTime())); 13539 formattedMin = g(() =>
13539 this.formatAmount(this.liveGameInfo().betLimits?.min)); 13540 formattedMax = g(() => this.formatAmount(this.liveGameInfo().betLimits?.max)); 13541 isMin = g(() => (this.liveGameInfo().betLimits?.min ?? -1) !== -1); 13542 isMax = g(() => Ni.includes(this.game().iconType ?? "") && (this.liveGameInfo().betLimits?.max ?? -1) !== -1); 13543 onTableTimerEnd(e) { 13544 e && (this.timerCompleted.set(!0), this.timerEnd.emit(e)); 13545 } 13546 formatAmount(e) { 13547 if (e === void 0 || e === -1) return ""; 13548 let n = Number(String(e).replace(/,/g, "")), i = n < 1 || n % 1 !== 0 ? 2 : 0; 13549 return n.toLocaleString(this.page.culture, { 13550 minimumFractionDigits: i, 13551 maximumFractionDigits: i 13552 }); 13553 } 13554 static ɵfac = function(e) { 13555 return new (e || t)(); 13556 }; 13557 static ɵcmp = I({ 13558 type: t, 13559 selectors: [["cw-baccarat"]], 13560 inputs: { 13561 game: [1, "game"], 13562 liveGameInfo: [1, "liveGameInfo"], 13563 liveGamedata: [1, "liveGamedata"] 13564 }, 13565 outputs: { timerEnd: "timerEnd" }, 13566 decls: 13, 13567 vars: 11, 13568 consts: [ 13569 [1, "livecasino-bottom-section"], 13570 [1, "bet-limits"], 13571 [ 13572 1, 13573 "min-bet", 13574 3, 13575 "ngStyle" 13576 ], 13577 [1, "hyphen"], 13578 [ 13579 1, 13580 "max-bet", 13581 3, 13582 "ngStyle" 13583 ], 13584 [1, "flag-icon"], 13585 [1, "active-players"], 13586 [ 13587 "aria-live", 13588 "polite", 13589 1, 13590 "casino-tableoffline", 13591 3, 13592 "hidden" 13593 ], 13594 [1, "offlinecontent"], 13595 [3, "src"], 13596 [ 13597 "name", 13598 "theme-account-i", 13599 "width", 13600 "12", 13601 "height", 13602 "12" 13603 ], 13604 [1, "players-count"], 13605 [1, "offlinecontent2"], 13606 [1, "time"], 13607 [ 13608 3, 13609 "timerEnd", 13610 "startTime" 13611 ] 13612 ], 13613 template: function(e, n) { 13614 if (e & 1 && (l(0, "div", 0)(1, "div", 1), f(2, gM, 2, 5, "span", 2), f(3, mM, 2, 0, "span", 3), f(4, pM, 2, 5, "span", 4), f(5, uM, 2, 2, "span", 5), d(), Et(6), wt(7, "playersCount"), f(8, hM, 4, 1, "div", 6), d(), l(9, "div", 7)(10, "p", 8), C(11), d(), f(12, fM, 4, 2), d()), e & 2) { 13615 let i; 13616 a(2), h(n.isMin() ? 2 : -1), a(), h(n.isMin() && n.isMax() ? 3 : -1), a(), h(n.isMax() ? 4 : -1), a(), h(n.liveGamedata().isFlagicon && n.liveGamedata().flagIconUrl ? 5 : -1), a(); 13617 let r = Fe(Cn(7, 8, (i = n.liveGameInfo()) == null ? null : i.players)); 13618 a(2), h(n.liveGamedata().isNumberofplayers && r ? 8 : -1), a(), p("hidden", !n.feedLoaded() || n.isTableOnline()), a(2), x(n.liveGamedata().TableOfflineContent1), a(), h(n.liveGameInfo().tableStatus && !n.isTableOnline() ? 12 : -1); 13619 } 13620 }, 13621 dependencies: [ 13622 zn, 13623 Li, 13624 Ee, 13625 ws 13626 ], 13627 styles: [".casino-tableoffline[_ngcontent-%COMP%]{width:100%;height:100%;position:absolute;top:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;margin:0 auto;color:#000;background:#ffffffb3;cursor:default;z-index:3;border-radius:4px}.casino-tableoffline[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;padding:0}.casino-tableoffline[_ngcontent-%COMP%] .offlinecontent[_ngcontent-%COMP%]{text-transform:uppercase;font-size:14px;font-weight:700;line-height:1.5;text-align:center;width:100%;white-space:pre-line;color:#333}.casino-tableoffline[_ngcontent-%COMP%] .offlinecontent2[_ngcontent-%COMP%]{font-size:10px;font-weight:400;line-height:1.5;color:#333}.casino-tableoffline[_ngcontent-%COMP%] .time[_ngcontent-%COMP%]{font-size:24px;font-weight:400;line-height:1.5;color:#000}"] 13628 }); 13629 } 13630 return t; 13631 })(), Bm = (() => { 13632 class t { 13633 liveDealerService = s(Tt); 13634 configProviderService = s(V); 13635 gameImageService = s(rt); 13636 liveCasinoConfig = s(qn); 13637 game = m.required(); 13638 liveGameInfo = m.required(); 13639 timerEnd = j(); 13640 gameType = g(() => { 13641 let e = this.liveGameInfo().gameType?.toLowerCase(); 13642 return e === xt.Blackjack ? xt.Blackjack : e === xt.Roulette ? xt.Roulette : [ 13643 xt.Baccarat, 13644 xt.MoneyWheel, 13645 xt.TexasHoldem 13646 ].includes(e) ? xt.Baccarat : null; 13647 }); 13648 showActivePlayerCount = g(() => this.liveCasinoConfig.showActivePlayerCount); 13649 liveGamedata = g(() => { 13650 let e = this.liveDealerService.sitecore(), n = this.liveGameInfo(), i = this.liveCasinoConfig, r = this.configProviderService.provideGameConfig(), u = r.casinoAssetHost || r.host, v = i.enableFlagIconForEvolution && n.language && n.language.toLowerCase() !== "en" ? u + i.flagUrlPattern.replace("{language}", n.language) : "", P = this.gameImageService.getIconConfig(this.game()).src, N = this.gameType(), $ = N === xt.Roulette || N === xt.Baccarat; 13651 return { 13652 TableFullRedesign: e?.messages?.TableFullRedesign ?? "", 13653 BetBehindRedesign: e?.messages?.BetBehindRedesign ?? "", 13654 TableOfflineContent1: e?.messages?.TableOfflineContent1 ?? "", 13655 TableOfflineContent2: e?.messages?.TableOfflineContent2 ?? "", 13656 bet_limit_min_color: e?.constantMessages?.bet_limit_min_color ?? "", 13657 bet_limit_max_color: e?.constantMessages?.bet_limit_max_color ?? "", 13658 players_count_color: e?.constantMessages?.players_count_color ?? "", 13659 Last_Results_evolution_Vendor_Black_Color_Redesign: e?.constantMessages?.Last_Results_evolution_Vendor_Black_Color_Redesign ?? "", 13660 Last_Results_evolution_Vendor_Green_Color_Redesign: e?.constantMessages?.Last_Results_evolution_Vendor_Green_Color_Redesign ?? "", 13661 Last_Results_evolution_Vendor_Red_Color_Redesign: e?.constantMessages?.Last_Results_evolution_Vendor_Red_Color_Redesign ?? "", 13662 Text_Default_Redesign: e?.constantMessages?.Text_Default_Redesign ?? "", 13663 Text_On_Green_Redesign: e?.constantMessages?.Text_On_Green_Redesign ?? "", 13664 isNumberofplayers: $, 13665 isFlagicon: v.length > 0, 13666 flagIconUrl: v, 13667 liveIconSrc: P 13668 }; 13669 }); 13670 onTimerEnd(e) { 13671 this.timerEnd.emit(e); 13672 } 13673 static ɵfac = function(e) { 13674 return new (e || t)(); 13675 }; 13676 static ɵcmp = I({ 13677 type: t, 13678 selectors: [["cw-live-dealer-overlay"]], 13679 inputs: { 13680 game: [1, "game"], 13681 liveGameInfo: [1, "liveGameInfo"] 13682 }, 13683 outputs: { timerEnd: "timerEnd" }, 13684 decls: 3, 13685 vars: 1, 13686 consts: [ 13687 [ 13688 3, 13689 "game", 13690 "liveGameInfo", 13691 "liveGamedata", 13692 "showActivePlayerCount" 13693 ], 13694 [ 13695 3, 13696 "game", 13697 "liveGameInfo", 13698 "liveGamedata" 13699 ], 13700 [ 13701 3, 13702 "timerEnd", 13703 "game", 13704 "liveGameInfo", 13705 "liveGamedata", 13706 "showActivePlayerCount" 13707 ], 13708 [ 13709 3, 13710 "timerEnd", 13711 "game", 13712 "liveGameInfo", 13713 "liveGamedata" 13714 ] 13715 ], 13716 template: function(e, n) { 13717 if (e & 1 && f(0, vM, 1, 4, "cw-roulette", 0)(1, bM, 1, 3, "cw-blackjack", 1)(2, CM, 1, 3, "cw-baccarat", 1), e & 2) { 13718 let i; 13719 h((i = n.gameType()) === "roulette" ? 0 : i === "blackjack" ? 1 : i === "baccarat" ? 2 : -1); 13720 } 13721 }, 13722 dependencies: [ 13723 Rm, 13724 Dm, 13725 zm 13726 ], 13727 encapsulation: 2 13728 }); 13729 } 13730 return t; 13731 })(), Fm = (t, o) => o + "-" + t, Vm = (() => { 13732 class t { 13733 item = m.required(); 13734 index = m.required(); 13735 layout = m(""); 13736 containerIndex = m(0); 13737 attributes = m.required(); 13738 launchService = s(Ti); 13739 tracking = s(Jn); 13740 liveDealerService = s(Tt); 13741 timeZoneService = s(kn); 13742 gameCatalog = s(Oe); 13743 timerCompleted = O(!1); 13744 feedLoaded = this.liveDealerService.feedLoaded; 13745 gameName = g(() => { 13746 let e = this.item().gameId; 13747 return this.gameCatalog.games(), this.item().name || (e ? this.gameCatalog.getGameName(e) : "") || this.item().header || ""; 13748 }); 13749 liveGameInfo = g(() => { 13750 this.feedLoaded(); 13751 let e = this.item().gameId; 13752 return e ? this.liveDealerService.getLiveGameInfo(e) : void 0; 13753 }); 13754 offlineTableTime = g(() => { 13755 let e = this.liveGameInfo(); 13756 return !e || !e.tableStatus || e.countdown?.type?.toLowerCase() !== "bounded" || !e.countdown?.time ? "" : this.timeZoneService.getTimerStartInstance(e.countdown.time + ":00", "UTC") ?? ""; 13757 }); 13758 isTableOnline = g(() => { 13759 let e = this.liveGameInfo(); 13760 return !!e && wi(e, this.timerCompleted(), this.offlineTableTime()); 13761 }); 13762 showLiveStatus = g(() => { 13763 let e = this.item(); 13764 return !!e.displayLiveStatus || !e.subTitle; 13765 }); 13766 showDealerImage = g(() => !!this.item().displayDealerImage && !!this.dealerImage()); 13767 dealerImage = g(() => this.liveGameInfo()?.dealerInfo?.dealerPictureUrl ?? ""); 13768 resultsDisplayed = g(() => (this.liveGameInfo()?.results ?? []).slice(0, 3)); 13769 showResults = g(() => this.resultsDisplayed().length > 0); 13770 showTimer = g(() => !this.isTableOnline() && !!this.offlineTableTime()); 13771 lastResultNumberColor(e) { 13772 let n = this.attributes(); 13773 if (e === 0) return n.liveCasinoGreenColor; 13774 let i = e % 2 === 0; 13775 return e >= 1 && e <= 10 || e >
13775= 19 && e <= 28 ? i ? n.liveCasinoBlackColor : n.liveCasinoRedColor : (e >= 11 && e <= 18 || e >= 29 && e <= 36) && i ? n.liveCasinoRedColor : n.liveCasinoBlackColor; 13776 } 13777 onTimerEnd(e) { 13778 e && this.timerCompleted.set(!0); 13779 } 13780 onClick() { 13781 this.tracking.trackItemClick(this.item(), this.containerIndex(), this.layout()), this.launchService.launch(this.item(), this.index(), this.layout(), this.containerIndex()); 13782 } 13783 static ɵfac = function(e) { 13784 return new (e || t)(); 13785 }; 13786 static ɵcmp = I({ 13787 type: t, 13788 selectors: [["cw-news-feed-live-dealer"]], 13789 inputs: { 13790 item: [1, "item"], 13791 index: [1, "index"], 13792 layout: [1, "layout"], 13793 containerIndex: [1, "containerIndex"], 13794 attributes: [1, "attributes"] 13795 }, 13796 decls: 2, 13797 vars: 2, 13798 consts: [ 13799 [ 13800 "role", 13801 "button", 13802 "tabindex", 13803 "0", 13804 1, 13805 "casino-news-feed-item-wrapper", 13806 3, 13807 "border-color", 13808 "background-color" 13809 ], 13810 [ 13811 3, 13812 "showTimer", 13813 "startTime" 13814 ], 13815 [ 13816 "role", 13817 "button", 13818 "tabindex", 13819 "0", 13820 1, 13821 "casino-news-feed-item-wrapper", 13822 3, 13823 "click", 13824 "keydown.enter", 13825 "keydown.space" 13826 ], 13827 [ 13828 1, 13829 "casino-news-feed-icon-v2", 13830 "casino-news-valign" 13831 ], 13832 [ 13833 "alt", 13834 "", 13835 3, 13836 "src" 13837 ], 13838 [ 13839 3, 13840 "class", 13841 "color" 13842 ], 13843 [ 13844 1, 13845 "casino-news-feed-content-v2", 13846 "casino-news-valign" 13847 ], 13848 [1, "news-feed-title-v2"], 13849 [ 13850 1, 13851 "news-feed-name-v2", 13852 "livenowdot", 13853 3, 13854 "color" 13855 ], 13856 [ 13857 1, 13858 "news-feed-name-v2", 13859 3, 13860 "color" 13861 ], 13862 [1, "win-numbers"], 13863 [ 13864 1, 13865 "news-feed-name-v2", 13866 "livenowdot" 13867 ], 13868 [1, "dot"], 13869 [1, "news-feed-name-v2"], 13870 [1, "win-numbers-list"], 13871 [3, "background-color"], 13872 [ 13873 3, 13874 "timerEnd", 13875 "showTimer", 13876 "startTime" 13877 ] 13878 ], 13879 template: function(e, n) { 13880 e & 1 && (f(0, xM, 10, 12, "div", 0), f(1, _M, 1, 2, "cw-lc-timer", 1)), e & 2 && (h(n.isTableOnline() ? 0 : -1), a(), h(n.showTimer() ? 1 : -1)); 13881 }, 13882 dependencies: [Li], 13883 encapsulation: 2 13884 }); 13885 } 13886 return t; 13887 })(), jm = (() => { 13888 class t { 13889 item = m.required(); 13890 index = m.required(); 13891 layout = m(""); 13892 containerIndex = m(0); 13893 attributes = m.required(); 13894 launchService = s(Ti); 13895 tracking = s(Jn); 13896 gameCatalog = s(Oe); 13897 gameBuilder = s(ft); 13898 configProviderService = s(V); 13899 iconFailed = O(!1); 13900 resolvedName = g(() => { 13901 let e = this.item().gameId; 13902 return this.gameCatalog.games(), e ? this.gameCatalog.getGameName(e) : void 0; 13903 }); 13904 isAvailable = g(() => !!this.resolvedName()); 13905 gameName = g(() => this.resolvedName() || this.item().subHeader || this.item().gameId || ""); 13906 game = g(() => this.gameBuilder.buildGame(mi(this.item().gameId ?? "", { name: this.gameName() }))); 13907 grayImageUrl = g(() => this.configProviderService.provideGlobalConfig()?.staticImages?.gray ?? ""); 13908 iconSrc = g(() => this.iconFailed() ? this.grayImageUrl() : this.game().icon?.src ?? ""); 13909 onIconError() { 13910 this.iconFailed.set(!0); 13911 } 13912 onClick() { 13913 this.tracking.trackItemClick(this.item(), this.containerIndex(), this.layout()), this.launchService.launch(this.item(), this.index(), this.layout(), this.containerIndex()); 13914 } 13915 static ɵfac = function(e) { 13916 return new (e || t)(); 13917 }; 13918 static ɵcmp = I({ 13919 type: t, 13920 selectors: [["cw-news-feed-newgames"]], 13921 inputs: { 13922 item: [1, "item"], 13923 index: [1, "index"], 13924 layout: [1, "layout"], 13925 containerIndex: [1, "containerIndex"], 13926 attributes: [1, "attributes"] 13927 }, 13928 decls: 1, 13929 vars: 1, 13930 consts: [ 13931 [ 13932 "role", 13933 "button", 13934 "tabindex", 13935 "0", 13936 1, 13937 "casino-news-feed-item-wrapper", 13938 3, 13939 "border-color", 13940 "background-color" 13941 ], 13942 [ 13943 "role", 13944 "button", 13945 "tabindex", 13946 "0", 13947 1, 13948 "casino-news-feed-item-wrapper", 13949 3, 13950 "click", 13951 "keydown.enter", 13952 "keydown.space" 13953 ], 13954 [ 13955 1, 13956 "casino-news-feed-icon-v2", 13957 "casino-news-valign" 13958 ], 13959 [ 13960 "alt", 13961 "", 13962 3, 13963 "error", 13964 "src" 13965 ], 13966 [ 13967 1, 13968 "casino-news-feed-content-v2", 13969 "casino-news-valign" 13970 ], 13971 [1, "news-feed-title-v2"], 13972 [1, "news-feed-name-v2"] 13973 ], 13974 template: function(e, n) { 13975 e & 1 && f(0, kM, 8, 13, "div", 0), e & 2 && h(n.isAvailable() ? 0 : -1); 13976 }, 13977 encapsulation: 2 13978 }); 13979 } 13980 return t; 13981 })(), $m = (() => { 13982 class t { 13983 item = m.required(); 13984 index = m.required(); 13985 layout = m(""); 13986 containerIndex = m(0); 13987 attributes = m.required(); 13988 launchService = s(Ti); 13989 tracking = s(Jn); 13990 navigation = s(qe); 13991 hasContent = g(() => { 13992 let e = this.item(); 13993 return !!(e.header || e.subHeader || e.iconClass || e.value); 13994 }); 13995 onClick() { 13996 let e = this.item(), n = e.link; 13997 if (!(!n || n === "#")) { 13998 if (this.tracking.trackItemClick(e, this.containerIndex(), this.layout()), e.gameId) { 13999 this.launchService.launch(e, this.index(), this.layout(), this.containerIndex()); 14000 return; 14001 } 14002 this.navigation.goTo(n); 14003 } 14004 } 14005 static ɵfac = function(e) { 14006 return new (e || t)(); 14007 }; 14008 static ɵcmp = I({ 14009 type: t, 14010 selectors: [["cw-news-feed-promo"]], 14011 inputs: { 14012 item: [1, "item"], 14013 index: [1, "index"], 14014 layout: [1, "layout"], 14015 containerIndex: [1, "containerIndex"], 14016 attributes: [1, "attributes"] 14017 }, 14018 decls: 1, 14019 vars: 1, 14020 consts: [ 14021 [ 14022 "role", 14023 "button", 14024 "tabindex", 14025 "0", 14026 1, 14027 "casino-news-feed-item-wrapper", 14028 3, 14029 "border-color", 14030 "background-color" 14031 ], 14032 [ 14033 "role", 14034 "button", 14035 "tabindex", 14036 "0", 14037 1, 14038 "casino-news-feed-item-wrapper", 14039 3, 14040 "click", 14041 "keydown.enter", 14042 "keydown.space" 14043 ], 14044 [ 14045 1, 14046 "casino-news-feed-icon-v2", 14047 "casino-news-valign" 14048 ], 14049 [ 14050 1, 14051 "casino-news-feed-content-v2", 14052 "casino-news-valign" 14053 ], 14054 [1, "news-feed-title-v2"], 14055 [1, "news-feed-name-v2"], 14056 [ 14057 1, 14058 "news-feed-jackpot-v2", 14059 "casino-news-valign" 14060 ] 14061 ], 14062 template: function(e, n) { 14063 e & 1 && f(0, TM, 9, 15, "div", 0), e & 2 && h(n.hasContent() ? 0 : -1); 14064 }, 14065 encapsulation: 2 14066 }); 14067 } 14068 return t; 14069 })(), Wm = (() => { 14070 class t { 14071 item = m.required(); 14072 index = m.required(); 14073 layout = m(""); 14074 containerIndex = m(0); 14075 attributes = m.required(); 14076 kind = g(() => FS(this.item().type)); 14077 displayEnabled = g(() => { 14078 let e = this.item(); 14079 return this.kind() === "promo" ? !!(e.header || e.subHeader || e.iconClass || e.value) : this.kind() !== "none"; 14080 }); 14081 static ɵfac = function(e) { 14082 return new (e || t)(); 14083 }; 14084 static ɵcmp = I({ 14085 type: t, 14086 selectors: [["cw-news-feed-item"]], 14087 inputs: { 14088 item: [1, "item"], 14089 index: [1, "index"], 14090 layout: [1, "layout"], 14091 containerIndex: [1, "containerIndex"], 14092 attributes: [1, "attributes"] 14093 }, 14094 decls: 1, 14095 vars: 1, 14096 consts: [[1, "news-feed-custom-item"], [ 14097 3, 14098 "item", 14099 "index", 14100 "layout", 14101 "containerIndex", 14102 "attributes"
14103 ]], 14104 template: function(e, n) { 14105 e & 1 && f(0, AM, 5, 1, "div", 0), e & 2 && h(n.displayEnabled() ? 0 : -1); 14106 }, 14107 dependencies: [ 14108 Gm, 14109 jm, 14110 $m, 14111 Vm 14112 ], 14113 encapsulation: 2 14114 }); 14115 } 14116 return t; 14117 })(), Um = (t, o) => o.gameId || t, Hm = 2e3, qm = (() => { 14118 class t { 14119 container = m.required(); 14120 layout = m(""); 14121 containerIndex = m(0); 14122 tickerIterations = [ 14123 1, 14124 2, 14125 3, 14126 4, 14127 5 14128 ]; 14129 timerService = s(de); 14130 platform = s(X); 14131 tracking = s(Jn); 14132 destroyRef = s(q); 14133 pauseTimerId; 14134 paused = O(!1); 14135 loadTracked = !1; 14136 feedItems = g(() => this.container()?.newsFeedData?.newsFeedData ?? []); 14137 hasFeedItems = g(() => this.feedItems().length > 0); 14138 attributes = g(() => VS(this.container()?.newsFeedData?.attributes)); 14139 animationState = g(() => this.paused() ? "paused" : "running"); 14140 constructor() { 14141 this.destroyRef.onDestroy(() => { 14142 this.pauseTimerId !== void 0 && this.timerService.clearTimeout(this.pauseTimerId); 14143 }), Z(() => { 14144 !this.loadTracked && this.platform.isBrowser && this.hasFeedItems() && (this.loadTracked = !0, this.tracking.trackLoad(this.layout(), this.containerIndex())); 14145 }); 14146 } 14147 pauseAnimation() { 14148 this.platform.isBrowser && (this.paused.set(!0), this.pauseTimerId !== void 0 && this.timerService.clearTimeout(this.pauseTimerId), this.pauseTimerId = this.timerService.setTimeout(() => this.paused.set(!1), Hm)); 14149 } 14150 static ɵfac = function(e) { 14151 return new (e || t)(); 14152 }; 14153 static ɵcmp = I({ 14154 type: t, 14155 selectors: [["cw-news-feed"]], 14156 inputs: { 14157 container: [1, "container"], 14158 layout: [1, "layout"], 14159 containerIndex: [1, "containerIndex"] 14160 }, 14161 decls: 1, 14162 vars: 1, 14163 consts: [ 14164 [ 14165 "role", 14166 "region", 14167 1, 14168 "news-feed-v2", 14169 3, 14170 "background-color" 14171 ], 14172 [ 14173 "role", 14174 "region", 14175 1, 14176 "news-feed-v2" 14177 ], 14178 [ 14179 1, 14180 "news-feed-v2-wrapper", 14181 3, 14182 "--%NS%newsFeedAnimationState" 14183 ], 14184 [ 14185 1, 14186 "news-feed-v2-wrapper", 14187 3, 14188 "pointerdown", 14189 "focusin" 14190 ], 14191 [1, "news-feed-v2-item"], 14192 [ 14193 3, 14194 "item", 14195 "index", 14196 "layout", 14197 "containerIndex", 14198 "attributes" 14199 ] 14200 ], 14201 template: function(e, n) { 14202 e & 1 && f(0, zM, 3, 3, "div", 0), e & 2 && h(n.hasFeedItems() ? 0 : -1); 14203 }, 14204 dependencies: [Wm], 14205 encapsulation: 2 14206 }); 14207 } 14208 return t; 14209 })(), Jm = (() => { 14210 class t { 14211 containerMetadata = m.required(); 14212 containerIndex = m.required(); 14213 layoutId = m(""); 14214 containerService = s(ie); 14215 containerInfo = Q(this.containerService.container$.pipe(Me((e) => e)), { initialValue: null }); 14216 ngOnInit() { 14217 this.containerMetadata() && this.containerService.fetchAndSetContainer(this.containerMetadata()); 14218 } 14219 static ɵfac = function(e) { 14220 return new (e || t)(); 14221 }; 14222 static ɵcmp = I({ 14223 type: t, 14224 selectors: [["cw-newsfeed-container"]], 14225 inputs: { 14226 containerMetadata: [1, "containerMetadata"], 14227 containerIndex: [1, "containerIndex"], 14228 layoutId: [1, "layoutId"] 14229 }, 14230 features: [ce([ie])], 14231 decls: 1, 14232 vars: 3, 14233 consts: [[ 14234 3, 14235 "container", 14236 "layout", 14237 "containerIndex" 14238 ]], 14239 template: function(e, n) { 14240 e & 1 && b(0, "cw-news-feed", 0), e & 2 && p("container", n.containerInfo())("layout", n.layoutId())("containerIndex", n.containerIndex()); 14241 }, 14242 dependencies: [qm], 14243 encapsulation: 2 14244 }); 14245 } 14246 return t; 14247 })(), In = { 14248 CATEGORY: "casino widgets", 14249 LABEL: "super button", 14250 ImgPosition: "right" 14251 }, Ym = (() => { 14252 class t { 14253 api = s(Ql); 14254 findFromCategory(e) { 14255 return this.api.post("SuperButton/FindFromCategory", e, { withCredentials: !0 }); 14256 } 14257 static ɵfac = function(e) { 14258 return new (e || t)(); 14259 }; 14260 static ɵprov = A({ 14261 token: t, 14262 factory: t.ɵfac, 14263 providedIn: "root" 14264 }); 14265 } 14266 return t; 14267 })(), Km = (() => { 14268 class t { 14269 trackingAdapter = s(we); 14270 trackContentView(e) { 14271 this.trackingAdapter.trigger({ 14272 name: se.CasinoSuperButton, 14273 data: { 14274 [M.ComponentCategoryEvent]: In.CATEGORY, 14275 [M.ComponentLabelEvent]: In.LABEL, 14276 [M.ComponentActionEvent]: tn.LOAD, 14277 [M.ComponentPositionEvent]: e.featureName || B.NOT_APPLICABLE, 14278 [M.ComponentLocationEvent]: e.lobbyName || B.NOT_APPLICABLE, 14279 [M.ComponentEventDetails]: In.LABEL, 14280 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 14281 [M.ComponentContentPosition]: e.containerIndex || B.NOT_APPLICABLE, 14282 [M.ComponentCategoryType]: e.layoutId || B.NOT_APPLICABLE 14283 } 14284 }); 14285 } 14286 trackClick(e, n, i) { 14287 this.trackingAdapter.trigger({ 14288 name: se.CasinoSuperButton, 14289 data: { 14290 [M.ComponentCategoryEvent]: In.CATEGORY, 14291 [M.ComponentLabelEvent]: In.LABEL, 14292 [M.ComponentActionEvent]: ve.CLICK, 14293 [M.ComponentPositionEvent]: i.featureName || B.NOT_APPLICABLE, 14294 [M.ComponentLocationEvent]: i.lobbyName || B.NOT_APPLICABLE, 14295 [M.ComponentEventDetails]: e || B.NOT_APPLICABLE, 14296 [M.ComponentUrlClicked]: n, 14297 [M.ComponentContentPosition]: i.containerIndex || B.NOT_APPLICABLE, 14298 [M.ComponentCategoryType]: i.layoutId || B.NOT_APPLICABLE 14299 } 14300 }); 14301 } 14302 static ɵfac = function(e) { 14303 return new (e || t)(); 14304 }; 14305 static ɵprov = A({ 14306 token: t, 14307 factory: t.ɵfac, 14308 providedIn: "root" 14309 }); 14310 } 14311 return t; 14312 })(), Qm = (() => { 14313 class t { 14314 subnav = m.required(); 14315 containerInfo = m.required(); 14316 containerIndex = m(0); 14317 layoutId = m(""); 14318 resolved = j(); 14319 superButtonService = s(Ym); 14320 configProvider = s(V); 14321 navigatorService = s(rd); 14322 superButtonTracking = s(Km); 14323 timerService = s(de); 14324 layoutService = s(nn); 14325 page = s(zt); 14326 destroyRef = s(q); 14327 _superButton = O(null); 14328 _isLoading = O(!1); 14329 superButton = this._superButton.asReadonly(); 14330 isLoading = this._isLoading.asReadonly(); 14331 styles = g(() => { 14332 let e = this._superButton(); 14333 return e ? { 14334 ctaBgColor: e.sharedList?.CtaBgColor ?? "", 14335 ctaTextColor: e.sharedList?.CtaTextColor ?? "", 14336 containerBgColor: e.sharedList?.ContainerBgColor ?? "", 14337 descriptionTextColor: e.sharedList?.DescriptionTextColor ?? "", 14338 termsDescriptionBgColor: e.sharedList?.TermsDescriptionBgColor ?? "", 14339 termsDescriptionTextColor: e.sharedList?.TermsDescriptionTextColor ?? "" 14340 } : null; 14341 }); 14342 imgPositionReversed = g(() => this._superButton()?.sharedList?.ImgPosition?.toLowerCase() === In.ImgPosition); 14343 showTerms = g(() => !!this._superButton()?.termsAndConditions); 14344 ctaKind = g(() => this.page.theme === ae.Ladbrokes ? Ta.Primary : Ta.Secondary); 14345 navItem = g(() => { 14346 let e = this.layoutService.currentLayout(); 14347 return (this.subnav() ? e?.subNavs?.find((n) => n.id === this.subnav()) : e?.subNavs?.find((n) => n.isDefault))?.id; 14348 }); 14349 navigationTimerId; 14350 constructor() { 14351 this.destroyRef.onDestroy(() => { 14352 this.navigationTimerId && this.timerService.clearTimeout(this.navigationTimerId); 14353 }); 14354 } 14355 ngOnInit() { 14356 this._isLoading.set(!0), this.superButtonService.findFromCategory(this.containerInfo().superButtonPaths).pipe(z(this.destroyRef)).subscribe({ 14357 next: (e) => { 14358 let n = !!e?.path; 14359 n && (this._superButton.set(e), this.superButtonTracking.trackContentView(this.buildTrackingContext())), this._isLoading.set(!1), this.resolved.emit(n); 14360 }, 14361 error: () => { 14362 this._isLoading.set(!1), this.resolved.emit(!1); 14363 } 14364 }); 14365 } 14366 onClick(e) { 14367 e.preventDefault(); 14368 let n = this._superButton()?.cta?.url; 14369 if (n) { 14370 this.superButtonTracking.trackClick(this._superButton()?.cta?.text || "", n, this.buildTrackingContext()), this.navigationTimerId && this.timerService.clearTimeout(this.navigationTimerId); 14371 let i = this.configProvider.provideSuperButtonConfig()?.superButtonTimeout ?? 0; 14372 this.navigationTimerId = this.timerService.setTimeout(() => { 14373 this.navigatorService.navigate(n); 14374 }, i); 14375 } 14376 } 14377 buildTrackingContext() { 14378 return { 14379 featureName: this.containerInfo().id ?? "",
14380 lobbyName: this.navItem() ?? "", 14381 containerIndex: this.containerIndex(), 14382 layoutId: this.layoutId() 14383 }; 14384 } 14385 static ɵfac = function(e) { 14386 return new (e || t)(); 14387 }; 14388 static ɵcmp = I({ 14389 type: t, 14390 selectors: [["cw-super-button"]], 14391 inputs: { 14392 subnav: [1, "subnav"], 14393 containerInfo: [1, "containerInfo"], 14394 containerIndex: [1, "containerIndex"], 14395 layoutId: [1, "layoutId"] 14396 }, 14397 outputs: { resolved: "resolved" }, 14398 decls: 1, 14399 vars: 1, 14400 consts: [ 14401 [1, "super-container"], 14402 [1, "top-container"], 14403 [1, "game-image"], 14404 [1, "super-content"], 14405 [1, "super-text-title"], 14406 [1, "super-description"], 14407 [1, "super-cta"], 14408 [ 14409 1, 14410 "super-terms", 14411 3, 14412 "background-color", 14413 "color" 14414 ], 14415 [ 14416 "width", 14417 "65", 14418 "height", 14419 "65", 14420 3, 14421 "src", 14422 "alt" 14423 ], 14424 [ 14425 3, 14426 "click", 14427 "kind", 14428 "size", 14429 "customBgColor", 14430 "customTextColor", 14431 "cta_text" 14432 ], 14433 [1, "super-terms"], 14434 [1, "super-des"] 14435 ], 14436 template: function(e, n) { 14437 e & 1 && f(0, jM, 10, 13, "div", 0), e & 2 && h(n.superButton() && !n.isLoading() ? 0 : -1); 14438 }, 14439 dependencies: [za], 14440 styles: [".super-container[_ngcontent-%COMP%]{justify-content:center;display:flex;flex-direction:column;margin:.3125rem;box-shadow:var(--%NS%cs-elevation-raised-box-shadow)}.super-container[_ngcontent-%COMP%] .top-container.reverse[_ngcontent-%COMP%]{flex-direction:row-reverse}.super-container[_ngcontent-%COMP%] .top-container.reverse[_ngcontent-%COMP%] .super-cta[_ngcontent-%COMP%]{margin:.75rem .125rem .75rem .75rem}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;position:relative;z-index:2;overflow:hidden;border-radius:var(--%NS%cs-card-border-radius);border:var(--%NS%cs-color-opacity-base-inverse);background-color:var(--%NS%cs-color-surface-container-high-base-inverse);align-items:center}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%] .game-image[_ngcontent-%COMP%]{width:65px;height:65px}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%] .game-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%] .super-content[_ngcontent-%COMP%]{padding:0 .625rem;flex:3;padding-left:var(--%NS%cs-spacing-container-padding-xl)}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%] .super-content[_ngcontent-%COMP%] .super-text-title[_ngcontent-%COMP%]{-webkit-box-orient:vertical;display:-webkit-box;-webkit-line-clamp:1;overflow:hidden;text-overflow:ellipsis;white-space:normal;color:var(--%NS%cs-color-on-surface-base-inverse);font-family:var(--%NS%cs-typography-body-font-family);font-size:var(--%NS%cs-typography-body-lg-strong-font-size);font-style:normal;font-weight:var(--%NS%cs-typography-body-lg-strong-font-weight);line-height:var(--%NS%cs-typography-body-lg-strong-line-height)}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%] .super-content[_ngcontent-%COMP%] .super-description[_ngcontent-%COMP%]{-webkit-box-orient:vertical;display:-webkit-box;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;white-space:normal;color:var(--%NS%cs-color-on-surface-subtle-inverse);font-family:var(--%NS%cs-typography-label-font-family);font-size:var(--%NS%cs-typography-label-xs-font-size);font-style:normal;font-weight:var(--%NS%cs-typography-label-xs-font-weight);line-height:var(--%NS%cs-typography-label-xs-line-height)}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%] .super-cta[_ngcontent-%COMP%]{margin-right:.938rem}.super-container[_ngcontent-%COMP%] .top-container[_ngcontent-%COMP%] .super-cta[_ngcontent-%COMP%] .btn[_ngcontent-%COMP%]{width:100%}.super-terms[_ngcontent-%COMP%]{position:relative;z-index:1;border-radius:var(--%NS%cs-card-border-radius);top:-4px}.super-terms[_ngcontent-%COMP%] .super-des[_ngcontent-%COMP%]{font-family:var(--%NS%cs-typography-label-font-family);font-size:var(--%NS%cs-typography-label-xs-font-size);font-weight:var(--%NS%cs-typography-label-xs-font-weight);line-height:var(--%NS%cs-typography-label-xs-line-height);align-items:center;display:flex;justify-content:center;padding:.875rem .625rem .625rem}"] 14441 }); 14442 } 14443 return t; 14444 })(), Xm = (() => { 14445 class t { 14446 static ɵfac = function(e) { 14447 return new (e || t)(); 14448 }; 14449 static ɵcmp = I({ 14450 type: t, 14451 selectors: [["cw-super-button-skeleton"]], 14452 decls: 1, 14453 vars: 0, 14454 consts: [[1, "sk"]], 14455 template: function(e, n) { 14456 e & 1 && Pe(0, "div", 0); 14457 }, 14458 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{width:100%;flex:1 1 auto;min-height:0;border-radius:var(--%NS%semantic-radius-semi-rounded-lg);background:var(--%NS%semantic-color-surface-container-high-base)}"] 14459 }); 14460 } 14461 return t; 14462 })(), Zm = (() => { 14463 class t { 14464 configProvider = s(V); 14465 containerService = s(ie); 14466 deviceService = s(J); 14467 containerMetadata = m.required(); 14468 subnav = m.required(); 14469 containerIndex = m(0); 14470 layoutId = m(""); 14471 containerInfo = Q(this.containerService.container$); 14472 isEnabled = g(() => this.deviceService.isMobilePhone ? !!(this.configProvider.provideSuperButtonConfig()?.enabled ?? !1) : !1); 14473 isLoading = g(() => this.isEnabled() && !this.containerInfo() && !this.containerService.hasError()); 14474 _hasSuperButton = O(!0); 14475 showSuperButton = g(() => !!this.containerInfo() && this._hasSuperButton()); 14476 onResolved(e) { 14477 this._hasSuperButton.set(e); 14478 } 14479 ngOnInit() { 14480 this.containerMetadata() && this.isEnabled() && this.containerService.fetchAndSetContainer(this.containerMetadata()); 14481 } 14482 static ɵfac = function(e) { 14483 return new (e || t)(); 14484 }; 14485 static ɵcmp = I({ 14486 type: t, 14487 selectors: [["cw-super-button-container"]], 14488 inputs: { 14489 containerMetadata: [1, "containerMetadata"], 14490 subnav: [1, "subnav"], 14491 containerIndex: [1, "containerIndex"], 14492 layoutId: [1, "layoutId"] 14493 }, 14494 features: [ce([ie])], 14495 decls: 2, 14496 vars: 1, 14497 consts: [ 14498 [ 14499 3, 14500 "containerInfo", 14501 "subnav", 14502 "containerIndex", 14503 "layoutId" 14504 ], 14505 [3, "containerId"], 14506 [ 14507 3, 14508 "resolved", 14509 "containerInfo", 14510 "subnav", 14511 "containerIndex", 14512 "layoutId" 14513 ] 14514 ], 14515 template: function(e, n) { 14516 e & 1 && f(0, $M, 1, 4, "cw-super-button", 0)(1, WM, 2, 1, "cw-lobby-container-placeholder", 1), e & 2 && h(n.showSuperButton() ? 0 : n.isLoading() ? 1 : -1); 14517 }, 14518 dependencies: [ 14519 Qm, 14520 st, 14521 Xm 14522 ], 14523 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: 107px}[_nghost-%COMP%]:has(cw-super-button){min-height:var(--%NS%cw-reserve-h)}[_nghost-%COMP%]:has(cw-super-button>*){min-height:0}"] 14524 }); 14525 } 14526 return t; 14527 })(), Be = (function(t) { 14528 return t.Aluminum = "aluminum", t.Embedded = "embedded", t.Hydrogen = "hydrogen", t; 14529 })(Be || {}), ep = "teaser banners", tp = "user taps on teaser", xs = { 14530 [Be.Aluminum]: "aluminum teaser", 14531 [Be.Embedded]: "embedded teaser", 14532 [Be.Hydrogen]: "hydrogen teaser" 14533 }, _s = (() => { 14534 class t { 14535 trackingAdapter = s(we); 14536 trackTeaserLoad(e) { 14537 this.trigger({ 14538 event: se.CasinoTeaserBanners, 14539 label: xs[e.teaserType], 14540 action: tn.LOAD, 14541 teaserName: e.teaserName, 14542 eventDetails: e.teaserName || B.NOT_APPLICABLE, 14543 urlClicked: B.NOT_APPLICABLE, 14544 position: e.position, 14545 context: e.context 14546 }); 14547 } 14548 trackTeaserClick(e) { 14549 this.trigger({ 14550 event: se.CasinoTeaserBanners, 14551 label: xs[e.teaserType], 14552 action: ve.CLICK, 14553 teaserName: e.teaserName, 14554 eventDetails: e.ctaName || tp, 14555 urlClicked: e.urlClicked || B.NOT_APPLICABLE, 14556 position: e.position, 14557 context: e.context 14558 }); 14559 } 14560 trigger(e) { 14561 this.trackingAdapter.trigger({ 14562 name: e.event, 14563 data: { 14564 [M.ComponentCategoryEvent]: ep, 14565 [M.ComponentLabelEvent]: e.label, 14566 [M.ComponentActionEvent]: e.action, 14567 [M.ComponentPositionEvent]: e.teaserName || B.NOT_APPLICABLE, 14568 [M.ComponentLocationEvent]: e.context.subNavId || B.NOT_APPLICABLE, 14569 [M.ComponentEventDetails]: e.eventDetails, 14570 [M.ComponentUrlClicked]: e.urlClicked, 14571 [M.ComponentContentPosition]: e.position, 14572 [M.ComponentCategoryType]: e.context.layoutId || B.NOT_APPLICABLE 14573 } 14574 }); 14575 } 14576 static ɵfac = function(e) { 14577 return new (e || t)(); 14578 }; 14579 static ɵprov = A({ 14580 token: t, 14581 factory: t.ɵfac, 14582 providedIn: "root" 14583 }); 14584 } 14585 return t; 14586 })(), ks = "Teaser", np = "teasers", ip = { 14587 [Be.Aluminum]: "aluminium_teaser_container", 14588 [Be.Embedded]: "embedded_teaser_container", 14589 [Be.Hydrogen]: "hydrogen_teaser_container" 14590 }, Is = { 14591 [Be.Aluminum]: "aluminium teaser", 14592 [Be.Embedded]: "embedded teaser", 14593 [Be.Hydrogen]: "hydrogen teaser" 14594 }, ap = (() => { 14595 class t { 14596 gameLaunchAggregator = s(Qe); 14597 deviceService = s(J); 14598 navigationService = s(qe); 14599 gameCatalogService = s(Oe); 14600 launchGameFromTeaser(e) { 14601 let n = Tr(e.href); 14602 if (!n) return !1; 14603 let i = { 14604 game: { 14605 gameId: n, 14606 lobbyType: e.context.layoutId, 14607 name: this.gameCatalogService.getGameName(n) ?? e.fallbackName ?? void 0, 14608 provider: this.gameCatalogService.getGameProvider(n) ?? "" 14609 }, 14610 isTouch: this.deviceService.isTouch, 14611 gamePosition: e.position || 1, 14612 gridPosition: e.context.containerIndex + 1, 14613 categoryType: e.context.subNavId || e.context.layoutId, 14614 from: ks,
14615 isDemoLaunch: !1, 14616 gameLaunchedFrom: ks, 14617 gameContainer: ip[e.teaserType], 14618 gameSection: Is[e.teaserType], 14619 gameContainerType: `${np} | ${e.teaserName}`, 14620 isBackgroundImageLayerPresent: e.hasBackgroundImage, 14621 returnUrl: this.navigationService.location.url(), 14622 clickTimeStamp: Date.now() 14623 }; 14624 return this.gameLaunchAggregator.launchGame(i), !0; 14625 } 14626 getContainerName(e) { 14627 return Is[e]; 14628 } 14629 static ɵfac = function(e) { 14630 return new (e || t)(); 14631 }; 14632 static ɵprov = A({ 14633 token: t, 14634 factory: t.ɵfac, 14635 providedIn: "root" 14636 }); 14637 } 14638 return t; 14639 })(), Ts = (() => { 14640 class t { 14641 document = s(Ge); 14642 injector = s(gt); 14643 platform = s(X); 14644 hide(e, n) { 14645 if (!this.platform.isBrowser) return; 14646 let { placeholderId: i, realElementSelector: r } = e, u = this.claim(i); 14647 if (!u) return; 14648 let v = null, P = () => { 14649 v && (v.disconnect(), v = null); 14650 }, N = () => { 14651 P(), u.style.display = "none"; 14652 }; 14653 if (this.document.querySelector(r)) { 14654 N(); 14655 return; 14656 } 14657 v = gC(() => { 14658 this.document.querySelector(r) && N(); 14659 }, this.injector), this.document.body && v.observe(this.document.body, { 14660 childList: !0, 14661 subtree: !0 14662 }), n.onDestroy(P); 14663 } 14664 remove(e = "#casino-teaser-placeholder") { 14665 if (!this.platform.isBrowser) return; 14666 let n = this.claim(e); 14667 n && (n.style.display = "none"); 14668 } 14669 claim(e) { 14670 let n = this.document.querySelector(e); 14671 return !n || n.dataset.dismissed === "true" ? null : (n.dataset.dismissed = "true", n); 14672 } 14673 static ɵfac = function(e) { 14674 return new (e || t)(); 14675 }; 14676 static ɵprov = A({ 14677 token: t, 14678 factory: t.ɵfac, 14679 providedIn: "root" 14680 }); 14681 } 14682 return t; 14683 })(), op = ["videoEl"], rp = "theme-sound-mute", sp = "theme-sound-loud", cp = .3, lp = 3, dp = 1024, gp = 480, mp = "medium", pp = "large", up = "video-bg-", hp = (() => { 14684 class t { 14685 src = m.required(); 14686 poster = m(""); 14687 height = m(350); 14688 ariaLabel = m(""); 14689 videoAlignment = m(""); 14690 videoPosition = m(""); 14691 deviceService = s(J); 14692 videoRef = De("videoEl"); 14693 isLoaded = O(!1); 14694 hasError = O(!1); 14695 mutedStatus = O(!0); 14696 isVisible = !1; 14697 showVideo = g(() => this.isLoaded() && !this.hasError()); 14698 soundIconName = g(() => this.mutedStatus() ? rp : sp); 14699 buttonSize = g(() => this.deviceService.windowWidth() <= dp ? mp : pp); 14700 isMobile = g(() => this.deviceService.windowWidth() <= gp); 14701 videoBgClass = g(() => { 14702 let e = this.videoAlignment().trim().toLowerCase(); 14703 return this.isMobile() && e ? `${up}${e}` : ""; 14704 }); 14705 videoObjectPosition = g(() => this.isMobile() && this.videoPosition() ? this.videoPosition() : null); 14706 observer = null; 14707 constructor() { 14708 this.observer = Mt((e) => { 14709 let n = e[0]; 14710 this.isVisible = !!n?.isIntersecting; 14711 let i = this.videoRef()?.nativeElement; 14712 i && (this.isVisible && i.readyState >= lp ? this.playVideo(i) : this.isVisible || this.pauseVideo(i)); 14713 }, { threshold: cp }), Se(() => { 14714 let e = this.videoRef()?.nativeElement; 14715 e && this.observer?.observe(e); 14716 }); 14717 } 14718 onVideoLoaded() { 14719 this.isLoaded.set(!0); 14720 } 14721 onCanPlay() { 14722 let e = this.videoRef()?.nativeElement; 14723 e && this.isVisible && this.playVideo(e); 14724 } 14725 onVideoError() { 14726 this.hasError.set(!0); 14727 } 14728 toggleMute(e) { 14729 e.stopImmediatePropagation(), this.mutedStatus.update((n) => !n); 14730 } 14731 playVideo(e) { 14732 e.paused && e.play().catch(() => {}); 14733 } 14734 pauseVideo(e) { 14735 e.paused || e.pause(); 14736 } 14737 static ɵfac = function(e) { 14738 return new (e || t)(); 14739 }; 14740 static ɵcmp = I({ 14741 type: t, 14742 selectors: [["cw-teaser-video"]], 14743 viewQuery: function(e, n) { 14744 e & 1 && He(n.videoRef, op, 5), e & 2 && Ue(); 14745 }, 14746 inputs: { 14747 src: [1, "src"], 14748 poster: [1, "poster"], 14749 height: [1, "height"], 14750 ariaLabel: [1, "ariaLabel"], 14751 videoAlignment: [1, "videoAlignment"], 14752 videoPosition: [1, "videoPosition"] 14753 }, 14754 decls: 7, 14755 vars: 11, 14756 consts: [ 14757 ["videoEl", ""], 14758 [1, "mp4video"], 14759 [1, "videocontainer"], 14760 [1, "teaser-container"], 14761 [ 14762 "alt", 14763 "", 14764 1, 14765 "teaser-video-poster", 14766 3, 14767 "src", 14768 "hidden" 14769 ], 14770 [ 14771 "playsinline", 14772 "", 14773 "aria-hidden", 14774 "true", 14775 3, 14776 "loadedmetadata", 14777 "canplay", 14778 "error", 14779 "loop", 14780 "muted", 14781 "src" 14782 ], 14783 [ 14784 "ds-button-icon", 14785 "", 14786 "variant", 14787 "filled", 14788 "kind", 14789 "primary", 14790 3, 14791 "size" 14792 ], 14793 [ 14794 "alt", 14795 "", 14796 1, 14797 "teaser-video-poster", 14798 3, 14799 "src" 14800 ], 14801 [ 14802 "ds-button-icon", 14803 "", 14804 "variant", 14805 "filled", 14806 "kind", 14807 "primary", 14808 3, 14809 "click", 14810 "size" 14811 ], 14812 [3, "name"] 14813 ], 14814 template: function(e, n) { 14815 e & 1 && (l(0, "div", 1)(1, "div", 2)(2, "div", 3), f(3, UM, 1, 3, "img", 4), l(4, "video", 5, 0), S("loadedmetadata", function() { 14816 return n.onVideoLoaded(); 14817 })("canplay", function() { 14818 return n.onCanPlay(); 14819 })("error", function() { 14820 return n.onVideoError(); 14821 }), d(), f(6, HM, 2, 3, "button", 6), d()()()), e & 2 && (a(), k("height", n.height(), "px"), a(2), h(n.poster() ? 3 : -1), a(), W(n.videoBgClass()), k("object-position", n.videoObjectPosition()), p("loop", !0)("muted", n.mutedStatus())("src", n.src(), Y), a(2), h(n.isLoaded() ? 6 : -1)); 14822 }, 14823 dependencies: [Bn, Ee], 14824 styles: ["[_nghost-%COMP%]{display:block;width:100%;height:100%}.mp4video[_ngcontent-%COMP%], .videocontainer[_ngcontent-%COMP%], .teaser-container[_ngcontent-%COMP%]{width:100%;height:100%}.mp4video[_ngcontent-%COMP%]{max-width:100%;overflow:hidden}.videocontainer[_ngcontent-%COMP%]{position:relative}.teaser-container[_ngcontent-%COMP%]{overflow:hidden;position:relative}.teaser-container[_ngcontent-%COMP%] video[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;border-radius:.8rem}.teaser-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{position:absolute;top:3%;left:90%;z-index:2}@media(min-width:768px){.teaser-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:95%}}@media(min-width:1025px){.teaser-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:94%}}@media(min-width:768px){.casino-opt-teasers-crousale.hydrogen[_nghost-%COMP%] .teaser-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .casino-opt-teasers-crousale.hydrogen [_nghost-%COMP%] .teaser-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:95%}}@media(min-width:1025px){.casino-opt-teasers-crousale.hydrogen[_nghost-%COMP%] .teaser-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .casino-opt-teasers-crousale.hydrogen [_nghost-%COMP%] .teaser-container[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{left:96%}}.teaser-video-poster[_ngcontent-%COMP%]{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:.8rem;z-index:1}.teaser-video-poster.hidden[_ngcontent-%COMP%]{opacity:0;transition:opacity .3s ease}@media(max-width:767px){.teaser-container[_ngcontent-%COMP%] video[_ngcontent-%COMP%]{border-radius:6px}}"] 14825 }); 14826 } 14827 return t; 14828 })(), fp = (t, o) => o.url, Ns = 480, vp = 1023, bp = 768, Cp = 1024, yp = "mp4", wp = "opt-teaser-bg-image-align-", Pp = "medium", Sp = "large", Mp = (() => { 14829 class t { 14830 item = m.required(); 14831 config = m.required(); 14832 dimensions = m.required(); 14833 isFirstSlide = m(!1); 14834 isMainBanner = m(!1); 14835 isUkBrand = m(!1); 14836 slideIndex = m(0); 14837 isHydrogen = m(!1); 14838 teaserType = m(Be.Aluminum); 14839 trackingContext = m({ 14840 containerIndex: 0, 14841 layoutId: "" 14842 }); 14843 #e = s(X); 14844 deviceService = s(J); 14845 navigationService = s(qe); 14846 teaserTracking = s(_s); 14847 teaserGameLaunch = s(ap); 14848 isMobile = g(() => this.deviceService.windowWidth() <= Ns); 14849 position = g(() => this.slideIndex() + 1); 14850 currentImage = g(() => { 14851 let e = this.deviceService.windowWidth(); 14852 return e <= Ns ? this.item().mobileImage : e < vp ? this.item().tabletImage : this.item().desktopImage; 14853 }); 14854 imagePriority = g(() => this.isFirstSlide() && this.isMainBanner()); 14855 showVideo = g(() => !!this.item().isVideoUrl && !!this.item().media?.url && this.#e.isBrowser); 14856 isVideoMedia = g(() => this.item().media?.type === yp); 14857 showTerms = g(() => !!this.item().termsAndConditions); 14858 bgImageAlignClass = g(() => { 14859 let e = this.config().backgroundImageAlignment?.trim().toLowerCase(); 14860 return e ? `${wp}${e}` : ""; 14861 }); 14862 bgObjectPosition = g(() => this.config().backgroundPosition || null); 14863 contentBg = g(() => this.config().contentBg || null); 14864 ctaSize = g(() => this.isMobile() ? Pp : Sp); 14865 slideHeight = g(() => { 14866 let e = this.dimensions(), n = this.deviceService.windowWidth(); 14867 return n < bp ? e.mobileHeight : n <= Cp ? e.tabletHeight : e.desktopHeight; 14868 }); 14869 onSlideClick() { 14870 if (!this.#e.isBrowser) return; 14871 let e = this.item().teaserLink; 14872 this.teaserTracking.trackTeaserClick({ 14873 teaserType: this.teaserType(), 14874 teaserName: this.item().id, 14875 position: this.position(), 14876 context: this.trackingContext(), 14877 urlClicked: e 14878 }
14878), e && !this.launchIfGame(e) && this.navigationService.goTo(e); 14879 } 14880 onCtaClick(e, n, i) { 14881 e.stopPropagation(), this.#e.isBrowser && n && (this.teaserTracking.trackTeaserClick({ 14882 teaserType: this.teaserType(), 14883 teaserName: this.item().id, 14884 position: this.position(), 14885 context: this.trackingContext(), 14886 ctaName: i, 14887 urlClicked: n 14888 }), this.launchIfGame(n) || this.navigationService.goTo(n)); 14889 } 14890 launchIfGame(e) { 14891 return this.teaserGameLaunch.launchGameFromTeaser({ 14892 teaserType: this.teaserType(), 14893 teaserName: this.item().id, 14894 href: e, 14895 position: this.position(), 14896 context: this.trackingContext(), 14897 fallbackName: this.item().title, 14898 hasBackgroundImage: !!this.currentImage()?.src 14899 }); 14900 } 14901 static ɵfac = function(e) { 14902 return new (e || t)(); 14903 }; 14904 static ɵcmp = I({ 14905 type: t, 14906 selectors: [["cw-teaser-slide"]], 14907 inputs: { 14908 item: [1, "item"], 14909 config: [1, "config"], 14910 dimensions: [1, "dimensions"], 14911 isFirstSlide: [1, "isFirstSlide"], 14912 isMainBanner: [1, "isMainBanner"], 14913 isUkBrand: [1, "isUkBrand"], 14914 slideIndex: [1, "slideIndex"], 14915 isHydrogen: [1, "isHydrogen"], 14916 teaserType: [1, "teaserType"], 14917 trackingContext: [1, "trackingContext"] 14918 }, 14919 decls: 12, 14920 vars: 22, 14921 consts: [ 14922 [ 14923 3, 14924 "click", 14925 "keydown.enter", 14926 "id" 14927 ], 14928 [1, "opt-teaser-body"], 14929 [ 14930 "fill", 14931 "", 14932 "sizes", 14933 "(max-width: 767px) 100vw, (max-width: 1024px) 60vw, 50vw", 14934 3, 14935 "class", 14936 "object-position", 14937 "ngSrc", 14938 "alt", 14939 "priority" 14940 ], 14941 [3, "class"], 14942 [ 14943 2, 14944 "width", 14945 "fit-content" 14946 ], 14947 [ 14948 1, 14949 "title", 14950 3, 14951 "innerHTML" 14952 ], 14953 [ 14954 1, 14955 "subtitle", 14956 3, 14957 "innerHTML" 14958 ], 14959 [1, "small-terms"], 14960 [ 14961 "fill", 14962 "", 14963 "sizes", 14964 "(max-width: 767px) 100vw, (max-width: 1024px) 60vw, 50vw", 14965 3, 14966 "ngSrc", 14967 "alt", 14968 "priority" 14969 ], 14970 [1, "gifsvg_img"], 14971 [ 14972 3, 14973 "src", 14974 "poster", 14975 "height", 14976 "videoAlignment", 14977 "videoPosition", 14978 "ariaLabel" 14979 ], 14980 [ 14981 "alt", 14982 "", 14983 "aria-hidden", 14984 "true", 14985 "loading", 14986 "lazy", 14987 3, 14988 "src" 14989 ], 14990 [ 14991 "ds-button", 14992 "", 14993 "variant", 14994 "filled", 14995 3, 14996 "click", 14997 "kind", 14998 "size" 14999 ], 15000 [3, "innerHTML"] 15001 ], 15002 template: function(e, n) { 15003 e & 1 && (l(0, "div", 0), S("click", function() { 15004 return n.onSlideClick(); 15005 })("keydown.enter", function() { 15006 return n.onSlideClick(); 15007 }), l(1, "div", 1), f(2, qM, 1, 7, "img", 2), f(3, KM, 2, 1), f(4, QM, 2, 3, "div", 3), l(5, "div", 4)(6, "div"), b(7, "div", 5), f(8, XM, 1, 1, "div", 6), D(9, ZM, 3, 5, "div", 3, fp), d()(), f(11, nO, 4, 3, "div", 7), d()()), e & 2 && (W("item-slide " + (n.item().htmlClasses || "")), k("cursor", n.item().teaserLink ? "pointer" : "default"), p("id", n.item().htmlId || ""), T("tabindex", n.item().teaserLink ? 0 : null)("role", n.item().teaserLink ? "link" : null)("aria-label", n.item().teaserLink ? n.item().title : null), a(), k("height", n.slideHeight(), "px"), a(), h(n.showVideo() ? -1 : 2), a(), h(n.showVideo() ? 3 : -1), a(), h(!n.showVideo() && (n.item().foregroundImage || n.item().desktopForegroundImage) ? 4 : -1), a(), W("opt-teaser-text-" + (n.config().horizontalAlignment || "center")), a(), W("opt-teaser-info text-align-" + (n.config().textAlignment || "center")), k("background", n.contentBg()), a(), p("innerHTML", n.item().title, _e), a(), h(n.item().subtitle ? 8 : -1), a(), R(n.item().ctas), a(2), h(n.showTerms() ? 11 : -1)); 15008 }, 15009 dependencies: [ 15010 Zt, 15011 hp, 15012 ke 15013 ], 15014 encapsulation: 2 15015 }); 15016 } 15017 return t; 15018 })(), Op = (t, o) => o.id, xp = "swiper-active", _p = "hydrogen", kp = 768, Ip = 1025, Ls = 570, Tp = 1024, Gs = 8, Es = 10, Qa = 22, Np = 5e3, As = 1.2, Xa = 1.65, Lp = 1920, Gp = 1210, Ep = (() => { 15019 class t { 15020 items = m.required(); 15021 config = m.required(); 15022 dimensions = m.required(); 15023 isUkBrand = m(!1); 15024 teaserType = m(""); 15025 trackingType = m(Be.Aluminum); 15026 trackingContext = m({ 15027 containerIndex: 0, 15028 layoutId: "" 15029 }); 15030 isMiddlePosition = m(!1); 15031 sliderClasses = m(""); 15032 showTimer = m(!1); 15033 hidePagination = m(!1); 15034 enableFixedWidth = m(!0); 15035 slideConfig = m({ 15036 mobileWidth: 280, 15037 tabletWidth: 600, 15038 desktopWidth: 796 15039 }); 15040 slideVisible = j(); 15041 deviceService = s(J); 15042 swiperRef; 15043 currentIndex = O(0); 15044 constructor() { 15045 Se(() => this.slideVisible.emit(this.currentIndex())); 15046 } 15047 limitedItems = g(() => { 15048 let e = this.config().maxRenderedTeasers; 15049 return e ? this.items().slice(0, e) : this.items(); 15050 }); 15051 showPagination = g(() => this.limitedItems().length > 1); 15052 showPaginationDots = g(() => this.showPagination() && !this.isMiddlePosition() && !this.hidePagination()); 15053 isMainBanner = g(() => this.dimensions().placement === "main-banner"); 15054 paginationIndexes = g(() => Array.from({ length: this.limitedItems().length }, (e, n) => n)); 15055 isHydrogen = g(() => this.teaserType().trim().toLowerCase() === _p); 15056 showConstrainedWidth = g(() => this.isMiddlePosition() && !this.deviceService.isTouch); 15057 swiperOptions = g(() => { 15058 let e = this.limitedItems().length > 1, n = this.isHydrogen(); 15059 return { 15060 slidesPerView: this.calculateSlidesPerView(), 15061 centeredSlides: n ? !1 : e && this.enableFixedWidth(), 15062 spaceBetween: n ? 0 : e ? Qa : 0, 15063 loop: e, 15064 slideActiveClass: xp, 15065 modules: e ? [El] : [], 15066 autoplay: this.getAutoplayConfig(e), 15067 navigation: e && !this.deviceService.isTouch, 15068 pagination: n && this.showPaginationDots(),
15069 breakpoints: this.getBreakpoints(n), 15070 on: { slideChange: (i) => this.onSlideChange(i.realIndex ?? 0) } 15071 }; 15072 }); 15073 paginationClick(e) { 15074 this.currentIndex() !== e && this.swiperRef?.slideTo(e); 15075 } 15076 onSlideChange(e) { 15077 this.currentIndex.set(e), this.slideVisible.emit(e); 15078 } 15079 getAutoplayConfig(e) { 15080 return !e || this.showTimer() ? !1 : { 15081 delay: this.config().autoplayDelay ?? Np, 15082 disableOnInteraction: !1, 15083 pauseOnMouseEnter: !0, 15084 waitForTransition: !1 15085 }; 15086 } 15087 getBreakpoints(e) { 15088 if (!e) return { 15089 0: { spaceBetween: Gs }, 15090 [kp]: { spaceBetween: Es }, 15091 [Ip]: { spaceBetween: Qa } 15092 }; 15093 } 15094 calculateSlidesPerView() { 15095 if (this.isHydrogen() || this.limitedItems().length < 2) return 1; 15096 if (this.limitedItems().length < 4) return "auto"; 15097 if (!this.enableFixedWidth()) return this.deviceService.windowWidth() <= Ls ? As : Xa; 15098 let e = this.deviceService.windowWidth(), n = this.slideConfig(), i, r, u, v; 15099 if (e <= Ls ? (i = n.mobileWidth, r = Gs, u = As, v = n.mobileOffset) : e <= Tp ? (i = n.tabletWidth, r = Es, u = Xa, v = n.tabletOffset) : (i = n.desktopWidth, r = Qa, u = Xa, v = n.desktopOffset), i <= 0) return u; 15100 let P = this.isMiddlePosition() ? Math.min(e, Gp) : Math.min(e, Lp), N = this.getOffsetBasedOnResolution(P, v), $ = P - r * N, me = Math.floor($ / i * 100) / 100; 15101 return me <= this.limitedItems().length ? me : u; 15102 } 15103 getOffsetBasedOnResolution(e, n) { 15104 if (!n) return 1; 15105 try { 15106 let i = JSON.parse(n), r = Object.keys(i); 15107 if (r.length === 0) return 1; 15108 let u = r.map((P) => parseInt(P, 10)).sort((P, N) => P - N), v = u[0]; 15109 for (let P of u) P <= e && (v = P); 15110 return i[String(v)] ?? 1; 15111 } catch { 15112 return 1; 15113 } 15114 } 15115 static ɵfac = function(e) { 15116 return new (e || t)(); 15117 }; 15118 static ɵcmp = I({ 15119 type: t, 15120 selectors: [["cw-teaser-carousel"]], 15121 viewQuery: function(e, n) { 15122 if (e & 1 && pn(si, 5), e & 2) { 15123 let i; 15124 vn(i = fn()) && (n.swiperRef = i.first); 15125 } 15126 }, 15127 inputs: { 15128 items: [1, "items"], 15129 config: [1, "config"], 15130 dimensions: [1, "dimensions"], 15131 isUkBrand: [1, "isUkBrand"], 15132 teaserType: [1, "teaserType"], 15133 trackingType: [1, "trackingType"], 15134 trackingContext: [1, "trackingContext"], 15135 isMiddlePosition: [1, "isMiddlePosition"], 15136 sliderClasses: [1, "sliderClasses"], 15137 showTimer: [1, "showTimer"], 15138 hidePagination: [1, "hidePagination"], 15139 enableFixedWidth: [1, "enableFixedWidth"], 15140 slideConfig: [1, "slideConfig"] 15141 }, 15142 outputs: { slideVisible: "slideVisible" }, 15143 decls: 8, 15144 vars: 9, 15145 consts: [ 15146 [1, "opt-teasers"], 15147 [ 15148 1, 15149 "mySwiper", 15150 3, 15151 "swiperOptions", 15152 "showPagination" 15153 ], 15154 [1, "swiper-slide"], 15155 [1, "custom-carousel"], 15156 [1, "swiper-custom-pagination"], 15157 [ 15158 3, 15159 "item", 15160 "config", 15161 "dimensions", 15162 "isFirstSlide", 15163 "isMainBanner", 15164 "isUkBrand", 15165 "slideIndex", 15166 "isHydrogen", 15167 "teaserType", 15168 "trackingContext" 15169 ], 15170 [ 15171 1, 15172 "swiper-pagination", 15173 "swiper-pagination-bullets", 15174 "swiper-pagination-clickable", 15175 "pagination-alignment" 15176 ], 15177 [ 15178 "role", 15179 "button", 15180 "tabindex", 15181 "0", 15182 1, 15183 "swiper-pagination-bullet", 15184 3, 15185 "swiper-pagination-bullet-active" 15186 ], 15187 [ 15188 "role", 15189 "button", 15190 "tabindex", 15191 "0", 15192 1, 15193 "swiper-pagination-bullet", 15194 3, 15195 "click" 15196 ] 15197 ], 15198 template: function(e, n) { 15199 e & 1 && (l(0, "div")(1, "div")(2, "div", 0)(3, "vn-swiper-wrapper", 1), D(4, iO, 2, 10, "div", 2, Op), d()(), l(6, "div", 3), f(7, oO, 4, 0, "div", 4), d()()()), e & 2 && (W((n.isHydrogen() ? "" : "alu-teasers" + (n.enableFixedWidth() ? " fixedWidth" : "")) + (n.showConstrainedWidth() ? " constrained-width" : "")), a(), W("casino-opt-teasers-crousale " + n.teaserType() + " " + n.sliderClasses() + (n.limitedItems().length > 1 ? " opt-arrows-multiple" : "")), a(), L("opt-arrows-single", n.limitedItems().length < 2), a(), p("swiperOptions", n.swiperOptions())("showPagination", n.showPagination()), a(), R(n.limitedItems()), a(3), h(n.showPagination() && !n.isHydrogen() && !n.isMiddlePosition() && !n.hidePagination() ? 7 : -1)); 15200 }, 15201 dependencies: [si, Mp], 15202 styles: [`.casino-lobby-container-main .opt-teaser-cta{display:inline-block;position:relative;margin:var(--%NS%semantic-spacing-stack-lg) 0 0 var(--%NS%semantic-spacing-inline-xl)}.casino-lobby-container-main .opt-teaser-cta.second-cta{margin-left:0}.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale .opt-teasers .swiper .swiper-button-prev,.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale .opt-teasers .swiper .swiper-button-next{display:none}@media only screen and (min-width:768px){.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale.opt-arrows-multiple .opt-teasers .swiper .swiper-button-prev,.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale.opt-arrows-multiple .opt-teasers .swiper .swiper-button-next{display:flex}}@media only screen and (max-width:767px){.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .native-swiper-nav,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper-button-prev,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper-button-next{display:none}}
15202.casino-lobby-container-main .casino-opt-teasers-crousale.squared-arrow .opt-teasers .native-swiper-nav ds-arrow{border-radius:0}.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale:not(.hydrogen) .opt-teasers .swiper .swiper-slide{position:relative}.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale:not(.hydrogen) .opt-teasers .swiper .swiper-slide.swiper-slide-prev:before{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(to left,#05050599,#050505);border-radius:.8rem;pointer-events:none}.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale:not(.hydrogen) .opt-teasers .swiper .swiper-slide.swiper-slide-next:after{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(to right,#05050599,#050505);border-radius:.8rem;pointer-events:none}@media only screen and (max-width:767px){.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale:not(.hydrogen) .opt-teasers .swiper .swiper-slide.swiper-slide-prev:before,.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale:not(.hydrogen) .opt-teasers .swiper .swiper-slide.swiper-slide-next:after{border-radius:6px}}.casino-lobby-container-main .constrained-width{max-width:1210px;margin:0 auto}@media only screen and (max-width:1209px){.casino-lobby-container-main .constrained-width{max-width:100%;padding:0 2.8125rem}}@media only screen and (max-width:959px){.casino-lobby-container-main .constrained-width{padding:0 var(--%NS%semantic-spacing-container-padding-3xl)}}@media only screen and (max-width:767px){.casino-lobby-container-main .constrained-width{padding:0 var(--%NS%semantic-spacing-container-padding-md)}}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper{padding-bottom:0}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper .swiper-pagination,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .native-swiper-pagination,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers vn-native-swiper .native-swiper-pagination{position:absolute;z-index:1;bottom:var(--%NS%semantic-spacing-inline-xl)}@media only screen and (max-width:480px){.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper .swiper-pagination,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .native-swiper-pagination,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers vn-native-swiper .native-swiper-pagination{bottom:var(--%NS%semantic-spacing-container-padding-lg)}}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .native-swiper-pagination .native-swiper-bullet.active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet.active{margin:var(--%NS%semantic-spacing-inline-sm);height:var(--%NS%semantic-size-x2);width:var(--%NS%semantic-size-x2);opacity:1}@media only screen and (min-width:768px){.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .native-swiper-pagination .native-swiper-bullet.active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet.active{height:var(--%NS%semantic-size-x3);width:var(--%NS%semantic-size-x3);margin:var(--%NS%semantic-spacing-stack-lg)}}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .native-swiper-pagination .native-swiper-bullet.active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet.active{border-radius:var(--%NS%semantic-radius-semi-rounded-sm);width:var(--%NS%semantic-size-x10);height:var(--%NS%semantic-spacing-inline-sm);margin:var(--%NS%semantic-spacing-inline-sm)}@media only screen and (max-width:767px){.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers .native-swiper-pagination .native-swiper-bullet.active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.lines .opt-teasers vn-native-swiper .native-swiper-pagination .native-swiper-bullet.active{border-radius:var(--%NS%semantic-radius-semi-rounded-sm);width:var(--%NS%semantic-size-x4);height:var(--%NS%semantic-spacing-inline-xs);margin:var(--%NS%semantic-spacing-inline-xs)}}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.squares .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.squares .opt-teasers .swiper .swiper-pagination .swiper-pagination-bullet.swiper-pagination-bullet-active,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.squares .opt-teasers .native-swiper-pagination .native-swiper-bullet,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen.squares .opt-teasers .native-swiper-pagination .native-swiper-bullet.active{border-radius:var(--%NS%semantic-radius-squared)}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teaser-bg-image.opt-teaser-bg-image-align-left{object-position:left}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teaser-bg-image.opt-teaser-bg-image-align-right{object-position:right}.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen video.video-bg-left,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen video.video-bg-right{object-fit:cover}@media only screen and (max-width:767px){.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .item-sl
15202ide .opt-teaser-body .opt-teaser-text-left .opt-teaser-cta,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .item-slide .opt-teaser-body .opt-teaser-text-default .opt-teaser-cta,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .item-slide .opt-teaser-body .opt-teaser-text-right .opt-teaser-cta,.casino-lobby-container-main .casino-opt-teasers-crousale.hydrogen .opt-teasers .item-slide .opt-teaser-body .opt-teaser-text-center .opt-teaser-cta{display:inline-block}}.casino-lobby-container-main .alu-teasers .casino-opt-teasers-crousale .swiper-custom-pagination .swiper-pagination-bullets .swiper-pagination-bullet-active{top:0} 15203`], 15204 encapsulation: 2 15205 }); 15206 } 15207 return t; 15208 })(), Ap = (() => { 15209 class t { 15210 static ɵfac = function(e) { 15211 return new (e || t)(); 15212 }; 15213 static ɵcmp = I({ 15214 type: t, 15215 selectors: [["cw-teaser-skeleton"]], 15216 decls: 1, 15217 vars: 0, 15218 consts: [[1, "sk"]], 15219 template: function(e, n) { 15220 e & 1 && Pe(0, "div", 0); 15221 }, 15222 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{width:100%;flex:1 1 auto;min-height:0;border-radius:var(--%NS%semantic-radius-semi-rounded-lg);background:var(--%NS%semantic-color-surface-container-high-base)}"] 15223 }); 15224 } 15225 return t; 15226 })(), Za = "hydrogen", Rp = 3, Dp = "main-banner", zp = "isUkHeading", Rs = "teaser-global-styles", Ds = "teaser-custom-styles", Bp = "videoUrlShared", Fp = "thumbnailImage", Vp = (() => { 15227 class t { 15228 containerService = s(ie); 15229 configProviderService = s(V); 15230 document = s(Ge); 15231 renderer = s(lt); 15232 platform = s(X); 15233 teaserTracking = s(_s); 15234 casinoNavigationService = s(he); 15235 destroyRef = s(q); 15236 teaserPlaceholderService = s(Ts); 15237 containerMetadata = m.required(); 15238 containerIndex = m(0); 15239 layoutId = m(""); 15240 subNavId = m(""); 15241 loadTrackedPositions = /* @__PURE__ */ new Set(); 15242 isMiddlePosition = O(!1); 15243 hasPreloaderPlaceholder = O(!1); 15244 containerResponse = Q(this.containerService.container$); 15245 isLoading = g(() => this.containerResponse() == null && !this.containerService.hasError()); 15246 teaserItems = O([]); 15247 ukBrand = g(() => !!this.configProviderService.provideFeaturesConfig()?.[zp]); 15248 effectiveTeaserType = g(() => (this.settings().teaserType ?? "").trim().toLowerCase() === Za || this.slideItems().length < Rp ? Za : ""); 15249 isHydrogen = g(() => this.effectiveTeaserType() === Za); 15250 settings = O({}); 15251 resolvedTeaserType = g(() => this.isMiddlePosition() ? Be.Embedded : this.isHydrogen() ? Be.Hydrogen : Be.Aluminum); 15252 trackingContext = g(() => ({ 15253 containerIndex: this.containerIndex(), 15254 layoutId: this.layoutId(), 15255 subNavId: this.casinoNavigationService.currentSubnav()?.id || this.subNavId() || void 0 15256 })); 15257 presentationConfig = g(() => { 15258 let e = this.settings(); 15259 return { 15260 horizontalAlignment: e.teaserDefaultTextHorizontalPosition ?? "", 15261 verticalAlignment: e.teaserDefaultTextVerticalPosition ?? "", 15262 textAlignment: e.teaserDefaultHorizontalTextAlignment ?? "", 15263 termsTextAlignment: e.teaserDefaultTermsTextPosition ?? "", 15264 imageAlignment: e.teaserDefaultImagePosition ?? "", 15265 maxRenderedTeasers: e.maxRenderedTeasers, 15266 autoplayDelay: e.autoplayDelay ?? 5e3, 15267 backgroundImageAlignment: this.isHydrogen() ? e.teaserBackgroundImageAlignment ?? "" : "", 15268 backgroundPosition: this.isHydrogen() ? e.teaserBackgroundPosition ?? "" : "", 15269 contentBg: this.isHydrogen() ? e.teaserDefaultContentBg ?? "" : "", 15270 videoAlignment: this.isHydrogen() ? e.teaserVideoAlignment ?? "" : "", 15271 videoPosition: this.isHydrogen() ? e.teaserVideoPosition ?? "" : "" 15272 }; 15273 }); 15274 sliderClasses = g(() => { 15275 let e = this.settings(); 15276 return [ 15277 e.teaserDefaultSliderArrowBg, 15278 e.teaserDefaultSliderArrowShape, 15279 e.teaserDefaultSliderBullet 15280 ].filter(Boolean).join(" "); 15281 }); 15282 showTimerEnabled = g(() => !!this.settings().showTimer && this.slideItems().length > 1); 15283 hidePagination = g(() => { 15284 let e = this.settings(); 15285 return e.enablePagination === !1 ? !0 : e.showPaginationDots === "fal
15285se" && !e.teaserDefaultSliderBullet; 15286 }); 15287 enableFixedWidth = g(() => this.settings().enableFixedWidthAluminiumTeasers !== !1); 15288 slideConfig = g(() => { 15289 let e = this.settings(); 15290 return { 15291 mobileWidth: e.aluminiumMobileSlideWidth ?? 280, 15292 tabletWidth: e.aluminiumTabletSlideWidth ?? 600, 15293 desktopWidth: e.aluminiumDesktopSlideWidth ?? 796, 15294 mobileOffset: e.mobileFixedWidthAluTeaserOffsetValue, 15295 tabletOffset: e.tabletFixedWidthAluTeaserOffsetValue, 15296 desktopOffset: e.desktopFixedWidthAluTeaserOffsetValue 15297 }; 15298 }); 15299 slideItems = g(() => { 15300 let e = this.settings().maxRenderedTeasers || this.teaserItems().length; 15301 return this.teaserItems().filter((n) => n.iconTileCode == null).slice(0, e).map((n) => this.mapToSlideItem(n)); 15302 }); 15303 dimensions = g(() => { 15304 let e = this.settings(), n = this.isMiddlePosition(); 15305 return { 15306 placement: Dp, 15307 desktopHeight: (n ? e.desktopViewEmbeddedTeaserHeight : e.desktopViewTeaserHeight) ?? 350, 15308 tabletHeight: (n ? e.tabletViewEmbeddedTeaserHeight : e.tabletViewTeaserHeight) ?? 350, 15309 mobileHeight: (n ? e.mobileViewEmbeddedTeaserHeight : e.mobileViewTeaserHeight) ?? 200 15310 }; 15311 }); 15312 constructor() { 15313 Z(() => { 15314 let e = this.containerResponse(); 15315 e && this.handleTeaserResponse(e); 15316 }), Z(() => { 15317 this.containerService.hasError() && this.removePreloaderPlaceholder(); 15318 }); 15319 } 15320 onTeaserVisible(e) { 15321 if (!this.platform.isBrowser) return; 15322 let n = this.slideItems()[e]; 15323 if (!n) return; 15324 let i = e + 1; 15325 this.loadTrackedPositions.has(i) || (this.loadTrackedPositions.add(i), this.teaserTracking.trackTeaserLoad({ 15326 teaserType: this.resolvedTeaserType(), 15327 teaserName: n.id, 15328 position: i, 15329 context: this.trackingContext() 15330 })); 15331 } 15332 ngOnInit() { 15333 this.platform.isBrowser && this.hasPreloaderPlaceholder.set(this.document.getElementById("casino-teaser-placeholder") != null), this.containerService.fetchAndSetContainer(this.containerMetadata()); 15334 } 15335 handleTeaserResponse(e) { 15336 let n = e?.data ?? e; 15337 if (!n?.optimizedTeaserContents) { 15338 Array.isArray(e) && this.teaserItems.set(e), this.dismissPreloaderPlaceholder(); 15339 return; 15340 } 15341 this.teaserItems.set(n.optimizedTeaserContents), this.isMiddlePosition.set(n.isEmbedded ?? !1), n.globalTeaserSettings && this.settings.set(n.globalTeaserSettings), n.globalTeaserStylesCss && this.injectGlobalStyles(n.globalTeaserStylesCss), this.injectCustomCss(n.optimizedTeaserContents), this.dismissPreloaderPlaceholder(); 15342 } 15343 dismissPreloaderPlaceholder() { 15344 this.slideItems().length > 0 ? this.teaserPlaceholderService.hide({ 15345 placeholderId: "#casino-teaser-placeholder", 15346 realElementSelector: "cw-teaser-slide .opt-teaser-bg-image" 15347 }, this.destroyRef) : this.removePreloaderPlaceholder(); 15348 } 15349 removePreloaderPlaceholder() { 15350 this.teaserPlaceholderService.remove("#casino-teaser-placeholder"); 15351 } 15352 mapToSlideItem(e) { 15353 return { 15354 id: e.itemName ?? "", 15355 title: e.teaserTitle ?? "", 15356 subtitle: e.subTitle, 15357 termsAndConditions: e.significantTermsandConditions, 15358 desktopImage: this.resolveImage(e.desktopImage, e.backgroundImage), 15359 tabletImage: this.resolveImage(e.tabletImage, e.desktopImage, e.backgroundImage), 15360 mobileImage: this.resolveImage(e.backgroundImage, e.desktopImage), 15361 ctas: this.mapCtas(e), 15362 media: this.mapMedia(e), 15363 foregroundImage: this.mapOptionalImage(e.foregroundImage), 15364 desktopForegroundImage: this.mapOptionalImage(e.desktopForegroundImage), 15365 htmlClasses: typeof e.htmlClasses == "string" ? e.htmlClasses : void 0, 15366 htmlId: typeof e.htmlId == "string" ? e.htmlId : void 0, 15367 isVideoUrl: !!e.isVideoUrl, 15368 teaserLink: e.teaserLink?.url 15369 }; 15370 } 15371 resolveImage(...e) { 15372 return { 15373 src: e.map((n) => n?.url ?? n?.src ?? "").find((n) => n !== "") ?? "", 15374 alt: e.map((n) => n?.altText ?? "").find((n) => n !== "") ?? "", 15375 width: e.map((n) => n?.width ?? 0).find((n) => n !== 0) ?? 0, 15376 height: e.map((n) => n?.height ?? 0).find((n) => n !== 0) ?? 0 15377 }; 15378 } 15379 mapMedia(e) { 15380 if (!e.isVideoUrl || !e.videoUrl) return; 15381 let n = e.videoUrl; 15382 return { 15383 url: n[Bp] ?? "", 15384 type: "mp4", 15385 poster: (n[Fp] ?? {}).src ?? "" 15386 }; 15387 } 15388 mapOptionalImage(e) { 15389 if (e) return { 15390 src: e.url ?? e.src ?? "", 15391 alt: e.altText ?? "", 15392 width: e.width ?? 0, 15393 height: e.height ?? 0 15394 }; 15395 } 15396 mapCtas(e) { 15397 let n = []; 15398 return e.cta?.url && n.push({ 15399 label: e.cta.text ?? "", 15400 url: e.cta.url 15401 }), e.secondaryCTA?.url && n.push({ 15402 label: e.secondaryCTA.text ?? "", 15403 url: e.secondaryCTA.url 15404 }), n; 15405 } 15406 injectGlobalStyles(e) { 15407 if (!this.platform.isBrowser || !e || !this.document.head || this.document.getElementById(Rs)) return; 15408 let n = this.renderer.createElement("style"); 15409 this.renderer.setProperty(n, "id", Rs), this.renderer.setProperty(n, "textContent", e), this.renderer.appendChild(this.document.head, n); 15410 } 15411 injectCustomCss(e) { 15412 if (!this.platform.isBrowser || !this.document.head) return; 15413 let n = this.document.getElementById(Ds); 15414 n && this.renderer.removeChild(this.document.head, n); 15415 let i = e.filter((u) => typeof u.customCss == "string" && u.customCss).map((u) => u.customCss).join(` 15416`); 15417 if (!i) return; 15418 let r = this.renderer.createElement("style"); 15419 this.renderer.setProperty(r, "id", Ds), this.renderer.setProperty(r, "textContent", i), this.renderer.appendChild(this.document.head, r); 15420 } 15421 static ɵfac = function(e) { 15422 return new (e || t)(); 15423 }; 15424 static ɵcmp = I({ 15425 type: t, 15426 selectors: [["cw-teaser-block"]], 15427 hostVars: 10, 15428 hostBindings: function(e, n) {
15429 e & 2 && (k("--%NS%teaser-h-mobile", n.dimensions().mobileHeight, "px")("--%NS%teaser-h-tablet", n.dimensions().tabletHeight, "px")("--%NS%teaser-h-desktop", n.dimensions().desktopHeight, "px"), L("cw-teaser-block--reserve-space", n.slideItems().length > 0 || n.isLoading())("cw-teaser-block--hydrogen", n.slideItems().length > 0 && n.isHydrogen())); 15430 }, 15431 inputs: { 15432 containerMetadata: [1, "containerMetadata"], 15433 containerIndex: [1, "containerIndex"], 15434 layoutId: [1, "layoutId"], 15435 subNavId: [1, "subNavId"] 15436 }, 15437 features: [ce([ie])], 15438 decls: 2, 15439 vars: 1, 15440 consts: [ 15441 [ 15442 3, 15443 "items", 15444 "config", 15445 "dimensions", 15446 "isUkBrand", 15447 "teaserType", 15448 "trackingType", 15449 "trackingContext", 15450 "isMiddlePosition", 15451 "sliderClasses", 15452 "showTimer", 15453 "hidePagination", 15454 "enableFixedWidth", 15455 "slideConfig" 15456 ], 15457 [3, "containerId"], 15458 [ 15459 3, 15460 "slideVisible", 15461 "items", 15462 "config", 15463 "dimensions", 15464 "isUkBrand", 15465 "teaserType", 15466 "trackingType", 15467 "trackingContext", 15468 "isMiddlePosition", 15469 "sliderClasses", 15470 "showTimer", 15471 "hidePagination", 15472 "enableFixedWidth", 15473 "slideConfig" 15474 ] 15475 ], 15476 template: function(e, n) { 15477 e & 1 && f(0, rO, 1, 13, "cw-teaser-carousel", 0)(1, cO, 2, 2, "cw-lobby-container-placeholder", 1), e & 2 && h(n.slideItems().length > 0 ? 0 : n.isLoading() ? 1 : -1); 15478 }, 15479 dependencies: [ 15480 Ep, 15481 st, 15482 Ap 15483 ], 15484 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: var(--%NS%teaser-h-mobile, 200px)}@media only screen and (min-width:768px){[_nghost-%COMP%]{--%NS%cw-reserve-h: var(--%NS%teaser-h-tablet, 350px)}}@media only screen and (min-width:1025px){[_nghost-%COMP%]{--%NS%cw-reserve-h: var(--%NS%teaser-h-desktop, 350px)}}.cw-teaser-block--reserve-space[_nghost-%COMP%]{margin-top:var(--%NS%semantic-spacing-stack-lg)}.cw-teaser-block--%NS%hydrogen[_nghost-%COMP%]:first-child{margin-top:0}"] 15485 }); 15486 } 15487 return t; 15488 })(), jp = "default", $p = "p", Gi = (() => { 15489 class t { 15490 containerService = s(ie); 15491 configProviderService = s(V); 15492 gameLaunchAggregatorService = s(Qe); 15493 ga4TrackingService = s(Un); 15494 trackingContextService = s(jn); 15495 navigationService = s(he); 15496 deviceService = s(J); 15497 gameBuilderService = s(ft); 15498 casinoManager = s(Ve); 15499 signPostingService = s(zr); 15500 recentGamesService = s(at); 15501 favouriteService = s(Re); 15502 unfinishedGamesService = s(_t); 15503 recentGames = Q(this.recentGamesService.recentGamesFeedObservable, { initialValue: [] }); 15504 layoutIdSignal = O(""); 15505 containerMetadataSignal = O(void 0); 15506 containerIndexSignal = O(0); 15507 container = this.containerService.container; 15508 hasError = this.containerService.hasError; 15509 isSignPosting = g(() => !!this.casinoManager.IsFeatureEnabledForLobbyType(this.layoutIdSignal(), this.configProviderService.provideFeaturesConfig()?.enableSignpostingSticker)); 15510 gamelist = g(() => { 15511 let e = this.gameBuilderService.buildGameList(this.container()?.games ?? [], ue.Square); 15512 if (!this.isSignPosting()) return e; 15513 let n = this.recentGames(); 15514 return e.map((i) => F(G({}, i), { stickers: this.signPostingService.filterStickers(i.stickers, i.gameId, n) })); 15515 }); 15516 gameCabinetInfoData = g(() => this.container()?.cabinet); 15517 gameCount = g(() => this.container()?.gameCount ?? 0); 15518 layoutType = g(() => this.gameCabinetInfoData()?.layoutType ?? ot.LG); 15519 gameColumns = g(() => lO(this.gamelist(), 3)); 15520 prefetchIndex = g(() => { 15521 let e = this.configProviderService.provideFeaturesConfig()?.lobbyPagination?.rowThresholdForPrefetch || 2, n = this.layoutType() === ot.SM ? 3 : 1;
15522 return Math.max(this.gamelist().length - e * n, 0); 15523 }); 15524 bgImageUrl = g(() => { 15525 let e = this.gameCabinetInfoData()?.backgroundImageUrl; 15526 return e ? `url(${e})` : ""; 15527 }); 15528 gamesLabel = g(() => this.configProviderService.provideGlobalConfig()?.messages?.games ?? "games"); 15529 showInfoButton = g(() => !!this.configProviderService.provideFeaturesConfig()?.enableGameInfoButtonV2); 15530 categoryId = g(() => this.containerMetadataSignal()?.id ?? ""); 15531 gameContainerType = g(() => Vt(Ce.Cabinet, this.containerMetadataSignal()?.viewType)); 15532 layoutId = g(() => this.layoutIdSignal()); 15533 containerIndex = g(() => this.containerIndexSignal()); 15534 containerTitle = g(() => this.gameCabinetInfoData()?.title ?? ""); 15535 init(e) { 15536 this.layoutIdSignal = e.layoutId, this.containerMetadataSignal = e.containerMetadata, this.containerIndexSignal = e.containerIndex; 15537 } 15538 fetchAndSetContainer(e = !1) { 15539 let n = this.containerMetadataSignal(); 15540 n && this.containerService.fetchAndSetContainer(n, e); 15541 } 15542 loadNextGames() { 15543 this.fetchAndSetContainer(!0); 15544 } 15545 action(e, n, i = !1) { 15546 let r = this.categoryId(), u = this.gameCabinetInfoData()?.title ?? "", v = this.navigationService.currentSubnav()?.id ?? ""; 15547 this.ga4TrackingService.trackClick(Pi({ 15548 game: e, 15549 containerId: r, 15550 layoutId: this.layoutIdSignal(), 15551 subNavigation: this.navigationService.currentSubnav()?.id, 15552 containerType: this.gameContainerType(), 15553 containerName: u, 15554 gameIndex: n, 15555 containerIndex: this.containerIndexSignal(), 15556 gridPosition: this.trackingContextService.getGridPosition(n, this.containerIndexSignal()), 15557 playingStatus: this.unfinishedGamesService.getUnfinishedGames().includes(e.gameId) ? "unfinished" : "start", 15558 favouriteStatus: this.favouriteService.isFavourite(e.gameId) ? "favourite" : "non favourite" 15559 })); 15560 let P = { 15561 game: F(G({}, e), { lobbyType: this.layoutIdSignal() }), 15562 isTouch: i || this.deviceService.isMobile || this.deviceService.isTablet, 15563 gamePosition: n, 15564 categoryType: v, 15565 from: $p, 15566 replaceRouteInHistory: !1, 15567 isDemoLaunch: !1, 15568 skipUnfinGame: !1, 15569 gameLaunchedFrom: r, 15570 gridPosition: this.containerIndexSignal(), 15571 gameContainer: r, 15572 gameSection: u, 15573 gameContainerType: this.gameContainerType(), 15574 isBackgroundImageLayerPresent: !!this.gameCabinetInfoData()?.backgroundImageUrl, 15575 clickTimeStamp: Date.now() 15576 }; 15577 this.gameLaunchAggregatorService.launchGame(P); 15578 } 15579 favouriteTrackingContext(e, n) { 15580 return { 15581 gameName: e.name, 15582 provider: e.provider, 15583 gameContainerId: this.categoryId(), 15584 gameContainerName: this.containerTitle(), 15585 gameContainerType: this.gameContainerType(), 15586 gameStatus: this.trackingContextService.getGameStatus(this.isSignPosting() && this.signPostingService.isSignPostedGame(e)), 15587 gamePosition: n, 15588 gameGridPosition: this.trackingContextService.getGridPosition(n, this.containerIndexSignal()), 15589 gameBadges: ya(e.stickers), 15590 categoryType: this.layoutIdSignal(), 15591 categorySubType: this.navigationService.currentSubnav()?.id 15592 }; 15593 } 15594 openGameInfoSheet(e, n) {} 15595 static ɵfac = function(e) { 15596 return new (e || t)(); 15597 }; 15598 static ɵprov = A({ 15599 token: t, 15600 factory: t.ɵfac 15601 }); 15602 } 15603 return t; 15604 })(), ln = (() => { 15605 class t { 15606 elementRef = s(tt); 15607 ngZone = s(bn); 15608 injector = s(gt); 15609 ga4TrackingService = s(Un); 15610 trackingContextService = s(jn); 15611 navigationService = s(he); 15612 favouriteService = s(Re); 15613 unfinishedGamesService = s(_t); 15614 platformId = s(To); 15615 game = m.required(); 15616 layoutId = m.required(); 15617 containerId = m.required(); 15618 gameIndex = m(0); 15619 containerIndex = m(0); 15620 containerTitle = m(""); 15621 containerType = m(""); 15622 ngOnInit() { 15623 Do(this.platformId) && this.ngZone.runOutsideAngular(() => { 15624 let e = Mt((n) => { 15625 let i = n[0]; 15626 if (i?.isIntersecting && i.intersectionRatio >= 1) { 15627 if (!this.containerId()) return; 15628 this.ga4TrackingService.reportImpression(this.buildTrackingData()), e.unobserve(this.elementRef.nativeElement); 15629 } 15630 }, { threshold: [1] }, this.injector); 15631 e.observe(this.elementRef.nativeElement); 15632 }); 15633 } 15634 buildTrackingData() { 15635 let e = this.game(), n = this.gameIndex(); 15636 return Pi({ 15637 game: e, 15638 containerId: this.containerId(), 15639 layoutId: this.layoutId() || this.navigationService.currentLayout(), 15640 subNavigation: this.navigationService.currentSubnav()?.id, 15641 containerType: this.containerType(), 15642 containerName: this.containerTitle(), 15643 gameIndex: n, 15644 containerIndex: this.containerIndex(), 15645 gridPosition: this.trackingContextService.getGridPosition(n, this.containerIndex()), 15646 playingStatus: this.unfinishedGamesService.getUnfinishedGames().includes(e.gameId) ? "unfinished" : "start", 15647 favouriteStatus: this.favouriteService.isFavourite(e.gameId) ? "favourite" : "non favourite" 15648 }); 15649 } 15650 static ɵfac = function(e) { 15651 return new (e || t)(); 15652 }; 15653 static ɵdir = Dn({ 15654 type: t, 15655 selectors: [[ 15656 "", 15657 "cwGameImpression", 15658 "" 15659 ]], 15660 inputs: { 15661 game: [1, "game"], 15662 layoutId: [1, "layoutId"], 15663 containerId: [1, "containerId"], 15664 gameIndex: [1, "gameIndex"], 15665 containerIndex: [1, "containerIndex"], 15666 containerTitle: [1, "containerTitle"], 15667 containerType: [1, "containerType"] 15668 } 15669 }); 15670 } 15671 return t; 15672 })(), Wp = (t, o) => o.name, Ei = (() => { 15673 class t { 15674 configProviderService = s(V); 15675 casinoManager = s(Ve); 15676 deviceService = s(J); 15677 sanitizer = s(zo); 15678 stickers = m.required(); 15679 layoutId = m.required(); 15680 isTouch = O(!1); 15681 isStickersForUk; 15682 enableStickerStyles; 15683 globalConfig; 15684 ngOnInit() { 15685 this.isTouch.set(this.deviceService.isTouch); 15686 let e = this.configProviderService.provideFeaturesConfig(); 15687 this.enableStickerStyles = e.enableStickerStyles, this.isStickersForUk = !!this.casinoManager.IsFeatureEnabledForLobbyType(this.layoutId(), e.stickersForUk), this.globalConfig = this.configProviderService.provideGlobalConfig(); 15688 } 15689 getStyles(e) { 15690 return e.css && this.sanitizer.sanitize(Wb.STYLE, e.css.replace(/\n/g, "")) || ""; 15691 } 15692 toTitleCase = (e) => e.replace(/(?:^|\s)\w/g, (n) => n.toUpperCase()); 15693 static ɵfac = function(e) { 15694 return new (e || t)(); 15695 }; 15696 static ɵcmp = I({ 15697 type: t, 15698 selectors: [["cw-game-tile-stickers"]], 15699 inputs: { 15700 stickers: [1, "stickers"], 15701 layoutId: [1, "layoutId"] 15702 }, 15703 decls: 3, 15704 vars: 2, 15705 consts: [ 15706 [1, "game-badge"], 15707 [ 15708 1, 15709 "promo-text", 15710 3, 15711 "style", 15712 "nonTouch", 15713 "promo-text-badge-0", 15714 "promo-text-badge-1" 15715 ], 15716 [1, "promo-text"] 15717 ], 15718 template: function(e, n) { 15719 e & 1 && (H(0, "div", 0), D(1, dO, 2, 9, "b", 1, Wp), K()), e & 2 && (L("stickers-uk", n.isStickersForUk), a(), R(n.stickers())); 15720 }, 15721 encapsulation: 2 15722 }); 15723 } 15724 return t; 15725 })(), Ht = (() => { 15726 class t { 15727 icon = m.required(); 15728 gameId = m.required(); 15729 alt = m(""); 15730 priority = m(!1); 15731 disableTheme = m(!1); 15732 sizes = m(or); 15733 placeholder = m(!0); 15734 width = m(); 15735 height = m(); 15736 imageStyle = m(""); 15737 containerStyle = m(""); 15738 loaded = j(); 15739 src = O(""); 15740 defaultSrc = O(""); 15741 host = O(""); 15742 isImageLoadError = O(!1); 15743 computedStyle = g(() => this.getComputedStyle(this.icon()) + this.imageStyle()); 15744 configProviderService = s(V); 15745 gameImageService = s(rt); 15746 casinoStylesService = s(jt); 15747 ngOnInit() { 15748 this.initialiseImageConfig(); 15749 } 15750 initialiseImageConfig() { 15751 let e = this.gameImageService.getGrayImageUrl(), n = this.icon().src; 15752 this.defaultSrc.set(e), this.configProviderService.provideFeaturesConfig().enableGameIconTheming && (n = this.casinoStylesService.appendTheme(n, this.gameId())), this.src.set(n || ""); 15753 } 15754 getComputedStyle(e) { 15755 return `border-radius: ${e.gameTileBorderRadius}; background-color: unset;`; 15756 } 15757 onLoadError() { 15758 this.isImageLoadError.set(!0), this.src() !== this.defaultSrc() && this.src.set(this.defaultSrc()); 15759 } 15760 static ɵfac = function(e) { 15761 return new (e || t)(); 15762 }; 15763 static ɵcmp = I({ 15764 type: t, 15765 selectors: [["cw-image-loader"]], 15766 inputs: { 15767 icon: [1, "icon"], 15768 gameId: [1, "gameId"], 15769 alt: [1, "alt"], 15770 priority: [1, "priority"], 15771 disableTheme: [1, "disableTheme"], 15772 sizes: [1, "sizes"], 15773 placeholder: [1, "placeholder"], 15774 width: [1, "width"], 15775 height: [1, "height"], 15776 imageStyle: [1, "imageStyle"], 15777 containerStyle: [1, "containerStyle"] 15778 }, 15779 outputs: { loaded: "loaded" }, 15780 decls: 1, 15781 vars: 10, 15782 consts: [[ 15783 3, 15784 "loadedFailed", 15785 "loaded", 15786 "src", 15787 "sizes", 15788 "width", 15789 "height", 15790 "imageStyle", 15791 "containerStyle", 15792 "alt", 15793 "priority", 15794 "placeholder", 15795 "isError" 15796 ]], 15797 template: function(e, n) { 15798 e & 1 && (l(0, "cw-image", 0), S("loadedFailed", function() { 15799 return n.onLoadError(); 15800 })("loaded", function() { 15801 return n.loaded.emit(); 15802 }), d()), e & 2 && p("src", n.src())("sizes", n.sizes())("width", n.width())("height", n.height())("imageStyle", n.computedStyle())("containerStyle", n.containerStyle())("alt", n.alt())("priority", n.priority())("placeholder", n.placeholder())("isError", n.isImageLoadError()); 15803 }, 15804 dependencies: [bi], 15805 encapsulation: 2 15806 }); 15807 } 15808 return t; 15809 })(), zs = "not applicable", Up = "casino container interactions", Hp = .3, Bs = (() => { 15810 class t { 15811 tracking = s(we); 15812 ngZone = s(bn); 15813 observeModuleImpression(e, n, i) { 15814 this.ngZone.runOutsideAngular(() => { 15815 let r = Mt((u) => { 15816 u[0]?.isIntersecting && (this.trackModuleImpression(i()), r.disconnect()); 15817 }, { threshold: Hp }, n); 15818 r.observe(e); 15819 }); 15820 } 15821 trackNavClick(e, n) { 15822 this.trigger(ve.CLICK, n, e); 15823 } 15824 trackModuleImpression(e) { 15825 this.trigger(tn.LOAD, "impression", e); 15826 } 15827 trigger(e, n, i) { 15828 this.tracking.trigger({ 15829 name: se.CasinoContainerInteractions, 15830 data: { 15831 [M.ComponentCategoryEvent]: Up, 15832 [M.ComponentLabelEvent]: B.CABINET_MODULE, 15833 [M.ComponentActionEvent]: e, 15834 [M.ComponentPositionEvent]: zs, 15835 [M.ComponentLocationEvent]: i || zs, 15836 [M.ComponentEventDetails]: n 15837 } 15838 }); 15839 } 15840 static ɵfac = function(e) { 15841 return new (e || t)(); 15842 }; 15843 static ɵprov = A({ 15844 token: t, 15845 factory: t.ɵfac, 15846 providedIn: "root" 15847 }); 15848 } 15849 return t; 15850 })(), Fs = (() => { 15851 class t { 15852 favouriteService = s(Re); 15853 gameName = m.required(); 15854 gameId = m.required(); 15855 showInfoButton = m.required(); 15856 trackingContext = m(); 15857 infoClick = j(); 15858 isFavourite = g(() => this.favouriteService.isFavourite(this.gameId())); 15859 favouriteIconName = g(() => { 15860 let e = this.isFavourite(); 15861 return this.favouriteService.isHeartIcon() ? e ? "theme-heart-solid" : "theme-heart-outline" : e ? "theme-rating-star-full" : "theme-rating-star-empty"; 15862 }); 15863 onFavouriteClick(e) { 15864 e.stopImmediatePropagation(); 15865 let n = this.trackingContext(); 15866 this.favouriteService.toggleFavourite(this.gameId(), F(G({}, n), { gameName: n?.gameName || this.gameName() })); 15867 }
15868 onInfoClick(e) { 15869 e.stopPropagation(), e.preventDefault(), this.infoClick.emit(e); 15870 } 15871 static ɵfac = function(e) { 15872 return new (e || t)(); 15873 }; 15874 static ɵcmp = I({ 15875 type: t, 15876 selectors: [["cw-game-cabinet-action-button"]], 15877 inputs: { 15878 gameName: [1, "gameName"], 15879 gameId: [1, "gameId"], 15880 showInfoButton: [1, "showInfoButton"], 15881 trackingContext: [1, "trackingContext"] 15882 }, 15883 outputs: { infoClick: "infoClick" }, 15884 decls: 2, 15885 vars: 1, 15886 consts: [ 15887 [ 15888 "ds-button-icon", 15889 "", 15890 "data-testid", 15891 "game-cabinet-info-btn", 15892 "variant", 15893 "filled", 15894 "kind", 15895 "secondary", 15896 "size", 15897 "medium", 15898 1, 15899 "info-button" 15900 ], 15901 [ 15902 "data-testid", 15903 "game-cabinet-favourite-btn", 15904 "ds-button-icon", 15905 "", 15906 "size", 15907 "medium", 15908 "variant", 15909 "filled", 15910 "kind", 15911 "secondary", 15912 1, 15913 "game-item-button-icon", 15914 3, 15915 "inverse" 15916 ], 15917 [ 15918 "ds-button-icon", 15919 "", 15920 "data-testid", 15921 "game-cabinet-info-btn", 15922 "variant", 15923 "filled", 15924 "kind", 15925 "secondary", 15926 "size", 15927 "medium", 15928 1, 15929 "info-button", 15930 3, 15931 "click" 15932 ], 15933 ["name", "theme-info"], 15934 [ 15935 "data-testid", 15936 "game-cabinet-favourite-btn", 15937 "ds-button-icon", 15938 "", 15939 "size", 15940 "medium", 15941 "variant", 15942 "filled", 15943 "kind", 15944 "secondary", 15945 1, 15946 "game-item-button-icon", 15947 3, 15948 "click", 15949 "inverse" 15950 ], 15951 [ 15952 "size", 15953 "16", 15954 3, 15955 "name" 15956 ] 15957 ], 15958 template: function(e, n) { 15959 e & 1 && f(0, gO, 2, 2, "button", 0)(1, mO, 2, 4, "button", 1), e & 2 && h(n.showInfoButton() ? 0 : 1); 15960 }, 15961 dependencies: [Bn, Ee], 15962 styles: ["[_nghost-%COMP%]{display:flex;align-items:center}"] 15963 }); 15964 } 15965 return t; 15966 })(), Vs = (() => { 15967 class t { 15968 logoUrl = m.required(); 15969 altText = m(""); 15970 width = m(""); 15971 height = m(""); 15972 static ɵfac = function(e) { 15973 return new (e || t)(); 15974 }; 15975 static ɵcmp = I({ 15976 type: t, 15977 selectors: [["cw-game-cabinet-logo"]], 15978 inputs: { 15979 logoUrl: [1, "logoUrl"], 15980 altText: [1, "altText"], 15981 width: [1, "width"], 15982 height: [1, "height"] 15983 }, 15984 decls: 1, 15985 vars: 1, 15986 consts: [[ 15987 "data-testid", 15988 "game-cabinet-logo", 15989 1, 15990 "game-series-logo", 15991 3, 15992 "src", 15993 "alt", 15994 "width", 15995 "height" 15996 ], [ 15997 "data-testid", 15998 "game-cabinet-logo", 15999 1, 16000 "game-series-logo", 16001 3, 16002 "src", 16003 "alt" 16004 ]], 16005 template: function(e, n) { 16006 e & 1 && f(0, pO, 1, 6, "img", 0), e & 2 && h(n.logoUrl() ? 0 : -1); 16007 }, 16008 styles: ["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] .game-series-logo[_ngcontent-%COMP%]{object-fit:contain;width:var(--%NS%cabinet-logo-width, auto);height:var(--%NS%cabinet-logo-height, auto)}"] 16009 }); 16010 } 16011 return t; 16012 })(), qp = ["scrollContainer"], js = () => [], Jp = (t, o) => o.dir, $s = (t, o) => o.gameId, Yp = (t, o) => o[0]?.gameId ?? t, Ws = 2, Kp = 1200, Qp = 1024, Xp = 3, Zp = (() => { 16013 class t { 16014 base = s(Gi); 16015 tracking = s(Bs); 16016 deviceService = s(J); 16017 resizeObserver = s(Vo); 16018 timerService = s(de); 16019 platform = s(X); 16020 destroyRef = s(q); 16021 columnSize = Xp; 16022 isTablet = O(this.deviceService.isTablet); 16023 windowWidth = this.deviceService.windowWidth; 16024 isTabletWidth = g(() => this.windowWidth() <= Qp); 16025 isDesktopLarge = g(() => this.windowWidth() >= Kp && this.base.layoutType() === ot.LG); 16026 scrollContainer = De("scrollContainer"); 16027 scrollState = O({ 16028 scrollLeft: 0, 16029 scrollWidth: 0, 16030 clientWidth: 0 16031 }); 16032 rafId; 16033 containerClass = g(() => { 16034 let e = this.isTablet() || this.isTabletWidth(), n = this.base.layoutType() === ot.SM || e, i = this.base.gamelist().length; 16035 return { 16036 small: n, 16037 large: !n, 16038 "game-cabinet-container": !0, 16039 "few-games": n && i > 0 && i <= 3, 16040 "medium-games": !e && n && i > 3 && i <= 6 16041 }; 16042 }); 16043 showSmallArrows = g(() => this.base.gamelist().length > (this.isTablet() || this.isTabletWidth() ? 3 : 6)); 16044 canScrollPrev = g(() => this.scrollState().scrollLeft > Ws); 16045 canScrollNext = g(() => { 16046 let { scrollLeft: e, scrollWidth: n, clientWidth: i } = this.scrollState(); 16047 return n - i - e > Ws; 16048 }); 16049 navItems = g(() => { 16050 if (!(this.isDesktopLarge() || this.showSmallArrows())) return []; 16051 let e = []; 16052 return this.canScrollPrev() && e.push({ 16053 dir: "left", 16054 action: () => this.scrollPrev() 16055 }), this.canScrollNext() && e.push({ 16056 dir: "right", 16057 action: () => this.scrollNext() 16058 }), e; 16059 }); 16060 constructor() { 16061 Z((e) => { 16062 let n = this.scrollContainer()?.nativeElement; 16063 if (!n || !this.platform.isBrowser) return; 16064 this.readScrollState(n); 16065 let i = () => this.scheduleScrollStateRead(n); 16066 n.addEventListener("scroll", i, { passive: !0 }); 16067 let r = this.resizeObserver.observe(n).subscribe(() => this.readScrollState(n)); 16068 e(() => { 16069 n.removeEventListener("scroll", i), r.unsubscribe(), this.cancelScheduledRead(); 16070 }); 16071 }), Z(() => { 16072 let e = this.base.gamelist().length > 0, n = this.scrollContainer()?.nativeElement; 16073 !e || !n || !this.platform.isBrowser || this.scheduleScrollStateRead(n); 16074 }), this.destroyRef.onDestroy(() => this.cancelScheduledRead()); 16075 } 16076 scrollPrev() { 16077 this.tracking.trackNavClick(this.base.containerTitle(), "previous"), this.scrollBy(-1); 16078 } 16079 scrollNext() { 16080 this.tracking.trackNavClick(this.base.containerTitle(), "next"), this.scrollBy(1); 16081 } 16082 scrollBy(e) { 16083 let n = this.scrollContainer()?.nativeElement; 16084 n?.scrollBy({ 16085 left: e * n.clientWidth, 16086 behavior: "smooth" 16087 }); 16088 } 16089 scheduleScrollStateRead(e) { 16090 this.rafId ??= this.timerService.requestAnimationFrame(() => { 16091 this.rafId = void 0, this.readScrollState(e); 16092 }, { serverMode: "omit" }); 16093 } 16094 readScrollState(e) { 16095 this.scrollState.set({ 16096 scrollLeft: e.scrollLeft, 16097 scrollWidth: e.scrollWidth, 16098 clientWidth: e.clientWidth 16099 }); 16100 } 16101 cancelScheduledRead() { 16102 this.rafId != null && (this.timerService.cancelAnimationFrame(this.rafId), this.rafId = void 0); 16103 } 16104 static ɵfac = function(e) { 16105 return new (e || t)(); 16106 }; 16107 static ɵcmp = I({ 16108 type: t, 16109 selectors: [["cw-cabinet-container-desktop"]], 16110 viewQuery: function(e, n) { 16111 e & 1 && He(n.scrollContainer, qp, 5), e & 2 && Ue(); 16112 }, 16113 decls: 3, 16114 vars: 3, 16115 consts: [
vendor: 7,178 bytes, lines 16116-16368
16116 ["scrollContainer", ""], 16117 ["data-testid", "game-cabinet-desktop-container"], 16118 [ 16119 "data-testid", 16120 "game-cabinet-info-empty", 16121 1, 16122 "game-cabinet-info" 16123 ], 16124 [ 16125 1, 16126 "carousel-nav", 16127 3, 16128 "carousel-nav-prev", 16129 "carousel-nav-next" 16130 ], 16131 [ 16132 1, 16133 "cabinet-bg-wrapper", 16134 3, 16135 "background-image" 16136 ], 16137 [1, "carousel-nav"], 16138 [ 16139 "size", 16140 "medium", 16141 "variant", 16142 "strong", 16143 3, 16144 "click", 16145 "direction" 16146 ], 16147 [1, "cabinet-bg-wrapper"], 16148 [ 16149 "data-testid", 16150 "game-cabinet-scroll-container", 16151 1, 16152 "cabinet-scroll-container" 16153 ], 16154 [ 16155 "data-testid", 16156 "game-cabinet-info", 16157 1, 16158 "game-cabinet-info" 16159 ], 16160 [ 16161 1, 16162 "game-cabinet-logo", 16163 3, 16164 "logoUrl", 16165 "altText" 16166 ], 16167 [1, "game-cabinet-text"], 16168 [ 16169 "data-testid", 16170 "game-cabinet-title", 16171 1, 16172 "game-cabinet-title" 16173 ], 16174 [ 16175 "data-testid", 16176 "game-cabinet-badge", 16177 "size", 16178 "medium", 16179 "variant", 16180 "secondary" 16181 ], 16182 [ 16183 "data-testid", 16184 "game-cabinet-description", 16185 1, 16186 "game-cabinet-description" 16187 ], 16188 [ 16189 "cwGameImpression", 16190 "", 16191 "cwInfiniteScrollPrefetch", 16192 "", 16193 "role", 16194 "button", 16195 "tabindex", 16196 "0", 16197 1, 16198 "game-card-view", 16199 3, 16200 "enabled", 16201 "game", 16202 "layoutId", 16203 "containerId", 16204 "gameIndex", 16205 "containerIndex", 16206 "containerTitle" 16207 ], 16208 [ 16209 "cwGameImpression", 16210 "", 16211 "cwInfiniteScrollPrefetch", 16212 "", 16213 "role", 16214 "button", 16215 "tabindex", 16216 "0", 16217 1, 16218 "game-card-view", 16219 3, 16220 "prefetch", 16221 "click", 16222 "keydown.enter", 16223 "keydown.space", 16224 "enabled", 16225 "game", 16226 "layoutId", 16227 "containerId", 16228 "gameIndex", 16229 "containerIndex", 16230 "containerTitle" 16231 ], 16232 [1, "game-thumbnail"], 16233 [ 16234 "data-testid", 16235 "game-cabinet-thumbnail", 16236 3, 16237 "icon", 16238 "gameId", 16239 "alt", 16240 "height", 16241 "width" 16242 ], 16243 [ 16244 1, 16245 "game-sticker", 16246 3, 16247 "stickers", 16248 "layoutId" 16249 ], 16250 [1, "game-card-body"], 16251 [1, "game-card-text"], 16252 [ 16253 "data-testid", 16254 "game-cabinet-card-title", 16255 1, 16256 "game-card-title" 16257 ], 16258 [ 16259 "data-testid", 16260 "game-cabinet-card-subtitle", 16261 1, 16262 "game-card-subtitle" 16263 ], 16264 [ 16265 "data-testid", 16266 "game-cabinet-action-btn", 16267 3, 16268 "infoClick", 16269 "gameName", 16270 "gameId", 16271 "showInfoButton", 16272 "trackingContext" 16273 ], 16274 [ 16275 1, 16276 "game-column", 16277 3, 16278 "roleType" 16279 ], 16280 [ 16281 "cwGameImpression", 16282 "", 16283 "cwInfiniteScrollPrefetch", 16284 "", 16285 "role", 16286 "button", 16287 "tabindex", 16288 "0", 16289 1, 16290 "game-item", 16291 3, 16292 "enabled", 16293 "game", 16294 "layoutId", 16295 "containerId", 16296 "gameIndex", 16297 "containerIndex", 16298 "containerTitle" 16299 ], 16300 [ 16301 "cwGameImpression", 16302 "", 16303 "cwInfiniteScrollPrefetch", 16304 "", 16305 "role", 16306 "button", 16307 "tabindex", 16308 "0", 16309 1, 16310 "game-item", 16311 3, 16312 "prefetch", 16313 "click", 16314 "keydown.enter", 16315 "keydown.space", 16316 "enabled", 16317 "game", 16318 "layoutId", 16319 "containerId", 16320 "gameIndex", 16321 "containerIndex", 16322 "containerTitle" 16323 ], 16324 [ 16325 "size", 16326 "medium", 16327 1, 16328 "game-list-view", 16329 3, 16330 "boldTitle", 16331 "title", 16332 "subtitle" 16333 ], 16334 [ 16335 "slot", 16336 "start", 16337 1, 16338 "game-thumbnail" 16339 ], 16340 [ 16341 "slot", 16342 "end", 16343 "data-testid", 16344 "game-cabinet-action-btn", 16345 3, 16346 "infoClick", 16347 "gameName", 16348 "gameId", 16349 "showInfoButton", 16350 "trackingContext" 16351 ] 16352 ], 16353 template: function(e, n) { 16354 e & 1 && (l(0, "div", 1), f(1, OO, 4, 1)(2, xO, 9, 6, "div", 2), d()), e & 2 && (W(n.containerClass()), a(), h(n.base.gamelist().length ? 1 : 2)); 16355 }, 16356 dependencies: [ 16357 Vs, 16358 Fs, 16359 Ht, 16360 Ei, 16361 ln, 16362 _i, 16363 ia, 16364 Qo, 16365 qo, 16366 Yo 16367 ], 16368 styles: ["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] .game-thumbnail[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%] .game-sticker[_ngcontent-%COMP%]{position:absolute;top:var(--%NS%semantic-spacing-inline-sm);left:var(--%NS%semantic-spacing-inline-sm);z-index:1}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%]{position:relative;color:var(--%NS%semantic-color-on-surface-base);display:flex;flex-direction:column;margin:var(--%NS%semantic-spacing-stack-xl) var(--%NS%semantic-spacing-stack-md);padding:var(--%NS%semantic-spacing-container-padding-xl) var(--%NS%semantic-spacing-container-padding-2xl)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .carousel-nav[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;margin:auto;z-index:2;display:flex;align-items:center}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .carousel-nav.carousel-nav-prev[_ngcontent-%COMP%]{left:-8px}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .carousel-nav.carousel-nav-next[_ngcontent-%COMP%]{right:-8px}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .cabinet-bg-wrapper[_ngcontent-%COMP%]{position:relative;isolation:isolate;overflow:hidden;border-radius:var(--%NS%semantic-radius-l2-card);background-clip:content-box}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .cabinet-bg-wrapper[_ngcontent-%COMP%]:before{content:\"\";position:absolute;inset:-22px;background-image:inherit;background-size:cover;background-position:center;background-repeat:no-repeat;filter:blur(11px);z-index:-1}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .cabinet-scroll-container[_ngcontent-%COMP%]{position:relative;z-index:1;display:flex;flex-direction:row;align-items:flex-start;gap:var(--%NS%semantic-size-x10);overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;padding:var(--%NS%semantic-spacing-container-padding-xl) var(--%NS%semantic-spacing-container-padding-2xl);-ms-overflow-style:none}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .cabinet-scroll-container[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;align-self:center;gap:var(--%NS%semantic-spacing-stack-md);text-align:left;flex-shrink:0;width:clamp(300px,25em,300px)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-md-strong-font-size);font-weight:var(--%NS%semantic-typography-title-md-strong-font-we
16368ight);line-height:var(--%NS%semantic-typography-title-md-strong-line-height)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-description[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-md-font-weight);line-height:var(--%NS%semantic-typography-label-md-line-height);color:var(--%NS%semantic-color-on-surface-subtle);margin-bottom:0;max-width:280px;text-align:center;width:231px}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:var(--%NS%semantic-spacing-stack-md)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] cw-game-cabinet-logo[_ngcontent-%COMP%]{--%NS%cabinet-logo-width: 168px;--%NS%cabinet-logo-height: 101px}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--%NS%semantic-spacing-stack-sm);min-width:300px;width:25em;flex-shrink:0}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%] .game-item[_ngcontent-%COMP%]{display:flex;cursor:pointer;position:relative}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%] .game-item[_ngcontent-%COMP%] .game-list-view[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-card-view[_ngcontent-%COMP%]{display:flex;gap:var(--%NS%semantic-size-x4);flex-direction:column;flex-shrink:0;height:244px;width:254px;padding:var(--%NS%semantic-spacing-container-padding-3xl);cursor:pointer;justify-content:center}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-card-view[_ngcontent-%COMP%] .game-card-body[_ngcontent-%COMP%]{display:flex;gap:var(--%NS%semantic-size-x4);align-items:center}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-card-view[_ngcontent-%COMP%] .game-card-body[_ngcontent-%COMP%] .game-card-text[_ngcontent-%COMP%]{display:flex;width:154px;gap:var(--%NS%semantic-size-xhalf);flex-direction:column}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-card-view[_ngcontent-%COMP%] .game-card-body[_ngcontent-%COMP%] .game-card-text[_ngcontent-%COMP%] .game-card-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-strong-font-size);line-height:var(--%NS%semantic-typography-label-lg-strong-line-height);font-weight:var(--%NS%semantic-typography-label-lg-strong-font-weight);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-card-view[_ngcontent-%COMP%] .game-card-body[_ngcontent-%COMP%] .game-card-text[_ngcontent-%COMP%] .game-card-subtitle[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-sm-font-size);line-height:var(--%NS%semantic-typography-label-sm-line-height);font-weight:var(--%NS%semantic-typography-label-sm-font-weight);color:var(--%NS%semantic-color-on-surface-subtle)}[_nghost-%COMP%] .game-cabinet-container.large[_ngcontent-%COMP%] .cabinet-scroll-container[_ngcontent-%COMP%]{padding:var(--%NS%semantic-spacing-container-padding-xl)}@media(min-width:1200px){[_nghost-%COMP%] .game-cabinet-container.large[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-stack-3xl) auto}[_nghost-%COMP%] .game-cabinet-container.large[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%]{justify-content:center}[_nghost-%COMP%] .game-cabinet-container.large[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] cw-game-cabinet-logo[_ngcontent-%COMP%]{--%NS%cabinet-logo-width: 205px;--%NS%cabinet-logo-height: 123px}}[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%]{flex-direction:column;justify-content:space-between}[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] cw-game-cabinet-logo[_ngcontent-%COMP%]{--%NS%cabinet-logo-width: 98px;--%NS%cabinet-logo-height: 59px}[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-text[_ngcontent-%COMP%]{width:220px;height:var(--%NS%semantic-size-x12);align-items:center}[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-text[_ngcontent-%COMP%] .game-cabinet-description[_ngcontent-%COMP%]{display:none}@media(min-width:768px){[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-stack-3xl)}}@media(min-width:768px)and (min-width:1200px){[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-stack-3xl) auto}}@media(min-width:768px){[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%]{flex-direction:column;justify-content:center}[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] cw-game-cabinet-logo[_ngcontent-%COMP%]{--%NS%cabinet-logo-width: 205px;--%NS%cabinet-logo-height: 123px}[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-text[_ngcontent-%COMP%]{height:unset;align-items:center}[_nghost-%COMP%] .game-cabinet-container.small[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-text[_ngcontent-%COMP%] .game-cabinet-description[_ngcontent-%COMP%]{display:block}}[_nghost-%COMP%] .game-cabinet-container.few-games[_ngcontent-%COMP%] .cabinet-scroll-container[_ngcontent-%COMP%]{gap:var(--%NS%semantic-size-x14);justify-content:center;overflow-x:hidden;align-items:center}[_nghost-%COMP%] .game-cabinet-container.few-games[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%]{width:380px;min-width:380px}@media(max-width:1024px){[_nghost-%COMP%] .game-cabinet-container.few-games[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%]{min-width:300px;width:25em}}[_nghost-%COMP%] .game-cabinet-container.medium-games[_ngcontent-%COMP%] .cabinet-scroll-container[_ngcontent-%COMP%]{justify-content:center;overflow-x:hidden}[_nghost-%COMP%] .game-cabinet-container.medium-games[_ngcontent-%COMP%] .cabinet-scroll-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%]{flex:1}"] 16369 }); 16370 } 16371 return t; 16372 })(), eu = () => [], tu = (t, o) => o[0]?.gameId ?? t, nu = (t, o) => o.gameId, iu = 3, au = (() => { 16373 class t { 16374 base = s(Gi); 16375 columnSize = iu; 16376 isLargeLayout = g(() => this.base.layoutType() === ot.LG); 16377 containerClass = g(() => { 16378 let e = this.base.layoutType() === ot.SM; 16379 return { 16380 small: e, 16381 large: !e, 16382 "game-cabinet-container": !0 16383 }; 16384 }); 16385 gameColumnClass = g(() => { 16386 let e = this.base.gamelist().length; 16387 return { 16388 "game-column": !0, 16389 "few-games": e > 0 && e <= 3 16390 }; 16391 }); 16392 action(e, n) { 16393 this.base.action(e, n, !0); 16394 } 16395 static ɵfac = function(e) { 16396 return new (e || t)(); 16397 }; 16398 static ɵcmp = I({ 16399 type: t, 16400 selectors: [["cw-cabinet-container-mobile"]], 16401 decls: 5, 16402 vars: 6, 16403 consts: [ 16404 ["data-testid", "game-cabinet-mobile-container"], 16405 [ 16406 "data-testid", 16407 "game-cabinet-scroll-container", 16408 1, 16409 "cabinet-scroll-container" 16410 ], 16411 [ 16412 "data-testid", 16413 "game-cabinet-info", 16414 1, 16415 "game-cabinet-info", 16416 "game-cabinet-info-large" 16417 ], 16418 [ 16419 "data-testid", 16420 "game-cabinet-info", 16421 1, 16422 "game-cabinet-info" 16423 ], 16424 [ 16425 "data-testid", 16426 "game-cabinet-list-container", 16427 1, 16428 "game-list-scroll-container" 16429 ], 16430 [ 16431 1, 16432 "game-cabinet-logo", 16433 3, 16434 "logoUrl", 16435 "altText" 16436 ], 16437 [1, "game-cabinet-text"], 16438 [ 16439 "data-testid", 16440 "game-cabinet-title", 16441 1, 16442 "game-cabinet-title" 16443 ], 16444 [ 16445 "data-testid", 16446 "game-cabinet-badge", 16447 "size", 16448 "medium", 16449 "variant", 16450 "secondary" 16451 ], 16452 [ 16453 "data-testid", 16454 "game-cabinet-description", 16455 1, 16456 "game-cabinet-description" 16457 ], 16458 [ 16459 3, 16460 "class", 16461 "roleType" 16462 ], 16463 [3, "roleType"], 16464 [ 16465 "cwGameImpression", 16466 "", 16467 "cwInfiniteScrollPrefetch", 16468 "", 16469 "role", 16470 "button", 16471 "tabindex", 16472 "0", 16473 1, 16474 "game-item", 16475 3, 16476 "enabled", 16477 "game", 16478 "layoutId", 16479 "containerId", 16480 "gameIndex", 16481 "containerIndex", 16482 "containerTitle" 16483 ], 16484 [ 16485 "cwGameImpression", 16486 "", 16487 "cwInfiniteScrollPrefetch", 16488 "", 16489 "role", 16490 "button", 16491 "tabindex", 16492 "0", 16493 1, 16494 "game-item", 16495 3, 16496 "prefetch", 16497 "click", 16498 "keydown.enter", 16499 "keydown.space", 16500 "enabled", 16501 "game", 16502 "layoutId", 16503 "containerId", 16504 "gameIndex", 16505 "containerIndex", 16506 "containerTitle" 16507 ], 16508 [ 16509 "size", 16510 "medium", 16511 1, 16512 "game-list-view", 16513 3, 16514 "boldTitle", 16515 "title", 16516 "subtitle" 16517 ], 16518 [ 16519 "slot", 16520 "start", 16521 1, 16522 "game-thumbnail" 16523 ], 16524 [ 16525 "data-testid", 16526 "game-cabinet-thumbnail", 16527 3, 16528 "icon", 16529 "gameId", 16530 "alt", 16531 "height", 16532 "width" 16533 ], 16534 [ 16535 1, 16536 "game-sticker", 16537 3, 16538 "stickers", 16539 "layoutId" 16540 ], 16541 [ 16542 "slot", 16543 "end", 16544 "data-testid", 16545 "game-cabinet-action-btn", 16546 3, 16547 "infoClick", 16548 "gameName", 16549 "gameId", 16550 "showInfoButton", 16551 "trackingContext" 16552 ] 16553 ], 16554 template: function(e, n) { 16555 e & 1 && (l(0, "div", 0)(1, "div", 1), f(2, kO, 8, 6, "div", 2)(3, IO, 7, 5, "div", 3), f(4, EO, 3, 0, "div", 4), d()()), e & 2 && (W(n.containerClass()), k("background-image", n.base.bgImageUrl()), a(2), h(n.isLargeLayout() ? 2 : 3), a(2), h(n.base.gamelist().length ? 4 : -1)); 16556 }, 16557 dependencies: [ 16558 Vs, 16559 Fs, 16560 Ht, 16561 Ei, 16562 ln, 16563 _i, 16564 Qo, 16565 qo, 16566 Yo 16567 ], 16568 styles: ["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%]{position:relative;isolation:isolate;overflow:hidden;color:var(--%NS%semantic-color-on-surface-base);display:flex;flex-direction:column;border-radius:var(--%NS%semantic-radius-l2-card);margin:var(--%NS%semantic-spacing-stack-xl) var(--%NS%semantic-spacing-stack-md)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%]:before{content:\"\";position:absolute;inset:-22px;background-image:inherit;background-size:cover;background-position:center;background-repeat:no-repeat;filter:blur(11px);z-index:-1}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .cabinet-scroll-container[_ngcontent-%COMP%]{position:relative;z-index:1;display:flex;flex-direction:column;align-items:stretch;gap:var(--%NS%semantic-spacing-stack-md);overflow:hidden}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:var(--%NS%semantic-spacing-stack-md);text-align:left;flex-shrink:0;padding:var(--%NS%semantic-spacing-container-padding-xl) var(--%NS%semantic-spacing-container-padding-xl) 0}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-md-strong-font-size);font-weight:var(--%NS%semantic-typography-title-md-strong-font-we
16568ight);line-height:var(--%NS%semantic-typography-title-md-strong-line-height)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-description[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-md-font-weight);line-height:var(--%NS%semantic-typography-label-md-line-height);color:var(--%NS%semantic-color-on-surface-subtle);margin-bottom:0}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] .game-cabinet-text[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:var(--%NS%semantic-spacing-stack-md)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info[_ngcontent-%COMP%] cw-game-cabinet-logo[_ngcontent-%COMP%]{--%NS%cabinet-logo-width: 98px;--%NS%cabinet-logo-height: 60px}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info.game-cabinet-info-large[_ngcontent-%COMP%]{flex-direction:column;text-align:center;padding:var(--%NS%semantic-spacing-container-padding-xl) var(--%NS%semantic-spacing-container-padding-xl) var(--%NS%semantic-spacing-container-padding-sm)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info.game-cabinet-info-large[_ngcontent-%COMP%] .game-cabinet-text[_ngcontent-%COMP%]{align-items:center}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info.game-cabinet-info-large[_ngcontent-%COMP%] .game-cabinet-description[_ngcontent-%COMP%]{max-width:280px}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-cabinet-info.game-cabinet-info-large[_ngcontent-%COMP%] cw-game-cabinet-logo[_ngcontent-%COMP%]{--%NS%cabinet-logo-width: 140px;--%NS%cabinet-logo-height: 84px}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-list-scroll-container[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:var(--%NS%semantic-spacing-container-padding-lg);overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding-bottom:var(--%NS%semantic-spacing-stack-lg)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-list-scroll-container[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:var(--%NS%semantic-spacing-stack-sm);width:clamp(290px,100%,75vw);flex-shrink:0;padding:0 var(--%NS%semantic-spacing-container-padding-xl)}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%] .game-item[_ngcontent-%COMP%]{display:flex;cursor:pointer;position:relative}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%] .game-item[_ngcontent-%COMP%] .game-list-view[_ngcontent-%COMP%]{width:100%}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%] .game-item[_ngcontent-%COMP%] .game-thumbnail[_ngcontent-%COMP%]{position:relative}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column[_ngcontent-%COMP%] .game-item[_ngcontent-%COMP%] .game-sticker[_ngcontent-%COMP%]{position:absolute;top:var(--%NS%semantic-spacing-inline-sm);left:var(--%NS%semantic-spacing-inline-sm);z-index:1}[_nghost-%COMP%] .game-cabinet-container[_ngcontent-%COMP%] .game-column.few-games[_ngcontent-%COMP%]{width:100%}"] 16569 }); 16570 } 16571 return t; 16572 })(), ou = (() => { 16573 class t { 16574 static ɵfac = function(e) { 16575 return new (e || t)(); 16576 }; 16577 static ɵcmp = I({ 16578 type: t, 16579 selectors: [["cw-cabinet-skeleton"]], 16580 decls: 1, 16581 vars: 0, 16582 consts: [[1, "sk"]], 16583 template: function(e, n) { 16584 e & 1 && Pe(0, "div", 0); 16585 }, 16586 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{width:100%;flex:1 1 auto;min-height:0;border-radius:var(--%NS%semantic-radius-semi-rounded-lg);background:var(--%NS%semantic-color-surface-container-high-base)}"] 16587 }); 16588 } 16589 return t; 16590 })(), ru = (() => { 16591 class t { 16592 base = s(Gi); 16593 tracking = s(Bs); 16594 deviceService = s(J); 16595 elementRef = s(tt); 16596 injector = s(gt); 16597 layoutId = m.required(); 16598 containerMetadata = m.required(); 16599 containerIndex = m.required(); 16600 isMobile = this.deviceService.isMobile; 16601 isTablet = this.deviceService.isTablet;
16602 container = this.base.container; 16603 isLoading = g(() => !this.container() && !this.base.hasError()); 16604 constructor() { 16605 Se(() => this.tracking.observeModuleImpression(this.elementRef.nativeElement, this.injector, () => this.base.containerTitle())); 16606 } 16607 ngOnInit() { 16608 this.base.init({ 16609 layoutId: this.layoutId, 16610 containerMetadata: this.containerMetadata, 16611 containerIndex: this.containerIndex 16612 }), this.base.fetchAndSetContainer(); 16613 } 16614 static ɵfac = function(e) { 16615 return new (e || t)(); 16616 }; 16617 static ɵcmp = I({ 16618 type: t, 16619 selectors: [["cw-cabinet-container"]], 16620 inputs: { 16621 layoutId: [1, "layoutId"], 16622 containerMetadata: [1, "containerMetadata"], 16623 containerIndex: [1, "containerIndex"] 16624 }, 16625 features: [ce([ie, Gi])], 16626 decls: 2, 16627 vars: 1, 16628 consts: [ 16629 [1, "casino-lobby-width-gametile"], 16630 [3, "containerId"], 16631 ["data-testid", "game-cabinet-mobile"], 16632 ["data-testid", "game-cabinet-desktop"] 16633 ], 16634 template: function(e, n) { 16635 e & 1 && f(0, DO, 3, 1, "div", 0)(1, zO, 2, 1, "cw-lobby-container-placeholder", 1), e & 2 && h(n.container() ? 0 : n.isLoading() ? 1 : -1); 16636 }, 16637 dependencies: [ 16638 Zp, 16639 au, 16640 st, 16641 ou 16642 ], 16643 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: 340px}@media only screen and (min-width:568px){[_nghost-%COMP%]{--%NS%cw-reserve-h: 300px}}"] 16644 }); 16645 } 16646 return t; 16647 })(), su = (() => { 16648 class t { 16649 favouriteService = s(Re); 16650 gameId = m.required(); 16651 gameName = m(); 16652 centered = m(!1, { transform: hn }); 16653 trackingContext = m(); 16654 showIcon = g(() => this.favouriteService.isEnabled()); 16655 isFavourite = g(() => this.favouriteService.isFavourite(this.gameId())); 16656 rightStyle = g(() => this.centered() ? "50%" : null); 16657 transformStyle = g(() => this.centered() ? "translateX(50%)" : null); 16658 iconName = g(() => { 16659 let e = this.favouriteService.isHeartIcon(), n = this.isFavourite(); 16660 return e ? n ? "theme-heart-solid" : "theme-heart-outline" : n ? "theme-rating-star-full" : "theme-rating-star-empty"; 16661 }); 16662 ariaLabel = g(() => { 16663 let e = this.gameName() || this.gameId(); 16664 return this.isFavourite() ? `Remove ${e} from favourites` : `Add ${e} to favourites`; 16665 }); 16666 onClick(e) { 16667 e.stopPropagation(); 16668 let n = this.trackingContext(); 16669 this.favouriteService.toggleFavourite(this.gameId(), F(G({}, n), { gameName: n?.gameName || this.gameName() })); 16670 } 16671 static ɵfac = function(e) { 16672 return new (e || t)(); 16673 }; 16674 static ɵcmp = I({ 16675 type: t, 16676 selectors: [["cw-game-tile-favourite-button"]], 16677 inputs: { 16678 gameId: [1, "gameId"], 16679 gameName: [1, "gameName"], 16680 centered: [1, "centered"], 16681 trackingContext: [1, "trackingContext"] 16682 }, 16683 decls: 1, 16684 vars: 1, 16685 consts: [[ 16686 "role", 16687 "button", 16688 "tabindex", 16689 "0", 16690 3, 16691 "class", 16692 "right", 16693 "transform" 16694 ], [ 16695 "role", 16696 "button", 16697 "tabindex", 16698 "0", 16699 3, 16700 "click", 16701 "mousedown", 16702 "mouseup", 16703 "keydown.enter", 16704 "keydown.space" 16705 ]], 16706 template: function(e, n) { 16707 e & 1 && f(0, BO, 1, 8, "div", 0), e & 2 && h(n.showIcon() ? 0 : -1); 16708 }, 16709 styles: [`:host{display:contents} 16710`], 16711 encapsulation: 2 16712 }); 16713 } 16714 return t; 16715 })(), cu = ["svgObject"], lu = (() => { 16716 class t { 16717 game = m.required(); 16718 alt = m(""); 16719 sizes = m(or); 16720 loaded = j(); 16721 isInViewport = O(!1); 16722 hasLoadError = O(!1); 16723 svgLoaded = O(!1); 16724 svgObjectRef = De("svgObject"); 16725 hostEl = s(tt).nativeElement; 16726 injector = s(gt); 16727 sanitizer = s(zo); 16728 svgElement = null; 16729 animationControlAvailable = !0; 16730 safeSvgUrl = g(() => { 16731 let e = this.game().icon?.src; 16732 return e ? this.sanitizer.bypassSecurityTrustResourceUrl(e) : null; 16733 }); 16734 fallbackSrc = g(() => { 16735 let e = this.game().icon?.src ?? "", n = e.lastIndexOf("."); 16736 return n === -1 ? e : `${e.slice(0, n)}.${sr.Jpg}`; 16737 }); 16738 constructor() { 16739 let e = s(q); 16740 Mt((n) => { 16741 let i = n[0]; 16742 this.isInViewport.set(i.isIntersecting); 16743 }, { threshold: .1 }, this.injector).observe(this.hostEl), Se(() => { 16744 this.initSvgElement(); 16745 }), Z(() => { 16746 let n = this.isInViewport(); 16747 !this.svgLoaded() || !this.svgElement || !this.animationControlAvailable || (n ? this.unpauseSvgAnimations() : this.pauseSvgAnimations()); 16748 }), e.onDestroy(() => { 16749 this.svgElement = null; 16750 }); 16751 } 16752 onSvgLoad() { 16753 this.svgLoaded.set(!0), this.initSvgElement(), this.loaded.emit(); 16754 } 16755 onSvgError() { 16756 this.hasLoadError.set(!0); 16757 } 16758 initSvgElement() { 16759 let e = this.svgObjectRef(); 16760 if (e) try { 16761 let n = e.nativeElement.contentDocument; 16762 n && (this.svgElement = n.documentElement, this.pauseSvgAnimations()); 16763 } catch (n) { 16764 console.warn("AnimatedSvgTileComponent: Unable to access SVG contentDocument (CORS or unavailable). Animations will play continuously.", n), this.animationControlAvailable = !1; 16765 } 16766 } 16767 pauseSvgAnimations() { 16768 try { 16769 this.svgElement?.pauseAnimations?.(); 16770 } catch (e) { 16771 console.warn("AnimatedSvgTileComponent: pauseAnimations() unavailable. SVG will play continuously.", e), this.animationControlAvailable = !1; 16772 } 16773 } 16774 unpauseSvgAnimations() { 16775 try { 16776 this.svgElement?.unpauseAnimations?.(); 16777 } catch (e) { 16778 console.warn("AnimatedSvgTileComponent: unpauseAnimations() unavailable. SVG will play continuously.", e), this.animationControlAvailable = !1; 16779 } 16780 } 16781 static ɵfac = function(e) { 16782 return new (e || t)(); 16783 }; 16784 static ɵcmp = I({ 16785 type: t, 16786 selectors: [["cw-animated-svg-tile"]], 16787 viewQuery: function(e, n) { 16788 e & 1 && He(n.svgObjectRef, cu, 5), e & 2 && Ue(); 16789 }, 16790 inputs: { 16791 game: [1, "game"], 16792 alt: [1, "alt"], 16793 sizes: [1, "sizes"] 16794 }, 16795 outputs: { loaded: "loaded" }, 16796 decls: 2, 16797 vars: 2, 16798 consts: [ 16799 ["svgObject", ""], 16800 [ 16801 "type", 16802 "image/svg+xml", 16803 3, 16804 "data" 16805 ], 16806 [ 16807 3, 16808 "src", 16809 "alt", 16810 "sizes" 16811 ], 16812 [ 16813 "type", 16814 "image/svg+xml", 16815 3, 16816 "load", 16817 "error", 16818 "data" 16819 ], 16820 [ 16821 3, 16822 "loaded", 16823 "src", 16824 "alt", 16825 "sizes" 16826 ] 16827 ], 16828 template: function(e, n) { 16829 e & 1 && (f(0, FO, 2, 3, "object", 1), f(1, VO, 1, 3, "cw-image", 2)), e & 2 && (h(n.hasLoadError() ? -1 : 0), a(), h(n.hasLoadError() ? 1 : -1)); 16830 }, 16831 dependencies: [bi], 16832 styles: ["[_nghost-%COMP%]{display:block;width:100%;height:100%}object[_ngcontent-%COMP%]{width:100%;height:100%;display:block;border-radius:var(--%NS%semantic-border-radius-medium);pointer-events:none}"] 16833 }); 16834 } 16835 return t; 16836 })(), eo = (() => { 16837 class t { 16838 jackpotTicker = s(Ja); 16839 configProviderService = s(V); 16840 casinoManager = s(Ve); 16841 jackpotData = m.required(); 16842 config = m.required(); 16843 layoutId = m.required(); 16844 alignLeft = g(() => { 16845 let e = this.configProviderService.provideFeaturesConfig(); 16846 return !!this.casinoManager.IsFeatureEnabledForLobbyType(this.layoutId(), e.newJackpotRibbonStyling ?? []); 16847 }); 16848 iconError = O(!1); 16849 displayValue = g(() => { 16850 let e = this.jackpotData(); 16851 return this.jackpotTicker.formattedAmount(e.groupName || e.name) ?? e.amount; 16852 }); 16853 showHotIcon = g(() => { 16854 let e = this.jackpotData(), n = this.config(); 16855 return e.isHot && n.hotIcon.enableHotIcon && !this.iconError(); 16856 }); 16857 hotIconPath = g(() => this.config().hotIcon.iconPath); 16858 ribbonStyles = g(() => { 16859 let e = this.jackpotData(), n = this.config(); 16860 return { 16861 "--jackpot-ribbon-bg": e.ribbonBgColor ?? n.defaultBgColor, 16862 "--jackpot-ribbon-text": e.ribbonTextColor ?? n.defaultTextColor 16863 }; 16864 }); 16865 ariaLabel = g(() => `Jackpot ${this.jackpotData().name}: ${this.displayValue()}`); 16866 onIconError() {
16867 this.iconError.set(!0); 16868 } 16869 static ɵfac = function(e) { 16870 return new (e || t)(); 16871 }; 16872 static ɵcmp = I({ 16873 type: t, 16874 selectors: [["cw-jackpot-ribbon"]], 16875 inputs: { 16876 jackpotData: [1, "jackpotData"], 16877 config: [1, "config"], 16878 layoutId: [1, "layoutId"] 16879 }, 16880 decls: 4, 16881 vars: 11, 16882 consts: [ 16883 [1, "jackpot-ribbon"], 16884 [1, "jackpot-ribbon__hot-icon"], 16885 [1, "jackpot-ribbon__value"], 16886 [ 16887 "alt", 16888 "Hot jackpot indicator", 16889 "width", 16890 "19", 16891 "height", 16892 "22", 16893 3, 16894 "error", 16895 "ngSrc" 16896 ] 16897 ], 16898 template: function(e, n) { 16899 e & 1 && (l(0, "div", 0), f(1, jO, 2, 1, "span", 1), l(2, "span", 2), C(3), d()()), e & 2 && (k("--%NS%jackpot-ribbon-bg", n.ribbonStyles()["--jackpot-ribbon-bg"])("--%NS%jackpot-ribbon-text", n.ribbonStyles()["--jackpot-ribbon-text"]), L("jackpot-ribbon--align-left", n.alignLeft()), T("role", "status")("aria-live", "polite")("aria-label", n.ariaLabel()), a(), h(n.showHotIcon() ? 1 : -1), a(2), x(n.displayValue())); 16900 }, 16901 dependencies: [Zt], 16902 styles: ["[_nghost-%COMP%]{position:absolute;bottom:0;left:0;width:100%;z-index:1}.jackpot-ribbon[_ngcontent-%COMP%]{width:100%;height:24px;background:var(--%NS%jackpot-ribbon-bg, var(--%NS%cs-legacy-jackpot-ribbon-bgclr, #1a1a1a));color:var(--%NS%jackpot-ribbon-text, var(--%NS%cs-legacy-jackpot-ribbon-text-clr, #fff));border-radius:var(--%NS%cs-game-tile-border-radius);border-top-left-radius:0;border-top-right-radius:0;font-size:var(--%NS%semantic-typography-body-md-font-size);line-height:18px;opacity:var(--%NS%cs-jackpot-ribbon-opacity, .8);text-align:center;display:flex;align-items:center;justify-content:center;gap:2px;overflow:visible}.jackpot-ribbon__hot-icon[_ngcontent-%COMP%]{width:19px;height:22px;display:flex;align-items:center;flex-shrink:0;position:relative;bottom:4px}.jackpot-ribbon__hot-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:flex;width:100%;height:100%;background:transparent;border-radius:0}.jackpot-ribbon__value[_ngcontent-%COMP%]{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:var(--%NS%theme-font-normal)}.jackpot-ribbon--align-left[_ngcontent-%COMP%]{text-align:left;justify-content:start;padding-left:var(--%NS%semantic-spacing-container-padding-sm, 4px)}.jackpot-ribbon[_ngcontent-%COMP%]:focus-visible{outline:2px solid var(--%NS%semantic-color-utility-focus, #005fcc);outline-offset:2px}"] 16903 }); 16904 } 16905 return t; 16906 })(), du = (() => { 16907 class t { 16908 game = m.required(); 16909 layoutId = m.required(); 16910 jackpotData = m(null); 16911 jackpotConfig = m(null); 16912 stickers = m([]); 16913 loaded = j(); 16914 imageStyle = "border-radius: 100%; object-fit: cover;"; 16915 static ɵfac = function(e) { 16916 return new (e || t)(); 16917 }; 16918 static ɵcmp = I({ 16919 type: t, 16920 selectors: [["cw-disk-type-game-tile"]], 16921 inputs: { 16922 game: [1, "game"], 16923 layoutId: [1, "layoutId"], 16924 jackpotData: [1, "jackpotData"], 16925 jackpotConfig: [1, "jackpotConfig"], 16926 stickers: [1, "stickers"] 16927 }, 16928 outputs: { loaded: "loaded" }, 16929 decls: 7, 16930 vars: 4, 16931 consts: [ 16932 [1, "disk-card-tile"], 16933 [1, "disk-image"], 16934 [ 16935 1, 16936 "cw-image-loader", 16937 3, 16938 "icon", 16939 "gameId", 16940 "alt", 16941 "imageStyle" 16942 ], 16943 [ 16944 1, 16945 "cw-game-tile-stickers", 16946 3, 16947 "stickers", 16948 "layoutId" 16949 ], 16950 [ 16951 1, 16952 "cw-jackpot-ribbon", 16953 3, 16954 "jackpotData", 16955 "config", 16956 "layoutId" 16957 ], 16958 [1, "disk-label"], 16959 [ 16960 1, 16961 "cw-image-loader", 16962 3, 16963 "loaded", 16964 "icon", 16965 "gameId", 16966 "alt", 16967 "imageStyle" 16968 ] 16969 ], 16970 template: function(e, n) { 16971 if (e & 1 && (l(0, "div", 0)(1, "div", 1), f(2, $O, 1, 4, "cw-image-loader", 2), f(3, WO, 1, 2, "cw-game-tile-stickers", 3), f(4, UO, 1, 3, "cw-jackpot-ribbon", 4), d(), l(5, "div", 5), C(6), d()()), e & 2) { 16972 let i; 16973 a(2), h(n.game().icon ? 2 : -1), a(), h(n.stickers().length ? 3 : -1), a(), h((i = n.jackpotData()?.amount && n.jackpotConfig()) ? 4 : -1, i), a(2), x(n.game().name); 16974 } 16975 }, 16976 dependencies: [ 16977 Ht, 16978 eo, 16979 Ei 16980 ], 16981 styles: [".disk-card-tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;width:100%;gap:var(--%NS%semantic-spacing-inline-md, 8px)}.disk-card-tile[_ngcontent-%COMP%] .disk-image[_ngcontent-%COMP%]{width:var(--%NS%cs-play-again-disk-desktop-size, 120px);height:var(--%NS%cs-play-again-disk-desktop-size, 120px);border-radius:100%;position:relative}@media(max-width:480px){.disk-card-tile[_ngcontent-%COMP%] .disk-image[_ngcontent-%COMP%]{width:var(--%NS%cs-play-again-disk-mobile-size, 80px);height:var(--%NS%cs-play-again-disk-mobile-size, 80px)}}.disk-card-tile[_ngcontent-%COMP%] .disk-image[_ngcontent-%COMP%] .cw-image-loader[_ngcontent-%COMP%]{display:block;width:100%;height:100%}.disk-card-tile[_ngcontent-%COMP%] .disk-image[_ngcontent-%COMP%] .cw-jackpot-ribbon[_ngcontent-%COMP%]{position:absolute;bottom:-10px;left:0;right:0;display:flex;align-items:center;justify-content:center;transform:scale(.75)}.disk-card-tile[_ngcontent-%COMP%] .disk-label[_ngcontent-%COMP%]{margin-top:var(--%NS%semantic-spacing-container-padding-sm, 8px);text-align:center;font-family:var(--%NS%semantic-typography-label-font-family),sans-serif;font-size:var(--%NS%semantic-typography-label-md-strong-font-size);font-weight:var(--%NS%semantic-typography-label-md-strong-font-we
16981ight);line-height:var(--%NS%semantic-typography-label-md-strong-line-height);color:var(--%NS%semantic-color-on-surface-base);max-width:var(--%NS%cs-play-again-disk-desktop-size, 120px);white-space:normal;word-break:break-word;overflow:hidden;display:-webkit-box;display:box;-webkit-box-orient:vertical;box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}@media(max-width:480px){.disk-card-tile[_ngcontent-%COMP%]{align-items:start;gap:var(--%NS%semantic-spacing-inline-sm)}.disk-card-tile[_ngcontent-%COMP%] .disk-label[_ngcontent-%COMP%]{max-width:90px}}"] 16982 }); 16983 } 16984 return t; 16985 })(), gu = [ 16986 [[ 16987 "", 16988 "slot", 16989 "start" 16990 ]], 16991 [[ 16992 "", 16993 "slot", 16994 "end" 16995 ]], 16996 [[ 16997 "", 16998 "slot", 16999 "start" 17000 ]], 17001 [[ 17002 "", 17003 "slot", 17004 "end" 17005 ]] 17006 ], mu = [ 17007 "[slot=start]", 17008 "[slot=end]", 17009 "[slot=start]", 17010 "[slot=end]" 17011 ], Us = ["slot", "start"], Hs = ["slot", "end"], to = (() => { 17012 class t { 17013 size = m("large"); 17014 variant = m("filled"); 17015 kind = m("primary"); 17016 inverse = m(!1); 17017 cta_text = m(""); 17018 casinoDsClass = m(""); 17019 csDecoratorClass = m(""); 17020 customBgColor = m(""); 17021 customTextColor = m(""); 17022 inlineStyle = m(""); 17023 isLegacy = m(!1, { transform: hn }); 17024 disabled = m(!1, { transform: hn }); 17025 ctaWidth = m(void 0, { transform: pl }); 17026 computedStyle = g(() => `width: ${this.ctaWidth()}%; background-color: ${this.customBgColor()}; color: ${this.customTextColor()}; ${this.inlineStyle()}`); 17027 static ɵfac = function(e) { 17028 return new (e || t)(); 17029 }; 17030 static ɵcmp = I({ 17031 type: t, 17032 selectors: [["cw-gametile-cta"]], 17033 inputs: { 17034 size: [1, "size"], 17035 variant: [1, "variant"], 17036 kind: [1, "kind"], 17037 inverse: [1, "inverse"], 17038 cta_text: [1, "cta_text"], 17039 casinoDsClass: [1, "casinoDsClass"], 17040 csDecoratorClass: [1, "csDecoratorClass"], 17041 customBgColor: [1, "customBgColor"], 17042 customTextColor: [1, "customTextColor"], 17043 inlineStyle: [1, "inlineStyle"], 17044 isLegacy: [1, "isLegacy"], 17045 disabled: [1, "disabled"], 17046 ctaWidth: [1, "ctaWidth"] 17047 }, 17048 ngContentSelectors: mu, 17049 decls: 2, 17050 vars: 2, 17051 consts: [ 17052 [ 17053 "ds-button", 17054 "", 17055 3, 17056 "kind", 17057 "variant", 17058 "size", 17059 "inverse", 17060 "class", 17061 "disabled", 17062 "style" 17063 ], 17064 [ 17065 "ds-button", 17066 "", 17067 "cwDecoratorClass", 17068 "", 17069 "data-legacy", 17070 "true", 17071 3, 17072 "csDecoratorClass", 17073 "kind", 17074 "variant", 17075 "size", 17076 "disabled", 17077 "inverse", 17078 "class", 17079 "width" 17080 ], 17081 [ 17082 "ds-button", 17083 "", 17084 3, 17085 "kind", 17086 "variant", 17087 "size", 17088 "inverse", 17089 "disabled" 17090 ], 17091 [ 17092 "ds-button", 17093 "", 17094 "cwDecoratorClass", 17095 "", 17096 "data-legacy", 17097 "true", 17098 3, 17099 "csDecoratorClass", 17100 "kind", 17101 "variant", 17102 "size", 17103 "disabled", 17104 "inverse" 17105 ] 17106 ], 17107 template: function(e, n) { 17108 e & 1 && (ai(gu), f(0, HO, 4, 10, "button", 0), f(1, qO, 4, 11, "button", 1)), e & 2 && (h(n.isLegacy() ? -1 : 0), a(), h(n.isLegacy() ? 1 : -1)); 17109 }, 17110 dependencies: [ke, jr], 17111 encapsulation: 2 17112 }); 17113 } 17114 return t; 17115 })(), pu = (t) => ({ "casino-playbtn-hover-effect": t }), uu = (t) => ({ "border-radius": t }), hu = (() => { 17116 class t { 17117 designSystemEnablerService = s(dg); 17118 gameName = m(); 17119 gameId = m.required(); 17120 cta = m(""); 17121 iconType = m(); 17122 icon = m(); 17123 enableUkMouseOverStyle = m(!1); 17124 centerCta = m(!1); 17125 layoutId = m.required(); 17126 src; 17127 launchGame = j(); 17128 isLegacy = !1; 17129 playNowBtnWidth = 93; 17130 playNowHoverEffect; 17131 configProviderService = s(V); 17132 ctaText = g(() => this.cta() || this.configProviderService.provideGlobalConfig()?.messages?.ButtonPlayNow || "Play Now"); 17133 casinoManager = s(Ve); 17134 deviceService = s(J); 17135 casinoStyles = s(jt); 17136 document = s(Ge); 17137 timerService = s(de); 17138 platform = s(X); 17139 isTouch = !1; 17140 timeoutId = null; 17141 ngOnInit() { 17142 this.isLegacy = !this.designSystemEnablerService.isEnabled(), this.setPlayNowBtnWidth(); 17143 let e = this.configProviderService.provideFeaturesConfig(); 17144 this.playNowHoverEffect = !!this.casinoManager.IsFeatureEnabledForLobbyType(this.layoutId(), e.playNowHoverEffect), this.isTouch = this.deviceService.isTouch, this.setImageIcon(); 17145 } 17146 setPlayNowBtnWidth() { 17147 if (!this.iconType() || this.enableUkMouseOverStyle()) this.playNowBtnWidth = 93; 17148 else switch (this.iconType()) { 17149 case "square": 17150 this.playNowBtnWidth = 93; 17151 break; 17152 case "landscape": 17153 this.playNowBtnWidth = 60; 17154 break; 17155 case "portrait": 17156 this.playNowBtnWidth = 93; 17157 break; 17158 case "supersquare": 17159 this.playNowBtnWidth = 90; 17160 break; 17161 case "superrectangle": 17162 this.playNowBtnWidth = 65; 17163 break; 17164 default: this.playNowBtnWidth = 93; 17165 } 17166 } 17167 ngAfterViewInit() { 17168 this.platform.isBrowser && (this.timeoutId = this.timerService.setTimeout(() => { 17169 this.isTouch || KO(this.document, "casino-game-cls", "casino-qi-gradient-d"); 17170 }, 100)); 17171 } 17172 ngOnDestroy() { 17173 this.timeoutId != null && this.timerService.clearTimeout(this.timeoutId); 17174 } 17175 setImageIcon() { 17176 this.icon()?.src && (this.src = JSON.parse(JSON.stringify(this.icon()?.src))), this.configProviderService.provideFeaturesConfig().enableGameIconTheming && (this.src = this.casinoStyles.appendTheme(this.src, this.gameId())); 17177 } 17178 onClick(e) { 17179 e.stopPropagation(), this.launchGame.emit(); 17180 } 17181 onSpaceKey(e) { 17182 e.preventDefault(), this.onClick(e); 17183 } 17184 IconType = ue; 17185 static ɵfac = function(e) { 17186 return new (e || t)(); 17187 }; 17188 static ɵcmp = I({ 17189 type: t, 17190 selectors: [["cw-game-quick-info"]], 17191 inputs: { 17192 gameName: [1, "gameName"], 17193 gameId: [1, "gameId"], 17194 cta: [1, "cta"], 17195 iconType: [1, "iconType"], 17196 icon: [1, "icon"], 17197 enableUkMouseOverStyle: [1, "enableUkMouseOverStyle"], 17198 centerCta: [1, "centerCta"], 17199 layoutId: [1, "layoutId"] 17200 }, 17201 outputs: { launchGame: "launchGame" }, 17202 decls: 2, 17203 vars: 1, 17204 consts: [ 17205 [1, "casino-lobby-container-main"], 17206 [ 17207 "tabindex", 17208 "0", 17209 "role", 17210 "button", 17211 1, 17212 "casino-qi-container-d", 17213 3, 17214 "click", 17215 "keydown.enter", 17216 "keydown.space" 17217 ], 17218 [1, "casino-qi-cta-container-d"], 17219 [ 17220 3, 17221 "click", 17222 "isLegacy", 17223 "kind", 17224 "casinoDsClass", 17225 "csDecoratorClass", 17226 "cta_text", 17227 "ctaWidth" 17228 ], 17229 [1, "casino-qi-gradient-d"], 17230 [ 17231 1, 17232 "casino-qi-image-d", 17233 3, 17234 "src" 17235 ], 17236 [1, "casino-qi-detail-d"], 17237 [1, "casino-qi-gamename-d"] 17238 ], 17239 template: function(e, n) { 17240 e & 1 && (l(0, "div", 0), f(1, YO, 5, 12, "div"), d()), e & 2 && (a(), h(n.isTouch ? -1 : 1)); 17241 }, 17242 dependencies: [to], 17243 styles: [".casino-qi-cta-centered[_ngcontent-%COMP%]{top:50%;bottom:auto;transform:translateY(-50%)}"] 17244 }); 17245 } 17246 return t; 17247 })(), fu = (() => { 17248 class t { 17249 configProviderService = s(V); 17250 game = m.required(); 17251 layoutId = m.required(); 17252 gameIndex = m(0); 17253 loaded = j(); 17254 isGray = g(() => { 17255 let e = this.gameIndex(); 17256 return ((e - 1) % 2 + Math.ceil(e / 2)) % 2 === 1; 17257 }); 17258 ctaText = g(() => this.configProviderService.provideGlobalConfig()?.messages?.ButtonPlayNow ?? "Play Now"); 17259 static ɵfac = function(e) { 17260 return new (e || t)(); 17261 }; 17262 static ɵcmp = I({ 17263 type: t, 17264 selectors: [["cw-game-tile-landscape-v2"]], 17265 inputs: { 17266 game: [1, "game"], 17267 layoutId: [1, "layoutId"], 17268 gameIndex: [1, "gameIndex"] 17269 }, 17270 outputs: { loaded: "loaded" }, 17271 decls: 10, 17272 vars: 17, 17273 consts: [ 17274 [1, "landscape-v2-tile"], 17275 [1, "landscape-v2-index"], 17276 [1, "landscape-v2-image"], 17277 [ 17278 3, 17279 "loaded", 17280 "icon", 17281 "gameId", 17282 "alt", 17283 "width", 17284 "height", 17285 "imageStyle" 17286 ], 17287 [1, "new-grid-game-metadata"], 17288 [1, "gamenametext"], 17289 [1, "landscape-v2-hover-overlay"], 17290 [1, "casino-qi-gamename-d"], 17291 [ 17292 3, 17293 "cta_text", 17294 "kind", 17295 "variant", 17296 "ctaWidth" 17297 ] 17298 ], 17299 template: function(e, n) { 17300 e & 1 && (l(0, "div", 0), f(1, QO, 3, 1, "div", 1), l(2, "div", 2)(3, "cw-image-loader", 3), S("loaded", function() { 17301 return n.loaded.emit(); 17302 }), d()(), l(4, "div", 4), f(5, XO, 3, 1, "div", 5), d(), l(6, "div", 6)(7, "div", 7), C(8), d(), b(9, "cw-gametile-cta", 8), d()()), e & 2 && (L("odd", n.isGray())("even", !n.isGray()), a(), h(n.gameIndex() > 0 ? 1 : -1), a(2), p("icon", n.game().icon)("gameId", n.game().gameId)("alt", n.game().name || n.game().gameId)("width", 80)("height", 80)("imageStyle", "border-radius: 4px; object-fit: cover; width: 80px !important; height: 80px !important;"), a(2), h(n.game().name ? 5 : -1), a(3), x(n.game().name), a(), p("cta_text", n.ctaText())("kind", "primary")("variant", "filled")("ctaWidth", 100)); 17303 }, 17304 dependencies: [Ht, to], 17305 styles: ["[_nghost-%COMP%]{display:block;width:100%;height:100%}.landscape-v2-tile[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;width:100%;height:100%;padding:0 0 0 var(--%NS%semantic-spacing-container-padding-xl, 12px);border-radius:var(--%NS%cs-game-tile-border-radius, 4px);position:relative}.landscape-v2-tile.odd[_ngcontent-%COMP%]{background-color:#f3f2f4}.landscape-v2-tile.even[_ngcontent-%COMP%]{background-color:#dbdae1}.landscape-v2-tile[_ngcontent-%COMP%] .landscape-v2-hover-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--%NS%cs-game-tile-border-radius, 4px);background:linear-gradient(to top,#0000 24%,#000000b3 54%,#000);display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:var(--%NS%semantic-spacing-container-padding-2xl, 16px) 0 var(--%NS%semantic-spacing-stack-xl, 16px);opacity:0;transition:opacity .2s ease}.landscape-v2-tile[_ngcontent-%COMP%] .landscape-v2-hover-overlay[_ngcontent-%COMP%] .casino-qi-gamename-d[_ngcontent-%COMP%]{width:85%;font-size:var(--%NS%semantic-typography-body-lg-font-size, 16px);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landscape-v2-tile[_ngcontent-%COMP%] .landscape-v2-hover-overlay[_ngcontent-%COMP%] cw-gametile-cta[_ngcontent-%COMP%]{width:85%}.landscape-v2-tile[_ngcontent-%COMP%]:hover .landscape-v2-hover-overlay[_ngcontent-%COMP%]{opacity:1}.landscape-v2-tile[_ngcontent-%COMP%] .landscape-v2-image[_ngcontent-%COMP%], .landscape-v2-tile[_ngcontent-%COMP%] .new-grid-game-metadata[_ngcontent-%COMP%]{transition:transform .2s ease}.landscape-v2-tile[_ngcontent-%COMP%]:hover .landscape-v2-image[_ngcontent-%COMP%], .landscape-v2-tile[_ngcontent-%COMP%]:hover .new-grid-game-metadata[_ngcontent-%COMP%]{transform:scale(1.07)}.landscape-v2-index[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;margin-right:var(--%NS%semantic-spacing-inline-xl, 16px)}.landscape-v2-index[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;font-weight:var(--%NS%semantic-typography-title-md-strong-font-we
17305ight, bold);line-height:normal}.landscape-v2-image[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;margin-right:var(--%NS%semantic-spacing-inline-lg, 12px);flex-shrink:0}.new-grid-game-metadata[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;min-width:0;line-height:normal}.new-grid-game-metadata[_ngcontent-%COMP%] .gamenametext[_ngcontent-%COMP%]{display:flex;padding-right:var(--%NS%cs-game-tile-metadata-padding-right, 5px);word-wrap:break-word;white-space:normal}.new-grid-game-metadata[_ngcontent-%COMP%] .gamenametext[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;line-height:normal;font-size:var(--%NS%semantic-typography-title-md-strong-font-size, 16px);font-weight:var(--%NS%semantic-typography-title-md-strong-font-weight, bold)}"] 17306 }); 17307 } 17308 return t; 17309 })(), vu = (() => { 17310 class t { 17311 configProviderService = s(V); 17312 game = m.required(); 17313 layoutId = m.required(); 17314 jackpotData = m(null); 17315 jackpotConfig = m(null); 17316 loaded = j(); 17317 ctaText = g(() => this.configProviderService.provideGlobalConfig()?.messages?.ButtonPlayNow ?? "Play Now"); 17318 ribbon = g(() => { 17319 let e = this.jackpotData(), n = this.jackpotConfig(); 17320 return e?.amount && n ? { 17321 data: e, 17322 config: n 17323 } : null; 17324 }); 17325 static ɵfac = function(e) { 17326 return new (e || t)(); 17327 }; 17328 static ɵcmp = I({ 17329 type: t, 17330 selectors: [["cw-game-tile-semicircle"]], 17331 inputs: { 17332 game: [1, "game"], 17333 layoutId: [1, "layoutId"], 17334 jackpotData: [1, "jackpotData"], 17335 jackpotConfig: [1, "jackpotConfig"] 17336 }, 17337 outputs: { loaded: "loaded" }, 17338 decls: 8, 17339 vars: 10, 17340 consts: [ 17341 [1, "semicircle-tile"], 17342 [1, "semicircle-image"], 17343 [ 17344 3, 17345 "loaded", 17346 "icon", 17347 "gameId", 17348 "alt", 17349 "imageStyle", 17350 "containerStyle" 17351 ], 17352 [1, "semicircle-hover-overlay"], 17353 [1, "casino-qi-gamename-d"], 17354 [ 17355 3, 17356 "cta_text", 17357 "kind", 17358 "variant" 17359 ], 17360 [1, "ribbon-wrapper"], 17361 [ 17362 3, 17363 "jackpotData", 17364 "config", 17365 "layoutId" 17366 ] 17367 ], 17368 template: function(e, n) { 17369 if (e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "cw-image-loader", 2), S("loaded", function() { 17370 return n.loaded.emit(); 17371 }), d(), l(3, "div", 3)(4, "div", 4), C(5), d(), b(6, "cw-gametile-cta", 5), d(), f(7, ZO, 2, 3, "div", 6), d()()), e & 2) { 17372 let i; 17373 a(2), p("icon", n.game().icon)("gameId", n.game().gameId)("alt", n.game().name || n.game().gameId)("imageStyle", "border-radius: 100%; aspect-ratio: 1 / 1; margin-bottom: -20px; width: 100% !important; object-fit: cover; background-color: unset !important;")("containerStyle", "overflow: hidden; margin-bottom: 20px; height: auto;"), a(3), x(n.game().name), a(), p("cta_text", n.ctaText())("kind", "primary")("variant", "filled"), a(), h((i = n.ribbon()) ? 7 : -1, i); 17374 } 17375 }, 17376 dependencies: [ 17377 Ht, 17378 to, 17379 eo 17380 ], 17381 styles: ["[_nghost-%COMP%]{display:block;width:100%;height:100%;position:relative}.semicircle-tile[_ngcontent-%COMP%]{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;position:relative}.semicircle-image[_ngcontent-%COMP%]{width:100%;position:relative}.semicircle-image[_ngcontent-%COMP%] .ribbon-wrapper[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;right:0;width:auto;max-width:90%;margin:0 auto;z-index:2}@media(min-width:1366px){.semicircle-image[_ngcontent-%COMP%] .ribbon-wrapper[_ngcontent-%COMP%]{max-width:75%}}.semicircle-image[_ngcontent-%COMP%] .semicircle-hover-overlay[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;aspect-ratio:1/1;border-radius:100%;background:linear-gradient(to top,#0000 24%,#000000b3 54%,#000);clip-path:inset(0 0 20px 0);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .2s ease}.semicircle-image[_ngcontent-%COMP%] .semicircle-hover-overlay[_ngcontent-%COMP%] .casino-qi-gamename-d[_ngcontent-%COMP%]{position:absolute;top:var(--%NS%semantic-spacing-container-padding-4xl, 32px);width:85%}.semicircle-image[_ngcontent-%COMP%] .semicircle-hover-overlay[_ngcontent-%COMP%] cw-gametile-cta[_ngcontent-%COMP%]{position:absolute;bottom:var(--%NS%semantic-spacing-container-padding-5xl, 40px)}.semicircle-image[_ngcontent-%COMP%]:hover .semicircle-hover-overlay[_ngcontent-%COMP%]{opacity:1}.semicircle-image[_ngcontent-%COMP%] cw-image-loader[_ngcontent-%COMP%]{display:block;transition:transform .2s ease}.semicircle-image[_ngcontent-%COMP%] .semicircle-hover-overlay[_ngcontent-%COMP%]{transition:opacity .2s ease,transform .2s ease}.semicircle-image[_ngcontent-%COMP%]:hover cw-image-loader[_ngcontent-%COMP%], .semicircle-image[_ngcontent-%COMP%]:hover .semicircle-hover-overlay[_ngcontent-%COMP%]{transform:scale(1.05)}cw-game-tile-stickers[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0;display:flex;justify-content:center}"] 17382 }); 17383 } 17384 return t; 17385 })(), bu = (() => { 17386 class t { 17387 label = m(); 17388 static ɵfac = function(e) { 17389 return new (e || t)(); 17390 }; 17391 static ɵcmp = I({ 17392 type: t, 17393 selectors: [["cw-promoted-label"]], 17394 inputs: { label: [1, "label"] }, 17395 decls: 3, 17396 vars: 2, 17397 consts: [[1, "promoted-label"]], 17398 template: function(e, n) { 17399 e & 1 && (H(0, "div", 0)(1, "span"), C(2), K()()), e & 2 && (T("aria-hidden", !0), a(2), x(n.label())); 17400 }, 17401 styles: ["[_nghost-%COMP%]{display:block}.promoted-label[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;right:0;height:var(--%NS%semantic-size-x5);display:flex;align-items:center;justify-content:center;text-align:center;background:var(--%NS%cs-promoted-tile-label-bg);color:var(--%NS%cs-promoted-tile-on-accent);font-size:var(--%NS%semantic-typography-label-md-strong-font-size);font-weight:var(--%NS%semantic-typography-label-md-strong-font-we
17401ight);line-height:var(--%NS%semantic-typography-label-md-strong-line-height);text-transform:uppercase}"] 17402 }); 17403 } 17404 return t; 17405 })(), Cu = ["videoElement"], yu = (() => { 17406 class t { 17407 game = m.required(); 17408 alt = m(""); 17409 sizes = m(or); 17410 isTouch = m(!1); 17411 mouseHovered = m(!1); 17412 loaded = j(); 17413 isInViewport = O(!1); 17414 isVideoPlaying = O(!1); 17415 hasVideoError = O(!1); 17416 videoLoaded = O(!1); 17417 videoElementRef = De("videoElement"); 17418 hostEl = s(tt).nativeElement; 17419 injector = s(gt); 17420 gameImageService = s(rt); 17421 configProviderService = s(V); 17422 trackingAdapter = s(we); 17423 renderer = s(lt); 17424 videoElement = null; 17425 destroyed = !1; 17426 videoUrl = g(() => { 17427 let e = this.configProviderService.provideFeaturesConfig()?.gameVideo?.videoFormat || ".mp4"; 17428 return this.gameImageService.getVideoUrl(this.game(), e); 17429 }); 17430 shouldLoadVideo = g(() => this.hasVideoError() ? !1 : this.isTouch() ? this.isInViewport() : this.mouseHovered() && this.isInViewport()); 17431 constructor() { 17432 let e = s(q); 17433 Mt((n) => { 17434 let i = n[0]; 17435 this.isInViewport.set(i.isIntersecting); 17436 }, { threshold: .1 }, this.injector).observe(this.hostEl), Se(() => { 17437 this.initVideoElement(); 17438 }), Z(() => { 17439 let n = this.isInViewport(), i = this.mouseHovered(), r = this.isTouch(); 17440 this.hasVideoError() || !this.videoElement || (r ? this.handleMobilePlayback(n) : this.handleDesktopPlayback(i && n)); 17441 }), e.onDestroy(() => { 17442 this.destroyed = !0, this.videoElement && (this.videoElement.pause(), this.renderer.removeAttribute(this.videoElement, "src"), this.videoElement.load(), this.videoElement = null); 17443 }); 17444 } 17445 onVideoLoaded() { 17446 this.videoLoaded.set(!0), this.loaded.emit(); 17447 } 17448 onVideoEnded() { 17449 this.isVideoPlaying.set(!1); 17450 } 17451 onVideoError() { 17452 this.hasVideoError.set(!0), this.isVideoPlaying.set(!1); 17453 } 17454 initVideoElement() { 17455 let e = this.videoElementRef(); 17456 e && (this.videoElement = e.nativeElement, this.videoElement.muted = !0); 17457 } 17458 handleDesktopPlayback(e) { 17459 this.videoElement && (e ? this.startPlayback() : this.pauseAndReset()); 17460 } 17461 handleMobilePlayback(e) { 17462 this.videoElement && (e ? this.startPlayback() : this.stopAndRelease()); 17463 } 17464 startPlayback() { 17465 if (!this.videoElement || this.hasVideoError()) return; 17466 let e = this.videoUrl(); 17467 e && this.videoElement.src !== e && this.renderer.setAttribute(this.videoElement, "src", e); 17468 let n = this.videoElement.play(); 17469 n !== void 0 && n.then(() => { 17470 !this.destroyed && this.videoElement && (this.isVideoPlaying.set(!0), this.trackVideoEvent(this.isTouch() ? "autoplay" : "hover")); 17471 }).catch(() => { 17472 !this.destroyed && this.videoElement && this.isVideoPlaying.set(!1); 17473 }); 17474 } 17475 pauseAndReset() { 17476 this.videoElement && (this.trackVideoProgress(), this.videoElement.pause(), this.videoElement.currentTime = 0, this.isVideoPlaying.set(!1)); 17477 } 17478 stopAndRelease() { 17479 this.videoElement && (this.trackVideoProgress(), this.videoElement.pause(), this.videoElement.currentTime = 0, this.renderer.removeAttribute(this.videoElement, "src"), this.videoElement.load(), this.isVideoPlaying.set(!1)); 17480 } 17481 trackVideoEvent(e) { 17482 this.trackingAdapter.trigger({ 17483 name: se.EventTracking, 17484 data: { 17485 [M.ComponentCategoryEvent]: "games", 17486 [M.ComponentLabelEvent]: "Video Preview Game Tile", 17487 [M.ComponentActionEvent]: e, 17488 [M.ComponentPositionEvent]: this.game().gameId, 17489 [M.ComponentLocationEvent]: this.game().name ?? "", 17490 [M.ComponentEventDetails]: "game video preview play", 17491 [M.ComponentUrlClicked]: "not applicable" 17492 } 17493 }); 17494 } 17495 trackVideoProgress() { 17496 if (!this.videoElement || !this.isVideoPlaying()) return; 17497 let { duration: e, currentTime: n } = this.videoElement; 17498 if (!e || isNaN(e) || e === 0) return; 17499 let i = e - n, r = 100 * n / e, u = n === 0 ? "started" : i === 0 ? "ended" : "inprogress"; 17500 this.trackingAdapter.trigger({ 17501 name: se.EventTracking, 17502 data: { 17503 [M.ComponentCategoryEvent]: "games", 17504 [M.ComponentLabelEvent]: "Video Preview Game Tile", 17505 [M.ComponentActionEvent]: u, 17506 [M.ComponentPositionEvent]: this.game().gameId, 17507 [M.ComponentLocationEvent]: this.game().name ?? "", 17508 [M.ComponentEventDetails]: `${r.toFixed()}%-{${n}} secs`, 17509 [M.ComponentUrlClicked]: "not applicable" 17510 } 17511 }); 17512 } 17513 static ɵfac = function(e) { 17514 return new (e || t)(); 17515 }; 17516 static ɵcmp = I({ 17517 type: t, 17518 selectors: [["cw-video-preview"]], 17519 viewQuery: function(e, n) { 17520 e & 1 && He(n.videoElementRef, Cu, 5), e & 2 && Ue(); 17521 }, 17522 inputs: { 17523 game: [1, "game"], 17524 alt: [1, "alt"], 17525 sizes: [1, "sizes"], 17526 isTouch: [1, "isTouch"], 17527 mouseHovered: [1, "mouseHovered"] 17528 }, 17529 outputs: { loaded: "loaded" }, 17530 decls: 3, 17531 vars: 10, 17532 consts: [ 17533 ["videoElement", ""], 17534 [ 17535 3, 17536 "loaded", 17537 "icon", 17538 "gameId", 17539 "alt", 17540 "sizes" 17541 ], 17542 [ 17543 "muted", 17544 "", 17545 "playsinline", 17546 "", 17547 "preload", 17548 "none", 17549 3, 17550 "loadeddata", 17551 "ended", 17552 "error", 17553 "poster" 17554 ] 17555 ], 17556 template: function(e, n) { 17557 if (e & 1 && (l(0, "cw-image-loader", 1), S("loaded", function() { 17558 return n.loaded.emit(); 17559 }), d(), l(1, "video", 2, 0), S("loadeddata", function() { 17560 return n.onVideoLoaded(); 17561 })("ended", function() { 17562 return n.onVideoEnded(); 17563 })("error", function() { 17564 return n.onVideoError(); 17565 }), d()), e & 2) { 17566 let i; 17567 L("hidden", n.isVideoPlaying()), p("icon", n.game().icon)("gameId", n.game().gameId)("alt", n.alt())("sizes", n.sizes()), a(), L("hidden", !n.isVideoPlaying()), p("poster", (i = n.game().icon) == null ? null : i.src), T("aria-label", n.alt()); 17568 } 17569 }, 17570 dependencies: [Ht], 17571 styles: ["[_nghost-%COMP%]{display:block;width:100%;height:100%;position:relative}video[_ngcontent-%COMP%]{width:100%;height:100%;display:block;border-radius:var(--%NS%semantic-border-radius-medium);object-fit:cover}.hidden[_ngcontent-%COMP%]{display:none}"] 17572 }); 17573 } 17574 return t; 17575 })(), qs = (function(t) { 17576 return t.QuickInfo = "q", t.Tile = "p", t; 17577 })(qs || {}), Tn = (() => { 17578 class t { 17579 TileMode = kt; 17580 GameSource = be; 17581 configProviderService = s(V); 17582 casinoManager = s(Ve); 17583 deviceService = s(J); 17584 jackpotDataService = s(on); 17585 liveDealerService = s(Tt); 17586 liveCasinoConfig = s(qn); 17587 gameLaunchAggregatorService = s(Qe); 17588 jackpotConfigService = s(Na); 17589 signPostingService = s(zr); 17590 recentGamesService = s(at); 17591 navigationService = s(he); 17592 ga4TrackingService = s(Un); 17593 trackingContextService = s(jn); 17594 favouriteService = s(Re); 17595 unfinishedGamesService = s(_t); 17596 destroyRef = s(q); 17597 document = s(Ge); 17598 renderer = s(lt); 17599 game = m.required(); 17600 layoutId = m.required(); 17601 containerId = m.required(); 17602 containerIndex = m.required();
17603 isBackgroundImageLayerPresent = m(!1); 17604 gameIndex = m(0); 17605 containerTitle = m(""); 17606 priority = m(!1); 17607 containerType = m(""); 17608 isRpFavWidget = m(!1); 17609 quickInfoCtaText = m(""); 17610 disableLaunch = m(!1); 17611 showGameNameOnHover = m(!0); 17612 inCarousel3d = m(!1); 17613 showJackpotRibbon = m(!0); 17614 showStickers = m(!0); 17615 enableFlatOverlay = m(!1); 17616 isTouch = O(!1); 17617 quickInfoVisible = O(""); 17618 imageLoaded = O(!1); 17619 showFlatOverlay = g(() => this.enableFlatOverlay() && this.quickInfoVisible() === this.game().gameId + this.containerId()); 17620 isRpFavWidgetSurface = g(() => this.isRpFavWidget()); 17621 promotedFrameColor = g(() => { 17622 let e = this.configProviderService.provideGlobalConfig()?.lobbyConfigurations?.promotedGamesFrameColor; 17623 return typeof e == "string" && e.trim() ? e : null; 17624 }); 17625 promotedTextColor = g(() => { 17626 let e = this.configProviderService.provideGlobalConfig()?.lobbyConfigurations?.promotedGamesTextColor; 17627 return typeof e == "string" && e.trim() ? e : null; 17628 }); 17629 promotedRpFavFrameColor = g(() => { 17630 let e = this.configProviderService.provideGlobalConfig()?.lobbyConfigurations?.promotedGamesRpFavWidgetFrameColor; 17631 return typeof e == "string" && e.trim() ? e : null; 17632 }); 17633 promotedTileAccentOverride = g(() => this.game().gameSource !== be.Promoted ? null : this.isRpFavWidgetSurface() ? this.promotedRpFavFrameColor() ?? "var(--semantic-color-on-supporting-brand-primary-base)" : this.promotedFrameColor()); 17634 promotedTileLabelBgOverride = g(() => this.game().gameSource !== be.Promoted ? null : this.isRpFavWidgetSurface() ? this.promotedRpFavFrameColor() : this.promotedFrameColor()); 17635 promotedTileOnAccentOverride = g(() => this.game().gameSource !== be.Promoted || this.isRpFavWidgetSurface() ? null : this.promotedTextColor()); 17636 promotedTileBorderWidthOverride = g(() => this.game().gameSource !== be.Promoted || !this.isRpFavWidgetSurface() ? null : "0.125rem"); 17637 nameVisibleOnHover = g(() => this.showGameNameOnHover() && !(this.inCarousel3d() && this.disableGameTileOnHover())); 17638 stickersForUk; 17639 enableUkMouseOverStyle; 17640 globalConfig; 17641 mouseHoveredOnGame = O(!1); 17642 displayRecentWinners; 17643 playNowHoverEffect = !0; 17644 isSignPosting = O(!1); 17645 disableGameTileOnHover = O(!1); 17646 recentGames = Q(this.recentGamesService.recentGamesFeedObservable, { initialValue: [] }); 17647 filteredStickers = g(() => { 17648 if (!this.showStickers()) return []; 17649 let e = this.game(), n = this.recentGames(); 17650 return !this.isSignPosting() || !e.stickers?.length ? e.stickers ?? [] : this.signPostingService.filterStickers(e.stickers, e.gameId, n); 17651 }); 17652 promotedImageGame = g(() => { 17653 let e = this.game(); 17654 return e.gameSource !== be.Promoted || !e.icon ? e : F(G({}, e), { icon: F(G({}, e.icon), { gameTileBorderRadius: "0" }) }); 17655 }); 17656 favouriteTrackingContext = g(() => { 17657 let e = this.game(); 17658 this.recentGames(); 17659 let n = this.isSignPosting() && this.signPostingService.isSignPostedGame(e); 17660 return { 17661 provider: e.provider, 17662 gameContainerName: this.containerTitle(), 17663 gameContainerId: this.containerId(), 17664 gameContainerType: this.containerType(), 17665 gameStatus: this.trackingContextService.getGameStatus(n), 17666 gamePosition: this.gameIndex(), 17667 gameGridPosition: this.trackingContextService.getGridPosition(this.gameIndex(), this.containerIndex()), 17668 gameBadges: ya(e.stickers), 17669 categoryType: this.layoutId() || this.navigationService.currentLayout(), 17670 categorySubType: this.navigationService.currentSubnav()?.id 17671 }; 17672 }); 17673 tileAriaLabel = g(() => { 17674 let e = this.game(); 17675 return `Play ${e.name || e.gameId}${e.gameSource === be.Promoted && e.promotedLabel ? `, ${e.promotedLabel}` : ""}`; 17676 }); 17677 jackpotConfig = Q(this.jackpotConfigService.getJackpotConfig(), { initialValue: null }); 17678 jackpotTick = O(0); 17679 jackpotRibbonData = g(() => { 17680 if (this.jackpotTick(), !this.showJackpotRibbon()) return null; 17681 let e = this.game(), n = this.jackpotDataService.getGameJackpotValue(e.gameId); 17682 return n ? { 17683 gameId: e.gameId, 17684 amount: n.amount, 17685 name: n.jackpotName, 17686 groupName: n.jackpotName, 17687 isHot: n.isHotJackpotGroup 17688 } : null; 17689 }); 17690 isLiveCasinoEnabled = g(() => this.liveCasinoConfig.enabled && this.configProviderService.provideCasinoConfig()?.enableLiveGames); 17691 liveGameInfo = g(() => { 17692 if (this.isLiveCasinoEnabled()) return this.liveDealerService.getLiveGameInfo(this.game().gameId); 17693 }); 17694 isLiveGame = g(() => !!this.liveGameInfo()); 17695 feedLoaded = this.liveDealerService.feedLoaded; 17696 constructor() { 17697 Z(() => { 17698 this.disableLaunch() && (this.quickInfoVisible.set(""), this.mouseHoveredOnGame.set(!1)); 17699 }); 17700 } 17701 ngOnInit() { 17702 let e = this.configProviderService.provideFeaturesConfig(); 17703 this.enableUkMouseOverStyle = !!this.casinoManager.IsFeatureEnabledForLobbyType(this.layoutId(), e.enableUkMouseOverStyle), this.isSignPosting.set(!!this.casinoManager.IsFeatureEnabledForLobbyType(this.layoutId(), e.enableSignpostingSticker)), this.isTouch.set(this.deviceService.isTouch), this.globalConfig = this.configProviderService.provideGlobalConfig(), this.playNowHoverEffect = !!this.casinoManager.IsFeatureEnabledForLobbyType(this.layoutId(), e.playNowHoverEffect), this.disableGameTileOnHover.set(e.disableGameTileOnHover ?? !1), this.setJackPotValue(), this.subscribeToJackpotFeed(); 17704 } 17705 mouseOver(e) { 17706 this.disableLaunch() || (this.mouseHoveredOnGame.set(!0), !(this.deviceService.isMobile || this.deviceService.isTablet) && this.mouseHoveredOnGame() && this.quickInfoVisible.set(e)); 17707 } 17708 mouseLeave() { 17709 this.deviceService.isMobile || this.deviceService.isTablet || (this.quickInfoVisible.set(""), this.mouseHoveredOnGame.set(!1)); 17710 } 17711 gameMouseDown(e) { 17712 if (this.document.querySelector(".click-interaction")) { 17713 let n = e.target; 17714 this.renderer.setStyle(n, "transform", "scale(0.98)"); 17715 } 17716 } 17717 gameMouseUp(e) { 17718 if (this.document.querySelector(".click-interaction")) { 17719 let n = e.target; 17720 this.renderer.setStyle(n, "transform", "scale(1)"); 17721 } 17722 } 17723 onClick(e) {
17724 let n = this.game(), i = this.isSignPosting() && this.signPostingService.isSignPostedGame(n), r = this.navigationService.currentSubnav()?.id ?? ""; 17725 this.ga4TrackingService.trackClick(Pi({ 17726 game: n, 17727 containerId: this.containerId(), 17728 layoutId: this.layoutId() || this.navigationService.currentLayout(), 17729 subNavigation: r, 17730 containerType: this.containerType(), 17731 containerName: this.containerTitle(), 17732 gameIndex: this.gameIndex(), 17733 containerIndex: this.containerIndex(), 17734 gridPosition: this.trackingContextService.getGridPosition(this.gameIndex(), this.containerIndex()), 17735 playingStatus: this.unfinishedGamesService.getUnfinishedGames().includes(n.gameId) ? "unfinished" : "start", 17736 favouriteStatus: this.favouriteService.isFavourite(n.gameId) ? "favourite" : "non favourite" 17737 })); 17738 let u = { 17739 game: F(G({}, n), { 17740 lobbyType: this.layoutId(), 17741 isSignPostedGame: i 17742 }), 17743 isTouch: this.deviceService.isMobile || this.deviceService.isTablet, 17744 gamePosition: this.gameIndex(), 17745 categoryType: r, 17746 from: e, 17747 replaceRouteInHistory: !1, 17748 isDemoLaunch: !1, 17749 skipUnfinGame: !1, 17750 gameLaunchedFrom: this.containerId(), 17751 gridPosition: this.containerIndex(), 17752 gameContainer: this.containerId(), 17753 gameSection: this.containerTitle(), 17754 gameContainerType: this.containerType(), 17755 isBackgroundImageLayerPresent: this.isBackgroundImageLayerPresent(), 17756 clickTimeStamp: Date.now() 17757 }; 17758 this.gameLaunchAggregatorService.launchGame(u); 17759 } 17760 setJackPotValue() { 17761 let e = this.jackpotDataService.getGameJackpotValue(this.game().gameId); 17762 e && (this.game().jackpotValue = e.amount); 17763 } 17764 subscribeToJackpotFeed() { 17765 this.jackpotDataService.jackpotFeedObservable.pipe(z(this.destroyRef)).subscribe(() => { 17766 this.setJackPotValue(), this.jackpotTick.update((e) => e + 1); 17767 }); 17768 } 17769 LaunchedFrom = qs; 17770 tileMode = g(() => { 17771 let e = this.game(), n = this.configProviderService.provideFeaturesConfig()?.gameVideo?.enabled && e.iconType === ue.VideoTile; 17772 return e.iconType === ue.Disk ? kt.Disk : e.iconType === ue.SemiCircle ? kt.SemiCircle : e.iconType === ue.LandscapeV2 ? kt.LandscapeV2 : n ? kt.Video : e.iconFormat === sr.Svg ? kt.Svg : kt.Standard; 17773 }); 17774 rendersOwnOverlays = g(() => [ 17775 kt.SemiCircle, 17776 kt.LandscapeV2, 17777 kt.Disk 17778 ].includes(this.tileMode())); 17779 static ɵfac = function(e) { 17780 return new (e || t)(); 17781 }; 17782 static ɵcmp = I({ 17783 type: t, 17784 selectors: [["cw-game-lobby"]], 17785 inputs: { 17786 game: [1, "game"], 17787 layoutId: [1, "layoutId"], 17788 containerId: [1, "containerId"], 17789 containerIndex: [1, "containerIndex"], 17790 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"], 17791 gameIndex: [1, "gameIndex"], 17792 containerTitle: [1, "containerTitle"], 17793 priority: [1, "priority"], 17794 containerType: [1, "containerType"], 17795 isRpFavWidget: [1, "isRpFavWidget"], 17796 quickInfoCtaText: [1, "quickInfoCtaText"], 17797 disableLaunch: [1, "disableLaunch"], 17798 showGameNameOnHover: [1, "showGameNameOnHover"], 17799 inCarousel3d: [1, "inCarousel3d"], 17800 showJackpotRibbon: [1, "showJackpotRibbon"], 17801 showStickers: [1, "showStickers"], 17802 enableFlatOverlay: [1, "enableFlatOverlay"] 17803 }, 17804 features: [ce([iw])], 17805 decls: 15, 17806 vars: 30, 17807 consts: [ 17808 [ 17809 "tabindex", 17810 "0", 17811 1, 17812 "casino-game-cls", 17813 3, 17814 "mouseenter", 17815 "mouseleave", 17816 "focus", 17817 "blur" 17818 ], 17819 [ 17820 1, 17821 "casino-overlay-bg", 17822 3, 17823 "border-radius" 17824 ], 17825 [ 17826 3, 17827 "icon", 17828 "layoutId", 17829 "iconType", 17830 "gameName", 17831 "gameId", 17832 "cta", 17833 "centerCta", 17834 "enableUkMouseOverStyle" 17835 ], 17836 [ 17837 3, 17838 "gameId", 17839 "gameName", 17840 "trackingContext", 17841 "centered" 17842 ], 17843 [ 17844 "tabindex", 17845 "0", 17846 "role", 17847 "button", 17848 1, 17849 "game-image-link", 17850 3, 17851 "click", 17852 "touchstart", 17853 "touchend" 17854 ], 17855 [ 17856 3, 17857 "game", 17858 "layoutId", 17859 "jackpotData", 17860 "jackpotConfig", 17861 "stickers" 17862 ], 17863 [ 17864 3, 17865 "game", 17866 "layoutId", 17867 "jackpotData", 17868 "jackpotConfig" 17869 ], 17870 [ 17871 3, 17872 "game", 17873 "layoutId", 17874 "gameIndex" 17875 ], 17876 [ 17877 3, 17878 "game", 17879 "alt" 17880 ], 17881 [ 17882 3, 17883 "game", 17884 "alt", 17885 "isTouch", 17886 "mouseHovered" 17887 ], 17888 [ 17889 3, 17890 "icon", 17891 "gameId", 17892 "alt", 17893 "priority" 17894 ], 17895 [ 17896 3, 17897 "stickers", 17898 "layoutId" 17899 ], 17900 [3, "label"], 17901 [ 17902 3, 17903 "jackpotData", 17904 "config", 17905 "layoutId" 17906 ], 17907 [ 17908 3, 17909 "game", 17910 "liveGameInfo" 17911 ], 17912 [1, "casino-overlay-bg"], 17913 [ 17914 3, 17915 "launchGame", 17916 "icon", 17917 "layoutId", 17918 "iconType", 17919 "gameName", 17920 "gameId", 17921 "cta", 17922 "centerCta", 17923 "enableUkMouseOverStyle" 17924 ], 17925 [ 17926 3, 17927 "loaded", 17928 "game", 17929 "layoutId", 17930 "jackpotData", 17931 "jackpotConfig", 17932 "stickers" 17933 ], 17934 [ 17935 3, 17936 "loaded", 17937 "game", 17938 "layoutId", 17939 "jackpotData", 17940 "jackpotConfig" 17941 ], 17942 [ 17943 3, 17944 "loaded", 17945 "game", 17946 "layoutId", 17947 "gameIndex" 17948 ], 17949 [ 17950 3, 17951 "loaded", 17952 "game", 17953 "alt" 17954 ], 17955 [ 17956 3, 17957 "loaded", 17958 "game", 17959 "alt", 17960 "isTouch", 17961 "mouseHovered" 17962 ], 17963 [ 17964 3, 17965 "loaded", 17966 "icon", 17967 "gameId", 17968 "alt", 17969 "priority" 17970 ] 17971 ], 17972 template: function(e, n) { 17973 if (e & 1 && (l(0, "div", 0), S("mouseenter", function() { 17974 return n.mouseOver(n.game().gameId + n.containerId()); 17975 })("mouseleave", function() { 17976 return n.mouseLeave(); 17977 })("focus", function() { 17978 return n.mouseOver(n.game().gameId + n.containerId()); 17979 })("blur", function() { 17980 return n.mouseLeave(); 17981 }), f(1, ex, 1, 2, "div", 1), f(2, tx, 1, 8, "cw-game-quick-info", 2), b(3, "cw-game-tile-favourite-button", 3), l(4, "a", 4), S("click", function() { 17982 return n.onClick(n.LaunchedFrom.Tile); 17983 })("touchstart", function(i) { 17984 return n.gameMouseDown(i); 17985 })("touchend", function(i) { 17986 return n.gameMouseUp(i); 17987 }), f(5, nx, 1, 5, "cw-disk-type-game-tile", 5)(6, ix, 1, 4, "cw-game-tile-semicircle", 6)(7, ax, 1, 3, "cw-game-tile-landscape-v2", 7)(8, ox, 1, 2, "cw-animated-svg-tile", 8)(9, rx, 1, 4, "cw-video-preview", 9)(10, sx, 1, 4, "cw-image-loader", 10), f(11, cx, 1, 2, "cw-game-tile-stickers", 11), f(12, lx, 1, 1, "cw-promoted-label", 12), f(13, dx, 1, 3, "cw-jackpot-ribbon", 13), d(), f(14, gx, 1, 2, "cw-live-dealer-overlay", 14), d()), e & 2) { 17988 let i, r; 17989 k("--%NS%cs-promoted-tile-accent", n.promotedTileAccentOverride())("--%NS%cs-promoted-tile-label-bg", n.promotedTileLabelBgOverride())("--%NS%cs-promoted-tile-on-accent", n.promotedTileOnAccentOverride())("--%NS%cs-promoted-tile-border-width", n.promotedTileBorderWidthOverride()), L("casino-playbtn-hover-effect", n.playNowHoverEffect)("casino-flat-overlay-mode", n.enableFlatOverlay())("image-loaded", n.imageLoaded())("casino-game-cls--promoted", n.game().gameSource === n.GameSource.Promoted), a(), h(n.showFlatOverlay() ? 1 : -1), a(), h(n.quickInfoVisible() && n.quickInfoVisible() === n.game().gameId + n.containerId() && !n.rendersOwnOverlays() ? 2 : -1), a(), p("gameId", n.game().gameId)("gameName", (i = n.game()) == null ? null : i.name)("trackingContext", n.favouriteTrackingContext())("centered", n.tileMode() === n.TileMode.SemiCircle), a(), k("border-radius", n.promotedImageGame().icon?.gameTileBorderRadius), T("aria-label", n.tileAriaLabel()), a(), h((r = n.tileMode()) === n.TileMode.Disk ? 5 : r === n.TileMode.SemiCircle ? 6 : r === n.TileMode.LandscapeV2 ? 7 : r === n.TileMode.Svg ? 8 : r === n.TileMode.Video ? 9 : 10), a(6), h(n.filteredStickers().length && n.game().gameSource !== n.GameSource.Promoted && !n.isLiveGame() && !n.quickInfoVisible() && !n.rendersOwnOverlays() ? 11 : -1), a(), h(n.game().gameSource === n.GameSource.Promoted && n.game().promotedLabel && !n.quickInfoVisible() ? 12 : -1), a(), h(n.showJackpotRibbon() && n.jackpotConfig() && n.jackpotRibbonData()?.amount && !n.quickInfoVisible() && !n.rendersOwnOverlays() ? 13 : -1), a(), h(n.isLiveGame() && n.liveGameInfo() && n.feedLoaded() ? 14 : -1); 17990 } 17991 }, 17992 dependencies: [ 17993 Ht, 17994 lu, 17995 du, 17996 yu, 17997 hu, 17998 Ei, 17999 vu, 18000 fu, 18001 eo, 18002 Bm, 18003 su, 18004 bu 18005 ], 18006 styles: [".casino-game-cls[_ngcontent-%COMP%]{height:100%;position:relative;cursor:pointer;line-height:0;overflow:hidden}.casino-game-cls[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%]{background-color:#ececec;height:100%;width:100%;position:relative;overflow:hidden}.casino-game-cls[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%] img[_ngcontent-%COMP%], .casino-game-cls[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%] video[_ngcontent-%COMP%]{height:100%;width:100%;display:block;border-radius:var(--%NS%semantic-radius-semi-rounded-sm);background-color:gray}.casino-game-cls[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%] video[_ngcontent-%COMP%]{transform:scale(1)}.casino-game-cls[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%] cw-game-tile-semicircle[_ng
18006content-%COMP%]{display:block;height:100%;background:unset}.casino-game-cls[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%] cw-game-tile-landscape-v2[_ngcontent-%COMP%]{display:block;height:100%;background:unset}.casino-game-cls--promoted[_ngcontent-%COMP%]{--%NS%cs-promoted-tile-accent: var(--%NS%semantic-color-supporting-brand-primary-base);--%NS%cs-promoted-tile-on-accent: var(--%NS%semantic-color-on-supporting-brand-primary-base);--%NS%cs-promoted-tile-label-bg: var(--%NS%semantic-color-supporting-brand-primary-base);--%NS%cs-promoted-tile-border-width: .25rem;border:var(--%NS%cs-promoted-tile-border-width) solid var(--%NS%cs-promoted-tile-accent);border-radius:var(--%NS%semantic-radius-semi-rounded-sm);box-sizing:border-box;overflow:hidden!important}.game-tile[_nghost-%COMP%] .casino-game-cls--promoted[_ngcontent-%COMP%], .game-tile [_nghost-%COMP%] .casino-game-cls--promoted[_ngcontent-%COMP%]{aspect-ratio:auto!important;width:100%!important}.casino-game-cls.casino-playbtn-hover-effect[_ngcontent-%COMP%] cw-game-tile-landscape-v2[_ngcontent-%COMP%] .image-load-div[_ngcontent-%COMP%], .casino-game-cls.casino-new-styling-overlay[_ngcontent-%COMP%] cw-game-tile-landscape-v2[_ngcontent-%COMP%] .image-load-div[_ngcontent-%COMP%]{transform:none!important}.casino-game-cls[_ngcontent-%COMP%]:has(cw-game-tile-semicircle), .casino-game-cls[_ngcontent-%COMP%]:has(cw-game-tile-landscape-v2){overflow:visible!important}.casino-game-cls.casino-playbtn-hover-effect[_ngcontent-%COMP%]{overflow:hidden;position:relative}.casino-game-cls.casino-playbtn-hover-effect[_ngcontent-%COMP%] .casino-rcnt-gyml-quick-container[_ngcontent-%COMP%]{transform:scale(1);animation:_ngcontent-%COMP%_growre .3s ease-in-out;transition:transform .4s ease-in-out}.casino-game-cls.casino-playbtn-hover-effect[_ngcontent-%COMP%] .casino-qi-container-d[_ngcontent-%COMP%]{transform:scale(1);animation:_ngcontent-%COMP%_grow .4s ease-in-out;transition:transform .4s ease-in-out}.casino-game-cls.casino-playbtn-hover-effect[_ngcontent-%COMP%] .image-load-div[_ngcontent-%COMP%]{transform:scale(1)}.casino-game-cls.casino-playbtn-hover-effect[_ngcontent-%COMP%] .casino-overlay-bg[_ngcontent-%COMP%]{transform:scale(1);animation:_ngcontent-%COMP%_grow2 .4s ease-in-out;transition:transform .4s ease-in-out}.casino-new-styling-overlay[_ngcontent-%COMP%]{position:relative;width:100%;height:100%;top:0;bottom:0;background-color:#000c;opacity:1;border-radius:var(--%NS%semantic-radius-semi-rounded-sm)}.casino-new-styling-overlay[_ngcontent-%COMP%] .casino-overlay-bg[_ngcontent-%COMP%]{transform:scale(1.2)}.casino-new-styling-overlay[_ngcontent-%COMP%] .image-load-div[_ngcontent-%COMP%]{transform:scale(1.07)}.casino-game-cls.casino-new-styling-overlay[_ngcontent-%COMP%]{transition:transform .2s}.casino-game-cls.casino-flat-overlay-mode[_ngcontent-%COMP%] .casino-overlay-bg[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0009;z-index:1}.casino-game-cls.casino-flat-overlay-mode[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%] .image-load-div[_ngcontent-%COMP%]{transform:scale(1)}.casino-game-cls.casino-flat-overlay-mode[_ngcontent-%COMP%] .casino-qi-container-d[_ngcontent-%COMP%]{z-index:2}.casino-qi-gradient-d[_ngcontent-%COMP%]{background:linear-gradient(to bottom,#0000,#000c);position:absolute;top:0;left:0;width:100%;height:100%;border-radius:var(--%NS%semantic-radius-semi-rounded-sm);pointer-events:none;z-index:1}@keyframes _ngcontent-%COMP%_growre{0%{transform:translate(-50%,-50%) scale(0);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes _ngcontent-%COMP%_grow{0%{transform:translate(-50%,-50%) scale(0);opacity:0}to{transform:translate(0) scale(1);opacity:1}}@keyframes _ngcontent-%COMP%_grow2{0%{transform:translate(-50%,-50%) scale(0)}to{transform:translate(0) scale(1)}}cw-live-dealer-overlay[_ngcontent-%COMP%]{opacity:0;transition:opacity .15s ease-in}.casino-game-cls.image-loaded[_ngcontent-%COMP%] cw-live-dealer-overlay[_ngcontent-%COMP%]{opacity:1}.casino-game-cls[_ngcontent-%COMP%] cw-game-tile-favourite-button[_ngcontent-%COMP%]{opacity:0;pointer-events:none}.casino-game-cls[_ngcontent-%COMP%]:has(cw-game-quick-info) cw-game-tile-favourite-button[_ngcontent-%COMP%], .casino-game-cls[_ngcontent-%COMP%]:has(cw-game-tile-semicircle):hover cw-game-tile-favourite-button[_ngcontent-%COMP%], .casino-game-cls[_ngcontent-%COMP%]:has(cw-game-tile-landscape-v2):hover cw-game-tile-favourite-button[_ngcontent-%COMP%]{opacity:1;pointer-events:auto}.casino-game-cls[_ngcontent-%COMP%] .casino-game-fav-icon[_ngcontent-%COMP%]{position:absolute;top:var(--%NS%semantic-space-1, 4px);right:var(--%NS%semantic-space-1, 4px);z-index:2;transform-origin:top right}@media(hover:none),(pointer:coarse){.casino-game-cls[_ngcontent-%COMP%] cw-game-tile-favourite-button[_ngcontent-%COMP%]{opacity:1;pointer-events:auto}}"] 18007 }); 18008 } 18009 return t; 18010 })(), wu = ["scrollerContainer"], Pu = (t, o) => ({ 18011 color: t, 18012 "font-family": o 18013 }), Js = (t) => ({ "pointer-events": t }), Su = (t, o) => o.gameId, Mu = "v2", Ys = (function(t) { 18014 return t.SingleJackpot = "SingleJackpot", t.MustGoJackpot = "MustGoJackpot", t.MultiJackpot = "MultiJackpot", t; 18015 })(Ys || {}), Ks = (() => { 18016 class t { 18017 scrollerContainer; 18018 jackpotContainer = m.required(); 18019 games = m.required(); 18020 gridCols = m(); 18021 widgetType = m(); 18022 containerIndex = m.required();
18023 isBackgroundImageLayerPresent = m(!1); 18024 types = Ys; 18025 gamesGridWidth; 18026 rowHeight = 190; 18027 showLeftScrollButton; 18028 showRightScrollButton; 18029 gamesGridCols; 18030 isTouch; 18031 subCategoryTextColor; 18032 lobbyTileFontFamily; 18033 jackpotDivGridwidth; 18034 isMobileView; 18035 isMobileLandscapeView; 18036 isDesktopView; 18037 isTabView; 18038 isTabLandscapeView; 18039 themeArrowLeft; 18040 themeArrowRight; 18041 changeCarouselView; 18042 casinoManager = s(Ve); 18043 configProviderService = s(V); 18044 casinoStyles = s(Ya); 18045 deviceService = s(J); 18046 layoutService = s(nn); 18047 window = s(pe); 18048 document = s(Ge); 18049 platform = s(X); 18050 viewInitialized = !1; 18051 layout = Q(this.layoutService.layout$); 18052 layoutId = g(() => this.layout()?.id || ""); 18053 gameContainerType = g(() => `${this.jackpotContainer().type?.toLowerCase() ?? ""} | ${Mu}`); 18054 constructor() { 18055 Z(() => { 18056 this.jackpotContainer(), this.games(), this.widgetType(), this.updateViewportStates(), this.initializeConfiguration(), this.seedUnmeasuredGridLayout(), this.viewInitialized && this.updateLayout(), this.adjustSectorItemsContainerScroll(); 18057 }), Se(() => { 18058 this.viewInitialized = !0, this.adjustSectorItemsContainerScroll(), this.updateLayout(); 18059 }); 18060 } 18061 onResize() { 18062 this.updateViewportStates(), this.updateLayout(); 18063 } 18064 updateViewportStates() { 18065 let e = this.deviceService.windowWidth(), n = this.deviceService.bodyWidth(), i = this.window.innerHeight < this.window.innerWidth; 18066 this.isMobileView = this.deviceService.isMobileWidth(), this.isMobileLandscapeView = i && this.isMobileView, this.isDesktopView = e >= 768 || n >= 768, this.isTabView = this.isDesktopView && (e <= 1024 || n <= 1024), this.isTabLandscapeView = i && this.isTabView; 18067 } 18068 initializeConfiguration() { 18069 this.isTouch = this.casinoManager.isTouch(); 18070 let e = this.configProviderService.provideGlobalConfig(), n = this.configProviderService.provideFeaturesConfig(); 18071 this.themeArrowLeft = e.messages.ThemeArrowLeft, this.themeArrowRight = e.messages.ThemeArrowRight, this.subCategoryTextColor = this.casinoStyles.getsubCategoryTextColor(this.jackpotContainer()), this.lobbyTileFontFamily = this.casinoStyles.getLTileFontFamily(this.jackpotContainer()), this.changeCarouselView = n.changeCarouselView; 18072 } 18073 updateLayout() { 18074 this.platform.isBrowser && (this.jackpotWidgetRowHeight(), this.jackpotGridGamesWidthCols()); 18075 } 18076 onMoveGames(e, n) { 18077 let i = this.rowHeight * 2, r = this.scrollerContainer.nativeElement; 18078 e ? r.scrollLeft -= i : r.scrollLeft += i, this.showLeftScrollButton = r.scrollLeft > 0, this.showRightScrollButton = r.scrollLeft < r.scrollWidth - r.clientWidth; 18079 } 18080 adjustSectorItemsContainerScroll() { 18081 this.showLeftScrollButton = !1, this.showRightScrollButton = !1, this.scrollerContainer?.nativeElement && (this.scrollerContainer.nativeElement.scrollLeft = 0), this.shouldShowRightScrollButton() && (this.showLeftScrollButton = !1, this.showRightScrollButton = !0); 18082 } 18083 shouldShowRightScrollButton() { 18084 if (!this.scrollerContainer?.nativeElement || this.isTouch) return !1; 18085 let e = this.widgetType() === this.types.SingleJackpot && this.games()?.length > 4; 18086 return this.games()?.length > 6 || e; 18087 } 18088 seedUnmeasuredGridLayout() { 18089 let e = this.games()?.length ?? 0; 18090 if (!e) return; 18091 let n = !this.isMobileView && (this.widgetType() === this.types.MultiJackpot || this.widgetType() === this.types.MustGoJackpot); 18092 this.gamesGridCols = n ? Math.round(e / 2) : e, this.gamesGridWidth = this.gamesGridCols * this.rowHeight; 18093 } 18094 jackpotWidgetRowHeight() { 18095 let e = this.document.querySelector(".casino-lobby-container-main .jackpot-widget-view-port")?.clientWidth || 0; 18096 this.widgetType() === this.types.SingleJackpot ? this.calculateSingleJackpotRowHeight(e) : this.widgetType() && this.calculateMultiJackpotRowHeight(e); 18097 } 18098 calculateSingleJackpotRowHeight(e) { 18099 let n = this.document.querySelector(".casino-lobby-container-main .single-jackpot-right-container")?.clientWidth || 0, i = this.isMobileView ? e : Math.round(n), r = this.isMobileView && !this.isMobileLandscapeView ? Math.round(i / 2.5) : Math.round(i / 4), u = this.isTabView || this.isTabLandscapeView ? Math.round(r + 20) : Math.round(r - 3); 18100 this.rowHeight = this.isDesktopView && !this.isTouch && !this.isTabView && !this.isTabLandscapeView && !this.isMobileLandscapeView ? 190 : Math.round(u); 18101 let v = this.games()?.length ? this.games()?.length : 0; 18102 this.gamesGridWidth = this.rowHeight * v, this.gamesGridCols = this.games()?.length; 18103 } 18104 calculateMultiJackpotRowHeight(e) { 18105 let n = this.isMobileView ? Math.round(e) : Math.round(e / 2), i = this.isMobileView && !this.isMobileLandscapeView ? n - 3 : n - 35, r = this.isMobileView && !this.isMobileLandscapeView ? Math.round(i / 2.5) : Math.round(i / 3); 18106 this.rowHeight = Math.round(r); 18107 } 18108 jackpotGridGamesWidthCols() { 18109 if (this.widgetType() && (this.widgetType() === this.types.MultiJackpot || this.widgetType() === this.types.MustGoJackpot)) { 18110 let e = this.document.querySelector(".casino-lobby-container-main .jackpot-right-content"); 18111 this.jackpotDivGridwidth = e?.clientWidth || 0; 18112 let n = this.jackpotDivGridwidth / this.rowHeight, i = Math.round(n); 18113 if (this.isMobileView) { 18114 let r = this.games()?.length ? this.games()?.length : 0; 18115 this.gamesGridWidth = this.rowHeight * r, this.gamesGridCols = this.games()?.length; 18116 } else { 18117 let r = Math.round(this.games()?.length / 2); 18118 this.gamesGridCols = r > i ? r : i, this.gamesGridWidth = this.gamesGridCols * this.rowHeight; 18119 } 18120 } 18121 } 18122 static ɵfac = function(e) { 18123 return new (e || t)(); 18124 }; 18125 static ɵcmp = I({ 18126 type: t, 18127 selectors: [["cw-jackpot-widget-redesign-grid"]], 18128 viewQuery: function(e, n) { 18129 if (e & 1 && pn(wu, 5), e & 2) { 18130 let i; 18131 vn(i = fn()) && (n.scrollerContainer = i.first); 18132 } 18133 }, 18134 hostBindings: function(e, n) { 18135 e & 1 && S("resize", function() { 18136 return n.onResize(); 18137 }, ii); 18138 }, 18139 inputs: { 18140 jackpotContainer: [1, "jackpotContainer"], 18141 games: [1, "games"], 18142 gridCols: [1, "gridCols"], 18143 widgetType: [1, "widgetType"], 18144 containerIndex: [1, "containerIndex"],
18145 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"] 18146 }, 18147 decls: 9, 18148 vars: 11, 18149 consts: [ 18150 ["scrollerContainer", ""], 18151 [3, "ngClass"], 18152 [ 18153 1, 18154 "jackpot-widget-redesign-content", 18155 "scrollable-games" 18156 ], 18157 [ 18158 3, 18159 "cols", 18160 "rowHeight" 18161 ], 18162 [ 18163 3, 18164 "colspan", 18165 "rowspan" 18166 ], 18167 [ 18168 "role", 18169 "button", 18170 "tabindex", 18171 "0", 18172 1, 18173 "scroll-btn", 18174 "theme-left", 18175 "left" 18176 ], 18177 [ 18178 "role", 18179 "button", 18180 "tabindex", 18181 "0", 18182 1, 18183 "scroll-btn", 18184 "theme-right", 18185 "right" 18186 ], 18187 [ 18188 "role", 18189 "button", 18190 "tabindex", 18191 "0", 18192 1, 18193 "scroll-btn", 18194 "theme-left", 18195 "left", 18196 3, 18197 "click", 18198 "keydown.enter" 18199 ], 18200 [ 18201 "role", 18202 "button", 18203 "tabindex", 18204 "0", 18205 1, 18206 "scroll-btn", 18207 "theme-right", 18208 "right", 18209 3, 18210 "click", 18211 "keydown.enter" 18212 ], 18213 [ 18214 1, 18215 "seeallarrows", 18216 3, 18217 "ngStyle" 18218 ], 18219 [ 18220 "role", 18221 "button", 18222 "tabindex", 18223 "0", 18224 1, 18225 "arrows-left", 18226 3, 18227 "click", 18228 "keydown.enter", 18229 "ngClass", 18230 "ngStyle" 18231 ], 18232 [ 18233 "role", 18234 "button", 18235 "tabindex", 18236 "0", 18237 1, 18238 "arrows-right", 18239 3, 18240 "click", 18241 "keydown.enter", 18242 "ngClass", 18243 "ngStyle" 18244 ], 18245 [3, "id"], 18246 [ 18247 "cwGameImpression", 18248 "", 18249 3, 18250 "game", 18251 "layoutId", 18252 "containerId", 18253 "containerIndex", 18254 "gameIndex", 18255 "isBackgroundImageLayerPresent", 18256 "containerTitle", 18257 "priority", 18258 "containerType" 18259 ] 18260 ], 18261 template: function(e, n) { 18262 e & 1 && (l(0, "div", 1), wt(1, "lowercase"), f(2, ux, 3, 2, "div"), f(3, fx, 2, 1, "div"), l(4, "div", 2, 0)(6, "mat-grid-list", 3), D(7, vx, 3, 15, "mat-grid-tile", 4, Su), d()()()), e & 2 && (p("ngClass", "jackpot-right-content-" + Cn(1, 9, n.widgetType())), a(2), h(n.changeCarouselView ? -1 : 2), a(), h(n.changeCarouselView ? 3 : -1), a(), k("overflow-x", n.isTouch ? "scroll" : "hidden"), a(2), k("width", n.gamesGridWidth, "px"), p("cols", n.gamesGridCols)("rowHeight", n.rowHeight + "px"), a(), R(n.games())); 18263 }, 18264 dependencies: [ 18265 At, 18266 zn, 18267 Fn, 18268 la, 18269 da, 18270 Tn, 18271 ln, 18272 tC 18273 ], 18274 styles: ["[_nghost-%COMP%]{display:block}"], 18275 changeDetection: 1 18276 }); 18277 } 18278 return t; 18279 })(), Ou = ["jackpotSwiper"], xu = (t, o) => ({ 18280 "no-bg-transparent": t, 18281 "danskespil-arrow-styles": o 18282 }), no = (t) => ({ color: t }), _u = (t) => ({ "jackpot-anim": t }), ku = (t, o) => ({ 18283 color: t, 18284 background: o 18285 }), Qs = (t, o) => ({ 18286 color: t, 18287 "font-family": o 18288 }), Xs = () => ({ "pointer-events": "auto" }), Zs = (t) => ({ "hidden-cls": t }), Iu = (t) => ({ "epcot-btn": t }), Tu = (t) => ({ "multi-jackpot-seeall-mobile": t }), Nu = (() => { 18289 class t { 18290 jackpotSwiper; 18291 jackpotContainer = m.required(); 18292 isTouch = m.required(); 18293 lobbyType = m.required(); 18294 containerIndex = m.required(); 18295 isBackgroundImageLayerPresent = m(!1); 18296 isjackpotFeed = j(); 18297 seeAllClick = j(); 18298 classNameTop = "single-jackpot"; 18299 showJackpotWidget; 18300 swiperOptions = { 18301 modules: [Ho], 18302 slidesPerView: 1, 18303 slidesPerGroup: 1, 18304 allowTouchMove: !0 18305 }; 18306 games = []; 18307 cta; 18308 ctaUrl; 18309 moveSlideTo; 18310 enableJpGroupTickingForLobby; 18311 isPreButtonVisible; 18312 isNextButtonVisible; 18313 multiJackpotBgClr; 18314 themeArrowLeft; 18315 themeArrowRight; 18316 subCategoryTextColor; 18317 lobbyTileFontFamily; 18318 enableEpcotSubNavigation; 18319 multiJackpotAmountClr; 18320 multiJackpotPlayAnyGameText; 18321 multiJackpotAlignment; 18322 multiJackpotLeftArrowStyles; 18323 multiJackpotRightArrowStyles; 18324 multiBackgroundTransparency; 18325 jackpotLeftImg; 18326 jackpotRightImg; 18327 multiJackpotBottomImage;
18328 jackpotWidgetBackgroundImage; 18329 jackpotAmountText; 18330 backgroundImageStyles; 18331 imageType; 18332 multiJackpotPlayAnyGameTextColor; 18333 multiJackpotValueClr; 18334 multiJackpotAmountBtnBgClr; 18335 multiJackpotAmountBgClr; 18336 multiJackpotAmountAnnimation; 18337 widgets = []; 18338 widgetsData = []; 18339 glassEffectColor; 18340 changeCarouselView = !1; 18341 singleJackpotTextClr; 18342 seeAllText; 18343 ctaLabel = ""; 18344 jackpotsCache; 18345 jackpotWidgetData = []; 18346 indexCount; 18347 currentSlideIndex; 18348 destroyRef = s(q); 18349 jackpotDataService = s(on); 18350 jackpotTicker = s(Ja); 18351 navigation = s(qe); 18352 configProviderService = s(V); 18353 casinoManager = s(Ve); 18354 jpCommonService = s(Ya); 18355 gameBuilderService = s(ft); 18356 gameCatalogService = s(Oe); 18357 cdr = s(Ji); 18358 injector = s(gt); 18359 ngZone = s(bn); 18360 platform = s(X); 18361 wiredSwiper = null; 18362 syncedSlideCount = 0; 18363 constructor() { 18364 this.currentSlideIndex = 0, this.indexCount = 0, Z(() => { 18365 let e = this.jackpotTicker.amounts(); 18366 if (!this.widgets?.length) return; 18367 let n = !1, i = this.widgets.map((r) => { 18368 let u = e.get((r.jackpotName ?? "").toLowerCase())?.formatted; 18369 return u !== void 0 && r.jackpotValue !== u ? (n = !0, F(G({}, r), { jackpotValue: u })) : r; 18370 }); 18371 n && (this.widgets = i, this.cdr.markForCheck()); 18372 }); 18373 } 18374 ngOnInit() { 18375 let e = this.configProviderService.provideSubNavigationConfig(); 18376 e && (this.loadGlobalConfig(), this.loadJackpotConfig(), this.initializeCarouselState(), this.enableEpcotSubNavigation = e.enableEpcotSubNavigation, this.startJackpotFeed()); 18377 } 18378 loadGlobalConfig() { 18379 let e = this.configProviderService.provideGlobalConfig(); 18380 this.multiJackpotBgClr = e?.lobbyConfigurations?.multiJackpotBgClr || "", this.singleJackpotTextClr = e?.lobbyConfigurations?.singleJackpotTextClr || "", this.themeArrowLeft = e?.messages.ThemeArrowLeft, this.themeArrowRight = e?.messages.ThemeArrowRight, this.multiJackpotAmountClr = e?.lobbyConfigurations?.multiJackpotAmountClr || "", this.subCategoryTextColor = this.jpCommonService.getsubCategoryTextColor(this.jackpotContainer()), this.lobbyTileFontFamily = this.jpCommonService.getLTileFontFamily(this.jackpotContainer()); 18381 } 18382 loadJackpotConfig() { 18383 let e = this.configProviderService.provideJackpotConfig(), n = e?.jackpotWidgetConfigurations; 18384 this.enableJpGroupTickingForLobby = this.casinoManager.IsFeatureEnabledForLobbyType(this.lobbyType(), e?.enableJpGroupTickingForLobbyType), this.multiJackpotAlignment = n?.MultiJackpotAlignment, this.multiJackpotPlayAnyGameText = n?.MultiJackpotPlayAnyGameText, this.seeAllText = n?.SeeAll, this.jackpotLeftImg = e?.multiJackpotLeftArrowImage, this.jackpotRightImg = e?.multiJackpotRightArrowImage, this.multiJackpotBottomImage = e?.multiJackpotBottomImage, this.backgroundImageStyles = n?.MultiJackpotBackgroundgImageStyles, this.multiJackpotLeftArrowStyles = n?.MultiJackpotLeftArrowStyles, this.multiJackpotRightArrowStyles = n?.MultiJackpotRightArrowStyles, this.jackpotAmountText = n?.MultiJackpotAmountText, this.multiJackpotPlayAnyGameTextColor = n?.MultiJackpotPlayAnyGameTextColor, this.multiJackpotValueClr = n?.MultiJackpotValueClr, this.multiJackpotAmountBtnBgClr = n?.MultiJackpotAmountBtnBgClr, this.multiJackpotAmountBgClr = n?.MultiJackpotAmountBgClr, this.multiBackgroundTransparency = n?.MultiJackpotGlassEffect?.toLowerCase() === "true", this.glassEffectColor = this.multiBackgroundTransparency ? n?.GlassEffectColor : this.multiJackpotBgClr, this.multiJackpotAmountAnnimation = n?.MultiJackpotAmountAnnimation?.toLowerCase() === "true"; 18385 } 18386 initializeCarouselState() { 18387 this.isPreButtonVisible = !0, this.isNextButtonVisible = this.widgets.length <= 1; 18388 } 18389 wireSwiperEvents() { 18390 let e = this.jackpotSwiper?.swiper; 18391 this.platform.isServer || e && this.wiredSwiper === e || Se(() => { 18392 let n = this.jackpotSwiper?.swiper; 18393 !n || this.wiredSwiper === n || (this.wiredSwiper = n, n.on("slideChange", () => this.ngZone.run(() => this.onSlideChange())), this.syncSwiperSlides()); 18394 }, { injector: this.injector }); 18395 } 18396 syncSwiperSlides() { 18397 !this.jackpotSwiper?.swiper || this.syncedSlideCount === this.widgets.length || (this.syncedSlideCount = this.widgets.length, this.jackpotSwiper.forceUpdate()); 18398 } 18399 onSlideChange() { 18400 let e = this.jackpotSwiper?.swiper; 18401 e && (this.currentSlideIndex = e.realIndex, this.indexCount = this.currentSlideIndex, this.isPreButtonVisible = e.isBeginning, this.isNextButtonVisible = e.isEnd, this.updateWidgetAndSetActiveWidget(), this.cdr.markForCheck()); 18402 } 18403 slideClicked(e) { 18404 let n = this.jackpotSwiper?.swiper; 18405 n && (e ? n.slideNext() : n.slidePrev()); 18406 } 18407 gotoJackpots(e) { 18408 e && (this.seeAllClick.emit({ 18409 seeAllText: this.ctaLabel, 18410 url: e 18411 }), this.navigation.goTo(e, { 18412 replace: !1, 18413 forceReload: !0 18414 })); 18415 } 18416 startJackpotFeed() { 18417 this.showJackpotWidget = !1, this.jackpotDataService.jackpotFeedObservable.pipe(z(this.destroyRef)).subscribe((e) => { 18418 this.isjackpotFeed.emit(e), e && (this.refreshJackpotsNew(), this.wireSwiperEvents(), this.syncSwiperSlides(), this.cdr.markForCheck()); 18419 }); 18420 } 18421 refreshJackpotsNew() { 18422 this.initializeJackpotData(); 18423 let e = this.prepareJackpotWidgetIds(); 18424 this.shouldProcessJackpots(e) && this.processJackpotWidgets(e); 18425 } 18426 initializeJackpotData() { 18427 this.jackpotsCache = this.jackpotDataService.getJackpotData(); 18428 } 18429 shouldProcessJackpots(e) { 18430 return !!this.jackpotsCache && Object.keys(this.jackpotsCache).length > 0 && !!e && e.length > 1; 18431 } 18432 processJackpotWidgets(e) { 18433 let n = []; 18434 this.jackpotWidgetData.length = 0, this.widgets.length = 0; 18435 let i = this.filterJackpotData(e); 18436 this.buildJackpotWidgets(i, n), this.finalizeWidgets(n); 18437 } 18438 prepareJackpotWidgetIds() { 18439 let e = this.jackpotContainer()?.jackpotIds?.map((n) => n.toLowerCase()) || []; 18440 for (let n in e) Object.prototype.hasOwnProperty.call(e, n) && (e[n] = decodeURIComponent(e[n])); 18441 return e; 18442 } 18443 filterJackpotData(e) { 18444 return Object.keys(this.jackpotsCache).filter((n) => e.includes(n?.toLowerCase())).reduce((n, i) => Object.assign(n, { [i]: this.jackpotsCache[i] }), {}); 18445 } 18446 buildJackpotWidgets(e, n) { 18447 for (let i in e) if (Object.prototype.hasOwnProperty.call(e, i)) { 18448 let r = this.getJackpotWidgetItem(i, e); 18449 r && r.jackpotGroupId && r.ctaLink && r.gamesList && (n.push({ 18450 isActive: !1, 18451 jackpotValue: String(r.amount), 18452 jackpotDisplayName: r.content, 18453 jackpotName: r.jackpotGroupName || "", 18454 jackpotWidgetImage: r.jackpotImage || {},
18455 showBackgroundImage: !0, 18456 jackpotWidgetBackgroundImage: r.backgroundImage || {} 18457 }), this.jackpotWidgetData.push({ 18458 jackpotName: r.jackpotGroupName || "", 18459 jackpotDisplayName: r.content, 18460 jackpotCta: r.ctaLink, 18461 jackpotGames: r.gamesList 18462 })); 18463 } 18464 } 18465 finalizeWidgets(e) { 18466 if (this.jackpotWidgetData.length === 0) return; 18467 let n = this.jackpotWidgetData[this.currentSlideIndex]; 18468 if (this.updateWidget(n), this.widgetsStructurallyEqual(this.widgets, e)) { 18469 this.widgetsData = this.jackpotWidgetData, this.setupCarouselButtons(), this.showJackpotWidget = !0, this.setActiveMultiJackpotWidget(this.currentSlideIndex); 18470 return; 18471 } 18472 this.widgets = e, this.widgets[this.currentSlideIndex].isActive = !0, this.widgetsData = this.jackpotWidgetData, this.setupCarouselButtons(), this.showJackpotWidget = !0, this.setActiveMultiJackpotWidget(this.currentSlideIndex); 18473 } 18474 widgetsStructurallyEqual(e, n) { 18475 if (e.length !== n.length || e.length === 0) return !1; 18476 for (let i = 0; i < e.length; i++) if (e[i].jackpotName !== n[i].jackpotName || e[i].jackpotWidgetImage?.src !== n[i].jackpotWidgetImage?.src || e[i].jackpotWidgetBackgroundImage?.src !== n[i].jackpotWidgetBackgroundImage?.src) return !1; 18477 return !0; 18478 } 18479 setupCarouselButtons() { 18480 this.isPreButtonVisible = !1, this.isNextButtonVisible = !1, this.widgets.length > 1 && this.isjackpotFeed.emit({ isJackpotdataForParallax: !0 }), this.currentSlideIndex === 0 && (this.isPreButtonVisible = !0), this.currentSlideIndex === this.widgets?.length - 1 && (this.isNextButtonVisible = !0); 18481 } 18482 getJackpotWidgetItem(e, n) { 18483 for (let i of Object.keys(n)) { 18484 let r = n[i]; 18485 if (this.isDirectMatch(i, e)) return n[i]; 18486 let u = this.findSubJackpotMatch(r, e); 18487 if (u) return u; 18488 } 18489 return null; 18490 } 18491 isDirectMatch(e, n) { 18492 return e.toLowerCase() === n.toLowerCase(); 18493 } 18494 findSubJackpotMatch(e, n) { 18495 if (!e?.subJackpotDetails) return null; 18496 for (let i of e.subJackpotDetails) if (this.isSubJackpotMatch(i, n)) return this.prepareSubJackpotData(i, e); 18497 return null; 18498 } 18499 isSubJackpotMatch(e, n) { 18500 return e?.subJackpotName?.toLowerCase() === n?.toLowerCase(); 18501 } 18502 prepareSubJackpotData(e, n) { 18503 return F(G({}, e), { 18504 gamesList: n.gamesList, 18505 jackpotGroupName: e.subJackpotName, 18506 amount: e.subJackpotAmount, 18507 value: e.subJackpotValue 18508 }); 18509 } 18510 updateWidget(e) { 18511 if (!e?.jackpotGames?.length) { 18512 this.games = []; 18513 return; 18514 } 18515 this.setGames(e.jackpotGames, void 0), this.ctaUrl = e.jackpotCta; 18516 let n = e?.jackpotCta?.text; 18517 this.ctaLabel = n || this.seeAllText, this.cta = `${this.ctaLabel} (${this.games?.length})`; 18518 } 18519 setGames(e, n) { 18520 if (this.games = [], e && e.length > 0) { 18521 let i = this.buildGameNameMap(); 18522 for (let r = 0; r < e.length; r++) { 18523 let u = e[r], v = i.get(u), P = mi(u, F(G({}, v && { name: v }), { provider: this.gameCatalogService.getGameProvider(u) })); 18524 this.games.push(this.gameBuilderService.buildGame(P)); 18525 } 18526 } 18527 n?.length && (this.games = this.jpCommonService.filterGames(n, this.games)); 18528 } 18529 buildGameNameMap() { 18530 let e = /* @__PURE__ */ new Map(), n = this.jackpotDataService.getJackpotData(); 18531 if (n) for (let i of Object.values(n)) for (let r of i.gamesAvailable ?? []) r.name && e.set(r.game, r.name); 18532 return e; 18533 } 18534 setActiveMultiJackpotWidget(e) { 18535 this.widgets && (this.widgets.forEach((n, i) => { 18536 this.widgets[i] = F(G({}, n), { isActive: !1 }); 18537 }), this.widgets[e] && (this.widgets[e] = F(G({}, this.widgets[e]), { isActive: !0 }))); 18538 } 18539 updateWidgetAndSetActiveWidget() { 18540 this.updateWidget(this.jackpotWidgetData[this.indexCount]), this.setActiveMultiJackpotWidget(this.indexCount); 18541 } 18542 static ɵfac = function(e) { 18543 return new (e || t)(); 18544 }; 18545 static ɵcmp = I({ 18546 type: t, 18547 selectors: [["cw-multi-jackpot-widget-rebrand"]], 18548 viewQuery: function(e, n) { 18549 if (e & 1 && pn(Ou, 5), e & 2) { 18550 let i; 18551 vn(i = fn()) && (n.jackpotSwiper = i.first); 18552 } 18553 }, 18554 inputs: { 18555 jackpotContainer: [1, "jackpotContainer"], 18556 isTouch: [1, "isTouch"], 18557 lobbyType: [1, "lobbyType"], 18558 containerIndex: [1, "containerIndex"],
18559 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"] 18560 }, 18561 outputs: { 18562 isjackpotFeed: "isjackpotFeed", 18563 seeAllClick: "seeAllClick" 18564 }, 18565 decls: 1, 18566 vars: 1, 18567 consts: [ 18568 ["jackpotSwiper", ""], 18569 [ 18570 3, 18571 "class", 18572 "ngClass", 18573 "background" 18574 ], 18575 [3, "ngClass"], 18576 [1, "casino-multi-jackpot"], 18577 [ 18578 3, 18579 "swiperOptions", 18580 "showPagination" 18581 ], 18582 [1, "swiper-slide"], 18583 [ 18584 1, 18585 "seeallarrows", 18586 "button-left-multi-changeview-mobile", 18587 3, 18588 "ngStyle" 18589 ], 18590 [ 18591 1, 18592 "seeallarrows", 18593 "button-right-multi-changeview-mobile", 18594 3, 18595 "ngStyle" 18596 ], 18597 [ 18598 "aria-hidden", 18599 "true", 18600 1, 18601 "theme-left", 18602 "multi-rebrand-left", 18603 3, 18604 "style", 18605 "background-image", 18606 "ngClass" 18607 ], 18608 [ 18609 "aria-hidden", 18610 "true", 18611 1, 18612 "theme-right", 18613 "multi-rebrand-right", 18614 3, 18615 "style", 18616 "background-image", 18617 "ngClass" 18618 ], 18619 [1, "background-for-multijack"], 18620 [1, "casino-multijackpot-right-sec"], 18621 [ 18622 1, 18623 "jackpot-widget-component", 18624 3, 18625 "ngClass" 18626 ], 18627 [ 18628 1, 18629 "jackpotIcon", 18630 3, 18631 "src" 18632 ], 18633 [ 18634 1, 18635 "jackpotValue", 18636 3, 18637 "ngClass", 18638 "ngStyle" 18639 ], 18640 [ 18641 1, 18642 "jackpotValueText", 18643 3, 18644 "innerHTML", 18645 "ngStyle" 18646 ], 18647 [1, "remove-skew"], 18648 [ 18649 "role", 18650 "button", 18651 "tabindex", 18652 "0", 18653 1, 18654 "arrows-left", 18655 3, 18656 "click", 18657 "keydown.enter", 18658 "ngClass", 18659 "ngStyle" 18660 ], 18661 [ 18662 "role", 18663 "button", 18664 "tabindex", 18665 "0", 18666 1, 18667 "arrows-right", 18668 3, 18669 "click", 18670 "keydown.enter", 18671 "ngClass", 18672 "ngStyle" 18673 ], 18674 [ 18675 "aria-hidden", 18676 "true", 18677 1, 18678 "theme-left", 18679 "multi-rebrand-left", 18680 3, 18681 "click", 18682 "ngClass" 18683 ], 18684 [ 18685 "aria-hidden", 18686 "true", 18687 1, 18688 "theme-right", 18689 "multi-rebrand-right", 18690 3, 18691 "click", 18692 "ngClass" 18693 ], 18694 [ 18695 1, 18696 "casino-jackpot-games-heading", 18697 "jackpot-right-content", 18698 "casino-uk-header" 18699 ], 18700 [ 18701 1, 18702 "casino-jackpot-games-text", 18703 3, 18704 "ngStyle", 18705 "innerHTML" 18706 ], 18707 [ 18708 1, 18709 "casino-jackpot-see-all", 18710 3, 18711 "ngClass" 18712 ], 18713 [ 18714 1, 18715 "multi-jackpot-seeall", 18716 3, 18717 "ngClass" 18718 ], 18719 [1, "casino-jackpot-games"], 18720 [ 18721 1, 18722 "casino-multijackpot-games", 18723 "casino-lobby-width-gametile" 18724 ], 18725 [ 18726 1, 18727 "casino-carousel-wrapper", 18728 "scrollable-games" 18729 ], 18730 [ 18731 3, 18732 "games", 18733 "gridCols", 18734 "jackpotContainer", 18735 "widgetType", 18736 "containerIndex", 18737 "isBackgroundImageLayerPresent" 18738 ], 18739 [ 18740 3, 18741 "kind", 18742 "size", 18743 "casinoDsClass", 18744 "cta_text" 18745 ], 18746 [ 18747 3, 18748 "click", 18749 "kind", 18750 "size", 18751 "casinoDsClass", 18752 "cta_text" 18753 ], 18754 [ 18755 "role", 18756 "button", 18757 "tabindex", 18758 "0", 18759 1, 18760 "casino-seeall-text", 18761 3, 18762 "ngStyle" 18763 ], 18764 [ 18765 "role", 18766 "button", 18767 "tabindex", 18768 "0", 18769 1, 18770 "casino-seeall-text", 18771 3, 18772 "click", 18773 "keydown.enter", 18774 "ngStyle" 18775 ] 18776 ], 18777 template: function(e, n) { 18778 e & 1 && f(0, Tx, 12, 20, "div", 1), e & 2 && h(n.showJackpotWidget ? 0 : -1); 18779 }, 18780 dependencies: [ 18781 At, 18782 zn, 18783 Ks, 18784 Ft, 18785 za 18786 ], 18787 encapsulation: 2 18788 }); 18789 } 18790 return t; 18791 })(), Ai = (function(t) { 18792 return t.SingleJackpot = "SingleJackpot", t; 18793 })(Ai || {}), io = (function(t) { 18794 return t.Kroner = "Kr.", t; 18795 })(io || {}), Ri = (function(t) { 18796 return t.Comma = ",", t.Dot = ".", t; 18797 })(Ri || {}), ec = (function(t) { 18798 return t.True = "true", t; 18799 })(ec || {}), Lu = (() => { 18800 class t { 18801 amount = m(); 18802 currency = m(); 18803 releaseamount = m(); 18804 isMega = m(); 18805 widgetType = m(); 18806 jackpotName = m(); 18807 lobbyType = m(); 18808 shouldShowMultiJackpot = g(() => this.widgetType() !== Ai.SingleJackpot && this.amount() !== void 0); 18809 shouldShowSingleJackpot = g(() => this.widgetType() === Ai.SingleJackpot && this.amount() !== void 0 && this.isMega() !== ec.True); 18810 isKronerCurrency = g(() => this.currency() === io.Kroner); 18811 WidgetType = Ai; 18812 Currency = io; 18813 Separator = Ri; 18814 majorItems = O([]); 18815 singlejackpotvalueDigitTxtClr; 18816 singlejackpotvalueDigitBgClr; 18817 jackpotValue; 18818 enableJpGroupTickingForLobby; 18819 tickerValue; 18820 controlIntervalId; 18821 tickerValueLength; 18822 isMobile; 18823 setFlipId; 18824 jackpotTicker = s(Ja); 18825 configProviderService = s(V); 18826 casinoManager = s(Ve); 18827 deviceService = s(J); 18828 constructor() { 18829 this.isMobile = this.deviceService.isMobileWidth(), Z(() => { 18830 this.initializeJackpotConfig(); 18831 }), Z(() => { 18832 let e = this.jackpotTicker.numericAmount(this.jackpotName()), n = this.amount(), i = e ?? n; 18833 i !== void 0 && Db(() => { 18834 this.jackpotValue = i, this.updateTicker(); 18835 }); 18836 }); 18837 } 18838 isComma(e) { 18839 return e === Ri.Comma; 18840 } 18841 isDot(e) { 18842 return e === Ri.Dot; 18843 } 18844 ngOnInit() { 18845 this.initializeJackpotConfig(), this.processAmount(), this.initializeColors(); 18846 } 18847 initializeJackpotConfig() { 18848 let e = this.configProviderService.provideJackpotConfig(), n = this.lobbyType(); 18849 n && (this.enableJpGroupTickingForLobby = this.casinoManager.IsFeatureEnabledForLobbyType(n, e.enableJpGroupTickingForLobbyType)); 18850 } 18851 clearIntervals() { 18852 this.controlIntervalId && clearInterval(this.controlIntervalId), this.setFlipId && clearInterval(this.setFlipId); 18853 } 18854 processAmount() { 18855 let e = this.amount(); 18856 e !== void 0 && (this.tickerValue = parseFloat(parseFloat(e?.toString()?.replace(/,/g, "")).toFixed(2))); 18857 } 18858 initializeColors() { 18859 let { jackpotWidgetConfigurations: e } = this.configProviderService.provideJackpotConfig(); 18860 this.singlejackpotvalueDigitTxtClr = e?.SinglejackpotvalueDigitTxtClr, this.singlejackpotvalueDigitBgClr = e?.SinglejackpotvalueDigitBgClr; 18861 } 18862 updateTicker() { 18863 let e = this.formatNumber(Number(this.jackpotValue)); 18864 this.populateMajorItems(e); 18865 } 18866 populateMajorItems(e) { 18867 if (!e || e.toLowerCase() === "nan") { 18868 this.tickerValueLength = this.majorItems().length; 18869 return; 18870 } 18871 let n = this.majorItems(); 18872 if (n.length === e.length) { 18873 let r = !1; 18874 for (let u = 0; u < e.length; u++) if (n[u].value !== e[u]) { 18875 r = !0; 18876 break; 18877 } 18878 if (!r) return; 18879 this.majorItems.update((u) => u.map((v, P) => v.value === e[P] ? v : F(G({}, v), { value: e[P] }))); 18880 return; 18881 } 18882 let i = new Array(e.length); 18883 for (let r = 0; r < e.length; r++) i[r] = { 18884 isFlipVisible: !1, 18885 value: e[r] 18886 }; 18887 this.majorItems.set(i); 18888 } 18889 formatNumber(e) {
18890 return e.toLocaleString("en-US"); 18891 } 18892 ngOnDestroy() { 18893 this.controlIntervalId && clearInterval(this.controlIntervalId); 18894 } 18895 static ɵfac = function(e) { 18896 return new (e || t)(); 18897 }; 18898 static ɵcmp = I({ 18899 type: t, 18900 selectors: [["cw-flipclock-redesign"]], 18901 inputs: { 18902 amount: [1, "amount"], 18903 currency: [1, "currency"], 18904 releaseamount: [1, "releaseamount"], 18905 isMega: [1, "isMega"], 18906 widgetType: [1, "widgetType"], 18907 jackpotName: [1, "jackpotName"], 18908 lobbyType: [1, "lobbyType"] 18909 }, 18910 decls: 2, 18911 vars: 2, 18912 consts: [ 18913 [1, "jackpot"], 18914 [1, "tickerpadding"], 18915 [1, "jackpot-digit"], 18916 [ 18917 1, 18918 "jackpot-digit", 18919 3, 18920 "comma", 18921 "dot" 18922 ], 18923 [ 18924 1, 18925 "jackpot-digit", 18926 "kr-currency" 18927 ], 18928 [1, "seg"], 18929 [1, "flip-wrapper"], 18930 [ 18931 1, 18932 "seg", 18933 3, 18934 "Comma", 18935 "dot" 18936 ], 18937 [1, "curr"], 18938 [ 18939 1, 18940 "flip-comma", 18941 3, 18942 "color" 18943 ], 18944 [1, "flip-comma"], 18945 [1, "flip"] 18946 ], 18947 template: function(e, n) { 18948 e & 1 && (f(0, Ex, 5, 2, "div", 0), f(1, Bx, 5, 1, "div", 1)), e & 2 && (h(n.shouldShowMultiJackpot() ? 0 : -1), a(), h(n.shouldShowSingleJackpot() ? 1 : -1)); 18949 }, 18950 encapsulation: 2 18951 }); 18952 } 18953 return t; 18954 })(), ao = (t) => ({ color: t }), Gu = (t) => ({ jackpotnamehidden: t }), Eu = (() => { 18955 class t { 18956 jackpotContainer = m.required(); 18957 isTouch = m.required(); 18958 lobbyType = m.required(); 18959 changeCarouselView = m(!0); 18960 containerIndex = m.required(); 18961 isBackgroundImageLayerPresent = m(!1); 18962 isjackpotFeed = j(); 18963 seeAllClick = j(); 18964 JackpotAlignment = bs; 18965 games = []; 18966 jackpotType = "single"; 18967 showJackpotWidget = !1; 18968 cta; 18969 jackpotName; 18970 enableJpGroupTickingForLobby; 18971 jackpotWidgetBackgroundImage; 18972 jackpotWidgetImage; 18973 singleJackpotBgClr; 18974 currency; 18975 singleJackpotPlayAnygameText; 18976 singleJackpotAlignment; 18977 singleJackpotGlassEffect; 18978 showJackpotName; 18979 ctaUrl; 18980 singleJackpotReleaseAmount; 18981 singleJackpoTitleTextColor; 18982 singleJackpotPlayAnyGameTextColor; 18983 singleJackpotTextClr; 18984 jackpotsCache; 18985 totalJpGroupList; 18986 subCategoryTextColor; 18987 jackpotValue; 18988 jackpotWidgetItem; 18989 seeAllText; 18990 ctaLabel = ""; 18991 jackpotGames = []; 18992 widgets = []; 18993 glassEffectColor; 18994 jackpotDisplayName; 18995 jackpotDataService = s(on); 18996 navigation = s(qe); 18997 configProviderService = s(V); 18998 casinoManager = s(Ve); 18999 destroyRef = s(q); 19000 jpCommonService = s(Ya); 19001 gameBuilderService = s(ft); 19002 gameCatalogService = s(Oe); 19003 cdr = s(Ji); 19004 ngOnChanges() { 19005 this.initializeImageSources(); 19006 } 19007 ngOnInit() { 19008 this.initializeConfiguration(), this.initializeJackpotSettings(), this.initializeDisplaySettings(), this.startJackpotFeed(); 19009 } 19010 gotoJackpots(e) { 19011 e && (this.seeAllClick.emit({ 19012 seeAllText: this.ctaLabel, 19013 url: e 19014 }), this.navigation.goTo(e, { 19015 replace: !1, 19016 forceReload: !0 19017 })); 19018 } 19019 buildCta(e) { 19020 return this.ctaLabel = e ?? "", `${e} (${this.games?.length})`; 19021 } 19022 initializeImageSources() { 19023 this.jackpotWidgetBackgroundImage && !this.jackpotWidgetBackgroundImage.src && (this.jackpotWidgetBackgroundImage.src = ""), this.jackpotWidgetImage && !this.jackpotWidgetImage.src && (this.jackpotWidgetImage.src = ""); 19024 } 19025 initializeConfiguration() { 19026 let e = this.configProviderService.provideJackpotConfig(), n = this.configProviderService.provideGlobalConfig(); 19027 this.singleJackpotBgClr = n?.lobbyConfigurations?.singleJackpotBgClr || "", this.singleJackpotTextClr = n?.lobbyConfigurations?.singleJackpotTextClr || "", this.subCategoryTextColor = this.jpCommonService.getsubCategoryTextColor(this.jackpotContainer()), this.enableJpGroupTickingForLobby = this.casinoManager.IsFeatureEnabledForLobbyType(this.lobbyType(), e?.enableJpGroupTickingForLobbyType); 19028 } 19029 initializeJackpotSettings() { 19030 let e = this.configProviderService.provideJackpotConfig(); 19031 this.singleJackpotPlayAnygameText = e?.jackpotWidgetConfigurations?.SingleJackpotPlayAnyGameText, this.singleJackpotAlignment = e?.jackpotWidgetConfigurations?.SingleJackpotAlignment || "", this.singleJackpoTitleTextColor = e?.jackpotWidgetConfigurations?.SingleJackpoTitleTextColor, this.singleJackpotPlayAnyGameTextColor = e?.jackpotWidgetConfigurations?.SingleJackpotPlayAnyGameTextColor, this.singleJackpotReleaseAmount = Number(e?.jackpotWidgetConfigurations?.SingleJackpotReleaseAmount) || 0, this.seeAllText = e?.jackpotWidgetConfigurations?.SeeAll, this.setGlassEffect(e), this.setJackpotNameVisibility(e); 19032 } 19033 initializeDisplaySettings() { 19034 this.cta = this.buildCta(this.seeAllText); 19035 } 19036 setGlassEffect(e) { 19037 e?.jackpotWidgetConfigurations?.SingleJackpotGlassEffect?.toLowerCase() === "true" && (this.singleJackpotGlassEffect = !0), this.glassEffectColor = this.singleJackpotGlassEffect ? e?.jackpotWidgetConfigurations?.GlassEffectColor || "" : this.singleJackpotBgClr || ""; 19038 } 19039 setJackpotNameVisibility(e) { 19040 e?.jackpotWidgetConfigurations?.ShowJackpotName?.toLowerCase() === "true" && (this.showJackpotName = !0); 19041 } 19042 startJackpotFeed() { 19043 this.showJackpotWidget = !1, this.jackpotDataService.jackpotFeedObservable.pipe(z(this.destroyRef)).subscribe((e) => { 19044 this.isjackpotFeed.emit(e), e && this.refreshJackpotsNew(), this.cdr.markForCheck(); 19045 }); 19046 } 19047 refreshJackpotsNew() { 19048 this.initializeJackpotData(); 19049 let e = this.getDecodedJackpotWidget(); 19050 this.shouldProcessJackpot(e) && this.processJackpotWidget(e); 19051 } 19052 initializeJackpotData() { 19053 this.jackpotsCache = this.jackpotDataService.getJackpotData(); 19054 } 19055 getDecodedJackpotWidget() { 19056 return decodeURIComponent(this.jackpotContainer()?.jackpotIds[0] || ""); 19057 } 19058 shouldProcessJackpot(e) {
19059 return !!this.jackpotsCache && !!e && e !== "null" && !!this.jackpotDataService && Object.keys(this.jackpotDataService).length > 0; 19060 } 19061 processJackpotWidget(e) { 19062 this.jackpotWidgetItem = this.getJackpotWidgetItem(e, this.jackpotsCache), this.updateJackpotData(), this.setupJackpotDisplay(); 19063 } 19064 updateJackpotData() { 19065 this.jackpotDisplayName = this.jackpotWidgetItem?.jackpotGroupName || this.jackpotWidgetItem?.subJackpotName || "", this.jackpotName = this.jackpotWidgetItem?.jackpotGroupName || this.jackpotWidgetItem?.subJackpotName || "", this.jackpotGames = this.jackpotWidgetItem?.gamesList || [], this.jackpotValue = parseFloat(this.jackpotWidgetItem?.value || this.jackpotWidgetItem?.subJackpotValue || "0") || 0, this.setJackpotImages(), this.processGames(); 19066 } 19067 setJackpotImages() { 19068 let e = this.jackpotWidgetItem.backgroundImage || {}, n = this.jackpotWidgetItem.jackpotImage || {}; 19069 this.jackpotWidgetBackgroundImage?.src !== e.src && (this.jackpotWidgetBackgroundImage = e), this.jackpotWidgetImage?.src !== n.src && (this.jackpotWidgetImage = n); 19070 } 19071 processGames() { 19072 if (!this.jackpotGames?.length) { 19073 this.games = [], this.showJackpotWidget = !1; 19074 return; 19075 } 19076 let e; 19077 this.totalJpGroupList && Object.keys(this.totalJpGroupList).length > 0 && (e = this.jpCommonService.filterJpGroup(Object.values(this.totalJpGroupList), this.jackpotWidgetItem.jackpotGroupName || "")), this.jackpotGames?.length > 0 && this.setGames(this.jackpotGames, e), this.showJackpotWidget = this.games.length > 0, this.cta = this.buildCta(this.seeAllText); 19078 } 19079 setupJackpotDisplay() { 19080 this.showJackpotWidget = this.games.length > 0, this.cta = this.buildCta(this.jackpotWidgetItem?.ctaLink?.text ?? this.seeAllText); 19081 } 19082 setGames(e, n) { 19083 if (this.games = [], e && e.length > 0) { 19084 let i = this.buildGameNameMap(); 19085 for (let r = 0; r < e.length; r++) { 19086 let u = e[r], v = i.get(u), P = mi(u, F(G({}, v && { name: v }), { provider: this.gameCatalogService.getGameProvider(u) })); 19087 this.games.push(this.gameBuilderService.buildGame(P)); 19088 } 19089 this.games && this.games.length > 0 && this.isjackpotFeed.emit({ isJackpotdataForParallax: !0 }), n && n.length > 0 && (this.games = this.jpCommonService.filterGames(n, this.games)); 19090 } 19091 } 19092 buildGameNameMap() { 19093 let e = /* @__PURE__ */ new Map(), n = this.jackpotDataService.getJackpotData(); 19094 if (n) for (let i of Object.values(n)) for (let r of i.gamesAvailable ?? []) r.name && e.set(r.game, r.name); 19095 return e; 19096 } 19097 getJackpotWidgetItem(e, n) { 19098 for (let i of Object.keys(n)) { 19099 let r = n[i]; 19100 if (this.extractCurrency(r), this.isDirectMatch(i, e)) return n[i]; 19101 let u = this.findSubJackpotMatch(r, e); 19102 if (u) return u; 19103 } 19104 return {}; 19105 } 19106 extractCurrency(e) { 19107 let n = e.amount?.toString().match(/[^\d.,\s]/g); 19108 n && n.length > 0 && (this.currency = n.join("").replace(/[,.]/g, "")); 19109 } 19110 isDirectMatch(e, n) { 19111 return e.toLowerCase() === n.toLowerCase(); 19112 } 19113 findSubJackpotMatch(e, n) { 19114 if (!e?.subJackpotDetails) return null; 19115 for (let i of e.subJackpotDetails) if (this.isSubJackpotMatch(i, n)) return this.prepareSubJackpotData(i, e); 19116 return null; 19117 } 19118 isSubJackpotMatch(e, n) { 19119 return e?.subJackpotName?.toLowerCase() === n?.toLowerCase(); 19120 } 19121 prepareSubJackpotData(e, n) { 19122 return F(G({}, e), { 19123 gamesList: n.gamesList, 19124 jackpotGroupName: e.subJackpotName, 19125 amount: e.subJackpotAmount, 19126 value: e.subJackpotValue 19127 }); 19128 } 19129 static ɵfac = function(e) { 19130 return new (e || t)(); 19131 }; 19132 static ɵcmp = I({ 19133 type: t, 19134 selectors: [["cw-single-jackpot-redesign-widget"]], 19135 inputs: { 19136 jackpotContainer: [1, "jackpotContainer"], 19137 isTouch: [1, "isTouch"], 19138 lobbyType: [1, "lobbyType"], 19139 changeCarouselView: [1, "changeCarouselView"], 19140 containerIndex: [1, "containerIndex"], 19141 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"] 19142 }, 19143 outputs: { 19144 isjackpotFeed: "isjackpotFeed", 19145 seeAllClick: "seeAllClick" 19146 }, 19147 features: [_o], 19148 decls: 1, 19149 vars: 1, 19150 consts: [ 19151 [ 19152 1, 19153 "small-icon", 19154 "single-jackpot-redesign-widget", 19155 "jackpot-widget-view-port", 19156 3, 19157 "background-image", 19158 "background", 19159 "single-jackpot-glasseffect", 19160 "jackpot-alignment-left", 19161 "jackpot-alignment-right", 19162 "danskespil-arrow-styles-singleJackpot" 19163 ], 19164 [ 19165 1, 19166 "small-icon", 19167 "single-jackpot-redesign-widget", 19168 "jackpot-widget-view-port" 19169 ], 19170 [ 19171 1, 19172 "single-jackpot-left-container", 19173 "jackpot-widget-left-width", 19174 3, 19175 "background-image" 19176 ], 19177 [ 19178 1, 19179 "single-jackpot-right-container", 19180 "jackpot-right-content" 19181 ], 19182 [1, "sjpk-widget-header"], 19183 [ 19184 1, 19185 "sjpkText", 19186 3, 19187 "ngStyle", 19188 "innerHTML" 19189 ], 19190 [1, "see-all-button"], 19191 [ 19192 1, 19193 "singlejackpot-games-container", 19194 "scrollable-games" 19195 ], 19196 [ 19197 3, 19198 "games", 19199 "jackpotContainer", 19200 "widgetType", 19201 "containerIndex",
19202 "isBackgroundImageLayerPresent" 19203 ], 19204 [ 19205 1, 19206 "single-jackpot-left-container", 19207 "jackpot-widget-left-width" 19208 ], 19209 [ 19210 1, 19211 "jackpotIcon", 19212 3, 19213 "src" 19214 ], 19215 [ 19216 1, 19217 "single-jpk-ticker", 19218 3, 19219 "ngClass" 19220 ], 19221 [ 19222 1, 19223 "jackpotText", 19224 "title-uk", 19225 3, 19226 "ngStyle" 19227 ], 19228 [ 19229 3, 19230 "isMega", 19231 "currency", 19232 "amount", 19233 "jackpotName", 19234 "widgetType", 19235 "releaseamount", 19236 "lobbyType" 19237 ], 19238 [ 19239 3, 19240 "click", 19241 "kind", 19242 "size", 19243 "cta_text" 19244 ], 19245 [ 19246 "role", 19247 "button", 19248 "tabindex", 19249 "0", 19250 1, 19251 "casino-seeall-text", 19252 3, 19253 "click", 19254 "keydown.enter", 19255 "ngStyle", 19256 "innerHTML" 19257 ] 19258 ], 19259 template: function(e, n) { 19260 e & 1 && f(0, Ux, 9, 22, "div", 0), e & 2 && h(n.showJackpotWidget ? 0 : -1); 19261 }, 19262 dependencies: [ 19263 zn, 19264 At, 19265 Lu, 19266 Ks, 19267 za 19268 ], 19269 encapsulation: 2 19270 }); 19271 } 19272 return t; 19273 })(), Au = (() => { 19274 class t { 19275 static ɵfac = function(e) { 19276 return new (e || t)(); 19277 }; 19278 static ɵcmp = I({ 19279 type: t, 19280 selectors: [["cw-jackpot-skeleton"]], 19281 decls: 1, 19282 vars: 0, 19283 consts: [[1, "sk"]], 19284 template: function(e, n) { 19285 e & 1 && Pe(0, "div", 0); 19286 }, 19287 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{width:100%;flex:1 1 auto;min-height:0;border-radius:var(--%NS%semantic-radius-semi-rounded-lg);background:var(--%NS%semantic-color-surface-container-high-base)}"] 19288 }); 19289 } 19290 return t; 19291 })(), Ru = (() => { 19292 class t { 19293 casinoStyles = s(jt); 19294 navigationService = s(he); 19295 vanillaTrackingAdapter = s(we); 19296 globalMessages = s(Mn); 19297 containerMetadata = m.required(); 19298 isTouch = m.required(); 19299 changeCarouselView = m(!1); 19300 lobbyType = m.required(); 19301 containerIndex = m.required(); 19302 shouldShowJackpotWidget = g(() => this.containerInfo()?.type === Ce.Jackpot); 19303 hasJackpotWidgetData = g(() => this.containerInfo()?.jackpotIds); 19304 isSingleJackpot = g(() => this.containerInfo()?.jackpotIds?.length === 1); 19305 isMultiJackpot = g(() => (this.containerInfo()?.jackpotIds?.length ?? 0) > 1); 19306 containerService = s(ie); 19307 containerInfo = Q(this.containerService.container$.pipe(We((e) => e != null))); 19308 placeholderViewType = g(() => this.containerInfo()?.viewType ?? U.SingleRow); 19309 isLoading = g(() => !this.containerInfo() && !this.containerService.hasError()); 19310 headingTextColor = g(() => { 19311 let e = this.containerInfo(); 19312 return e ? this.casinoStyles.getContainerHeadingColor(e) : void 0; 19313 }); 19314 showMoreInfo = g(() => !!(this.containerInfo()?.moreInfoDialog?.htmlContent && this.containerInfo()?.moreInfoDialog?.closeCtaText)); 19315 hasParallaxImages = g(() => { 19316 let e = this.containerInfo(); 19317 return !!(e?.parallaxImage?.parallaxBackgroundImage1 || e?.parallaxImage?.parallaxBackgroundImage2 || e?.parallaxImage?.parallaxBackgroundImage3); 19318 }); 19319 seeAllText = g(() => this.globalMessages().SeeAll || ""); 19320 containerEventContext() { 19321 return { 19322 containerId: this.containerInfo()?.id, 19323 lobbyName: this.navigationService.currentSubnav()?.id, 19324 containerPosition: this.containerIndex(), 19325 layoutId: this.lobbyType() 19326 }; 19327 } 19328 onSeeAllClick() { 19329 let e = this.containerInfo(); 19330 if (e?.viewAllTarget) { 19331 let n = this.navigationService.createUrlForSeeAll(e.viewAllTarget); 19332 this.vanillaTrackingAdapter.trigger(yi(F(G({}, this.containerEventContext()), { 19333 seeAllText: this.seeAllText(), 19334 url: n 19335 }))), n && this.navigationService.goTo(n); 19336 } 19337 } 19338 onWidgetSeeAllClick(e) { 19339 this.vanillaTrackingAdapter.trigger(yi(G(G({}, this.containerEventContext()), e))); 19340 } 19341 onMoreInfoClick() { 19342 this.vanillaTrackingAdapter.trigger(La(this.containerEventContext())); 19343 } 19344 onMoreInfoOverlay(e) { 19345 this.vanillaTrackingAdapter.trigger(rn(this.containerEventC
19345ontext(), e)); 19346 } 19347 onMoreInfoOverlayCtaClick(e) { 19348 this.vanillaTrackingAdapter.trigger(rn(G(G({}, this.containerEventContext()), e), "click")); 19349 } 19350 ngOnInit() { 19351 this.containerMetadata() && this.containerService.fetchAndSetContainer(this.containerMetadata()); 19352 } 19353 static ɵfac = function(e) { 19354 return new (e || t)(); 19355 }; 19356 static ɵcmp = I({ 19357 type: t, 19358 selectors: [["cw-jackpot-widgets"]], 19359 inputs: { 19360 containerMetadata: [1, "containerMetadata"], 19361 isTouch: [1, "isTouch"], 19362 changeCarouselView: [1, "changeCarouselView"], 19363 lobbyType: [1, "lobbyType"], 19364 containerIndex: [1, "containerIndex"] 19365 }, 19366 features: [ce([ie])], 19367 decls: 2, 19368 vars: 1, 19369 consts: [ 19370 [ 19371 3, 19372 "casino-backgroungImage-layer", 19373 "casino-backgroungImage-parallax" 19374 ], 19375 [3, "containerId"], 19376 [ 19377 3, 19378 "src1", 19379 "src2", 19380 "src3" 19381 ], 19382 [ 19383 1, 19384 "lobby-container", 19385 "casino-game-tile-wrapper", 19386 "casino-lobby-width-gametile" 19387 ], 19388 [ 19389 3, 19390 "seeAllClick", 19391 "moreInfoClick", 19392 "moreInfoOverlayLoad", 19393 "moreInfoOverlayCtaClick", 19394 "moreInfoOverlayClose", 19395 "iconName", 19396 "title", 19397 "subtitle", 19398 "showViewAllButton", 19399 "headingTextColor", 19400 "showMoreInfo", 19401 "moreInfoDialog" 19402 ], 19403 [ 19404 1, 19405 "casino-game-tile-wrapper", 19406 "casino-lobby-width-gametile" 19407 ], 19408 [ 19409 3, 19410 "id", 19411 "jackpotContainer", 19412 "changeCarouselView", 19413 "isTouch", 19414 "lobbyType", 19415 "containerIndex", 19416 "isBackgroundImageLayerPresent" 19417 ], 19418 [ 19419 3, 19420 "id", 19421 "jackpotContainer", 19422 "isTouch", 19423 "lobbyType", 19424 "containerIndex", 19425 "isBackgroundImageLayerPresent" 19426 ], 19427 [ 19428 3, 19429 "seeAllClick", 19430 "id", 19431 "jackpotContainer", 19432 "changeCarouselView", 19433 "isTouch", 19434 "lobbyType", 19435 "containerIndex", 19436 "isBackgroundImageLayerPresent" 19437 ], 19438 [ 19439 3, 19440 "seeAllClick", 19441 "id", 19442 "jackpotContainer", 19443 "isTouch", 19444 "lobbyType", 19445 "containerIndex", 19446 "isBackgroundImageLayerPresent" 19447 ] 19448 ], 19449 template: function(e, n) { 19450 e & 1 && f(0, Yx, 7, 18, "div", 0)(1, Kx, 2, 1, "cw-lobby-container-placeholder", 1), e & 2 && h(n.shouldShowJackpotWidget() && n.hasJackpotWidgetData() ? 0 : n.isLoading() ? 1 : -1); 19451 }, 19452 dependencies: [ 19453 $t, 19454 Eu, 19455 Nu, 19456 On, 19457 st, 19458 Au 19459 ], 19460 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: 620px;--%NS%cw-reserve-h-single: 432px;--%NS%cw-reserve-h-multi: 620px}@media only screen and (min-width:568px){[_nghost-%COMP%]{--%NS%cw-reserve-h: 555px;--%NS%cw-reserve-h-single: 357px;--%NS%cw-reserve-h-multi: 555px}}[_nghost-%COMP%]:has(cw-single-jackpot-redesign-widget){min-height:var(--%NS%cw-reserve-h-single)}[_nghost-%COMP%]:has(cw-multi-jackpot-widget-rebrand){min-height:var(--%NS%cw-reserve-h-multi)}[_nghost-%COMP%]:has(cw-single-jackpot-redesign-widget>*), [_nghost-%COMP%]:has(cw-multi-jackpot-widget-rebrand>*){min-height:0}"] 19461 }); 19462 } 19463 return t; 19464 })(), Du = 12, zu = 2, Bu = "recentwinners/getRecentWinners", tc = "RECENT", Fu = (() => { 19465 class t { 19466 apiService = s(Ae); 19467 timerService = s(de); 19468 destroyRef = s(q); 19469 platform = s(X); 19470 winners = O([]); 19471 isLoading = O(!1); 19472 hasError = O(!1); 19473 activeFilter = O(tc); 19474 pollIntervalId; 19475 config; 19476 initialized = !1; 19477 constructor() { 19478 this.destroyRef.onDestroy(() => { 19479 this.stopPolling(); 19480 }); 19481 } 19482 setConfig(e) { 19483 this.config = e; 19484 } 19485 init() { 19486 this.initialized || (this.initialized = !0, this.fetchWinners(this.config.filters[0]?.value ?? tc), this.startPolling()); 19487 } 19488 fetchWinners(e, n = !1) { 19489 let i = this.winners().length === 0 && !n; 19490 i && this.isLoading.set(!0), this.apiService.post(Bu, { FeedType: e }).pipe(et(1), z(this.destroyRef)).subscribe({ 19491 next: (r) => { 19492 let u = r?.response?.winInfo ?? [], v = this.enrichWinners(u, this.config.maximumGamesLength); 19493 this.isSameWinnersList(v) || this.winners.set(v), this.hasError.
19493set(!1), this.isLoading.set(!1); 19494 }, 19495 error: () => { 19496 i ? (this.hasError.set(!0), this.isLoading.set(!1)) : n && (this.hasError.set(!0), this.isLoading.set(!1)); 19497 } 19498 }); 19499 } 19500 startPolling() { 19501 if (!this.platform.isBrowser) return; 19502 let e = this.config.recentWinnersInterval; 19503 !e || e <= 0 || isNaN(e) || (this.pollIntervalId = this.timerService.setInterval(() => { 19504 this.fetchWinners(this.activeFilter()); 19505 }, e)); 19506 } 19507 stopPolling() { 19508 this.pollIntervalId !== void 0 && (this.timerService.clearInterval(this.pollIntervalId), this.pollIntervalId = void 0); 19509 } 19510 changeFilter(e) { 19511 this.activeFilter.set(e), this.isLoading.set(!0), this.fetchWinners(e, !0); 19512 } 19513 isSameWinnersList(e) { 19514 let n = this.winners(); 19515 return n.length !== e.length ? !1 : n.every((i, r) => i.uid === e[r].uid && i.gcWin === e[r].gcWin); 19516 } 19517 enrichWinners(e, n) { 19518 return e.slice(0, n).map((i) => F(G({}, i), { 19519 gameName: i.gameName || "", 19520 gameIcon: "", 19521 gameId: i.gvName, 19522 gameProvider: "" 19523 })); 19524 } 19525 static ɵfac = function(e) { 19526 return new (e || t)(); 19527 }; 19528 static ɵprov = A({ 19529 token: t, 19530 factory: t.ɵfac, 19531 providedIn: "root" 19532 }); 19533 } 19534 return t; 19535 })(), Vu = ["filterList"], ju = (t, o) => o.value, nc = 150, $u = 500, Wu = (() => { 19536 class t { 19537 deviceService = s(J); 19538 platform = s(X); 19539 timerService = s(de); 19540 destroyRef = s(q); 19541 filters = m.required(); 19542 activeFilter = m.required(); 19543 filterMinWidth = m("auto"); 19544 filterBgColor = m(""); 19545 getButtonText = m.required(); 19546 filterChange = j(); 19547 scrollLeftClick = j(); 19548 scrollRightClick = j(); 19549 filterListRef = De("filterList"); 19550 showArrows = O(!1); 19551 timerId; 19552 constructor() { 19553 this.destroyRef.onDestroy(() => { 19554 this.timerId !== void 0 && this.timerService.clearTimeout(this.timerId); 19555 }), Z(() => { 19556 this.filters(), this.platform.isBrowser && (this.timerId = this.timerService.setTimeout(() => this.checkOverflow(), $u)); 19557 }); 19558 } 19559 checkOverflow() { 19560 if (this.deviceService.isTouch) { 19561 this.showArrows.set(!1); 19562 return; 19563 } 19564 let e = this.filterListRef()?.nativeElement; 19565 if (e) { 19566 let n = e.scrollWidth > e.clientWidth; 19567 n !== this.showArrows() && this.showArrows.set(n); 19568 } 19569 } 19570 onFilterClick(e) { 19571 this.filterChange.emit(e); 19572 } 19573 onTabKeydown(e, n) { 19574 (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.onFilterClick(n)); 19575 } 19576 onScrollLeft() { 19577 let e = this.filterListRef()?.nativeElement; 19578 e?.scrollBy && e.scrollBy({ 19579 left: -nc, 19580 behavior: "smooth" 19581 }), this.scrollLeftClick.emit(); 19582 } 19583 onScrollRight() { 19584 let e = this.filterListRef()?.nativeElement; 19585 e?.scrollBy && e.scrollBy({ 19586 left: nc, 19587 behavior: "smooth" 19588 }), this.scrollRightClick.emit(); 19589 } 19590 static ɵfac = function(e) { 19591 return new (e || t)(); 19592 }; 19593 static ɵcmp = I({ 19594 type: t, 19595 selectors: [["cw-winners-filter-tabs"]], 19596 viewQuery: function(e, n) { 19597 e & 1 && He(n.filterListRef, Vu, 5), e & 2 && Ue(); 19598 }, 19599 inputs: { 19600 filters: [1, "filters"], 19601 activeFilter: [1, "activeFilter"], 19602 filterMinWidth: [1, "filterMinWidth"], 19603 filterBgColor: [1, "filterBgColor"], 19604 getButtonText: [1, "getButtonText"] 19605 }, 19606 outputs: { 19607 filterChange: "filterChange", 19608 scrollLeftClick: "scrollLeftClick", 19609 scrollRightClick: "scrollRightClick" 19610 }, 19611 decls: 7, 19612 vars: 1, 19613 consts: [ 19614 ["filterList", ""], 19615 [1, "rw-filter-tabs"], 19616 [1, "navContainer"], 19617 [1, "filter-list"], 19618 [1, "arrow-container"], 19619 [ 19620 "ds-button", 19621 "", 19622 "size", 19623 "large", 19624 3, 19625 "click", 19626 "keydown", 19627 "variant", 19628 "kind", 19629 "inverse" 19630 ], 19631 [ 19632 1, 19633 "casino-carousel-bg", 19634 "left-sec" 19635 ], 19636 [ 19637 "role", 19638 "button", 19639 1, 19640 "scroll-btn", 19641 "theme-left", 19642 "left", 19643 3, 19644 "click", 19645 "keydown.enter", 19646 "keydown.space" 19647 ], 19648 [ 19649 1, 19650 "casino-carousel-bg", 19651 "right-sec" 19652 ], 19653 [ 19654 "role", 19655 "button", 19656 1, 19657 "scroll-btn", 19658 "theme-right", 19659 "right", 19660 3, 19661 "click", 19662 "keydown.enter", 19663 "keydown.space" 19664 ] 19665 ], 19666 template: function(e, n) { 19667 e & 1 && (l(0, "div", 1)(1, "div", 2)(2, "div", 3, 0), D(4, e_, 3, 7, "div", null, ju), d(), f(6, t_, 5, 8, "div", 4), d()()), e & 2 && (a(4), R(n.filters()), a(2), h(n.showArrows() ? 6 : -1)); 19668 }, 19669 dependencies: [ke], 19670 encapsulation: 2 19671 }); 19672 } 19673 return t; 19674 })(), Uu = (() => { 19675 class t { 19676 static ɵfac = function(e) { 19677 return new (e || t)(); 19678 }; 19679 static ɵcmp = I({ 19680 type: t, 19681 selectors: [["cw-winners-skeleton"]], 19682 decls: 1, 19683 vars: 0, 19684 consts: [[1, "sk"]], 19685 template: function(e, n) { 19686 e & 1 && Pe(0, "div", 0); 19687 }, 19688 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{width:100%;flex:1 1 auto;min-height:0;border-radius:var(--%NS%semantic-radius-semi-rounded-lg);background:var(--%NS%semantic-color-surface-container-high-base)}"] 19689 }); 19690 } 19691 return t; 19692 })(), ic = (t, o) => ({ 19693 $implicit: t, 19694 index: o 19695 }), Hu = (t, o) => ({ 19696 $implicit: t, 19697 largeIcon: !0, 19698 index: o 19699 }), oo = (t, o) => o.uid, qu = (t, o) => o.value, Ju = 5, Yu = 5, Ku = 5, Qu = 1, Xu = "140px", Zu = "RecentWinners", eh = "casino widgets", ac = "recent winners widget", th = "WinnersWidget: failed to track event", nh = "enableNewsfeedStyle", ih = "enableLoadingIcon", ah = "enableFilterWidth", oh = "enableTitleOnGameIcon", rh = "enablePagination", sh = "maximumGamesLength", ch = "recentWinnersInterval", lh = "maxNumbersForDecimal", dh = "filters", oc = "winners", gh = "winnersErrorMessage", mh = "winnersLoadingLabel", ph = (() => { 19700 class t { 19701 deviceService = s(J); 19702 gameImageService = s(rt); 19703 vanillaTrackingAdapter = s(we); 19704 logger = s(Ot); 19705 containerService = s(ie); 19706 gameCatalogService = s(Oe); 19707 casinoNavigationService = s(he); 19708 winnersWidgetService = s(Fu); 19709 containerMetadata = m.required(); 19710 containerIndex = m.required(); 19711 layoutId = m.required(); 19712 containerData = Q(this.containerService.container$); 19713 isReady = g(() => !!this.containerData()); 19714 isLoading = g(() => !this.isReady() && !this.containerService.hasError()); 19715 globalMessages = g(() => this.containerData()?.globalMessages ?? {}); 19716 widgetConfiguration = g(() => this.containerData()?.widgetConfiguration ?? null); 19717 filters = g(() => { 19718 let e = this.globalMessages()[dh]; 19719 if (!e) return []; 19720 try { 19721 return JSON.parse(e); 19722 } catch { 19723 return []; 19724 } 19725 }); 19726 config = g(() => { 19727 let e = this.globalMessages(), n = this.widgetConfiguration(); 19728 return { 19729 displayMode: e[nh] === "true" ? "ticker" : "carousel", 19730 enableLoadingIcon: e[ih] === "true", 19731 filterMinWidth: e[ah] === "true" ? Xu : "auto", 19732 showGameNameOnHover: e[oh] === "true", 19733 enablePagination: e[rh] === "true", 19734 maximumGamesLength: parseInt(e[sh], 10), 19735 recentWinnersInterval: parseInt(e[ch], 10),
19736 maxNumbersForDecimal: parseInt(e[lh], 10), 19737 parallaxSrc1: n?.backgroundImageLayer1?.src || "", 19738 parallaxSrc2: n?.backgroundImageLayer2?.src || "", 19739 parallaxSrc3: n?.backgroundImageLayer3?.src || "", 19740 hasParallaxImages: !!(n?.backgroundImageLayer1?.src || n?.backgroundImageLayer2?.src || n?.backgroundImageLayer3?.src), 19741 winnersText: e[oc] || oc, 19742 errorMessage: e[gh] || "", 19743 loadingLabel: e[mh] || "" 19744 }; 19745 }); 19746 isPaused = O(!1); 19747 isTouch = g(() => this.deviceService.isMobile || this.deviceService.isTablet); 19748 winnerCount = g(() => this.winnersWidgetService.winners().length); 19749 fillingArray = g(() => new Array(Ju).fill(0)); 19750 gameModels = g(() => { 19751 let e = /* @__PURE__ */ new Map(); 19752 for (let n of this.winnersWidgetService.winners()) e.set(n.uid, this.getGameModel(n)); 19753 return e; 19754 }); 19755 displayFilterName = g(() => { 19756 let e = this.winnersWidgetService.activeFilter(), n = this.globalMessages(), i = this.getGlobalMessageValue(n, e); 19757 return i && i.split(",").length > 1 ? i.split(",")[1].trim() : this.filters().find((r) => r.value === e)?.name ?? e; 19758 }); 19759 widgetContainerId = Zu; 19760 widgetGameContainerId = "recent_winners_widget"; 19761 widgetGameContainerName = ac; 19762 widgetGameContainerType = g(() => `recent winners | ${this.displayFilterName().toLowerCase()}`); 19763 quickInfoCtaText = "Play Here"; 19764 swiperOptions = g(() => ({ 19765 slidesPerView: Yu, 19766 spaceBetween: Qu, 19767 navigation: !0, 19768 autoHeight: !0, 19769 allowTouchMove: !1, 19770 slidesPerGroup: Ku, 19771 pagination: this.config().enablePagination, 19772 on: { 19773 slideNextTransitionStart: () => this.onCarouselNext(), 19774 slidePrevTransitionStart: () => this.onCarouselPrev() 19775 } 19776 })); 19777 constructor() { 19778 Z(() => { 19779 this.containerData() && (this.winnersWidgetService.setConfig({ 19780 maximumGamesLength: this.config().maximumGamesLength, 19781 recentWinnersInterval: this.config().recentWinnersInterval, 19782 filters: this.filters() 19783 }), this.winnersWidgetService.init()); 19784 }); 19785 } 19786 ngOnInit() { 19787 this.containerService.fetchAndSetContainer(this.containerMetadata()); 19788 } 19789 maskedName(e) { 19790 return Qx(e); 19791 } 19792 formattedAmount(e, n) { 19793 return Xx(e, n, this.config().maxNumbersForDecimal); 19794 } 19795 isJackpot(e) { 19796 return Zx(e); 19797 } 19798 badgeImageUrl(e) { 19799 return this.isJackpot(e.jpWinFlag) ? this.widgetConfiguration()?.jackpotImage?.src ?? "" : this.widgetConfiguration()?.nonJackpotImage?.src ?? ""; 19800 } 19801 getGameModel(e) { 19802 let n = { 19803 gameId: e.gvName, 19804 iconType: ue.Landscape 19805 }, i = this.gameImageService.getIconConfig(n); 19806 return { 19807 gameId: e.gvName, 19808 name: e.gameName || this.gameCatalogService.getGameName(e.gvName) || "", 19809 provider: e.gameProvider || this.gameCatalogService.getGameProvider(e.gvName) || "", 19810 icon: i 19811 }; 19812 } 19813 getFilterButtonText(e) { 19814 let n = this.globalMessages(), i = this.getGlobalMessageValue(n, e.value); 19815 return i ? i.split(",")[0].trim() : e.name; 19816 } 19817 getGlobalMessageValue(e, n) { 19818 if (!e || !n) return; 19819 if (e[n]) return e[n]; 19820 let i = n.toLowerCase(), r = Object.keys(e).find((u) => u.toLowerCase() === i); 19821 return r ? e[r] : void 0; 19822 } 19823 onFilterChange(e) { 19824 this.winnersWidgetService.changeFilter(e); 19825 let n = this.filters().findIndex((u) => u.value === e), i = this.filters()[n], r = i ? this.getFilterButtonText(i) : e; 19826 this.track(ve.CLICK, (n + 1).toString(), r); 19827 } 19828 onFilterClick(e) { 19829 this.onFilterChange(e.value); 19830 } 19831 onScrollLeftClick() { 19832 this.track(ve.CLICK, B.NOT_APPLICABLE, "prev"); 19833 } 19834 onScrollRightClick() { 19835 this.track(ve.CLICK, B.NOT_APPLICABLE, "next"); 19836 } 19837 onCarouselNext() { 19838 this.track(ve.CLICK, B.NOT_APPLICABLE, "Next"); 19839 } 19840 onCarouselPrev() { 19841 this.track(ve.CLICK, B.NOT_APPLICABLE, "Prev"); 19842 } 19843 onMouseEnter() { 19844 this.isPaused.set(!0); 19845 } 19846 onMouseLeave() { 19847 this.isPaused.set(!1); 19848 } 19849 onTouchStart() { 19850 this.isPaused.set(!0); 19851 } 19852 onTouchEnd() { 19853 this.isPaused.set(!1); 19854 } 19855 track(e, n, i) { 19856 try { 19857 this.vanillaTrackingAdapter.trigger({ 19858 name: se.RecentWinnersWidget, 19859 data: { 19860 [M.ComponentCategoryEvent]: eh, 19861 [M.ComponentLabelEvent]: ac, 19862 [M.ComponentActionEvent]: e, 19863 [M.ComponentPositionEvent]: n, 19864 [M.ComponentLocationEvent]: this.casinoNavigationService.currentSubnav()?.id || B.NOT_APPLICABLE, 19865 [M.ComponentEventDetails]: i, 19866 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 19867 [M.ComponentContentPosition]: this.containerIndex() || B.NOT_APPLICABLE, 19868 [M.ComponentCategoryType]: this.layoutId() || B.NOT_APPLICABLE 19869 } 19870 }); 19871 } catch (r) { 19872 this.logger.warn(th, r); 19873 } 19874 } 19875 static ɵfac = function(e) { 19876 return new (e || t)(); 19877 }; 19878 static ɵcmp = I({ 19879 type: t, 19880 selectors: [["cw-container-winners-widget"]], 19881 inputs: { 19882 containerMetadata: [1, "containerMetadata"], 19883 containerIndex: [1, "containerIndex"], 19884 layoutId: [1, "layoutId"] 19885 }, 19886 features: [ce([ie])], 19887 decls: 8, 19888 vars: 1, 19889 consts: [ 19890 ["tickerView", ""], 19891 ["tickerCard", ""], 19892 ["carouselCard", ""], 19893 [3, "casino-backgroungImage-Clr"], 19894 [3, "containerId"], 19895 [1, "casino-rw-news-feed-container"], 19896 [ 19897 1, 19898 "casino-rw-news-feed-ticker-wrap", 19899 3, 19900 "mouseenter", 19901 "mouseleave" 19902 ], 19903 [1, "rw-news-feed-wrapper-container"], 19904 [1, "casino-rw-news-feed-wrapper"], 19905 [1, "casino-rw-news-feed-ul-box"], 19906 [ 19907 1, 19908 "casino-rw-news-feed-ul-box", 19909 3, 19910 "touchstart", 19911 "touchend", 19912 "touchcancel" 19913 ], 19914 [ 19915 1, 19916 "rw-card", 19917 "casino-news-feed-ticker-move" 19918 ], 19919 [1, "casino-rw-news-feed-ticker-item"], 19920 [ 19921 3, 19922 "ngTemplateOutlet", 19923 "ngTemplateOutletContext" 19924 ], 19925 [1, "rw-card"],
19926 [1, "rw-card-details"], 19927 [1, "rw-u-details"], 19928 [ 19929 1, 19930 "rw-u-name", 19931 "w-color", 19932 "letter" 19933 ], 19934 [ 19935 1, 19936 "rw-u-amount", 19937 "w-color" 19938 ], 19939 [1, "rw-u-image"], 19940 [ 19941 3, 19942 "src", 19943 "alt" 19944 ], 19945 [1, "rw-game-tails"], 19946 [ 19947 "cwGameImpression", 19948 "", 19949 3, 19950 "game", 19951 "layoutId", 19952 "containerId", 19953 "containerTitle", 19954 "containerType", 19955 "containerIndex", 19956 "isBackgroundImageLayerPresent", 19957 "gameIndex", 19958 "quickInfoCtaText", 19959 "showGameNameOnHover", 19960 "showJackpotRibbon", 19961 "enableFlatOverlay" 19962 ], 19963 [ 19964 1, 19965 "rw-u-name", 19966 "w-color" 19967 ], 19968 [ 19969 1, 19970 "rw-badge-icon", 19971 3, 19972 "src", 19973 "alt" 19974 ], 19975 [ 19976 3, 19977 "src1", 19978 "src2", 19979 "src3" 19980 ], 19981 [1, "r-winners"], 19982 [1, "r-winners-touched"], 19983 [1, "rw-container"], 19984 [1, "rw-m-container"], 19985 [1, "filter-list"], 19986 [ 19987 "ds-button", 19988 "", 19989 "size", 19990 "large", 19991 3, 19992 "inverse", 19993 "min-width", 19994 "variant", 19995 "kind" 19996 ], 19997 [1, "m-title"], 19998 [ 19999 1, 20000 "m-title", 20001 "winners" 20002 ], 20003 [1, "touch-device"], 20004 [3, "color"], 20005 [3, "ariaLabel"], 20006 [ 20007 "ds-button", 20008 "", 20009 "size", 20010 "large", 20011 3, 20012 "click", 20013 "inverse", 20014 "variant", 20015 "kind" 20016 ], 20017 [3, "ngTemplateOutlet"], 20018 [1, "rw-container-left"], 20019 [1, "align"], 20020 [ 20021 1, 20022 "w-title", 20023 "w-color" 20024 ], 20025 [ 20026 1, 20027 "w-subtitle", 20028 "w-color", 20029 3, 20030 "color" 20031 ], 20032 [1, "rw-container-right"], 20033 [ 20034 3, 20035 "filterChange", 20036 "scrollLeftClick", 20037 "scrollRightClick", 20038 "filters", 20039 "activeFilter", 20040 "filterMinWidth", 20041 "filterBgColor", 20042 "getButtonText" 20043 ], 20044 [ 20045 1, 20046 "w-subtitle", 20047 "w-color" 20048 ], 20049 [1, "rw-swiper"], 20050 [ 20051 3, 20052 "swiperOptions", 20053 "showPagination" 20054 ], 20055 [1, "swiper-slide"] 20056 ], 20057 template: function(e, n) { 20058 e & 1 && (te(0, a_, 6, 0, "ng-template", null, 0, Ne)(2, s_, 15, 22, "ng-template", null, 1, Ne)(4, l_, 11, 19, "ng-template", null, 2, Ne), f(6, T_, 6, 8, "div", 3)(7, N_, 2, 1, "cw-lobby-container-placeholder", 4)), e & 2 && (a(6), h(n.isReady() ? 6 : n.isLoading() ? 7 : -1)); 20059 }, 20060 dependencies: [ 20061 mt, 20062 ke, 20063 TC, 20064 Tn, 20065 si, 20066 On, 20067 Wu, 20068 st, 20069 Uu, 20070 ln, 20071 iC 20072 ], 20073 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: 316px}@media only screen and (max-width:1024px){[_nghost-%COMP%]{--%NS%cw-reserve-h: 261px}}"] 20074 }); 20075 } 20076 return t; 20077 })(), ro = (() => { 20078 class t { 20079 game = m.required(); 20080 layoutId = m.required(); 20081 containerId = m.required(); 20082 containerIndex = m.required(); 20083 isBackgroundImageLayerPresent = m(!1); 20084 gameIndex = m(0); 20085 containerTitle = m(""); 20086 priority = m(!1); 20087 containerType = m(""); 20088 isRpFavWidget = m(!1); 20089 iconConfig = g(() => gi(this.game().iconType)); 20090 colSpanValue = g(() => this.game().colSpan ?? this.iconConfig().colSpan); 20091 rowSpanValue = g(() => this.game().rowSpan ?? this.iconConfig().rowSpan); 20092 tileClasses = g(() => { 20093 let e = this.iconConfig(), n = this.colSpanValue(), i = this.rowSpanValue(), r = [ 20094 "game", 20095 "game-tile", 20096 e.iconClass 20097 ]; 20098 return n === i && r.push("square-tile"), r.join(" "); 20099 }); 20100 static ɵfac = function(e) { 20101 return new (e || t)(); 20102 }; 20103 static ɵcmp = I({ 20104 type: t, 20105 selectors: [["cw-game-tile"]], 20106 hostVars: 6, 20107 hostBindings: function(e, n) { 20108 e & 2 && (W(n.tileClasses()), k("--%NS%col-span", n.colSpanValue())("--%NS%row-span", n.rowSpanValue())); 20109 }, 20110 inputs: { 20111 game: [1, "game"], 20112 layoutId: [1, "layoutId"], 20113 containerId: [1, "containerId"], 20114 containerIndex: [1, "containerIndex"],
20115 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"], 20116 gameIndex: [1, "gameIndex"], 20117 containerTitle: [1, "containerTitle"], 20118 priority: [1, "priority"], 20119 containerType: [1, "containerType"], 20120 isRpFavWidget: [1, "isRpFavWidget"] 20121 }, 20122 decls: 1, 20123 vars: 10, 20124 consts: [[ 20125 "cwGameImpression", 20126 "", 20127 3, 20128 "layoutId", 20129 "containerId", 20130 "game", 20131 "gameIndex", 20132 "containerIndex", 20133 "isBackgroundImageLayerPresent", 20134 "containerTitle", 20135 "priority", 20136 "containerType", 20137 "isRpFavWidget" 20138 ]], 20139 template: function(e, n) { 20140 e & 1 && b(0, "cw-game-lobby", 0), e & 2 && p("layoutId", n.layoutId())("containerId", n.containerId())("game", n.game())("gameIndex", n.gameIndex())("containerIndex", n.containerIndex())("isBackgroundImageLayerPresent", n.isBackgroundImageLayerPresent())("containerTitle", n.containerTitle())("priority", n.priority())("containerType", n.containerType())("isRpFavWidget", n.isRpFavWidget()); 20141 }, 20142 dependencies: [Tn, ln], 20143 encapsulation: 2 20144 }); 20145 } 20146 return t; 20147 })(), uh = "gradient-number-wrapper-for-one", hh = "gradient-number-wrapper-for-ten", fh = "gradient-number-wrapper-for-others", vh = 9, rc = (() => { 20148 class t { 20149 gradientIndex = m.required(); 20150 static CLASS_MAP = { 20151 1: uh, 20152 10: hh 20153 }; 20154 wrapperClass = g(() => { 20155 let e = this.gradientIndex(); 20156 return t.CLASS_MAP[e] ?? fh; 20157 }); 20158 isMultipleDigit = g(() => this.gradientIndex() > vh); 20159 static ɵfac = function(e) { 20160 return new (e || t)(); 20161 }; 20162 static ɵcmp = I({ 20163 type: t, 20164 selectors: [["cw-gradient-number"]], 20165 hostAttrs: ["aria-hidden", "true"], 20166 inputs: { gradientIndex: [1, "gradientIndex"] }, 20167 decls: 1, 20168 vars: 1, 20169 consts: [[3, "class"], [1, "gradient-digit"]], 20170 template: function(e, n) { 20171 e & 1 && f(0, L_, 3, 5, "div", 0), e & 2 && h(n.gradientIndex() ? 0 : -1); 20172 }, 20173 styles: ["[_nghost-%COMP%]{--%NS%cs-gradient-font-size-lg: 131px;--%NS%cs-gradient-font-size-sm: 80px;--%NS%cs-gradient-opacity: .8;--%NS%cs-gradient-digits-ten-left-mobile: -4px;display:block}.gradient-number-wrapper[_ngcontent-%COMP%]{position:relative;display:flex;align-items:flex-end;width:100%;height:100%}.gradient-number-wrapper-for-one[_ngcontent-%COMP%]{left:var(--%NS%cs-gradient-number-digit-one-left-lg, 0px)}@media only screen and (max-width:768px){.gradient-number-wrapper-for-one[_ngcontent-%COMP%]{left:var(--%NS%cs-gradient-number-digit-one-left-sm, 0px)}}.gradient-number-wrapper-for-others[_ngcontent-%COMP%]{left:var(--%NS%cs-gradient-number-digit-others-left-lg, -10px)}@media only screen and (max-width:768px){.gradient-number-wrapper-for-others[_ngcontent-%COMP%]{left:var(--%NS%cs-gradient-number-digit-others-left-sm, -5px)}}.gradient-number-wrapper-for-ten[_ngcontent-%COMP%]{left:var(--%NS%cs-gradient-number-digit-ten-left-sm, 0px)}@media only screen and (max-width:768px){.gradient-number-wrapper-for-ten[_ngcontent-%COMP%]{left:var(--%NS%cs-gradient-digits-ten-left-mobile, -1px)}}@media only screen and (max-width:375px){.gradient-number-wrapper-for-ten[_ngcontent-%COMP%]{left:var(--%NS%cs-gradient-number-digit-ten-left-xs, 0px)}}.gradient-digit[_ngcontent-%COMP%]{font-size:var(--%NS%cs-gradient-font-size-lg);line-height:var(--%NS%cs-gradient-digit-line-height-lg, 109px);font-weight:var(--%NS%theme-font-bold, var(--%NS%semantic-typography-title-xl-strong-font-weight, 700));-webkit-text-fill-color:transparent;background-image:linear-gradient(180deg,#fff,#2b2b2b);background-clip:text;opacity:var(--%NS%cs-gradient-opacity);white-space:nowrap;height:100%}.second-digit[_ngcontent-%COMP%]{letter-spacing:var(--%NS%cs-gradient-num-second-digit-letter-spacing-lg, -38px);margin-left:var(--%NS%cs-gradient-num-second-digit-margin-left-lg, -40px)}@media(max-width:480px){.gradient-digit[_ngcontent-%COMP%]{font-size:var(--%NS%cs-gradient-font-size-sm);line-height:var(--%NS%cs-gradient-digit-line-height-sm, 70px)}.second-digit[_ngcontent-%COMP%]{letter-spacing:var(--%NS%cs-gradient-number-second-digit-letter-spacing-sm, -19px);margin-left:var(--%NS%cs-gradient-num-second-digit-margin-left-sm, -18px)}}"] 20174 }); 20175 } 20176 return t; 20177 })(), bh = (() => { 20178 class t { 20179 game = m.required(); 20180 gameIndex = m.required(); 20181 layoutId = m.required(); 20182 containerId = m(""); 20183 containerIndex = m.required(); 20184 containerTitle = m(""); 20185 containerType = m(""); 20186 categoryType = m(""); 20187 deviceService = s(J); 20188 gameLaunchAggregatorService = s(Qe); 20189 ga4TrackingService = s(Un); 20190 trackingContextService = s(jn); 20191 onGameClick() { 20192 let e = this.game(), n = this.gameIndex(); 20193 this.ga4TrackingService.trackClick(Pi({ 20194 game: e, 20195 containerId: this.containerId(), 20196 layoutId: this.layoutId(), 20197 containerType: this.containerType(), 20198 containerName: this.containerTitle(), 20199 gameIndex: n, 20200 containerIndex: this.containerIndex(), 20201 gridPosition: this.trackingContextService.getGridPosition(n, this.containerIndex()) 20202 })); 20203 let i = { 20204 game: F(G({}, e), { lobbyType: this.layoutId() }), 20205 isTouch: this.deviceService.isMobile || this.deviceService.isTablet, 20206 gamePosition: n, 20207 categoryType: this.categoryType(), 20208 from: "standout games", 20209 isDemoLaunch: !1, 20210 gameLaunchedFrom: this.containerId(), 20211 gridPosition: this.containerIndex(), 20212 gameContainer: this.containerId(), 20213 gameSection: this.containerTitle(), 20214 gameContainerType: this.containerType(), 20215 clickTimeStamp: Date.now() 20216 }; 20217 this.gameLaunchAggregatorService.launchGame(i); 20218 } 20219 static ɵfac = function(e) { 20220 return new (e || t)(); 20221 }; 20222 static ɵcmp = I({ 20223 type: t, 20224 selectors: [["cw-standout-games"]], 20225 inputs: { 20226 game: [1, "game"], 20227 gameIndex: [1, "gameIndex"], 20228 layoutId: [1, "layoutId"], 20229 containerId: [1, "containerId"], 20230 containerIndex: [1, "containerIndex"], 20231 containerTitle: [1, "containerTitle"], 20232 containerType: [1, "containerType"], 20233 categoryType: [1, "categoryType"] 20234 }, 20235 decls: 7, 20236 vars: 4, 20237 consts: [ 20238 [1, "standout-games"], 20239 [1, "game-card"], 20240 [1, "game-card-number"], 20241 [1, "game-card-number-text"], 20242 [ 20243 "type", 20244 "button", 20245 1, 20246 "game-card-image", 20247 3, 20248 "click" 20249 ], 20250 [ 20251 3, 20252 "icon", 20253 "gameId", 20254 "alt" 20255 ] 20256 ], 20257 template: function(e, n) { 20258 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "p", 3), C(4), d()(), l(5, "button", 4), S("click", function() { 20259 return n.onGameClick(); 20260 }), f(6, G_, 1, 3, "cw-image-loader", 5), d()()()), e & 2 && (a(2), T("aria-hidden", !0), a(2), x(n.gameIndex()), a(), T("aria-label", "Play " + n.game().name + ", ranked number " + n.gameIndex()), a(), h(n.game().icon ? 6 : -1)); 20261 }, 20262 dependencies: [Ht], 20263 styles: [".standout-games[_ngcontent-%COMP%]{overflow:visible;padding-bottom:var(--%NS%semantic-spacing-container-padding-xl, 12px)}.standout-games[_ngcontent-%COMP%] .standout-games-swiper-container[_ngcontent-%COMP%]{position:relative;height:160px;
20263overflow:var(--%NS%for-you-skeleton-recommendation-overflow);z-index:1;margin:0 auto;padding:0 26px}@media(max-width:1204px){.standout-games[_ngcontent-%COMP%] .standout-games-swiper-container[_ngcontent-%COMP%]{padding:0 24px}}@media(max-width:480px){.standout-games[_ngcontent-%COMP%] .standout-games-swiper-container[_ngcontent-%COMP%]{padding:0 6px}}.standout-games[_ngcontent-%COMP%] .standout-games-swiper-container[_ngcontent-%COMP%] .swiper-slide[_ngcontent-%COMP%]{width:226px;height:160px;overflow:visible}.standout-games[_ngcontent-%COMP%] .standout-games-swiper-container[_ngcontent-%COMP%] .swiper-button-prev[_ngcontent-%COMP%], .standout-games[_ngcontent-%COMP%] .standout-games-swiper-container[_ngcontent-%COMP%] .swiper-button-next[_ngcontent-%COMP%]{position:absolute;z-index:2}.standout-games[_ngcontent-%COMP%] .standout-games-swiper-container[_ngcontent-%COMP%] .swiper-button-next[_ngcontent-%COMP%]{margin-right:30px}.game-card[_ngcontent-%COMP%]{flex:0 0 auto;width:226px;height:160px;position:relative;display:flex;align-items:flex-end;justify-content:flex-end;scroll-snap-align:start}.game-card[_ngcontent-%COMP%] .game-card-number[_ngcontent-%COMP%]{-webkit-user-select:none;user-select:none;position:absolute;bottom:0;left:0;width:118px;height:150px;z-index:1;display:flex;overflow:hidden}.game-card[_ngcontent-%COMP%] .game-card-number[_ngcontent-%COMP%] .game-card-number-text[_ngcontent-%COMP%]{margin:0;height:100%;width:100%;font-weight:700;color:transparent;-webkit-text-stroke:var(--%NS%cs-standout-game-tile-text-stroke-width) var(--%NS%cs-standout-game-tile-border-color);font-size:193px;line-height:160px;text-align:center;-webkit-user-select:none;user-select:none;font-family:Arial,Helvetica,sans-serif}.game-card[_ngcontent-%COMP%] .game-card-image[_ngcontent-%COMP%]{width:147px;height:147px;background-color:gray;border-radius:var(--%NS%cs-standout-game-tile-border-radius);margin-left:-36px;border:var(--%NS%cs-standout-game-tile-border);position:relative;z-index:2;box-shadow:var(--%NS%cs-standout-game-tile-box-shadow) var(--%NS%cs-standout-game-tile-box-shadow-color);cursor:pointer;padding:0;overflow:hidden;display:block}.game-card[_ngcontent-%COMP%] .game-card-image[_ngcontent-%COMP%] cw-image[_ngcontent-%COMP%]{width:100%;height:100%;display:block}"] 20264 }); 20265 } 20266 return t; 20267 })(), so = { 20268 one: "themed-digit-one", 20269 ten: "themed-digit-ten", 20270 others: "themed-digit-others" 20271 }, Ch = (() => { 20272 class t { 20273 game = m.required(); 20274 tileIndex = m.required(); 20275 layoutId = m.required(); 20276 containerId = m.required(); 20277 containerIndex = m.required(); 20278 containerTitle = m(""); 20279 containerType = m(""); 20280 isBackgroundImageLayerPresent = m(!1); 20281 themeSlot = m(void 0); 20282 tileAriaLabel = g(() => `Play ${this.game().name || this.game().gameId || "game"}, ranked number ${this.tileIndex()}`); 20283 vm = g(() => { 20284 let e = this.themeSlot(), n = this.tileIndex(), i = e?.gradient; 20285 return { 20286 useSvgGradient: !!i?.src, 20287 themedGradientClass: n === 1 ? so.one : n === 10 ? so.ten : so.others, 20288 gradientSpriteStyle: oP(i), 20289 topSlotSprite: Yd(e?.topSlot), 20290 bottomSlotSprite: Yd(e?.bottomSlot) 20291 }; 20292 }); 20293 static ɵfac = function(e) { 20294 return new (e || t)(); 20295 }; 20296 static ɵcmp = I({ 20297 type: t, 20298 selectors: [["cw-top-ten-game-tile"]], 20299 inputs: { 20300 game: [1, "game"], 20301 tileIndex: [1, "tileIndex"], 20302 layoutId: [1, "layoutId"], 20303 containerId: [1, "containerId"], 20304 containerIndex: [1, "containerIndex"], 20305 containerTitle: [1, "containerTitle"], 20306 containerType: [1, "containerType"], 20307 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"], 20308 themeSlot: [1, "themeSlot"] 20309 }, 20310 decls: 7, 20311 vars: 14, 20312 consts: [ 20313 [1, "top-ten-tile"], 20314 [1, "themed-top-slot"], 20315 [ 20316 3, 20317 "class", 20318 "backgroundImage", 20319 "backgroundPosition", 20320 "backgroundSize", 20321 "backgroundRepeat" 20322 ], 20323 [3, "gradientIndex"], 20324 [ 20325 3, 20326 "game", 20327 "layoutId", 20328 "containerId", 20329 "gameIndex", 20330 "containerIndex",
20331 "isBackgroundImageLayerPresent", 20332 "containerTitle", 20333 "priority", 20334 "containerType" 20335 ], 20336 [1, "themed-bottom-slot"], 20337 [ 20338 1, 20339 "sprite-clip", 20340 "sprite-clip-top" 20341 ], 20342 [ 20343 "alt", 20344 "", 20345 3, 20346 "ngSrc", 20347 "priority", 20348 "width", 20349 "height" 20350 ], 20351 [ 20352 1, 20353 "sprite-clip", 20354 "sprite-clip-bottom" 20355 ], 20356 [ 20357 "alt", 20358 "", 20359 3, 20360 "ngSrc", 20361 "width", 20362 "height" 20363 ] 20364 ], 20365 template: function(e, n) { 20366 if (e & 1 && (l(0, "div", 0), f(1, E_, 3, 9, "div", 1), Et(2), f(3, A_, 1, 11, "div", 2)(4, R_, 1, 1, "cw-gradient-number", 3), b(5, "cw-game-tile", 4), f(6, D_, 3, 8, "div", 5), d()), e & 2) { 20367 let i, r; 20368 T("aria-label", n.tileAriaLabel()), a(), h((i = n.vm().topSlotSprite) ? 1 : -1, i), a(), Fe(n.vm().gradientSpriteStyle), a(), h(n.vm().useSvgGradient ? 3 : 4), a(2), p("game", n.game())("layoutId", n.layoutId())("containerId", n.containerId())("gameIndex", n.tileIndex())("containerIndex", n.containerIndex())("isBackgroundImageLayerPresent", n.isBackgroundImageLayerPresent())("containerTitle", n.containerTitle())("priority", n.tileIndex() === 1 && n.containerIndex() === 1)("containerType", n.containerType()), a(), h((r = n.vm().bottomSlotSprite) ? 6 : -1, r); 20369 } 20370 }, 20371 dependencies: [ 20372 Zt, 20373 rc, 20374 ro 20375 ], 20376 styles: ["[_nghost-%COMP%]{display:block;--%NS%cs-themed-digit-height-lg: 120px;--%NS%cs-themed-digit-height-sm: 70px;--%NS%cs-themed-digit-one-left-lg: 0px;--%NS%cs-themed-digit-one-left-sm: -4px;--%NS%cs-themed-digit-others-left-lg: -16px;--%NS%cs-themed-digit-others-left-sm: -10px;--%NS%cs-themed-digit-ten-left-lg: -28px;--%NS%cs-themed-digit-ten-left-sm: -16px;--%NS%cs-themed-top-slot-width: 220px;--%NS%cs-themed-top-slot-height: 40px;--%NS%cs-themed-top-slot-scale-lg: calc(((100vw - 1rem)/3.2 - 2.25rem)*.81/220px) ;--%NS%cs-themed-top-slot-scale-md: calc(((100vw - 1rem)/3.2 - .5rem)*.81/220px) ;--%NS%cs-themed-top-slot-scale-sm: calc(((100vw - .75rem)*.4 - .25rem)*.85/220px) ;--%NS%cs-themed-top-slot-right: -18px;--%NS%cs-themed-top-slot-right-md: -10px;--%NS%cs-themed-top-slot-right-sm: -12px;--%NS%cs-themed-bottom-slot-width: 257px;--%NS%cs-themed-bottom-slot-height: 60px;--%NS%cs-themed-bottom-slot-scale-lg: calc(((100vw - 1rem)/3.2 - 5rem)/220px) ;--%NS%cs-themed-bottom-slot-scale-md: calc(((100vw - 1rem)/3.2 - 3.5rem)/220px) ;--%NS%cs-themed-bottom-slot-scale-sm: calc(((100vw - .75rem)*.4 - 1.6rem)/220px) ;--%NS%cs-themed-bottom-slot-left: 0;--%NS%cs-themed-bottom-slot-right: -15px;--%NS%cs-themed-bottom-slot-right-md: -10px;--%NS%cs-themed-bottom-slot-right-sm: -5px;--%NS%cs-game-tile-border-radius: var(--%NS%semantic-border-radius-md, 6px)}.top-ten-tile[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;width:100%;margin-top:var(--%NS%semantic-spacing-container-padding-2xl);margin-bottom:var(--%NS%semantic-spacing-container-padding-2xl)}.top-ten-tile[_ngcontent-%COMP%] cw-game-tile[_ngcontent-%COMP%]{position:relative;z-index:1;margin-left:19%;width:81%;height:auto;aspect-ratio:1/1;overflow:hidden;border-radius:var(--%NS%cs-game-tile-border-radius)}.themed-digit-one[_ngcontent-%COMP%], .themed-digit-others[_ngcontent-%COMP%], .themed-digit-ten[_ngcontent-%COMP%]{position:absolute;bottom:0;left:0;z-index:0;pointer-events:none;height:var(--%NS%cs-themed-digit-height-lg);aspect-ratio:1/1;margin-bottom:var(--%NS%semantic-spacing-container-padding-lg)}@media(max-width:480px){.themed-digit-one[_ngcontent-%COMP%], .themed-digit-others[_ngcontent-%COMP%], .themed-digit-ten[_ngcontent-%COMP%]{height:var(--%NS%cs-themed-digit-height-sm)}}.themed-digit-one[_ngcontent-%COMP%]{left:var(--%NS%cs-themed-digit-one-left-lg)}@media only screen and (max-width:768px){.themed-digit-one[_ngcontent-%COMP%]{left:var(--%NS%cs-themed-digit-one-left-sm)}}.themed-digit-others[_ngcontent-%COMP%]{left:var(--%NS%cs-themed-digit-others-left-lg)}@media only screen and (max-width:768px){.themed-digit-others[_ngcontent-%COMP%]{left:var(--%NS%cs-themed-digit-others-left-sm)}}.themed-digit-ten[_ngcontent-%COMP%]{left:var(--%NS%cs-themed-digit-ten-left-lg)}@media only screen and (max-width:768px){.themed-digit-ten[_ngcontent-%COMP%]{left:var(--%NS%cs-themed-digit-ten-left-lg)}}@media only screen and (max-width:480px){.themed-digit-ten[_ngcontent-%COMP%]{left:var(--%NS%cs-themed-digit-ten-left-sm)}}.themed-top-slot[_ngcontent-%COMP%]{position:absolute;top:-14px;right:var(--%NS%cs-themed-top-slot-right);z-index:3;pointer-events:none}@media(max-width:1025px){.themed-top-slot[_ngcontent-%COMP%]{top:-12px;right:var(--%NS%cs-themed-top-slot-right-md)}}@media(max-width:480px){.themed-top-slot[_ngcontent-%COMP%]{top:-8px;right:var(--%NS%cs-themed-top-slot-right-sm)}}.themed-bottom-slot[_ngcontent-%COMP%]{position:absolute;bottom:-8px;left:var(--%NS%cs-themed-bottom-slot-left);right:var(--%NS%cs-themed-bottom-slot-right);z-index:4;pointer-events:none}@media(max-width:1025px){.themed-bottom-slot[_ngcontent-%COMP%]{right:var(--%NS%cs-themed-bottom-slot-right-md)}}@media(max-width:480px){.themed-bottom-slot[_ngcontent-%COMP%]{right:var(--%NS%cs-themed-bottom-slot-right-sm)}}.sprite-clip[_ngcontent-%COMP%]{overflow:hidden}.sprite-clip[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{display:block;object-fit:none}.sprite-clip-top[_ngcontent-%COMP%]{width:var(--%NS%cs-themed-top-slot-width);height:var(--%NS%cs-themed-top-slot-height);transform-origin:top right}@media(max-width:1023px){.sprite-clip-top[_ngcontent-%COMP%]{transform:scale(var(--%NS%cs-themed-top-slot-scale-lg))}}@media(max-width:800px){.sprite-clip-top[_ngcontent-%COMP%]{transform:scale(var(--%NS%cs-themed-top-slot-scale-md))}}@media(max-width:480px){.sprite-clip-top[_ngcontent-%COMP%]{transform:scale(var(--%NS%cs-themed-top-slot-scale-sm))}}.sprite-clip-bottom[_ngcontent-%COMP%]{width:var(--%NS%cs-themed-bottom-slot-width);height:var(--%NS%cs-themed-bottom-slot-height);transform-origin:bottom left}@media(max-width:1023px){.sprite-clip-bottom[_ngcontent-%COMP%]{transform:scale(var(--%NS%cs-themed-bottom-slot-scale-lg))}}@media(max-width:800px){.sprite-clip-bottom[_ngcontent-%COMP%]{transform:scale(var(--%NS%cs-themed-bottom-slot-scale-md))}}@media(max-width:480px){.sprite-clip-bottom[_ngcontent-%COMP%]{transform:scale(var(--%NS%cs-themed-bottom-slot-scale-sm))}}"] 20377 }); 20378 } 20379 return t; 20380 })(), qt = { 20381 SMALL: 375, 20382 MEDIUM: 480, 20383 LARGE: 568, 20384 XLARGE: 768, 20385 XXLARGE: 1024 20386 }, Yn = { 20387 TOUCH_LAYOUT: 6, 20388 SMALL: 2, 20389 MEDIUM: 3, 20390 LARGE: 4, 20391 XLARGE: 6 20392 }, Kn = { 20393 SMALL: 2, 20394 MEDIUM: 2.7,
20395 LARGE: 2.7, 20396 XLARGE: 3.7, 20397 XXLARGE: 4.7 20398 }, sc = (() => { 20399 class t { 20400 deviceService = s(J); 20401 configProviderService = s(V); 20402 computeGameCountInRow(e = !1) { 20403 return e ? this.getTopTenColumnsCountByWidth() : this.isTouchLayout() ? Yn.TOUCH_LAYOUT : this.getGamesCountByWidth(); 20404 } 20405 isTouchLayout() { 20406 return this.deviceService.isTouch; 20407 } 20408 getGamesCountByWidth() { 20409 let e = this.deviceService.windowWidth(); 20410 return e < qt.SMALL ? Yn.SMALL : e <= qt.MEDIUM && this.isPortrait() || e < qt.LARGE ? Yn.MEDIUM : e < qt.XLARGE ? Yn.LARGE : Yn.XLARGE; 20411 } 20412 getTopTenColumnsCountByWidth() { 20413 let e = this.deviceService.windowWidth(); 20414 return e >= qt.XXLARGE ? Kn.XXLARGE : e >= qt.XLARGE ? Kn.XLARGE : e >= qt.LARGE ? Kn.LARGE : e >= qt.SMALL ? Kn.MEDIUM : Kn.SMALL; 20415 } 20416 isPortrait() { 20417 return this.deviceService.orientationSignal() === "portrait"; 20418 } 20419 getTileOrientation(e) { 20420 return gi(e.iconType).orientation; 20421 } 20422 getCarouselOrientationClass(e) { 20423 if (!e || e.length === 0) return "has-square"; 20424 let n = /* @__PURE__ */ new Set(); 20425 for (let i of e) n.add(this.getTileOrientation(i)); 20426 return n.size === 1 ? `has-${Array.from(n)[0]}` : n.has("portrait") ? "has-portrait" : n.has("square") ? "has-square" : n.has("landscape") ? "has-landscape" : "has-supersquare"; 20427 } 20428 getRowCountThreshold() { 20429 return this.configProviderService.featuresConfig?.lobbyPagination?.rowThresholdForPrefetch || 2; 20430 } 20431 filterGamesByGridCapacity(e, n) { 20432 let i = [], r = 0; 20433 for (let u of e) { 20434 let v = (u.colSpan ?? 1) * (u.rowSpan ?? 1); 20435 if (r += v, i.push(u), r >= n) break; 20436 } 20437 return i; 20438 } 20439 calculateGamesWithPositions(e, n, i, r) { 20440 let u = [], v = /* @__PURE__ */ new Set(); 20441 for (let P of e) { 20442 let N = P.colSpan ?? 1, $ = P.rowSpan ?? 1, me = i === fi.Row ? this.findRowMajorPosition(v, n, N, $, r) : this.findColumnMajorPosition(v, n, N, $); 20443 u.push(F(G({}, P), { 20444 gridColumn: me.col, 20445 gridRow: me.row 20446 })), this.occupyCells(v, me.col, me.row, N, $); 20447 } 20448 return u; 20449 } 20450 findRowMajorPosition(e, n, i, r, u) { 20451 for (let v = 1; v <= n - r + 1; v++) for (let P = 1; P <= u - i + 1; P++) if (this.canPlaceAt(e, P, v, i, r, n)) return { 20452 col: P, 20453 row: v 20454 }; 20455 for (let v = u + 1; v <= u * 100; v++) for (let P = 1; P <= n - r + 1; P++) if (this.canPlaceAt(e, v, P, i, r, n)) return { 20456 col: v, 20457 row: P 20458 }; 20459 return { 20460 col: 1, 20461 row: 1 20462 }; 20463 } 20464 findColumnMajorPosition(e, n, i, r) { 20465 for (let u = 1; u <= 1e3; u++) for (let v = 1; v <= n - r + 1; v++) if (this.canPlaceAt(e, u, v, i, r, n)) return { 20466 col: u, 20467 row: v 20468 }; 20469 return { 20470 col: 1, 20471 row: 1 20472 }; 20473 } 20474 canPlaceAt(e, n, i, r, u, v) { 20475 if (i + u - 1 > v) return !1; 20476 for (let P = 0; P < r; P++) for (let N = 0; N < u; N++) if (e.has(`${n + P},${i + N}`)) return !1; 20477 return !0; 20478 } 20479 occupyCells(e, n, i, r, u) { 20480 for (let v = 0; v < r; v++) for (let P = 0; P < u; P++) e.add(`${n + v},${i + P}`); 20481 } 20482 static ɵfac = function(e) { 20483 return new (e || t)(); 20484 }; 20485 static ɵprov = A({ 20486 token: t, 20487 factory: t.ɵfac 20488 }); 20489 } 20490 return t; 20491 })(), yh = ["scrollContainer"], wh = (t, o) => o.gameId, co = (() => { 20492 class t { 20493 viewType = m.required(); 20494 enableCarousel = m(!1); 20495 games = m.required(); 20496 layoutId = m.required(); 20497 containerIndex = m.required(); 20498 isBackgroundImageLayerPresent = m(!1); 20499 colOverride = m(null); 20500 trailingContent = m(null); 20501 containerId = m(""); 20502 containerTitle = m(""); 20503 containerType = m(""); 20504 isRpFavWidget = m(!1); 20505 emptyStateMessage = m(""); 20506 emptyStateStyles = m({}); 20507 themeConfig = m(void 0); 20508 currentPage = O(1); 20509 scrollContainer = De("scrollContainer"); 20510 deviceService = s(J); 20511 gameCarouselService = s(sc); 20512 resizeObserver = s(Vo); 20513 renderer = s(lt); 20514 platformId = s(To); 20515 isTouch = this.deviceService.isTouch; 20516 loadNextGames = j(); 20517 gameCountInRow = g(() => this.isTopFive() ? 4 : this.gameCarouselService.computeGameCountInRow(this.isTopTen())); 20518 rowCount = g(() =>
20518 lr(this.viewType())); 20519 isTopTen = g(() => ie.isTopTenViewType(this.viewType())); 20520 isTopFive = g(() => ie.isTopFiveViewType(this.viewType())); 20521 useContainment = g(() => !this.isTopTen() && !this.isTopFive()); 20522 themeSlots = g(() => { 20523 if (!this.isTopTen()) return; 20524 let e = this.themeConfig(); 20525 if (e?.gradientImage) return rP(e); 20526 }); 20527 useThemedLayout = g(() => { 20528 let e = this.isTopTen(), n = !!this.themeSlots(), i = this.games().length >= 10; 20529 return e && n && i; 20530 }); 20531 isDisk = g(() => this.viewType() === U.Disk); 20532 requiredRowsForGames = g(() => this.carouselGames().reduce((e, n) => Math.max(e, n.rowSpan ?? 1), 1)); 20533 finalRowCount = g(() => Math.max(this.rowCount(), this.requiredRowsForGames())); 20534 totalGamesGridSpan = g(() => this.carouselGames().reduce((e, n) => e + (n.colSpan ?? 1) * (n.rowSpan ?? 1), 0)); 20535 carouselGames = g(() => { 20536 let e = this.isTopTen() ? 10 : this.isTopFive() ? 5 : void 0; 20537 return (e ? this.games().slice(0, e) : this.games()).map((n) => { 20538 let i = gi(n.iconType), r = n.colSpan && n.colSpan > 0 ? n.colSpan : i.colSpan, u = n.rowSpan && n.rowSpan > 0 ? n.rowSpan : i.rowSpan, v = this.isTopTen() && n.icon ? F(G({}, n.icon), { gameTileBorderRadius: "6px" }) : n.icon; 20539 return F(G({}, n), { 20540 colSpan: r, 20541 rowSpan: u, 20542 icon: v 20543 }); 20544 }); 20545 }); 20546 visibleGames = g(() => { 20547 let e = this.carouselGames(); 20548 if (!this.deviceService.isMobile || this.enableCarousel()) return e; 20549 let n = this.finalRowCount() * this.gameCountInRow(); 20550 return this.gameCarouselService.filterGamesByGridCapacity(e, n); 20551 }); 20552 displayedGamesWithPositions = g(() => { 20553 let e = this.visibleGames(), n = this.finalRowCount(); 20554 if (n <= 1 || e.length === 0) return e; 20555 let i = this.deviceService.isMobile && !this.enableCarousel() ? fi.Row : fi.Column, r = this.gameCountInRow(); 20556 return this.gameCarouselService.calculateGamesWithPositions(e, n, i, r); 20557 }); 20558 canScrollPrev = g(() => this.deviceService.isMobile ? !1 : this.currentPage() > 1); 20559 canScrollNext = g(() => { 20560 if (this.deviceService.isMobile) return !1; 20561 if (this.isTopTen()) { 20562 let i = Math.ceil((this.totalGamesGridSpan() - this.gameCountInRow()) / 2); 20563 return this.currentPage() <= i; 20564 } 20565 if (this.isTopFive()) return this.totalGamesGridSpan() > this.gameCountInRow() && this.currentPage() === 1; 20566 let e = this.finalRowCount() * this.gameCountInRow(), n = this.totalGamesGridSpan() / e; 20567 return this.currentPage() < n; 20568 }); 20569 carouselOrientationClass = g(() => this.gameCarouselService.getCarouselOrientationClass(this.games())); 20570 iconCategoryClass = g(() => { 20571 let e = this.games(); 20572 if (e.length === 0) return ""; 20573 let n = e[0].iconType; 20574 return n === ue.LandscapeV2 && e.every((i) => i.iconType === n) ? "casino-newgridtypes" : n === ue.SemiCircle && e.every((i) => i.iconType === n) ? "casino-newgridtypesicon6" : ""; 20575 }); 20576 effectiveColOverride = g(() => this.colOverride()); 20577 containerDimensions = Q(fl(this.scrollContainer).pipe(Xt((e) =>
20577 e ? this.resizeObserver.observe(e).pipe(Me((n) => ({ 20578 width: n.contentBoxSize[0].inlineSize, 20579 scrollWidth: e.nativeElement.scrollWidth 20580 }))) : ml))); 20581 containerWidth = g(() => this.containerDimensions()?.width ?? 0); 20582 prefetchCheckIndex = g(() => { 20583 let e = this.rowCount() * this.gameCountInRow() * this.gameCarouselService.getRowCountThreshold(); 20584 return Math.max(Math.floor(this.carouselGames().length - e), 0); 20585 }); 20586 constructor() { 20587 Se(() => { 20588 let e = this.scrollContainer(); 20589 if (e) { 20590 let n = e.nativeElement; 20591 this.renderer.addClass(n, "snap-ready"); 20592 } 20593 }), Z(() => { 20594 let e = this.isTopTen(), n = !!this.themeSlots(), i = this.games().length; 20595 e && n && i < 10 && console.warn(`[TopTen] Themed layout skipped: expected at least 10 games, got ${i}. Falling back to legacy digits.`); 20596 }); 20597 } 20598 getClassByicon() { 20599 return this.iconCategoryClass(); 20600 } 20601 getColSpan(e) { 20602 return e.colSpan || 1; 20603 } 20604 getRowSpan(e) { 20605 return e.rowSpan || 1; 20606 } 20607 getRowHeight() { 20608 return "1:1"; 20609 } 20610 gutterSize() { 20611 return "0px"; 20612 } 20613 scrollPrev() { 20614 let e = this.scrollContainer(); 20615 if (!e) { 20616 console.error("[FeatureCssGrid] Scroll container not found"); 20617 return; 20618 } 20619 let n = e.nativeElement; 20620 if (!n || typeof n.scrollBy != "function") { 20621 console.error("[FeatureCssGrid] Scroll container does not support scrollBy"); 20622 return; 20623 } 20624 let i = this.getScrollAmount(); 20625 n.scrollBy({ 20626 left: -i, 20627 behavior: "smooth" 20628 }), this.currentPage.update((r) => r - 1); 20629 } 20630 scrollNext() { 20631 let e = this.scrollContainer(); 20632 if (!e) { 20633 console.error("[FeatureCssGrid] Scroll container not found"); 20634 return; 20635 } 20636 let n = e.nativeElement; 20637 if (!n || typeof n.scrollBy != "function") { 20638 console.error("[FeatureCssGrid] Scroll container does not support scrollBy"); 20639 return; 20640 } 20641 let i = this.getScrollAmount(); 20642 n.scrollBy({ 20643 left: i, 20644 behavior: "smooth" 20645 }), this.currentPage.update((r) => r + 1); 20646 } 20647 getScrollAmount() { 20648 if (this.isTopTen()) return this.containerWidth() / this.gameCountInRow() * 2; 20649 if (this.isDisk()) { 20650 let e = (this.containerWidth() - 720) / 5; 20651 return this.containerWidth() + e; 20652 } 20653 return this.containerWidth(); 20654 } 20655 resetScroll() { 20656 Do(this.platformId) && (this.currentPage.set(1), this.scrollContainer()?.nativeElement?.scrollTo({ 20657 left: 0, 20658 behavior: "smooth" 20659 })); 20660 } 20661 onNextPage() { 20662 this.scrollNext(); 20663 } 20664 onPreviousPage() { 20665 this.scrollPrev(); 20666 } 20667 static ɵfac = function(e) { 20668 return new (e || t)(); 20669 }; 20670 static ɵcmp = I({ 20671 type: t, 20672 selectors: [["cw-game-carousel"]], 20673 viewQuery: function(e, n) { 20674 e & 1 && He(n.scrollContainer, yh, 5), e & 2 && Ue(); 20675 }, 20676 inputs: { 20677 viewType: [1, "viewType"], 20678 enableCarousel: [1, "enableCarousel"], 20679 games: [1, "games"], 20680 layoutId: [1, "layoutId"], 20681 containerIndex: [1, "containerIndex"], 20682 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"], 20683 colOverride: [1, "colOverride"], 20684 trailingContent: [1, "trailingContent"], 20685 containerId: [1, "containerId"], 20686 containerTitle: [1, "containerTitle"], 20687 containerType: [1, "containerType"], 20688 isRpFavWidget: [1, "isRpFavWidget"], 20689 emptyStateMessage: [1, "emptyStateMessage"], 20690 emptyStateStyles: [1, "emptyStateStyles"], 20691 themeConfig: [1, "themeConfig"] 20692 }, 20693 outputs: { loadNextGames: "loadNextGames" }, 20694 features: [ce([sc])], 20695 decls: 9, 20696 vars: 27, 20697 consts: [ 20698 ["scrollContainer", ""], 20699 [1, "css-carousel-container"], 20700 [ 20701 1, 20702 "carousel-nav", 20703 "carousel-nav-prev" 20704 ], 20705 [ 20706 "rxVirtualViewObserver", 20707 "", 20708 3, 20709 "root" 20710 ], 20711 [ 20712 1, 20713 "carousel-item-wrapper", 20714 "game-tile", 20715 3, 20716 "--%NS%col-span", 20717 "--%NS%row-span" 20718 ], 20719 [ 20720 "rxVirtualView", 20721 "", 20722 "startWithPlaceholderAsap", 20723 "", 20724 "cwInfiniteScrollPrefetch", 20725 "", 20726 1, 20727 "carousel-item-wrapper", 20728 3, 20729 "useContainment", 20730 "enabled", 20731 "portrait", 20732 "landscape", 20733 "--%NS%col-span", 20734 "--%NS%row-span", 20735 "grid-column", 20736 "grid-row" 20737 ], 20738 [3, "ngTemplateOutlet"], 20739 [ 20740 1, 20741 "carousel-nav", 20742 "carousel-nav-next" 20743 ], 20744 [ 20745 "direction", 20746 "left", 20747 "size", 20748 "medium", 20749 "variant", 20750 "strong", 20751 3, 20752 "click" 20753 ], 20754 [ 20755 1, 20756 "carousel-item-wrapper", 20757 "game-tile" 20758 ], 20759 [1, "casino-no-games-tile"], 20760 [ 20761 "rxVirtualView", 20762 "", 20763 "startWithPlaceholderAsap", 20764 "", 20765 "cwInfiniteScrollPrefetch", 20766 "", 20767 1, 20768 "carousel-item-wrapper", 20769 3, 20770 "prefetch", 20771 "useContainment", 20772 "enabled" 20773 ], 20774 [1, "top-ten-tile"], 20775 [ 20776 3, 20777 "game", 20778 "gameIndex", 20779 "layoutId", 20780 "containerId", 20781 "containerIndex", 20782 "containerTitle", 20783 "containerType" 20784 ], 20785 [ 20786 3, 20787 "game", 20788 "layoutId", 20789 "containerId", 20790 "gameIndex", 20791 "containerIndex",
20792 "isBackgroundImageLayerPresent", 20793 "containerTitle", 20794 "priority", 20795 "containerType", 20796 "isRpFavWidget" 20797 ], 20798 [ 20799 "class", 20800 "tile-placeholder", 20801 "style", 20802 "width: var(--carousel-tile-width); height: var(--carousel-tile-height)", 20803 4, 20804 "rxVirtualViewPlaceholder" 20805 ], 20806 [ 20807 3, 20808 "game", 20809 "tileIndex", 20810 "layoutId", 20811 "containerId", 20812 "containerIndex", 20813 "containerTitle", 20814 "containerType", 20815 "isBackgroundImageLayerPresent", 20816 "themeSlot" 20817 ], 20818 [ 20819 3, 20820 "game", 20821 "tileIndex", 20822 "layoutId", 20823 "containerId", 20824 "containerIndex", 20825 "containerTitle", 20826 "containerType", 20827 "isBackgroundImageLayerPresent", 20828 "themeSlot", 20829 4, 20830 "rxVirtualViewContent" 20831 ], 20832 [3, "gradientIndex"], 20833 [ 20834 3, 20835 "game", 20836 "layoutId", 20837 "containerId", 20838 "gameIndex", 20839 "containerIndex", 20840 "isBackgroundImageLayerPresent", 20841 "containerTitle", 20842 "priority", 20843 "containerType", 20844 "isRpFavWidget", 20845 4, 20846 "rxVirtualViewContent" 20847 ], 20848 [ 20849 1, 20850 "tile-placeholder", 20851 2, 20852 "width", 20853 "var(--carousel-tile-width)", 20854 "height", 20855 "var(--carousel-tile-height)" 20856 ], 20857 [ 20858 "fill", 20859 "", 20860 "sizes", 20861 "20vw", 20862 1, 20863 "tile-placeholder", 20864 3, 20865 "alt", 20866 "loading", 20867 "placeholder", 20868 "priority", 20869 "ngSrc" 20870 ], 20871 [ 20872 "direction", 20873 "right", 20874 "size", 20875 "medium", 20876 "variant", 20877 "strong", 20878 3, 20879 "click", 20880 "inverse" 20881 ] 20882 ], 20883 template: function(e, n) { 20884 if (e & 1 && (l(0, "div", 1), f(1, z_, 2, 1, "div", 2), l(2, "div", 3, 0), f(4, B_, 4, 9, "div", 4), D(5, K_, 5, 15, "div", 5, wh), f(7, Q_, 1, 1, "ng-container", 6), d(), f(8, X_, 2, 2, "div", 7), d()), e & 2) { 20885 let i; 20886 a(), h(n.canScrollPrev() ? 1 : -1), a(), W("carousel-scroll-container " + n.carouselOrientationClass()), k("--%NS%carousel-items-count", n.carouselGames().length)("--%NS%carousel-row-count", n.finalRowCount())("--%NS%lobby-col-override", n.effectiveColOverride() || null), L("is-touch-device", n.isTouch)("top-ten", n.isTopTen())("top-five", n.isTopFive())("disk-type", n.isDisk())("multi-row", n.finalRowCount() > 1)("casino-newgridtypes", n.iconCategoryClass() === "casino-newgridtypes")("casino-newgridtypesicon6", n.iconCategoryClass() === "casino-newgridtypesicon6"), p("root", null), a(2), h(n.emptyStateMessage() ? 4 : -1), a(), R(n.displayedGamesWithPositions()), a(2), h((i = n.trailingContent()) ? 7 : -1, i), a(), h(n.canScrollNext() ? 8 : -1); 20887 } 20888 }, 20889 dependencies: [ 20890 Fn, 20891 ro, 20892 rc, 20893 bh, 20894 Ch, 20895 ia, 20896 Wl, 20897 Zt, 20898 jl, 20899 Jl, 20900 $l, 20901 _i, 20902 mt 20903 ], 20904 styles: ["@charset \"UTF-8\";[_nghost-%COMP%]{--%NS%base-gutter-mobile: 6;--%NS%base-gutter-desktop: 12;--%NS%icon-7-height: 100px;display:block;width:100%;container-type:inline-size;container-name:grid}@media only screen and (min-width:960px){[_nghost-%COMP%]:has(.feature-css-grid){padding:.375rem 2.8125rem}}@media only screen and (min-width:1210px){[_nghost-%COMP%]:has(.feature-css-grid){padding:.375rem 1.625rem}}.css-carousel-container[_ngcontent-%COMP%]{position:relative;width:100%}.css-carousel-container[_ngcontent-%COMP%]:has(.top-ten) .carousel-nav[_ngcontent-%COMP%]{z-index:2}.css-carousel-container[_ngcontent-%COMP%]:has(.top-five) .carousel-nav[_ngcontent-%COMP%]{z-index:3}.css-carousel-container[_ngcontent-%COMP%]:has(.top-ten) .carousel-nav-next[_ngcontent-%COMP%]{right:-22px}.css-carousel-container[_ngcontent-%COMP%]:has(.top-ten) .carousel-nav-prev[_ngcontent-%COMP%]{left:-22px}.css-carousel-container[_ngcontent-%COMP%]:has(.disk-type) .carousel-nav[_ngcontent-%COMP%]{top:40%}.carousel-nav[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);z-index:1;transition:transform .2s ease,opacity .2s ease}.carousel-nav[_ngcontent-%COMP%]:hover, .carousel-nav[_ngcontent-%COMP%]:active{will-change:transform}.carousel-nav[_ngcontent-%COMP%]:hover{transform:translateY(-50%) scale(1.1)}.carousel-nav[_ngcontent-%COMP%]:active{transform:translateY(-50%) scale(.95)}.carousel-nav[_ngcontent-%COMP%]:not(:hover):not(:active){will-change:auto}.carousel-nav-prev[_ngcontent-%COMP%]{left:-4px}@container grid (min-width: 768px){.carousel-nav-prev[_ngcontent-%COMP%]{left:-18px}}.carousel-nav-next[_ngcontent-%COMP%]{right:-4px}@container grid (min-width: 768px){.carousel-nav-next[_ngcontent-%COMP%]{right:-18px}}.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);overflow-x:auto;overflow-y:visible;scroll-behavior:smooth}.carousel-scroll-container.snap-ready[_ngcontent-%COMP%]{scroll-snap-type:x mandatory}.carousel-scroll-container[_ngcontent-%COMP%]{display:grid;grid-template-rows:repeat(var(--%NS%carousel-row-count, 1),1fr);grid-auto-columns:var(--%NS%carousel-tile-width);gap:0}.carousel-scroll-container[_ngcontent-%COMP%]:not(.multi-row){grid-auto-flow:column}.carousel-scroll-container.multi-row[_ngcontent-%COMP%]{grid-auto-flow:dense}.carousel-scroll-container[_ngcontent-%COMP%]{height:calc(var(--%NS%carousel-row-count, 1) * var(--%NS%carousel-tile-width) + (var(--%NS%carousel-row-count, 1) - 1) * var(--%NS%gutter-size) + var(--%NS%space-for-hover))}.carousel-scroll-container[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]{padding:calc(var(--%NS%gutter-size) / 2)}@container grid (min-width: 768px){.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop)}}.carousel-scroll-container[_ngcontent-%COMP%]{scrollbar-width:none;-ms-overflow-style:none}.carousel-scroll-container[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%carousel-columns: min(var(--%NS%carousel-items-count), 2);--%NS%carousel-tile-width: calc((100cqw - var(--%NS%gutter-size)) / 2)}.carousel-scroll-container.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.is-touch-device.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 2.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}@container grid (min-width: 568px){.carousel-scroll-container.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.is-touch-device.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 4.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 768px){.carousel-scroll-container.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.is-touch-device.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 5.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}.carousel-scroll-container.is-touch-device.casino-newgridtypes[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 2.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}@container grid (min-width: 568px){.carousel-scroll-container.is-touch-device.casino-newgridtypes[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 4.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 1024px){.carousel-scroll-container.is-touch-device.casino-newgridtypes[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 5.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 375px){.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 3;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 568px){.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 4;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 768px){.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 6;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}.carousel-scroll-container.has-portrait[_ngcontent-%COMP%]{grid-template-rows:repeat(2,1fr);height:calc(2 * var(--%NS%carousel-tile-width) + var(--%NS%gutter-size))}.carousel-scroll-container.casino-newgridtypes[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc((100cqw - var(--%NS%gutter-size)) / 2)}@container grid (min-width: 568px){.carousel-scroll-container.casino-newgridtypes[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 4;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 1024px){.carousel-scroll-container.casino-newgridtypes[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 8;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}.carousel-scroll-container.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc((100cqw - 2 * var(--%NS%gutter-size)) / 3)}@container grid (min-width: 568px){.carousel-scroll-container.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 4;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 768px){.carousel-scroll-container.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 6;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}.carousel-scroll-container.top-ten[_ngcontent-%COMP%]{--%NS%cs-top-ten-gradient-width: 15%;--%NS%cs-top-ten-lobby-width: 85%;--%NS%cs-top-ten-gradient-bottom: 5px;--%NS%top-ten-gap: 34px;overflow-x:auto;overflow-y:hidden}@media only screen and (max-width:768px){.carousel-scroll-container.top-ten[_ngcontent-%COMP%]{--%NS%top-ten-gap: 18px}}.carousel-scroll-container.top-ten[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc((100cqw + var(--%NS%top-ten-gap)) / 2)}@container grid (min-width: 375px){.carousel-scroll-container.top-ten[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc((100cqw + var(--%NS%top-ten-gap)) / 2.7)}}@container grid (min-width: 568px){.carousel-scroll-container.top-ten[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc((100cqw + var(--%NS%top-ten-gap)) / 3.5)}}@container grid (min-width: 768px){.carousel-scroll-container.top-ten[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc((100cqw + var(--%NS%top-ten-gap)) / 3.7)}}@container grid (min-width: 1024px){.carousel-scroll-container.top-ten[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-ten.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc((100cqw + var(--%NS%top-ten-gap)) / 4.7)}}.carousel-scroll-container.top-five[_ngcontent-%COMP%]{overflow-x:auto;overflow-y:hidden}.carousel-scroll-container.top-five[_ngcontent-%COMP%], .carousel-scroll-container.top-five.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 1.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}@container grid (min-width: 568px){.carousel-scroll
20904-container.top-five[_ngcontent-%COMP%], .carousel-scroll-container.top-five.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 2.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 768px){.carousel-scroll-container.top-five[_ngcontent-%COMP%], .carousel-scroll-container.top-five.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 3.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}@container grid (min-width: 1024px){.carousel-scroll-container.top-five[_ngcontent-%COMP%], .carousel-scroll-container.top-five.is-touch-device[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypes[_ngcontent-%COMP%], .carousel-scroll-container.top-five.casino-newgridtypesicon6[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-displayed-columns-count: 4.5;--%NS%carousel-columns: min(var(--%NS%carousel-items-count), var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)));--%NS%carousel-tile-width: calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%carousel-displayed-columns-count)))}}.carousel-scroll-container[_ngcontent-%COMP%] .casino-no-games-tile[_ngcontent-%COMP%]{float:left;border-radius:.25rem;border:.125rem dashed #ffffff;color:#fff;font-size:.875rem;font-weight:700;padding:0;display:flex;align-items:center;justify-content:center;width:100%;height:100%;min-height:120px;text-align:center}@media only screen and (min-width:768px){.carousel-scroll-container[_ngcontent-%COMP%] .casino-no-games-tile[_ngcontent-%COMP%]{min-height:157px}}@media only screen and (min-width:1025px){.carousel-scroll-container[_ngcontent-%COMP%] .casino-no-games-tile[_ngcontent-%COMP%]{min-height:164px}}@media only screen and (min-width:1280px){.carousel-scroll-container[_ngcontent-%COMP%] .casino-no-games-tile[_ngcontent-%COMP%]{min-height:196px}}.carousel-item-wrapper[_ngcontent-%COMP%]{--%NS%carousel-tile-height: var(--%NS%carousel-tile-width);flex-shrink:0;scroll-snap-align:start;width:100%;grid-column:span var(--%NS%col-span, 1);grid-row:span var(--%NS%row-span, 1);border-radius:.375rem}.carousel-item-wrapper.portrait[_ngcontent-%COMP%]{--%NS%carousel-tile-height: calc(var(--%NS%carousel-tile-width) * 2);aspect-ratio:195/398;height:100%}.tile-placeholder[_ngcontent-%COMP%]{background:var(--%NS%semantic-color-surface-secondary)}.game-tile[_ngcontent-%COMP%]{grid-column:span var(--%NS%col-span, 1);grid-row:span var(--%NS%row-span, 1);width:100%;position:relative;overflow:hidden!important;border-radius:var(--%NS%cs-game-tile-border-radius)}.containment-enabled[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]{contain:layout style}.game-tile.square-tile[_ngcontent-%COMP%]{aspect-ratio:1/1;display:flex;align-items:stretch}.game-tile.icon-7[_ngcontent-%COMP%]{aspect-ratio:auto}.game-tile.icon-3[_ngcontent-%COMP%]{--%NS%half-gutter: calc(var(--%NS%base-gutter) / 2);aspect-ratio:195/calc(398 + var(--%NS%base-gutter))}.game-tile[_ngcontent-%COMP%] cw-game-lobby{display:block;width:100%;height:100%}.game-tile[_ngcontent-%COMP%] cw-game-lobby cs-image img{object-fit:cover}.top-ten-tile[_ngcontent-%COMP%]{position:relative}.top-ten-tile[_ngcontent-%COMP%] cw-gradient-number[_ngcontent-%COMP%]{position:absolute;bottom:var(--%NS%cs-top-ten-gradient-bottom);z-index:0;pointer-events:none}.top-ten-tile[_ngcontent-%COMP%] cw-game-tile[_ngcontent-%COMP%]{position:relative;z-index:1;margin-left:var(--%NS%cs-top-ten-gradient-width);width:var(--%NS%cs-top-ten-lobby-width);height:100%;overflow:hidden}.carousel-scroll-container.top-ten[_ngcontent-%COMP%] .carousel-item-wrapper[_ngcontent-%COMP%]{--%NS%carousel-tile-height: calc((var(--%NS%carousel-tile-width) - var(--%NS%top-ten-gap)) * .85);overflow:visible;padding-right:var(--%NS%top-ten-gap)}.carousel-scroll-container.disk-type[_ngcontent-%COMP%]{--%NS%carousel-tile-width: var(--%NS%cs-play-again-disk-desktop-size, 120px);grid-auto-columns:var(--%NS%carousel-tile-width);column-gap:calc((100cqw - 6 * var(--%NS%cs-play-again-disk-desktop-size, 120px)) / 5);height:calc(var(--%NS%cs-play-again-disk-desktop-size, 120px) + 70px)}.carousel-scroll-container.disk-type[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]{padding:0;aspect-ratio:auto}@media(max-width:480px){.carousel-scroll-container.disk-type[_ngcontent-%COMP%]{--%NS%carousel-displayed-columns-count: 3.2;--%NS%carousel-tile-width: calc(100cqw / var(--%NS%carousel-displayed-columns-count))}.carousel-scroll-container.disk-type[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]{padding:calc(var(--%NS%gutter-size) / 2)}}"] 20905 }); 20906 } 20907 return t; 20908 })(), Ph = 360, Sh = 480, Mh = (() => { 20909 class t { 20910 deviceService = s(J); 20911 configProviderService = s(V); 20912 resolve(e, n) { 20913 return Z_({ 20914 orientation: this.deviceService.orientationSignal(), 20915 windowWidth: this.deviceService.windowWidth(), 20916 lobbyType: e, 20917 viewType: n, 20918 config: this.configProviderService.provideFeaturesConfig()?.matGridColCountForLobbyType 20919 }); 20920 } 20921 static ɵfac = function(e) { 20922 return new (e || t)(); 20923 }; 20924 static ɵprov = A({ 20925 token: t, 20926 factory: t.ɵfac, 20927 providedIn: "root" 20928 }); 20929 } 20930 return t; 20931 })(), Di = { 20932 SMALL: 375, 20933 MEDIUM: 480, 20934 LARGE: 568, 20935 XLARGE: 768 20936 }, Qn = { 20937 TOUCH_LAYOUT: 6, 20938 SMALL: 2, 20939 MEDIUM: 3, 20940 LARGE: 4, 20941 XLARGE: 6 20942 }, cc = (() => { 20943 class t { 20944 deviceService = s(J); 20945 configProviderService = s(V); 20946 columnOverrideService = s(Mh); 20947 viewType$ = O(U.Grid); 20948 games = O([]); 20949 layoutId = O(""); 20950 gridData = g(() => {
20951 let e = this.viewType$(), n = this.games(); 20952 return this.computeGridData(e, n); 20953 }); 20954 lobbyColOverride = g(() => this.columnOverrideService.resolve(this.layoutId(), this.viewType$())); 20955 setInputs(e, n, i) { 20956 this.viewType$.set(e), this.games.set(n), this.layoutId.set(i); 20957 } 20958 computeGridData(e, n) { 20959 let i = this.lobbyColOverride() ?? this.computeGameCountInRow(e, this.deviceService.windowWidth()), r = this.computeLastGameIndex(i, e, n); 20960 return { 20961 gameCountInRow: i, 20962 visibleGames: n.slice(0, r), 20963 viewType: e 20964 }; 20965 } 20966 computeGameCountInRow(e, n) { 20967 return Sa(e) && this.isTouchLayout() ? Qn.TOUCH_LAYOUT : this.getGamesCountByWidth(n); 20968 } 20969 computeLastGameIndex(e, n, i) { 20970 if (!Sa(n)) return i?.length ?? 1; 20971 let r = e * lr(n), u = 1; 20972 for (let v = 0; v < i.length && !(r <= 0); v++) { 20973 let P = i[v], N = this.getIconSizeInRow(P.iconType); 20974 r -= N, u = v + 1; 20975 } 20976 return u; 20977 } 20978 isTouchLayout() { 20979 return this.deviceService.isTouch; 20980 } 20981 getGamesCountByWidth(e) { 20982 return e < Di.SMALL ? Qn.SMALL : e <= Di.MEDIUM && this.isPortrait() || e < Di.LARGE ? Qn.MEDIUM : e < Di.XLARGE ? Qn.LARGE : Qn.XLARGE; 20983 } 20984 getIconSizeInRow(e) { 20985 return gi(e).gridCellSize; 20986 } 20987 isGridType() { 20988 return this.gridData().viewType === U.Grid; 20989 } 20990 gutterSize() { 20991 return "0px"; 20992 } 20993 getRowHeight() { 20994 let e = this.games(); 20995 return e.length > 0 && e.every((n) => n.iconType === ue.LandscapeV2) ? "100px" : "1:1"; 20996 } 20997 getClassByIcon() { 20998 let e = this.games(); 20999 return e.length > 0 && e.every((n) => n.iconType === ue.LandscapeV2) ? "casino-newgridtypes" : e.length > 0 && e.every((n) => n.iconType === ue.SemiCircle) ? "casino-newgridtypesicon6" : ""; 21000 } 21001 getColSpan(e) { 21002 return e.colSpan || 1; 21003 } 21004 getRowSpan(e) { 21005 return e.rowSpan || 1; 21006 } 21007 isPortrait() { 21008 return this.deviceService.orientationSignal() === "portrait"; 21009 } 21010 getRowCountThreshold() { 21011 return this.configProviderService.featuresConfig?.lobbyPagination?.rowThresholdForPrefetch || 2; 21012 } 21013 static ɵfac = function(e) { 21014 return new (e || t)(); 21015 }; 21016 static ɵprov = A({ 21017 token: t, 21018 factory: t.ɵfac 21019 }); 21020 } 21021 return t; 21022 })(), Oh = (t, o) => o.gameId, xh = (() => { 21023 class t { 21024 viewType = m.required(); 21025 layoutId = m.required(); 21026 games = m.required(); 21027 containerIndex = m.required(); 21028 isBackgroundImageLayerPresent = m(!1); 21029 enableContainment = m(!0); 21030 containerId = m(""); 21031 containerTitle = m(""); 21032 containerType = m(""); 21033 isRpFavWidget = m(!1); 21034 trailingContent = m(null); 21035 loadNextGames = j(); 21036 gameGridService = s(cc); 21037 route = s(Dt); 21038 changeDetectorRef = s(Ji); 21039 routeReuseLifecycle = s(Wo); 21040 gridData = this.gameGridService.gridData; 21041 lobbyColOverride = this.gameGridService.lobbyColOverride; 21042 iconCategoryClass = g(() => this.gameGridService.getClassByIcon()); 21043 prefetchCheckIndex = g(() => { 21044 let e = this.gridData().visibleGames.length; 21045 if (!Sa(this.viewType())) { 21046 let n = this.gridData().gameCountInRow * this.gameGridService.getRowCountThreshold(); 21047 return Math.max(e - n, 0); 21048 } 21049 return -1; 21050 }); 21051 requiredRowsForGames = g(() => this.gridData().visibleGames.reduce((e, n) => Math.max(e, n.rowSpan ?? 1), 1)); 21052 finalRowCount = g(() => Math.max(lr(this.viewType()), this.requiredRowsForGames())); 21053 constructor() { 21054 Z(() => { 21055 this.gameGridService.setInputs(this.viewType(), this.games(), this.layoutId()); 21056 }), this.routeReuseLifecycle.register(this.route).attached$.pipe(z()).subscribe(() => this.changeDetectorRef.markForCheck()); 21057 } 21058 gutterSize() { 21059 return this.gameGridService.gutterSize(); 21060 } 21061 getRowHeight() { 21062 return this.gameGridService.getRowHeight(); 21063 } 21064 getClassByIcon() { 21065 return this.gameGridService.getClassByIcon(); 21066 } 21067 getColSpan(e) { 21068 return this.gameGridService.getColSpan(e); 21069 } 21070 getRowSpan(e) { 21071 return this.gameGridService.getRowSpan(e); 21072 } 21073 isGridType() { 21074 return this.gameGridService.isGridType(); 21075 } 21076 static ɵfac = function(e) { 21077 return new (e || t)(); 21078 }; 21079 static ɵcmp = I({ 21080 type: t, 21081 selectors: [["cw-game-grid"]], 21082 inputs: { 21083 viewType: [1, "viewType"], 21084 layoutId: [1, "layoutId"], 21085 games: [1, "games"], 21086 containerIndex: [1, "containerIndex"],
21087 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"], 21088 enableContainment: [1, "enableContainment"], 21089 containerId: [1, "containerId"], 21090 containerTitle: [1, "containerTitle"], 21091 containerType: [1, "containerType"], 21092 isRpFavWidget: [1, "isRpFavWidget"], 21093 trailingContent: [1, "trailingContent"] 21094 }, 21095 outputs: { loadNextGames: "loadNextGames" }, 21096 features: [ce([cc])], 21097 decls: 4, 21098 vars: 13, 21099 consts: [ 21100 [1, "feature-css-grid"], 21101 [ 21102 "cwInfiniteScrollPrefetch", 21103 "", 21104 3, 21105 "enabled", 21106 "portrait", 21107 "landscape", 21108 "game", 21109 "layoutId", 21110 "containerId", 21111 "gameIndex", 21112 "containerIndex", 21113 "isBackgroundImageLayerPresent", 21114 "containerTitle", 21115 "priority", 21116 "containerType", 21117 "isRpFavWidget" 21118 ], 21119 [3, "ngTemplateOutlet"], 21120 [ 21121 "cwInfiniteScrollPrefetch", 21122 "", 21123 3, 21124 "prefetch", 21125 "enabled", 21126 "game", 21127 "layoutId", 21128 "containerId", 21129 "gameIndex", 21130 "containerIndex", 21131 "isBackgroundImageLayerPresent", 21132 "containerTitle", 21133 "priority", 21134 "containerType", 21135 "isRpFavWidget" 21136 ] 21137 ], 21138 template: function(e, n) { 21139 if (e & 1 && (l(0, "div", 0), D(1, e0, 1, 15, "cw-game-tile", 1, Oh), f(3, t0, 1, 1, "ng-container", 2), d()), e & 2) { 21140 let i; 21141 k("--%NS%carousel-row-count", n.finalRowCount())("--%NS%lobby-col-override", n.lobbyColOverride() || null), L("casino-newgridtypes", n.iconCategoryClass() === "casino-newgridtypes")("casino-newgridtypesicon6", n.iconCategoryClass() === "casino-newgridtypesicon6")("containment-enabled", n.enableContainment())("carousel-rows-not-specified", n.isGridType()), a(), R(n.gridData().visibleGames), a(2), h((i = n.trailingContent()) ? 3 : -1, i); 21142 } 21143 }, 21144 dependencies: [ 21145 Fn, 21146 ro, 21147 _i, 21148 mt 21149 ], 21150 styles: ["@charset \"UTF-8\";[_nghost-%COMP%]{--%NS%base-gutter-mobile: 6;--%NS%base-gutter-desktop: 12;--%NS%icon-7-height: 100px;display:block;width:100%;container-type:inline-size;container-name:grid}@media only screen and (min-width:960px){[_nghost-%COMP%]:has(.feature-css-grid){padding:.375rem 2.8125rem}}@media only screen and (min-width:1210px){[_nghost-%COMP%]:has(.feature-css-grid){padding:.375rem 1.625rem}}.feature-css-grid[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);display:grid;gap:var(--%NS%gutter-size);width:100%}.feature-css-grid.containment-enabled[_ngcontent-%COMP%]{contain:layout style}.feature-css-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(var(--%NS%lobby-col-override, 2),1fr);grid-auto-rows:calc((100cqw - (var(--%NS%lobby-col-override, 2) - 1) * var(--%NS%gutter-size)) / var(--%NS%lobby-col-override, 2))}@container grid (min-width: 375px){.feature-css-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(var(--%NS%lobby-col-override, 3),1fr);grid-auto-rows:calc((100cqw - (var(--%NS%lobby-col-override, 3) - 1) * var(--%NS%gutter-size)) / var(--%NS%lobby-col-override, 3))}}@container grid (min-width: 568px){.feature-css-grid[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);grid-template-columns:repeat(4,1fr);grid-auto-rows:calc((100cqw - 3 * var(--%NS%gutter-size)) / 4)}}@container grid (min-width: 768px){.feature-css-grid[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);grid-template-columns:repeat(6,1fr);grid-auto-rows:calc((100cqw - 5 * var(--%NS%gutter-size)) / 6)}}.feature-css-grid.carousel-rows-not-specified[_ngcontent-%COMP%]{--%NS%current-columns: 6;grid-template-columns:repeat(var(--%NS%lobby-col-override, var(--%NS%current-columns)),1fr);grid-auto-rows:calc((100cqw - (var(--%NS%lobby-col-override, var(--%NS%current-columns)) - 1) * var(--%NS%gutter-size)) / var(--%NS%lobby-col-override, var(--%NS%current-columns)))}@media screen and (max-width:767px){.feature-css-grid.carousel-rows-not-specified[_ngcontent-%COMP%]{--%NS%current-columns: 4}}@media screen and (max-width:567px){.feature-css-grid.carousel-rows-not-specified[_ngcontent-%COMP%]{--%NS%current-columns: 3}}@media screen and (max-width:359px){.feature-css-grid.carousel-rows-not-specified[_ngcontent-%COMP%]{--%NS%current-columns: 2}}.feature-css-grid.casino-newgridtypes[_ngcontent-%COMP%], .feature-css-grid.casino-newgridtypes.carousel-rows-not-specified[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr);grid-auto-rows:var(--%NS%icon-7-height)}@container grid (min-width: 568px){.feature-css-grid.casino-newgridtypes[_ngcontent-%COMP%], .feature-css-grid.casino-newgridtypes.carousel-rows-not-specified[_ngcontent-%COMP%]{grid-template-columns:repeat(4,1fr)}}@container grid (min-width: 1024px){.feature-css-grid.casino-newgridtypes[_ngcontent-%COMP%], .feature-css-grid.casino-newgridtypes.carousel-rows-not-specified[_ngcontent-%COMP%]{grid-template-columns:repeat(8,1fr)}}.feature-css-grid.casino-newgridtypesicon6[_ngcontent-%COMP%]{grid-template-columns:repeat(3,1fr);grid-auto-rows:calc((100cqw - 2 * var(--%NS%gutter-size)) / 3)}@container grid (min-width: 520px){.feature-css-grid.casino-newgridtypesicon6[_ngcontent-%COMP%]{grid-template-columns:repeat(4,1fr);grid-auto-rows:calc((100cqw - 3 * var(--%NS%gutter-size)) / 4)}}@container grid (min-width: 720px){.feature-css-grid.casino-newgridtypesicon6[_ngcontent-%COMP%]{grid-template-columns:repeat(6,1fr);grid-auto-rows:calc((100cqw - 5 * var(--%NS%gutter-size)) / 6)}}.feature-css-grid[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]:hover{transform:scale(1.03);transition:transform .2s ease-in}.feature-css-grid[_ngcontent-%COMP%] .game-tile.landscape[_ngcontent-%COMP%]{--%NS%half-gutter: calc(var(--%NS%base-gutter) / 2);aspect-ratio:calc(398 + var(--%NS%base-gutter))/195}.game-tile[_ngcontent-%COMP%]{grid-column:span var(--%NS%col-span, 1);grid-row:span var(--%NS%row-span, 1);width:100%;position:relative;overflow:hidden!important;border-radius:var(--%NS%cs-game-tile-border-radius)}.containment-enabled[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]{contain:layout style}.game-tile.square-tile[_ngcontent-%COMP%]{aspect-ratio:1/1;display:flex;align-items:stretch}.game-tile.icon-7[_ngcontent-%COMP%]{aspect-ratio:auto}.game-tile.icon-3[_ngcontent-%COMP%]{--%NS%half-gutter: calc(var(--%NS%base-gutter) / 2);aspect-ratio:195/calc(398 + var(--%NS%base-gutter))}.game-tile[_ngcontent-%COMP%] cw-game-tile{display:block;width:100%;height:100%}.game-tile[_ngcontent-%COMP%] cw-game-lobby{display:block;width:100%;height:100%}.game-tile[_ngcontent-%COMP%] cw-game-lobby cs-image img{object-fit:cover}"] 21151 }); 21152 } 21153 return t; 21154 })(), dn = (() => { 21155 class t { 21156 layoutId = m.required(); 21157 games = m.required(); 21158 containerIndex = m.required();
21159 isBackgroundImageLayerPresent = m(!1); 21160 viewType = m(U.SingleRow); 21161 enableCarousel = m(!1); 21162 containerId = m(""); 21163 containerTitle = m(""); 21164 containerType = m(""); 21165 isRpFavWidget = m(!1); 21166 emptyStateMessage = m(""); 21167 emptyStateStyles = m({}); 21168 themeConfig = m(void 0); 21169 colOverride = m(null); 21170 trailingContent = m(null); 21171 deviceService = s(J); 21172 isCarouselMode = g(() => this.enableCarousel() || this.isMobileCarousel()); 21173 loadNextGames = j(); 21174 carousel = De(co); 21175 resetScroll() { 21176 this.carousel()?.resetScroll(); 21177 } 21178 isMobileCarousel() { 21179 return this.deviceService.isMobile && this.viewType() !== U.Grid; 21180 } 21181 static ɵfac = function(e) { 21182 return new (e || t)(); 21183 }; 21184 static ɵcmp = I({ 21185 type: t, 21186 selectors: [["cw-feature-grid"]], 21187 viewQuery: function(e, n) { 21188 e & 1 && He(n.carousel, co, 5), e & 2 && Ue(); 21189 }, 21190 inputs: { 21191 layoutId: [1, "layoutId"], 21192 games: [1, "games"], 21193 containerIndex: [1, "containerIndex"], 21194 isBackgroundImageLayerPresent: [1, "isBackgroundImageLayerPresent"], 21195 viewType: [1, "viewType"], 21196 enableCarousel: [1, "enableCarousel"], 21197 containerId: [1, "containerId"], 21198 containerTitle: [1, "containerTitle"], 21199 containerType: [1, "containerType"], 21200 isRpFavWidget: [1, "isRpFavWidget"], 21201 emptyStateMessage: [1, "emptyStateMessage"], 21202 emptyStateStyles: [1, "emptyStateStyles"], 21203 themeConfig: [1, "themeConfig"], 21204 colOverride: [1, "colOverride"], 21205 trailingContent: [1, "trailingContent"] 21206 }, 21207 outputs: { loadNextGames: "loadNextGames" }, 21208 decls: 1, 21209 vars: 1, 21210 consts: [ 21211 [ 21212 3, 21213 "viewType", 21214 "enableCarousel", 21215 "games", 21216 "layoutId", 21217 "themeConfig", 21218 "emptyStateMessage", 21219 "emptyStateStyles", 21220 "containerIndex", 21221 "containerId", 21222 "containerTitle", 21223 "containerType", 21224 "isRpFavWidget", 21225 "colOverride", 21226 "trailingContent", 21227 "isBackgroundImageLayerPresent" 21228 ], 21229 [ 21230 3, 21231 "viewType", 21232 "layoutId", 21233 "games", 21234 "containerIndex", 21235 "containerId", 21236 "containerTitle", 21237 "containerType", 21238 "isRpFavWidget", 21239 "trailingContent", 21240 "isBackgroundImageLayerPresent" 21241 ], 21242 [ 21243 3, 21244 "loadNextGames", 21245 "viewType", 21246 "enableCarousel", 21247 "games", 21248 "layoutId", 21249 "themeConfig", 21250 "emptyStateMessage", 21251 "emptyStateStyles", 21252 "containerIndex", 21253 "containerId", 21254 "containerTitle", 21255 "containerType", 21256 "isRpFavWidget", 21257 "colOverride", 21258 "trailingContent", 21259 "isBackgroundImageLayerPresent" 21260 ], 21261 [ 21262 3, 21263 "loadNextGames", 21264 "viewType", 21265 "layoutId", 21266 "games", 21267 "containerIndex", 21268 "containerId", 21269 "containerTitle", 21270 "containerType", 21271 "isRpFavWidget", 21272 "trailingContent", 21273 "isBackgroundImageLayerPresent" 21274 ] 21275 ], 21276 template: function(e, n) { 21277 e & 1 && f(0, a0, 2, 1), e & 2 && h(n.games().length || n.emptyStateMessage() ? 0 : -1); 21278 }, 21279 dependencies: [co, xh], 21280 styles: ["[_nghost-%COMP%]{display:block}"] 21281 }); 21282 } 21283 return t; 21284 })(), _h = { [U.Grid]: 2 }, kh = { 21285 "rp-gyml": U.SingleRow, 21286 "recently-played": U.SingleRow, 21287 favorites: U.SingleRow 21288 }, Ih = (() => { 21289 class t { 21290 tiles = Array.from({ length: 24 }); 21291 static ɵfac = function(e) { 21292 return new (e || t)(); 21293 }; 21294 static ɵcmp = I({ 21295 type: t, 21296 selectors: [["cw-favourites-skeleton"]], 21297 decls: 5, 21298 vars: 0, 21299 consts: [ 21300 [1, "sk"], 21301 [1, "sk__title"], 21302 [1, "sk__tiles"], 21303 [1, "sk__tile"] 21304 ], 21305 template: function(e, n) { 21306 e & 1 && (H(0, "div", 0), Pe(1, "div", 1), H(2, "div", 2), D(3, r0, 1, 0, "div", 3, Ze), K()()), e & 2 && (a(3), R(n.tiles)); 21307 }, 21308 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;align-self:center;width:var(--%NS%cls-content-w)}.sk__title[_ngcontent-%COMP%]{width:220px;height:20px;margin-block:var(--%NS%semantic-spacing-container-padding-2xl) 0;flex:0 0 auto;border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}.sk__tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(var(--%NS%cols, 2),1fr);grid-auto-rows:var(--%NS%cls-row-h);gap:0;flex:0 0 auto;max-height:calc(var(--%NS%reserved-rows, 1) * var(--%NS%cls-row-h) + (var(--%NS%reserved-rows, 1) - 1) * var(--%NS%cls-gutter, 0px));overflow:hidden}
21308.sk__tile[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-container-padding-sm);border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}"] 21309 }); 21310 } 21311 return t; 21312 })(), Th = (() => { 21313 class t { 21314 containerService = s(ie); 21315 deviceService = s(J); 21316 casinoStyles = s(jt); 21317 navigationService = s(he); 21318 favouriteService = s(Re); 21319 vanillaTrackingAdapter = s(we); 21320 globalMessages = s(Mn); 21321 layoutId = m.required(); 21322 containerMetadata = m.required(); 21323 containerIndex = m.required(); 21324 container = Q(this.containerService.container$); 21325 games = g(() => this.container()?.games || []); 21326 visibleGames = g(() => { 21327 let e = this.container()?.games || [], n = this.favouriteService.favourites(); 21328 return e.filter((i) => n.find((r) => r.gameId === i.gameId)); 21329 }); 21330 isTouch = this.deviceService.isTouch; 21331 headingTextColor = g(() => { 21332 let e = this.container(); 21333 return e ? this.casinoStyles.getContainerHeadingColor(e) : void 0; 21334 }); 21335 defaultViewType = U.SingleRow; 21336 placeholderViewType = g(() => xi("favorites", this.containerMetadata().viewType)); 21337 placeholderRows = g(() => Mi(this.placeholderViewType()));
21338 placeholderLadder = g(() => Oi(this.placeholderViewType(), this.isTouch)); 21339 initialGameCount = g(() => this.containerService.getConfigForGamesToFetch(this.containerMetadata())); 21340 placeholderGameCount = g(() => Si(this.placeholderViewType(), () => this.initialGameCount())); 21341 isLoading = g(() => !this.container() && !this.containerService.hasError()); 21342 gameContainerType = g(() => Vt(this.container()?.type, this.container()?.viewType ?? this.defaultViewType)); 21343 constructor() { 21344 this.favouriteService.favouritesUpdated$.pipe(zb(300), z()).subscribe(() => { 21345 this.containerMetadata() && this.containerService.refetchInPlace(this.containerMetadata()), this.favouriteService.favourites().length === 0 && this.redirectToHomeIfOnFavouritesSubnav(); 21346 }); 21347 } 21348 ngOnInit() { 21349 this.containerMetadata() && this.containerService.fetchAndSetContainer(this.containerMetadata()); 21350 } 21351 seeAllText = g(() => this.globalMessages().SeeAll || ""); 21352 containerEventContext() { 21353 return { 21354 containerId: this.container()?.id, 21355 lobbyName: this.navigationService.currentSubnav()?.id, 21356 containerPosition: this.containerIndex(), 21357 layoutId: this.layoutId() 21358 }; 21359 } 21360 onSeeAllClick() { 21361 let e = this.container(); 21362 if (e?.viewAllTarget) { 21363 let n = this.navigationService.createUrlForSeeAll(e.viewAllTarget); 21364 this.vanillaTrackingAdapter.trigger(yi(F(G({}, this.containerEventContext()), { 21365 seeAllText: this.seeAllText(), 21366 url: n 21367 }))), n && this.navigationService.goTo(n); 21368 } 21369 } 21370 onMoreInfoClick() { 21371 this.vanillaTrackingAdapter.trigger(La(this.containerEventContext())); 21372 } 21373 onMoreInfoOverlay(e) { 21374 this.vanillaTrackingAdapter.trigger(rn(this.containerEventContext(), e)); 21375 } 21376 onMoreInfoOverlayCtaClick(e) { 21377 this.vanillaTrackingAdapter.trigger(rn(G(G({}, this.containerEventContext()), e), "click")); 21378 } 21379 getContainerClass() { 21380 return this.container()?.enableCarousel ? "scrollable-games" : "unscrollable-games"; 21381 } 21382 hasParallaxImages() { 21383 let e = this.container(); 21384 return !!(e?.parallaxImage?.parallaxBackgroundImage1 || e?.parallaxImage?.parallaxBackgroundImage2 || e?.parallaxImage?.parallaxBackgroundImage3); 21385 } 21386 showMoreInfo = g(() => !!(this.container()?.moreInfoDialog?.htmlContent && this.container()?.moreInfoDialog?.closeCtaText)); 21387 loadNextGames() { 21388 this.containerService.fetchAndSetContainer(this.containerMetadata()); 21389 } 21390 redirectToHomeIfOnFavouritesSubnav() { 21391 if (!this.navigationService.currentSubnav()?.page?.containers?.some((n) => n.type?.toLowerCase() === Ce.Favourites.toLowerCase())) return; 21392 let e = this.navigationService.navItems().find((n) => n.isDefault); 21393 e?.url && this.navigationService.goTo(e.url); 21394 } 21395 static ɵfac = function(e) { 21396 return new (e || t)(); 21397 }; 21398 static ɵcmp = I({ 21399 type: t, 21400 selectors: [["cw-favourites-container"]], 21401 inputs: { 21402 layoutId: [1, "layoutId"], 21403 containerMetadata: [1, "containerMetadata"], 21404 containerIndex: [1, "containerIndex"] 21405 }, 21406 features: [ce([ie])], 21407 decls: 2, 21408 vars: 1, 21409 consts: [ 21410 [3, "casino-backgroungImage-Clr"], 21411 [ 21412 3, 21413 "containerId", 21414 "rows", 21415 "ladder", 21416 "gameCount" 21417 ], 21418 [ 21419 3, 21420 "src1", 21421 "src2", 21422 "src3" 21423 ], 21424 [ 21425 1, 21426 "lobby-container", 21427 "casino-game-tile-wrapper", 21428 "casino-lobby-width-gametile" 21429 ], 21430 [ 21431 3, 21432 "seeAllClick", 21433 "moreInfoClick", 21434 "moreInfoOverlayLoad", 21435 "moreInfoOverlayCtaClick", 21436 "moreInfoOverlayClose", 21437 "iconName", 21438 "title", 21439 "subtitle", 21440 "showViewAllButton", 21441 "headingTextColor", 21442 "showMoreInfo", 21443 "moreInfoDialog" 21444 ], 21445 [ 21446 3, 21447 "layoutId", 21448 "viewType", 21449 "enableCarousel", 21450 "games", 21451 "containerIndex", 21452 "containerId", 21453 "containerTitle", 21454 "containerType", 21455 "isBackgroundImageLayerPresent" 21456 ], 21457 [ 21458 3, 21459 "loadNextGames", 21460 "layoutId", 21461 "viewType", 21462 "enableCarousel", 21463 "games", 21464 "containerIndex", 21465 "containerId", 21466 "containerTitle", 21467 "containerType",
21468 "isBackgroundImageLayerPresent" 21469 ] 21470 ], 21471 template: function(e, n) { 21472 e & 1 && f(0, l0, 7, 21, "div", 0)(1, d0, 2, 4, "cw-lobby-container-placeholder", 1), e & 2 && h(n.visibleGames().length ? 0 : n.isLoading() ? 1 : -1); 21473 }, 21474 dependencies: [ 21475 $t, 21476 dn, 21477 On, 21478 st, 21479 Ih 21480 ], 21481 encapsulation: 2 21482 }); 21483 } 21484 return t; 21485 })(), Nh = (() => { 21486 class t { 21487 image = m(); 21488 src = g(() => this.image()?.src?.trim() || ""); 21489 loadFailed = ni({ 21490 source: () => this.src(), 21491 computation: () => !1 21492 }); 21493 showImage = g(() => !!this.src() && !this.loadFailed()); 21494 onImageError() { 21495 this.loadFailed.set(!0); 21496 } 21497 static ɵfac = function(e) { 21498 return new (e || t)(); 21499 }; 21500 static ɵcmp = I({ 21501 type: t, 21502 selectors: [["cw-lobby-background"]], 21503 inputs: { image: [1, "image"] }, 21504 decls: 1, 21505 vars: 1, 21506 consts: [[ 21507 "aria-hidden", 21508 "true", 21509 1, 21510 "lobby-background" 21511 ], [ 21512 "alt", 21513 "", 21514 "sizes", 21515 "100vw", 21516 "fill", 21517 "", 21518 1, 21519 "lobby-background__img", 21520 3, 21521 "error", 21522 "ngSrc", 21523 "priority" 21524 ]], 21525 template: function(e, n) { 21526 e & 1 && f(0, g0, 2, 2, "div", 0), e & 2 && h(n.showImage() ? 0 : -1); 21527 }, 21528 dependencies: [Zt], 21529 styles: [".lobby-background[_ngcontent-%COMP%]{position:fixed;inset:0;z-index:0;overflow:hidden;pointer-events:none}.lobby-background__img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;object-position:center}"] 21530 }); 21531 } 21532 return t; 21533 })(), ge = { 21534 TOTAL_COLUMNS: 12, 21535 MOBILE_PADDING: 4, 21536 DESKTOP_PADDING: 8, 21537 SWIPER_SPEED: 500, 21538 HEALTH_CHECK_INTERVAL_MS: 5e3, 21539 MAX_TRANSITION_DURATION: 1e3, 21540 LOOP_FIX_DELAY: 100, 21541 INIT_DELAY: 30, 21542 JUST_NAVIGATED_DELAY: 5, 21543 SLIDES_PER_VIEW: 3, 21544 MOBILE_SLIDES_PER_VIEW: 2, 21545 HOVER_SUPPRESSION_DELAY: 300, 21546 REINIT_DELAY: 50, 21547 SCROLL_SETTLE_DELAY: 150, 21548 DESKTOP_CLONED_SLIDES: 4, 21549 DESKTOP_INITIAL_SLIDE: 4, 21550 DESKTOP_CENTER_COL: 4, 21551 MOBILE_INITIAL_SLIDE: 2, 21552 MOBILE_CENTER_COL: 6, 21553 DEFAULT_CENTER_SLIDE_WIDTH: 392, 21554 DEFAULT_CONTAINER_WIDTH: 1200, 21555 DEFAULT_MOBILE_CONTAINER_WIDTH: 390, 21556 CAROUSEL_3D_RESERVED_HEIGHT_PX: 392 21557 }, Lh = ".enhanced-carousel-3d", Gh = ` 21558 :host .swiper-slide { 21559 pointer-events: auto !important; 21560 overflow: visible !important; 21561 } 21562 @media (min-width: 1200px) { 21563 :host .swiper-slide-prev, 21564 :host .swiper-slide-next { 21565 z-index: 1 !important; 21566 cursor: pointer !important; 21567 } 21568 } 21569 `, Eh = "", lc = (() => { 21570 class t { 21571 timer; 21572 instanceId = `carousel-health-${Math.random().toString(36).slice(2)}`; 21573 timerService = s(de); 21574 logger = s(Ot); 21575 host; 21576 start(e) { 21577 this.host = e, this.stop(), this.timer = this.timerService.setInterval(() => { 21578 !this.isSlideStateValid() && e.isInitialized() && this.recoverFromDesync(); 21579 }, ge.HEALTH_CHECK_INTERVAL_MS); 21580 } 21581 stop() { 21582 this.timer && (this.timerService.clearInterval(this.timer), this.timer = void 0); 21583 } 21584 isSlideStateValid() { 21585 let e = this.host.getSwiper(); 21586 if (!e) return !1; 21587 let n = e.activeIndex; 21588 if (n < 0 || n >= this.host.getSlideCount()) return !1; 21589 let i = e.slides; 21590 return !(!i || i.length === 0); 21591 } 21592 recoverFromDesync() { 21593 if (!(!this.host.getSwiper() || !this.host.isInitialized())) try { 21594 let e = this.host.getLastValidIndex(); 21595 e >= 0 && e < this.host.getGamesLength() ? this.navigateToTarget(e) : this.navigateToInitialSlide(); 21596 } catch (e) { 21597 this.logger.error(`[Carousel:${this.instanceId}] Recovery failed:`, e), this.reinitializeCarousel(); 21598 } 21599 } 21600 navigateToTarget(e) { 21601 let n = this.host.getSwiper(); 21602 if (!n) return; 21603 let i = n.realIndex, r = this.host.getGamesLength(); 21604 if (i === e) { 21605 this.host.setActiveIndex(e); 21606 return; 21607 } 21608 this.slideToIndex(i, e, r), this.host.setActiveIndex(e); 21609 } 21610 navigateToInitialSlide() { 21611 let e = this.host.getSwiper(); 21612 if (!e) return; 21613 let n = e.realIndex, i = this.host.getInitialSlide(), r = this.host.getGamesLength(); 21614 this.slideToIndex(n, i, r), this.host.setActiveIndex(this.host.getInitialSlide()); 21615 } 21616 slideToIndex(e, n, i) { 21617 let r = this.host.getSwiper(); 21618 if (!r) return; 21619 let u = C0(e, n, i); 21620 for (let v = 0; v < u.steps; v++) u.direction === "next" ? r.slideNext(0) : r.slidePrev(0); 21621 } 21622 reinitializeCarousel() { 21623 let e = this.host.getSwiper(); 21624 if (e) try { 21625 let n = this.host.getActiveIndex(); 21626 e.destroy(!1, !1), this.timerService.setTimeout(() => { 21627 this.host.initialize(); 21628 let i = this.host.getSwiper(); 21629 i && n >= 0 && n < this.host.getSlideCount() && i.slideTo(n, 0, !1); 21630 }, ge.REINIT_DELAY); 21631 } catch (n) { 21632 this.logger.error(`[Carousel:${this.instanceId}] Reinitialization failed:`, n); 21633 } 21634 } 21635 static ɵfac = function(e) { 21636 return new (e || t)(); 21637 }; 21638 static ɵprov = A({ 21639 token: t, 21640 factory: t.ɵfac 21641 }); 21642 } 21643 return t; 21644 })(), dc = (() => { 21645 class t { 21646 document = s(Ge); 21647 renderer = s(No).createRenderer(null, null); 21648 teardowns = []; 21649 setup(e) { 21650 this.setupAdjacentSlideCursor(e), this.setupAdjacentSlideClickNavigation(e); 21651 } 21652 cleanup() { 21653 this.teardowns.forEach((e) => e()), this.teardowns.length = 0; 21654 } 21655 setupAdjacentSlideCursor(e) { 21656 let { wrapper: n } = e; 21657 if (!n) return; 21658 let i = this.renderer.listen(n, "mousemove", (u) => { 21659 if (!e.getSwiper()) return; 21660 let v = y0(this.getSlideRects(e.container), u.clientX, u.clientY); 21661 this.renderer.setStyle(n, "cursor", v ? "pointer" : ""); 21662 }), r = this.renderer.listen(n, "mouseleave", () => { 21663 this.renderer.setStyle(n, "cursor", ""); 21664 }); 21665 this.teardowns.push(i, r); 21666 } 21667 setupAdjacentSlideClickNavigation(e) { 21668 let n = this.renderer.listen(this.document, "click", (i) => { 21669 if (!e.getSwiper() || !e.canNavigate()) return; 21670 let r = w0(this.getSlideRects(e.container), i.clientX, i.clientY); 21671 (r === "prev" || r === "next") && this.navigateToAdjacent(e, r); 21672 }); 21673 this.teardowns.push(n); 21674 } 21675 navigateToAdjacent(e, n) { 21676 let i = e.getSwiper(); 21677 i && (e.lock.suppressHover(), n === "prev" ? i.slidePrev() : i.slideNext()); 21678 } 21679 getSlideRects(e) { 21680 let n = e.querySelector(".swiper-slide-active"), i = e.querySelector(".swiper-slide-prev"), r = e.querySelector(".swiper-slide-next"); 21681 return { 21682 container: e.getBoundingClientRect(), 21683 active: n?.getBoundingClientRect(), 21684 prev: i?.getBoundingClientRect(), 21685 next: r?.getBoundingClientRect() 21686 }; 21687 } 21688 static ɵfac = function(e) { 21689 return new (e || t)(); 21690 }; 21691 static ɵprov = A({ 21692 token: t, 21693 factory: t.ɵfac 21694 }); 21695 } 21696 return t; 21697 })(), gc = (() => { 21698 class t { 21699 isActive = O(!1); 21700 hoverSuppressed = O(!1); 21701 autoReleaseTimer; 21702 hoverTimer; 21703 timerService = s(de); 21704 acquire() { 21705 return this.isActive() ? !1 : (this.cancelAutoRelease(), this.isActive.set(!0), this.suppressHover(), this.autoReleaseTimer = this.timerService.setTimeout(() => { 21706 this.release(), this.scheduleHoverRelease(); 21707 }, ge.MAX_TRANSITION_DURATION), !0); 21708 } 21709 release() { 21710 this.cancelAutoRelease(), this.isActive() && this.isActive.set(!1); 21711 } 21712 suppressHover() { 21713 this.hoverSuppressed.set(!0), this.clearHoverTimer(); 21714 } 21715 scheduleHoverRelease() { 21716 this.clearHoverTimer(), this.hoverTimer = this.timerService.setTimeout(() => this.hoverSuppressed.set(!1), ge.HOVER_SUPPRESSION_DELAY); 21717 } 21718 resetHover() { 21719 this.hoverSuppressed.set(!1); 21720 } 21721 cleanup() { 21722 this.clearHoverTimer(), this.cancelAutoRelease(); 21723 } 21724 clearHoverTimer() { 21725 this.hoverTimer && (this.timerService.clearTimeout(this.hoverTimer), this.hoverTimer = void 0); 21726 } 21727 cancelAutoRelease() { 21728 this.autoReleaseTimer && (this.timerService.clearTimeout(this.autoReleaseTimer), this.autoReleaseTimer = void 0); 21729 } 21730 static ɵfac = function(e) { 21731 return new (e || t)(); 21732 }; 21733 static ɵprov = A({ 21734 token: t, 21735 factory: t.ɵfac 21736 }); 21737 } 21738 return t; 21739 })(), mc = (() => { 21740 class t { 21741 activeIndex = O(0); 21742 bootstrapped = O(!1); 21743 isInitialized = O(!1); 21744 slideUpdateInProgress = O(!1);
21745 lastValidIndex = O(0); 21746 pendingSlideChange = !1; 21747 isPerformingInstantJump = !1; 21748 isVisible = !0; 21749 isPageVisible = !0; 21750 removeVisibilityListener; 21751 swiperEventUnlisteners = []; 21752 instanceId = `carousel-${Math.random().toString(36).slice(2)}`; 21753 swiperSignal = O(void 0); 21754 ctx; 21755 timerService = s(de); 21756 logger = s(Ot); 21757 platform = s(X); 21758 document = s(Ge); 21759 injector = s(gt); 21760 renderer = s(No).createRenderer(null, null); 21761 lock = s(gc); 21762 pointerNav = s(dc); 21763 healthMonitor = s(lc); 21764 healthHost = { 21765 getSwiper: () => this.swiper, 21766 isInitialized: () => this.isInitialized(), 21767 getActiveIndex: () => this.activeIndex(), 21768 setActiveIndex: (e) => this.activeIndex.set(e), 21769 getLastValidIndex: () => this.lastValidIndex(), 21770 getSlideCount: () => this.ctx.slideCount(), 21771 getGamesLength: () => this.ctx.games().length, 21772 getInitialSlide: () => this.ctx.initialSlide(), 21773 initialize: () => this.initialize() 21774 }; 21775 get isSlideTransitionActive() { 21776 return this.lock.isActive; 21777 } 21778 get activeSlideIndex() { 21779 return this.activeIndex.asReadonly(); 21780 } 21781 get isSlideUpdateInProgress() { 21782 return this.slideUpdateInProgress.asReadonly(); 21783 } 21784 get hoverSuppressed() { 21785 return this.lock.hoverSuppressed; 21786 } 21787 hasBootstrapped = this.bootstrapped.asReadonly(); 21788 get swiper() { 21789 return this.swiperSignal(); 21790 } 21791 set swiper(e) { 21792 this.swiperSignal.set(e); 21793 } 21794 bootstrap(e) { 21795 this.ctx = e, this.activeIndex.set(e.initialSlide()), this.bootstrapped.set(!0), e.games().length > 0 && this.initialize(), this.observeVisibilityAndReattach(), e.isMobile() || this.setupDesktopPointerNavigation(); 21796 } 21797 onPrevClick() { 21798 this.lock.isActive() || this.slideUpdateInProgress() || this.swiper?.slidePrev(); 21799 } 21800 onNextClick() { 21801 this.lock.isActive() || this.slideUpdateInProgress() || this.swiper?.slideNext(); 21802 } 21803 onSlideClick(e, n) { 21804 let i = this.swiper?.activeIndex ?? this.activeIndex(); 21805 if (e === this.swiper?.activeIndex) this.lock.release(), this.slideUpdateInProgress.set(!1); 21806 else { 21807 if (this.shouldPreventSlideClick(e, n)) return; 21808 e !== i && (n?.stopPropagation(), n?.preventDefault(), this.navigateToAdjacentSlide(e, i)); 21809 } 21810 } 21811 cleanup() { 21812 this.healthMonitor.stop(), this.lock.cleanup(), this.pointerNav.cleanup(), this.teardownSwiperEventListeners(), this.removeVisibilityListener?.(), this.removeVisibilityListener = void 0, this.swiper?.destroy?.(!0, !0); 21813 } 21814 setupDesktopPointerNavigation() { 21815 let e = this.ctx.swiperElement(); 21816 e && this.pointerNav.setup({ 21817 container: e, 21818 wrapper: this.ctx.hostElement().querySelector(this.ctx.carouselWrapperSelector), 21819 getSwiper: () => this.swiper, 21820 canNavigate: () => !this.lock.isActive() && !this.slideUpdateInProgress(), 21821 lock: this.lock 21822 }); 21823 } 21824 initialize() { 21825 let e = this.ctx.swiperElement(); 21826 e && (this.setupSwiperEventListeners(e), this.applySwiperConfig(e), e.initialize(), this.swiper = e.swiper, this.healthMonitor.start(this.healthHost)); 21827 } 21828 applySwiperConfig(e) { 21829 Object.assign(e, p0(this.ctx.initialSlide())); 21830 } 21831 setupSwiperEventListeners(e) { 21832 this.teardownSwiperEventListeners(), this.setupAfterInitListener(e), this.setupSlideChangeListener(e), this.setupTransitionStartListener(e), this.setupTransitionEndListener(e), this.setupLoopFixListener(e); 21833 } 21834 teardownSwiperEventListeners() { 21835 this.swiperEventUnlisteners.forEach((e) => e()), this.swiperEventUnlisteners.length = 0; 21836 } 21837 setupAfterInitListener(e) { 21838 let n = this.renderer.listen(e, "swiperafterinit", () => { 21839 this.activeIndex.set(this.ctx.initialSlide()), this.isInitialized.set(!0), this.applySlideStyles(); 21840 }); 21841 this.swiperEventUnlisteners.push(n); 21842 } 21843 setupSlideChangeListener(e) { 21844 let n = this.renderer.listen(e, "swiperslidechange", (i) => { 21845 let r = i; 21846 r.stopPropagation(); 21847 let u = r.target.swiper; 21848 u && this.handleSlideChange(u); 21849 }); 21850 this.swiperEventUnlisteners.push(n); 21851 } 21852 handleSlideChange(e) { 21853 let n = e.activeIndex, i = this.ctx.clonedSlidesPerSide(), r = this.ctx.games().length; 21854 if (n !== this.activeIndex()) { 21855 if (this.shouldDeferSlideChange()) { 21856 this.deferSlideChange(e); 21857 return; 21858 } 21859 this.isValidSlideIndex(n) && this.handleInfiniteLoopWrapping(n, i, r); 21860 } 21861 } 21862 shouldDeferSlideChange() { 21863 return this.lock.isActive() || this.pendingSlideChange; 21864 } 21865 deferSlideChange(e) { 21866 this.pendingSlideChange || (this.pendingSlideChange = !0, this.timerService.setTimeout(() => { 21867 this.handleDeferredSlideChange(e); 21868 }, ge.INIT_DELAY)); 21869 } 21870 isValidSlideIndex(e) { 21871 return e >= 0 && e < this.ctx.slideCount(); 21872 } 21873 handleInfiniteLoopWrapping(e, n, i) { 21874 let r = Zd(e, n, i);
21875 if (r.kind === "jump") { 21876 this.performInstantJump(r.jumpToIndex); 21877 return; 21878 } 21879 this.updateSlidePosition(e); 21880 } 21881 performInstantJump(e) { 21882 this.isPerformingInstantJump = !0, this.timerService.setTimeout(() => { 21883 this.swiper && (this.swiper.slideTo(e, 0, !1), this.activeIndex.set(e), this.resetInstantJumpFlag()); 21884 }, 0); 21885 } 21886 resetInstantJumpFlag() { 21887 this.timerService.setTimeout(() => { 21888 this.isPerformingInstantJump = !1; 21889 }, 0); 21890 } 21891 updateSlidePosition(e) { 21892 this.lastValidIndex.set(this.activeIndex()), this.activeIndex.set(e), this.applySlideStyles(); 21893 } 21894 setupTransitionStartListener(e) { 21895 let n = this.renderer.listen(e, "swiperslidechangetransitionstart", () => { 21896 this.isPerformingInstantJump || this.lock.acquire(); 21897 }); 21898 this.swiperEventUnlisteners.push(n); 21899 } 21900 setupTransitionEndListener(e) { 21901 let n = this.renderer.listen(e, "swiperslidechangetransitionend", () => { 21902 this.swiper && this.handleTransitionEnd(); 21903 }); 21904 this.swiperEventUnlisteners.push(n); 21905 } 21906 handleTransitionEnd() { 21907 let e = this.swiper; 21908 e && (this.lock.release(), this.pendingSlideChange = !1, this.correctWrappedPosition(e.activeIndex), this.lock.scheduleHoverRelease(), this.applySlideStyles()); 21909 } 21910 correctWrappedPosition(e) { 21911 let n = this.swiper; 21912 if (!n) return; 21913 let i = b0(e, this.ctx.clonedSlidesPerSide(), this.ctx.games().length); 21914 i != null && n.slideTo(i, 0, !1), this.activeIndex.set(i ?? e); 21915 } 21916 refreshLayout() { 21917 if (!this.swiper) return; 21918 let e = this.ctx.hostElement().querySelector(this.ctx.carouselWrapperSelector); 21919 e && this.renderer.addClass(e, "suppress-slide-transition"), this.swiper.update(), this.applySlideStyles(), e && this.timerService.setTimeout(() => this.renderer.removeClass(e, "suppress-slide-transition"), ge.INIT_DELAY, { serverMode: "omit" }); 21920 } 21921 applySlideStyles() { 21922 if (this.ctx.isMobile() || !this.swiper) return; 21923 let e = this.swiper.slides, n = this.swiper.activeIndex; 21924 if (e) for (let i = 0; i < e.length; i++) { 21925 let r = e[i]; 21926 (r.classList.contains("swiper-slide-prev") || r.classList.contains("swiper-slide-next")) && this.renderer.setStyle(r, "zIndex", "1"); 21927 let u = Math.abs(i - n); 21928 this.renderer.removeClass(r, "slide-distance-1"), this.renderer.removeClass(r, "slide-distance-2"), this.renderer.removeClass(r, "slide-distance-3"); 21929 let v = P0(u, r.classList.contains("swiper-slide-active")); 21930 v && this.renderer.addClass(r, v); 21931 } 21932 } 21933 setupLoopFixListener(e) { 21934 let n = this.renderer.listen(e, "swiperloopfix", () => { 21935 this.slideUpdateInProgress.set(!0), this.timerService.setTimeout(() => { 21936 this.slideUpdateInProgress.set(!1); 21937 }, ge.LOOP_FIX_DELAY); 21938 }); 21939 this.swiperEventUnlisteners.push(n); 21940 } 21941 handleDeferredSlideChange(e) { 21942 if (!this.pendingSlideChange) return; 21943 let n = e.activeIndex; 21944 if (n < 0 || n >= this.ctx.slideCount()) { 21945 this.pendingSlideChange = !1; 21946 return; 21947 } 21948 n !== this.activeIndex() && (this.lastValidIndex.set(this.activeIndex()), this.activeIndex.set(n)), this.pendingSlideChange = !1; 21949 } 21950 shouldPreventSlideClick(e, n) { 21951 return this.lock.isActive() || this.slideUpdateInProgress() || e < 0 || e >= this.ctx.slideCount() ? (n?.stopPropagation(), n?.preventDefault(), !0) : !1; 21952 } 21953 navigateToAdjacentSlide(e, n) { 21954 if (!this.swiper) return; 21955 let i = this.ctx.slideCount(), r = e === (n + 1) % i, u = e === (n - 1 + i) % i; 21956 if (r || u) { 21957 this.lock.suppressHover(); 21958 try { 21959 r ? this.swiper.slideNext() : this.swiper.slidePrev(); 21960 } catch (v) { 21961 this.logger.error(`[Carousel:${this.instanceId}] Navigation failed:`, v), this.lock.resetHover(); 21962 } 21963 } 21964 } 21965 observeVisibilityAndReattach() { 21966 this.platform.runOnBrowser(() => { 21967 this.removeVisibilityListener = this.renderer.listen(this.document, "visibilitychange", () => { 21968 this.isPageVisible = !this.document.hidden, this.handleVisibilityChange(); 21969 }); 21970 let e = Mt((i) => { 21971 this.isVisible = i[0].isIntersecting, this.handleVisibilityChange(); 21972 }, { threshold: .1 }, this.injector), n = this.ctx.swiperElement(); 21973 n && e.observe(n); 21974 }); 21975 } 21976 handleVisibilityChange() { 21977 this.isVisible && this.isPageVisible && this.ctx.games().length > 0 && (this.swiper ? this.isSwiperConfigStale() && this.timerService.setTimeout(() => this.reinitializeAfterReattach(), ge.INIT_DELAY) : this.timerService.setTimeout(() => this.initialize(), ge.INIT_DELAY)); 21978 } 21979 isSwiperConfigStale() { 21980 let e = this.ctx.swiperElement(); 21981 if (!e) return !1; 21982 let n = e.swiper; 21983 if (!n) return !1; 21984 if (n !== this.swiper) return !0; 21985 let i = n.params; 21986 return !i || i.effect !== "coverflow"; 21987 } 21988 reinitializeAfterReattach() { 21989 let e = this.ctx.swiperElement(); 21990 if (e) { 21991 try { 21992 e.swiper?.destroy?.(!0, !1); 21993 } catch (n) { 21994 this.logger.error(`[Carousel:${this.instanceId}] Destroy during reinit failed:`, n); 21995 } 21996 this.applySwiperConfig(e), e.initialize(), this.swiper = e.swiper, this.lock.release(), this.lock.resetHover(), this.pendingSlideChange = !1, this.slideUpdateInProgress.set(!1), this.applySlideStyles(); 21997 } 21998 } 21999 static ɵfac = function(e) { 22000 return new (e || t)(); 22001 }; 22002 static ɵprov = A({ 22003 token: t, 22004 factory: t.ɵfac 22005 }); 22006 } 22007 return t; 22008 })(), pc = (() => { 22009 class t { 22010 document = s(Ge); 22011 window = s(pe); 22012 platform = s(X); 22013 timerService = s(de); 22014 renderer = s(No).createRenderer(null, null); 22015 lastPointer = null; 22016 scrollSettleTimer; 22017 teardowns = []; 22018 setup() { 22019 this.platform.runOnBrowser(() => { 22020 let e = this.renderer.listen(this.window, "mousemove", (i) => { 22021 this.lastPointer = { 22022 x: i.clientX, 22023 y: i.clientY 22024 }; 22025 }), n = () => this.scheduleRecheck(); 22026 this.window.addEventListener("scroll", n, { passive: !0 }), this.teardowns.push(e, () => this.window.removeEventListener("scroll", n)); 22027 }); 22028 } 22029 cleanup() { 22030 this.clearScrollSettleTimer(), this.teardowns.forEach((e) => e()), this.teardowns.length = 0; 22031 } 22032 recoverAfterSlideChange() { 22033 this.platform.runOnBrowser(() => { 22034 this.timerService.setTimeout(() => this.recheckHover(), ge.REINIT_DELAY, { serverMode: "omit" }); 22035 }); 22036 } 22037 scheduleRecheck() { 22038 this.clearScrollSettleTimer(), this.scrollSettleTimer = this.timerService.setTimeout(() => this.recheckHover(), ge.SCROLL_SETTLE_DELAY, { serverMode: "omit" }); 22039 } 22040 clearScrollSettleTimer() { 22041 this.scrollSettleTimer && (this.timerService.clearTimeout(this.scrollSettleTimer), this.scrollSettleTimer = void 0); 22042 } 22043 recheckHover() { 22044 let e = this.lastPointer; 22045 if (!e) return; 22046 let n = this.document.elementFromPoint(e.x, e.y); 22047 if (!n) return; 22048 let i = n.closest(".swiper-slide-active"); 22049 if (!i || !i.contains(n)) return; 22050 let r = { 22051 bubbles: !0, 22052 cancelable: !0, 22053 clientX: e.x, 22054 clientY: e.y 22055 }, u = n.closest(".casino-game-cls") ?? n; 22056 n.dispatchEvent(new MouseEvent("mouseover", r)), u.dispatchEvent(new MouseEvent("mouseenter", r)); 22057 } 22058 static ɵfac = function(e) { 22059 return new (e || t)(); 22060 }; 22061 static ɵprov = A({ 22062 token: t, 22063 factory: t.ɵfac 22064 }); 22065 } 22066 return t; 22067 }
22067)(), Ah = ["swiperContainer"], Rh = (t, o) => o.key, Dh = (() => { 22068 class t { 22069 carouselConfig = { 22070 mobile: { 22071 initialSlide: ge.MOBILE_INITIAL_SLIDE, 22072 centerSlideCol: ge.MOBILE_CENTER_COL, 22073 clonedSlidesPerSide: ge.SLIDES_PER_VIEW 22074 }, 22075 desktop: { 22076 initialSlide: ge.DESKTOP_INITIAL_SLIDE, 22077 centerSlideCol: ge.DESKTOP_CENTER_COL, 22078 clonedSlidesPerSide: ge.DESKTOP_CLONED_SLIDES 22079 } 22080 }; 22081 games = m.required(); 22082 layoutId = m.required(); 22083 containerId = m.required(); 22084 containerIndex = m.required(); 22085 containerTitle = m(""); 22086 containerType = m(""); 22087 deviceService = s(J); 22088 platform = s(X); 22089 destroyRef = s(q); 22090 elementRef = s(tt); 22091 controller = s(mc); 22092 hoverRecovery = s(pc); 22093 ga4TrackingService = s(Un); 22094 trackingContextService = s(jn); 22095 navigationService = s(he); 22096 favouriteService = s(Re); 22097 unfinishedGamesService = s(_t); 22098 isMobile = g(() => this.deviceService.windowWidth() < 768); 22099 deviceView = g(() => this.isMobile() ? "mobile" : "desktop"); 22100 clonedSlidesPerSide = g(() => this.carouselConfig[this.deviceView()].clonedSlidesPerSide); 22101 slidesWithClones = g(() => { 22102 let e = this.clonedSlidesPerSide(), n = this.games(), i = n.length; 22103 return u0(n, e).map((r, u) => ({ 22104 game: r, 22105 key: `${u < e ? "lead" : u < e + i ? "real" : "trail"}-${r.gameId}`, 22106 ariaLabel: h0(u, e, i) 22107 })); 22108 }); 22109 initialSlide = g(() => this.carouselConfig[this.deviceView()].initialSlide + this.clonedSlidesPerSide()); 22110 slideTabindex = g(() => this.isMobile() ? 0 : -1); 22111 centerSlideWidth = O(ge.DEFAULT_CENTER_SLIDE_WIDTH); 22112 isSlideTransitionActive = this.controller.isSlideTransitionActive; 22113 hoverSuppressed = this.controller.hoverSuppressed; 22114 activeSlideIndex = g(() => this.controller.hasBootstrapped() ? this.controller.activeSlideIndex() : this.initialSlide()); 22115 isSlideUpdateInProgress = this.controller.isSlideUpdateInProgress; 22116 hoverInteractionSuppressed = g(() => this.isSlideTransitionActive() || this.isSlideUpdateInProgress() || this.hoverSuppressed()); 22117 swiperContainer = De("swiperContainer"); 22118 constructor() { 22119 this.platform.runOnBrowser(() => V1()), Se(() => { 22120 this.calculateSwiperContainerColumnWidth(), this.controller.bootstrap(this.buildControllerContext()), this.hoverRecovery.setup(); 22121 }), this.destroyRef.onDestroy(() => { 22122 this.controller.cleanup(), this.hoverRecovery.cleanup(); 22123 }), this.platform.runOnBrowser(() => { 22124 Z(() => { 22125 let n = this.activeSlideIndex(), i = this.games(), r = i.length; 22126 if (r === 0) return; 22127 let u = Xd(n, this.clonedSlidesPerSide(), r), v = i[u]; 22128 !v || !this.containerId() || this.ga4TrackingService.reportImpression(this.buildCenterTileTrackingData(v, u)); 22129 }), ol(() => { 22130 this.slidesWithClones(), this.controller.refreshLayout(); 22131 }); 22132 let e = this.hoverInteractionSuppressed(); 22133 Z(() => { 22134 let n = this.hoverInteractionSuppressed(); 22135 e && !n && this.hoverRecovery.recoverAfterSlideChange(), e = n; 22136 }); 22137 }); 22138 } 22139 onPrevClick() { 22140 this.controller.onPrevClick(); 22141 } 22142 onNextClick() { 22143 this.controller.onNextClick(); 22144 } 22145 onSlideClick(e, n) { 22146 this.controller.onSlideClick(e, n); 22147 } 22148 calculateSwiperContainerColumnWidth() { 22149 let e = this.deviceView() === "mobile" ? ge.DEFAULT_MOBILE_CONTAINER_WIDTH : ge.DEFAULT_CONTAINER_WIDTH, n = this.swiperContainer()?.nativeElement?.offsetWidth || e, i = this.carouselConfig[this.deviceView()].centerSlideCol, r = this.deviceView() === "desktop" ? ge.DESKTOP_PADDING : ge.MOBILE_PADDING; 22150 this.centerSlideWidth.set(f0(n, i, r)); 22151 } 22152 buildCenterTileTrackingData(e, n) { 22153 let i = n + 1; 22154 return Pi({ 22155 game: e, 22156 containerId: this.containerId(), 22157 layoutId: this.layoutId() || this.navigationService.currentLayout(), 22158 subNavigation: this.navigationService.currentSubnav()?.id, 22159 containerType: this.containerType(), 22160 containerName: this.containerTitle(), 22161 gameIndex: i, 22162 containerIndex: this.containerIndex(), 22163 gridPosition: this.trackingContextService.getGridPosition(i, this.containerIndex()), 22164 playingStatus: this.unfinishedGamesService.getUnfinishedGames().includes(e.gameId) ? "unfinished" : "start", 22165 favouriteStatus: this.favouriteService.isFavourite(e.gameId) ? "favourite" : "non favourite" 22166 }); 22167 } 22168 buildControllerContext() { 22169 return { 22170 games: () => this.games(), 22171 clonedSlidesPerSide: () => this.clonedSlidesPerSide(), 22172 initialSlide: () => this.initialSlide(), 22173 isMobile: () => this.isMobile(), 22174 slideCount: () =>
22174 this.slidesWithClones().length, 22175 swiperElement: () => this.swiperContainer()?.nativeElement, 22176 hostElement: () => this.elementRef.nativeElement, 22177 carouselWrapperSelector: Lh 22178 }; 22179 } 22180 static ɵfac = function(e) { 22181 return new (e || t)(); 22182 }; 22183 static ɵcmp = I({ 22184 type: t, 22185 selectors: [["cw-enhanced-carousel-3d"]], 22186 viewQuery: function(e, n) { 22187 e & 1 && He(n.swiperContainer, Ah, 5), e & 2 && Ue(); 22188 }, 22189 inputs: { 22190 games: [1, "games"], 22191 layoutId: [1, "layoutId"], 22192 containerId: [1, "containerId"], 22193 containerIndex: [1, "containerIndex"], 22194 containerTitle: [1, "containerTitle"], 22195 containerType: [1, "containerType"] 22196 }, 22197 features: [ce([ 22198 mc, 22199 gc, 22200 dc, 22201 lc, 22202 pc 22203 ])], 22204 decls: 7, 22205 vars: 11, 22206 consts: [ 22207 ["swiperContainer", ""], 22208 [1, "carousel-3d-wrapper"], 22209 [1, "enhanced-carousel-3d"], 22210 ["init", "false"], 22211 [ 22212 1, 22213 "game", 22214 3, 22215 "id" 22216 ], 22217 [1, "carousel-controls"], 22218 [ 22219 1, 22220 "game", 22221 3, 22222 "click", 22223 "id" 22224 ], 22225 [ 22226 3, 22227 "game", 22228 "layoutId", 22229 "containerId", 22230 "containerIndex", 22231 "gameIndex", 22232 "containerTitle", 22233 "containerType", 22234 "showStickers", 22235 "inCarousel3d", 22236 "disableLaunch" 22237 ], 22238 [1, "carousel-arrow-wrapper"], 22239 [ 22240 "direction", 22241 "left", 22242 "size", 22243 "medium", 22244 "variant", 22245 "strong", 22246 3, 22247 "click", 22248 "disabled" 22249 ], 22250 [ 22251 "direction", 22252 "right", 22253 "size", 22254 "medium", 22255 "variant", 22256 "strong", 22257 3, 22258 "click", 22259 "disabled" 22260 ] 22261 ], 22262 template: function(e, n) { 22263 e & 1 && (l(0, "div", 1)(1, "div", 2)(2, "swiper-container", 3, 0), D(4, S0, 2, 14, "swiper-slide", 4, Rh), d()(), f(6, M0, 5, 8, "div", 5), d()), e & 2 && (k("height", n.centerSlideWidth(), "px"), a(), k("height", n.centerSlideWidth(), "px")("--%NS%active-slide-width", n.centerSlideWidth(), "px"), L("mobile", n.isMobile())("transitioning", n.isSlideTransitionActive() || n.hoverSuppressed()), a(3), R(n.slidesWithClones()), a(2), h(n.isMobile() ? -1 : 6)); 22264 }, 22265 dependencies: [Tn, ia], 22266 styles: [".carousel-3d-wrapper[_ngcontent-%COMP%]{position:relative;width:100%}@media(min-width:1200px){.carousel-3d-wrapper[_ngcontent-%COMP%]{max-width:1200px;margin-inline:auto}}@media(max-width:767px){.carousel-3d-wrapper[_ngcontent-%COMP%]{max-width:390px;margin-inline:auto}}.enhanced-carousel-3d[_ngcontent-%COMP%]{position:relative;width:100%;display:flex;align-items:center;justify-content:center;overflow:hidden;-webkit-user-select:none;user-select:none;contain:layout style;perspective:1200px}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-container[_ngcontent-%COMP%]{width:100%;height:100%;overflow:hidden;contain:layout}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%]{background-position:center;background-size:cover;flex-shrink:0;border-radius:var(--%NS%semantic-radius-semi-rounded-sm);overflow:hidden;cursor:pointer;transition:transform .3s ease,opacity .3s ease;will-change:transform,opacity}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%] cw-game-lobby[_ngcontent-%COMP%] .image-load-div[_ngcontent-%COMP%]{transform:scale(1)!important}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide.swiper-slide-active[_ngcontent-%COMP%]:hover cw-game-lobby[_ngcontent-%COMP%] .game-image-link[_ngcontent-%COMP%]{transform:scale(1.03);transition:transform .2s ease}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%]{contain:layout style;pointer-events:auto;position:relative}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%]:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:var(--%NS%semantic-color-surface-overlay);pointer-events:none;transition:opacity .3s ease;border-radius:var(--%NS%semantic-radius-semi-rounded-sm);opacity:.3}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide.swiper-slide-active[_ngcontent-%COMP%]{width:var(--%NS%active-slide-width)!important}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide.swiper-slide-prev[_ngcontent-%COMP%]:after, .enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide.swiper-slide-next[_ngcontent-%COMP%]:after{opacity:.15}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%] .swiper-slide-shadow-left[_ngcontent-%COMP%], .enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%] .swiper-slide-shadow-right[_ngcontent-%COMP%]{display:none}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%] cw-game-lobby[_ngcontent-%COMP%]{display:block;width:100%;height:100%;contain:layout style;pointer-events:none;touch-action:none}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide.swiper-slide-active[_ngcontent-%COMP%] cw-game-lobby[_ngcontent-%COMP%]{pointer-events:all;touch-action:none}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide.swiper-slide-duplicate[_ngcontent-%COMP%]{pointer-events:none}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%]:after{content:\"\";position:absolute;inset:0;background-color:var(--%NS%semantic-color-surface-base);border-radius:var(--%NS%semantic-radius-semi-rounded-sm);pointer-events:none;opacity:.3;transition:opacity .3s ease}.enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide.swiper-slide-active[_ngcontent-%COMP%]:after{opacity:0}
22266.enhanced-carousel-3d.suppress-slide-transition[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%]{transition:none!important}.enhanced-carousel-3d[_ngcontent-%COMP%]:not(.mobile) swiper-slide[_ngcontent-%COMP%]:not(.swiper-slide-active):not(.swiper-slide-prev):not(.swiper-slide-next){pointer-events:none;cursor:default}.enhanced-carousel-3d[_ngcontent-%COMP%]:not(.mobile) swiper-slide.swiper-slide-visible[_ngcontent-%COMP%]:not(.swiper-slide-active):after{opacity:.15}.enhanced-carousel-3d.mobile[_ngcontent-%COMP%] swiper-slide.swiper-slide-prev[_ngcontent-%COMP%]:after, .enhanced-carousel-3d.mobile[_ngcontent-%COMP%] swiper-slide.swiper-slide-next[_ngcontent-%COMP%]:after{opacity:.15}.enhanced-carousel-3d.mobile[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%] cw-game-lobby[_ngcontent-%COMP%]{pointer-events:none;touch-action:none}.enhanced-carousel-3d.mobile[_ngcontent-%COMP%] swiper-slide.swiper-slide-active[_ngcontent-%COMP%] cw-game-lobby[_ngcontent-%COMP%]{pointer-events:all;touch-action:auto}.transitioning[_ngcontent-%COMP%]:not(.mobile) .enhanced-carousel-3d[_ngcontent-%COMP%] swiper-slide[_ngcontent-%COMP%]{pointer-events:none}.enhanced-carousel-3d[_ngcontent-%COMP%] .swiper-button-prev[_ngcontent-%COMP%]:after, .enhanced-carousel-3d[_ngcontent-%COMP%] .swiper-button-next[_ngcontent-%COMP%]:after{content:none}.carousel-controls[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);width:100%;z-index:10;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.carousel-controls[_ngcontent-%COMP%] .carousel-arrow-wrapper[_ngcontent-%COMP%]{pointer-events:auto;margin-inline:var(--%NS%semantic-spacing-inline-md)}"] 22267 }); 22268 } 22269 return t; 22270 })(), zh = { 22271 blackjack: { 22272 icon: "theme-livecasino-blackjack", 22273 label: "Black Jack" 22274 }, 22275 roulette: { 22276 icon: "theme-livecasino-roulette", 22277 label: "Roulette" 22278 }, 22279 moneywheel: { 22280 icon: "theme-dt-slots", 22281 label: "Money Wheel" 22282 }, 22283 texasholdem: { 22284 icon: "theme-tablegames", 22285 label: "Texas Holdem" 22286 }, 22287 baccarat: { 22288 icon: "theme-live-dealer", 22289 label: "Baccarat" 22290 }, 22291 slots: { 22292 icon: "theme-dt-slots", 22293 label: "Slots" 22294 } 22295 }, Bh = { 22296 icon: "theme-star", 22297 label: "Casino Game" 22298 }, Fh = "from_casino_lobby", Vh = "theme-heart-solid", jh = "theme-heart-outline", $h = "theme-rating-star-full", Wh = "theme-rating-star-empty", Uh = "theme-account-i", Hh = "Remove from favorites", qh = "Add to favorites", Jh = "12", Yh = "16", uc = "medium", Kh = "large", hc = { 22299 start: 11, 22300 end: 18 22301 }, fc = { 22302 start: 29, 22303 end: 36 22304 }, vc = { 22305 start: 1, 22306 end: 10 22307 }, bc = { 22308 start: 19, 22309 end: 28 22310 }, Nn = { 22311 green: "#8BBD23", 22312 red: "#F01E28", 22313 black: "#2e2e2ee5" 22314 }, Cc = 650, Qh = 5, Xh = (() => { 22315 class t { 22316 card = m.required(); 22317 hideActivePlayerCount = m(!1); 22318 hideMinMaxBet = m(!1); 22319 useFavouriteHeart = m(!1); 22320 markGameAsFavourite = j(); 22321 launchGameRequest = j(); 22322 hostWindow = s(pe); 22323 user = s(Je); 22324 injector = s(gt); 22325 destroyRef = s(q); 22326 genreIcon = g(() => zh[this.card().genre?.toLowerCase()]?.icon ?? Bh.icon); 22327 accountIcon = Uh; 22328 fromCasinoLobby = Fh; 22329 isAuth = g(() => this.user.isAuthenticated); 22330 windowWidth = O(0); 22331 resizeListener; 22332 slotIconSize = g(() => this.windowWidth() < Cc ? Jh : Yh); 22333 favIconSize = g(() => this.windowWidth() < Cc ? uc : Kh); 22334 btnMainCtaSize = uc; 22335 favouriteAriaLabel = g(() => this.card().isFavourite && this.isAuth() ? Hh : qh); 22336 favouriteIcon = g(() => { 22337 let e = this.card().isFavourite && this.isAuth(); 22338 return this.useFavouriteHeart() ? e ? Vh : jh : e ? $h : Wh; 22339 }); 22340 constructor() { 22341 Se(() => { 22342 this.windowWidth.set(this.hostWindow.innerWidth), this.resizeListener = () => this.windowWidth.set(this.hostWindow.innerWidth), this.hostWindow.addEventListener("resize", this.resizeListener, { passive: !0 }); 22343 }, { injector: this.injector }), this.destroyRef.onDestroy(() => { 22344 this.resizeListener && this.hostWindow.removeEventListener("resize", this.resizeListener); 22345 }); 22346 }
22347 sliceLastResults(e) { 22348 return e.slice(0, Qh); 22349 } 22350 lastResultNumberColor(e) { 22351 if (e === 0) return Nn.green; 22352 let n = e >= hc.start && e <= hc.end || e >= fc.start && e <= fc.end, i = e >= vc.start && e <= vc.end || e >= bc.start && e <= bc.end; 22353 return n ? e % 2 === 0 ? Nn.red : Nn.black : i ? e % 2 === 0 ? Nn.black : Nn.red : Nn.black; 22354 } 22355 toggleFavourite(e) { 22356 e.stopImmediatePropagation(), this.markGameAsFavourite.emit(this.card()); 22357 } 22358 launchGame(e) { 22359 e.stopPropagation(); 22360 let n = this.card().gameLaunchData; 22361 n && this.launchGameRequest.emit(n); 22362 } 22363 static ɵfac = function(e) { 22364 return new (e || t)(); 22365 }; 22366 static ɵcmp = I({ 22367 type: t, 22368 selectors: [["cw-game-card"]], 22369 inputs: { 22370 card: [1, "card"], 22371 hideActivePlayerCount: [1, "hideActivePlayerCount"], 22372 hideMinMaxBet: [1, "hideMinMaxBet"], 22373 useFavouriteHeart: [1, "useFavouriteHeart"] 22374 }, 22375 outputs: { 22376 markGameAsFavourite: "markGameAsFavourite", 22377 launchGameRequest: "launchGameRequest" 22378 }, 22379 decls: 22, 22380 vars: 16, 22381 consts: [ 22382 [ 22383 "variant", 22384 "surface-lowest", 22385 1, 22386 "surface-lowest" 22387 ], 22388 [1, "game-card-banner"], 22389 [1, "gradient-banner"], 22390 [1, "image-banner"], 22391 [1, "top-section"], 22392 [1, "tag-label"], 22393 [1, "btn-favourite"], 22394 [ 22395 "ds-button-icon", 22396 "", 22397 "variant", 22398 "filled", 22399 "kind", 22400 "secondary", 22401 3, 22402 "click", 22403 "size" 22404 ], 22405 [ 22406 "size", 22407 "16", 22408 1, 22409 "favourite-icon-color", 22410 3, 22411 "name" 22412 ], 22413 [1, "mid-section"], 22414 [1, "card-info"], 22415 [1, "game-genre"], 22416 [ 22417 3, 22418 "name", 22419 "size" 22420 ], 22421 [1, "lbl-slots"], 22422 [1, "reason-tag"], 22423 [1, "player-stats"], 22424 [1, "main-cta"], 22425 [ 22426 "ds-button", 22427 "", 22428 "variant", 22429 "filled", 22430 "kind", 22431 "primary", 22432 3, 22433 "click", 22434 "size" 22435 ], 22436 [1, "end-section"], 22437 [ 22438 "variant", 22439 "red", 22440 "size", 22441 "medium", 22442 1, 22443 "card-badge" 22444 ], 22445 [1, "user"], 22446 [1, "bet-range"], 22447 [ 22448 "name", 22449 "theme-account-i", 22450 "size", 22451 "12" 22452 ], 22453 [1, "count"], 22454 [1, "roulette-container"], 22455 [1, "number-box"], 22456 [ 22457 1, 22458 "number-box", 22459 "divider" 22460 ] 22461 ], 22462 template: function(e, n) { 22463 e & 1 && (l(0, "ds-card", 0)(1, "div", 1), b(2, "div", 2), l(3, "div", 3)(4, "div", 4), f(5, O0, 3, 1, "div", 5), l(6, "div", 6)(7, "button", 7), S("click", function(i) { 22464 return n.toggleFavourite(i); 22465 }), b(8, "vn-icon", 8), d()()(), l(9, "div", 9)(10, "div", 10)(11, "div", 11), b(12, "vn-icon", 12), l(13, "span", 13), C(14), d()(), l(15, "div", 14), C(16), d(), f(17, k0, 3, 2, "div", 15), l(18, "div", 16)(19, "button", 17), S("click", function(i) { 22466 return n.launchGame(i); 22467 }), C(20), d()()()(), f(21, N0, 4, 0, "div", 18), d()()()), e & 2 && (a(2), k("background-image", "url(" + n.card().cardImage + ")"), a(), k("background-image", "url(" + n.card().cardImage + ")"), a(2), h(n.card().tagLabel ? 5 : -1), a(2), p("size", n.favIconSize()), T("aria-label", n.favouriteAriaLabel()), a(), p("name", n.favouriteIcon()), a(4), p("name", n.genreIcon())("size", n.slotIconSize()), a(2), x(n.card().genre), a(2), x(n.card().reasonTag), a(), h(!n.hideActivePlayerCount() || !n.hideMinMaxBet() ? 17 : -1), a(2), p("size", n.btnMainCtaSize), a(), E(" ", n.card().mainCta, " "), a(), h(n.card().results?.length ? 21 : -1)); 22468 }, 22469 dependencies: [ 22470 Ul, 22471 Ee, 22472 Qo, 22473 ke, 22474 Bn 22475 ], 22476 styles: [".swiper-slide[_ngcontent-%COMP%]{display:block}.surface-lowest[_ngcontent-%COMP%]{border-radius:20px;
22476box-shadow:var(--%NS%cs-game-card-box-shadow-for-mobile);margin:0 auto;min-width:244px;max-width:calc(100vw - 100px);border:var(--%NS%cs-game-card-border)}.game-card-banner[_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100%;position:relative;border-radius:20px;overflow:hidden}.game-card-banner[_ngcontent-%COMP%] .gradient-banner[_ngcontent-%COMP%]{position:relative;bottom:0;left:0;width:100%;height:116px;display:flex;padding:var(--%NS%semantic-spacing-container-padding-2xl);flex-direction:column;align-items:flex-end;gap:var(--%NS%semantic-spacing-inline-lg);align-self:stretch;border-radius:0 0 20px 20px;filter:blur(20px);opacity:.6}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%]{padding:var(--%NS%semantic-spacing-container-padding-2xl);width:100%;height:99%;background-color:#d3d3d3;background-position:50%;background-size:cover;background-repeat:no-repeat;border-radius:20px 20px 0 0;align-self:stretch;aspect-ratio:1/1;object-fit:cover;order:-1}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:flex-start;height:32px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .tag-label[_ngcontent-%COMP%]{position:absolute}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .tag-label[_ngcontent-%COMP%] > .card-badge[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-strong-font-size);font-weight:var(--%NS%semantic-typography-label-md-strong-font-weight);line-height:var(--%NS%semantic-typography-label-md-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .btn-favourite[_ngcontent-%COMP%]{position:absolute;right:var(--%NS%semantic-spacing-container-padding-2xl)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .btn-favourite[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{border-radius:var(--%NS%semantic-radius-max);background:var(--%NS%semantic-color-opacity-strong-active, rgba(43, 43, 43, .6));box-shadow:0 var(--%NS%semantic-size-x1) var(--%NS%semantic-size-x5) 0 #00000040;-webkit-backdrop-filter:blur(1.99px);backdrop-filter:blur(1.99px)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .btn-favourite[_ngcontent-%COMP%] > button[_ngcontent-%COMP%] .favourite-icon-color[_ngcontent-%COMP%]{--%NS%ds-button-icon-color: var(--%NS%cs-legacy-fav-icon-color)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%]{position:absolute;z-index:1}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%]{color:var(--%NS%color-white)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .game-genre[_ngcontent-%COMP%]{height:16px;display:flex;align-items:center;gap:var(--%NS%semantic-spacing-inline-sm)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .game-genre[_ngcontent-%COMP%] .lbl-slots[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-md-font-weight);line-height:var(--%NS%semantic-typography-label-md-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .reason-tag[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-container-padding-sm) 0 var(--%NS%semantic-spacing-container-padding-xl);height:40px;width:100%;font-family:var(--%NS%semantic-typography-title-font-family);font-size:var(--%NS%semantic-typography-body-md-strong-font-size);font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight);line-height:var(--%NS%cs-reason-tag-line-height-for-mobile);display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%]{top:90px;
22476gap:16px;display:flex}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%] .user[_ngcontent-%COMP%]{height:16px;gap:var(--%NS%semantic-spacing-container-padding-sm);display:flex;align-items:center}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%] .user[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-md-font-weight);line-height:var(--%NS%semantic-typography-label-md-line-height);display:contents}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%] .bet-range[_ngcontent-%COMP%]{display:flex;align-items:center;height:16px;min-width:80px;font-size:var(--%NS%semantic-typography-label-lg-strong-font-size);font-weight:var(--%NS%semantic-typography-label-lg-strong-font-weight);line-height:var(--%NS%semantic-typography-label-lg-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .main-cta[_ngcontent-%COMP%]{float:right;transform:translateY(-27px)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .main-cta[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{min-width:56px;font-size:var(--%NS%semantic-typography-label-md-strong-font-size);font-weight:var(--%NS%semantic-typography-label-md-strong-font-weight);line-height:var(--%NS%semantic-typography-label-md-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%]{bottom:122.63px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%] .roulette-container[_ngcontent-%COMP%]{display:flex;gap:3px;width:96px;position:absolute;bottom:122.63px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%] .roulette-container[_ngcontent-%COMP%] .number-box[_ngcontent-%COMP%]{display:flex;width:16px;height:16px;flex-direction:column;justify-content:center;align-items:center;color:var(--%NS%semantic-color-l2-navigation-on-background-base);font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-md-font-weight);line-height:var(--%NS%semantic-typography-label-md-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%] .roulette-container[_ngcontent-%COMP%] .divider[_ngcontent-%COMP%]{width:var(--%NS%semantic-size-xquarter);height:14px;background-color:var(--%NS%semantic-color-on-surface-divider);align-self:center}@media(max-width:649px){.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%]{bottom:0;height:116px;left:0;padding:var(--%NS%semantic-spacing-container-padding-2xl);right:0}}@media(min-width:650px){.surface-lowest[_ngcontent-%COMP%]{display:flex;width:442.09px;height:258px;flex-direction:row;align-items:flex-start;flex-shrink:0}.game-card-banner[_ngcontent-%COMP%]{width:442.09px;height:258px;flex-direction:row}.game-card-banner[_ngcontent-%COMP%] .gradient-banner[_ngcontent-%COMP%]{top:0;bottom:auto;width:184.09px;height:100%;display:flex;padding:var(--%NS%semantic-spacing-container-padding-4xl);flex-direction:column;justify-content:space-between;align-items:flex-start;flex:1 0 0;align-self:stretch;background:#1b1d27bf;border-radius:20px 0 0 20px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%]{padding:var(--%NS%semantic-spacing-container-padding-4xl);width:258px;height:99%;background-color:gray;position:absolute;left:184.09px;border-radius:0 20px 20px 0}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .tag-label[_ngcontent-%COMP%]{left:-152.09px;font-size:var(--%NS%semantic-typography-label-md-strong-font-size);font-weight:var(--%NS%semantic-typography-label-md-strong-font-we
22476ight);line-height:var(--%NS%semantic-typography-label-md-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .btn-favourite[_ngcontent-%COMP%]{right:var(--%NS%semantic-spacing-container-padding-4xl)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%]{width:120.09px;left:-152.09px;position:absolute;bottom:44px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%]{transform:unset}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .game-genre[_ngcontent-%COMP%] .lbl-slots[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-md-font-weight);line-height:var(--%NS%semantic-typography-label-md-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .reason-tag[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-container-padding-lg) 0;width:120.09px;height:auto;font-size:15px;font-weight:var(--%NS%semantic-typography-title-md-strong-font-weight);line-height:var(--%NS%semantic-typography-body-lg-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%]{top:0;gap:var(--%NS%semantic-spacing-container-padding-sm)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%] .bet-range[_ngcontent-%COMP%]{margin-left:var(--%NS%semantic-spacing-container-padding-lg);font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-lg-strong-font-weight);line-height:var(--%NS%semantic-typography-label-lg-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .main-cta[_ngcontent-%COMP%]{float:left;transform:translateY(12px)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .main-cta[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{width:102px;font-size:var(--%NS%semantic-typography-label-md-strong-font-size);font-weight:var(--%NS%semantic-typography-label-md-strong-font-weight);line-height:var(--%NS%semantic-typography-label-md-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%]{bottom:auto}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%] .roulette-container[_ngcontent-%COMP%]{bottom:var(--%NS%semantic-spacing-container-padding-4xl);right:var(--%NS%semantic-spacing-container-padding-4xl);left:auto}}@media(min-width:1200px){.surface-lowest[_ngcontent-%COMP%]{width:817.95px;height:293px;border-radius:var(--%NS%cs-game-card-desktop-border-radius);border:var(--%NS%cs-game-card-border);box-shadow:none}.game-card-banner[_ngcontent-%COMP%]{width:817.95px;height:293px}.game-card-banner[_ngcontent-%COMP%] .gradient-banner[_ngcontent-%COMP%]{width:219.93px;height:100%}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%]{width:598.02px;height:99%;left:219.93px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .tag-label[_ngcontent-%COMP%]{left:-187.09px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .top-section[_ngcontent-%COMP%] .btn-favourite[_ngcontent-%COMP%]{right:var(--%NS%semantic-spacing-container-padding-4xl)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%]{width:156px;left:-187.09px}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%]{transform:unset}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .game-genre[_ngcontent-%COMP%] .lbl-slots[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-font-size);
22476font-weight:var(--%NS%semantic-typography-label-lg-font-weight);line-height:var(--%NS%semantic-typography-label-lg-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .reason-tag[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-container-padding-lg) 0;width:155.91px;font-family:var(--%NS%semantic-typography-headline-font-family);font-size:var(--%NS%semantic-typography-title-md-font-size);font-weight:var(--%NS%semantic-typography-headline-sm-strong-font-weight);line-height:var(--%NS%semantic-typography-title-md-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%]{top:0;gap:var(--%NS%semantic-spacing-container-padding-sm)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%] .user[_ngcontent-%COMP%] .count[_ngcontent-%COMP%]{display:block}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .card-info[_ngcontent-%COMP%] .player-stats[_ngcontent-%COMP%] .bet-range[_ngcontent-%COMP%]{margin-left:var(--%NS%semantic-spacing-container-padding-lg);font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:var(--%NS%semantic-typography-label-lg-strong-font-weight);line-height:var(--%NS%semantic-typography-label-lg-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .main-cta[_ngcontent-%COMP%]{float:left;transform:translateY(12px)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .mid-section[_ngcontent-%COMP%] .main-cta[_ngcontent-%COMP%] > button[_ngcontent-%COMP%]{width:122px;font-size:var(--%NS%semantic-typography-label-lg-strong-font-size);font-weight:var(--%NS%semantic-typography-label-lg-strong-font-weight);line-height:var(--%NS%semantic-typography-label-lg-strong-line-height)}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%]{bottom:auto}.game-card-banner[_ngcontent-%COMP%] .image-banner[_ngcontent-%COMP%] .end-section[_ngcontent-%COMP%] .roulette-container[_ngcontent-%COMP%]{bottom:var(--%NS%semantic-spacing-container-padding-4xl);justify-self:flex-end}}"] 22477 }); 22478 } 22479 return t; 22480 })(), Zh = "Event.Tracking", yc = "casino widgets", lo = "not applicable", ef = "game-swiper-card", tf = "remove favourite", nf = "add favourite", af = "left swipe", of = "right swipe", wc = (() => { 22481 class t { 22482 vanillaTracking = s(we); 22483 trackingService = s(yl); 22484 trackFavouriteToggle(e, n) { 22485 this.vanillaTracking.trigger({ 22486 name: se.CasinoContainerInteractions, 22487 data: { 22488 [M.ComponentCategoryEvent]: yc, 22489 [M.ComponentActionEvent]: e.isFavourite ? tf : nf, 22490 [M.ComponentPositionEvent]: lo, 22491 [M.ComponentLocationEvent]: n, 22492 [M.ComponentEventDetails]: e.gameId 22493 } 22494 }); 22495 } 22496 trackSwipe(e, n, i, r) { 22497 let u = n > i ? af : of; 22498 this.trackingService.triggerEvent(Zh, { 22499 "component.EventDetails": e, 22500 "component.PositionEvent": lo, 22501 "component.LocationEvent": r, 22502 "component.CategoryEvent": yc, 22503 "component.LabelEvent": ef, 22504 "component.ActionEvent": u, 22505 "component.URLClicked": lo, 22506 "component.ContentPosition": n 22507 }); 22508 } 22509 static ɵfac = function(e) { 22510 return new (e || t)(); 22511 }; 22512 static ɵprov = A({ 22513 token: t, 22514 factory: t.ɵfac 22515 }); 22516 } 22517 return t; 22518 })(), rf = (t, o) => o.gameId, go = 3, sf = 3, cf = 480, lf = .1, Pc = "game-swiper-card", df = "Play Now", gf = "ButtonPlayNow", mf = "hideMinMaxBet", pf = "hideActivePlayerCount", uf = (() => { 22519 class t { 22520 swiperComponent; 22521 games = m.required(); 22522 layoutId = m(""); 22523 lobbyType = m(""); 22524 useFavouriteHeart = m(!1); 22525 frontendId = m(""); 22526 containerMetadata = m(); 22527 containerTitle = m(""); 22528 containerIndex = m(0); 22529 hideMinMaxBet = g(() => !!this.configProvider.provideFeaturesConfig()?.[mf]); 22530 hideActivePlayerCount = g(() => !!this.configProvider.provideFeaturesConfig()?.[pf]); 22531 markGameAsFavourite = j(); 22532 launchGameRequest = j(); 22533 loadNextGames = j(); 22534 trackingHelper = s(wc); 22535 configProvider = s(V); 22536 deviceService = s(J); 22537 platform = s(X); 22538 elementRef = s(tt); 22539 injector = s(gt); 22540 destroyRef = s(q); 22541 gameImageService = s(rt); 22542 favouriteService = s(Re); 22543 gameLaunchService = s(Qe); 22544 liveDealerService = s(Tt); 22545 hostWindow = s(pe); 22546 trackingContextService = s(jn); 22547 navigationService = s(he); 22548 activeIndices = O(new Set(Array.from({ length: 2 * go + 1 }, (e, n) => n))); 22549 previousIndex = 0;
22550 loadMoreEmitted = !1; 22551 windowWidth = O(0); 22552 resizeListener; 22553 constructor() { 22554 this.windowWidth.set(this.hostWindow.innerWidth), Se(() => { 22555 this.resizeListener = () => this.windowWidth.set(this.hostWindow.innerWidth), this.hostWindow.addEventListener("resize", this.resizeListener, { passive: !0 }), this.setupViewportObserver(), this.setupSwipeTracking(); 22556 }, { injector: this.injector }), this.destroyRef.onDestroy(() => { 22557 this.resizeListener && this.hostWindow.removeEventListener("resize", this.resizeListener), this.swiperComponent?.swiper?.destroy && this.swiperComponent.swiper.destroy(!0, !0); 22558 }), Z(() => { 22559 this.games(), this.loadMoreEmitted = !1, Se(() => { 22560 this.swiperComponent?.swiper?.update(); 22561 }, { injector: this.injector }); 22562 }); 22563 } 22564 isMobilePortrait = g(() => this.windowWidth() < cf); 22565 ctaText = g(() => this.configProvider.provideGlobalConfig()?.messages?.[gf] || df); 22566 gameCards = g(() => { 22567 let e = this.isMobilePortrait() ? ue.SuperSquare : ue.Landscape, n = this.ctaText(), i = this.layoutId(), r = this.lobbyType(); 22568 return this.games().map((u) => { 22569 let v = this.liveDealerService.getLiveGameInfo(u.gameId), P = v?.betLimits; 22570 return { 22571 gameId: u.gameId, 22572 cardImage: this.gameImageService.getIconConfigForType(u, e).src, 22573 isFavourite: this.favouriteService.isFavourite(u.gameId), 22574 tagLabel: u.stickers?.[0]?.name ?? "", 22575 reasonTag: u.name, 22576 genre: u.gameType || u.lobbyType || r || "", 22577 mainCta: n, 22578 playerCount: v?.players ?? 0, 22579 minBet: eg(P?.min, P?.symbol), 22580 maxBet: eg(P?.max, P?.symbol), 22581 results: v?.results ?? [], 22582 gameLaunchData: { 22583 gameId: u.gameId, 22584 gameName: u.name ?? "", 22585 gameContainer: i 22586 } 22587 }; 22588 }); 22589 }); 22590 swiperOptions = O({ 22591 modules: [ 22592 Iy, 22593 El, 22594 Fl, 22595 Ho 22596 ], 22597 effect: "cards", 22598 grabCursor: !0, 22599 slidesPerView: 1, 22600 cardsEffect: { 22601 rotate: !0, 22602 perSlideRotate: 1.7, 22603 perSlideOffset: 4.8, 22604 slideShadows: !1 22605 }, 22606 navigation: !this.deviceService.isTouch, 22607 on: { 22608 init: (e) => this.updateActiveRange(e.activeIndex), 22609 slideChange: (e) => this.updateActiveRange(e.activeIndex) 22610 } 22611 }); 22612 onFavouriteToggle(e) { 22613 this.favouriteService.toggleFavourite(e.gameId, this.favouriteTrackingContext(e)), this.trackingHelper.trackFavouriteToggle(e, this.layoutId()), this.markGameAsFavourite.emit(e); 22614 } 22615 gamePositions = g(() => new Map(this.games().map((e, n) => [e.gameId, n + 1]))); 22616 favouriteTrackingContext(e) { 22617 let n = this.gamePositions().get(e.gameId), i = n === void 0 ? void 0 : this.games()[n - 1]; 22618 return F(G({ 22619 gameName: i?.name ?? e.gameLaunchData?.gameName, 22620 provider: i?.provider 22621 }, Jd(this.containerMetadata())), { 22622 gameContainerName: this.containerTitle(), 22623 gameStatus: this.trackingContextService.getGameStatus(i?.isSignPostedGame), 22624 gamePosition: n, 22625 gameGridPosition: n === void 0 ? void 0 : this.trackingContextService.getGridPosition(n, this.containerIndex()), 22626 gameBadges: ya(i?.stickers), 22627 categoryType: this.layoutId() || this.lobbyType(), 22628 categorySubType: this.navigationService.currentSubnav()?.id 22629 }); 22630 } 22631 onGameLaunch(e) { 22632 let n = this.games().find((i) => i.gameId === e.gameId); 22633 n && (this.gameLaunchService.launchGame({ 22634 game: { 22635 gameId: n.gameId, 22636 name: n.name, 22637 provider: n.provider, 22638 lobbyType: this.lobbyType() || n.lobbyType 22639 }, 22640 isTouch: e.isTouch ?? this.deviceService.isTouch, 22641 gamePosition: e.gamePosition ?? 0, 22642 categoryType: e.categoryType ?? this.layoutId(), 22643 from: e.from ?? Pc, 22644 replaceRouteInHistory: e.replaceRouteInHistory ?? !1, 22645 isDemoLaunch: e.isDemoLaunch ?? !1, 22646 gameContainer: e.gameContainer || this.layoutId(), 22647 clickTimeStamp: e.clickTimeStamp ?? Date.now(), 22648 gameLaunchedFrom: e.gameLaunchedFrom ?? Pc 22649 }), this.launchGameRequest.emit(e)); 22650 } 22651 updateActiveRange(e) { 22652 let n = this.games().length; 22653 if (n === 0) return; 22654 !this.loadMoreEmitted && n - e <= sf && (this.loadMoreEmitted = !0, this.loadNextGames.emit()); 22655 let i = Math.max(0, e - go), r = Math.min(n - 1, e + go), u = this.activeIndices(); 22656 if (u.size === r - i + 1 && u.has(i) && u.has(r)) return; 22657 let v = /* @__PURE__ */ new Set(); 22658 for (let P = i; P <= r; P++) v.add(P); 22659 this.activeIndices.set(v); 22660 } 22661 setupViewportObserver() { 22662 this.platform.isBrowser && Mt((e) => { 22663 for (let n of e) n.isIntersecting && this.swiperComponent?.swiper && this.updateActiveRange(this.swiperComponent.swiper.activeIndex); 22664 }, { threshold: lf }, this.injector).observe(this.elementRef.nativeElement); 22665 } 22666 setupSwipeTracking() { 22667 this.swiperComponent?.swiper && this.swiperComponent.swiper.on("slideChange", () => { 22668 let e = this.swiperComponent?.swiper?.activeIndex ?? 0, n = this.gameCards()[e]?.gameId || ""; 22669 this.trackingHelper.trackSwipe(n, e, this.previousIndex, this.layoutId()), this.previousIndex = e; 22670 }); 22671 } 22672 static ɵfac = function(e) { 22673 return new (e || t)(); 22674 }; 22675 static ɵcmp = I({ 22676 type: t, 22677 selectors: [["cw-game-swiper-card-container"]], 22678 viewQuery: function(e, n) { 22679 if (e & 1 && pn(Ft, 5), e & 2) { 22680 let i; 22681 vn(i = fn()) && (n.swiperComponent = i.first); 22682 } 22683 }, 22684 inputs: { 22685 games: [1, "games"], 22686 layoutId: [1, "layoutId"], 22687 lobbyType: [1, "lobbyType"], 22688 useFavouriteHeart: [1, "useFavouriteHeart"], 22689 frontendId: [1, "frontendId"], 22690 containerMetadata: [1, "containerMetadata"], 22691 containerTitle: [1, "containerTitle"], 22692 containerIndex: [1, "containerIndex"] 22693 }, 22694 outputs: { 22695 markGameAsFavourite: "markGameAsFavourite", 22696 launchGameRequest: "launchGameRequest", 22697 loadNextGames: "loadNextGames" 22698 }, 22699 features: [ce([wc])], 22700 decls: 6, 22701 vars: 1, 22702 consts: [ 22703 ["swiperComponent", ""], 22704 [1, "game-card-container"], 22705 [1, "card-stack"], 22706 [3, "swiperOptions"], 22707 [1, "swiper-slide"], 22708 [ 22709 3, 22710 "card", 22711 "hideMinMaxBet", 22712 "hideActivePlayerCount", 22713 "useFavouriteHeart" 22714 ], 22715 [ 22716 3, 22717 "markGameAsFavourite", 22718 "launchGameRequest", 22719 "card", 22720 "hideMinMaxBet", 22721 "hideActivePlayerCount", 22722 "useFavouriteHeart" 22723 ] 22724 ], 22725 template: function(e, n) { 22726 e & 1 && (l(0, "div", 1)(1, "div", 2)(2, "vn-swiper", 3, 0), D(4, G0, 2, 1, "div", 4, rf), d()()()), e & 2 && (a(2), p("swiperOptions", n.swiperOptions()), a(2), R(n.gameCards())); 22727 }, 22728 dependencies: [Xh, Ft], 22729 styles: [".game-card-container[_ngcontent-%COMP%]{position:relative;min-height:360.63px;gap:181px;margin:0 auto;margin-bottom:var(--%NS%cs-play-again-disk-desktop-label-gap)}.game-card-container[_ngcontent-%COMP%] .card-stack[_ngcontent-%COMP%]{height:100%;align-self:stretch;margin:0 auto;min-width:294px;max-width:calc(100vw - 1.5%)}@media(min-width:650px){.module-headers[_ngcontent-%COMP%]{width:100%;gap:var(--%NS%semantic-spacing-container-padding-lg)}.module-headers[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{height:26px;font-size:var(--%NS%semantic-typography-title-lg-strong-font-size);font-weight:var(--%NS%semantic-typography-title-lg-strong-font-we
22729ight);line-height:var(--%NS%semantic-typography-title-lg-strong-line-height)}.module-headers[_ngcontent-%COMP%] .subtitle[_ngcontent-%COMP%]{height:var(--%NS%semantic-size-x5);font-size:var(--%NS%semantic-typography-body-md-font-size);font-weight:var(--%NS%semantic-typography-body-md-font-weight);line-height:var(--%NS%semantic-typography-body-md-line-height)}.game-card-container[_ngcontent-%COMP%]{width:640px;min-height:258px}.game-card-container[_ngcontent-%COMP%] .swiper[_ngcontent-%COMP%] .swiper-button-prev[_ngcontent-%COMP%]{left:0}.game-card-container[_ngcontent-%COMP%] .swiper[_ngcontent-%COMP%] .swiper-button-next[_ngcontent-%COMP%]{right:0}.game-card-container[_ngcontent-%COMP%] .card-stack[_ngcontent-%COMP%]{height:258px;width:576px}}@media(min-width:1024px){.module-headers[_ngcontent-%COMP%]{padding:0 1.125rem}}@media(min-width:1200px){.module-headers[_ngcontent-%COMP%]{max-width:1200px;padding:0;margin:0 auto;gap:var(--%NS%semantic-spacing-stack-md)}.module-headers[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-lg-strong-font-size);line-height:var(--%NS%semantic-typography-title-lg-strong-line-height);font-weight:var(--%NS%semantic-typography-title-lg-strong-font-weight)}.module-headers[_ngcontent-%COMP%] .subtitle[_ngcontent-%COMP%]{height:var(--%NS%semantic-size-x5);font-size:var(--%NS%semantic-typography-body-lg-font-size);font-weight:var(--%NS%semantic-typography-body-lg-font-weight);line-height:var(--%NS%semantic-typography-body-lg-line-height)}.game-card-container[_ngcontent-%COMP%]{width:1100px;min-height:295px}.game-card-container[_ngcontent-%COMP%] .card-stack[_ngcontent-%COMP%]{height:295px;width:960px}}@media(max-width:480px){.game-card-container[_ngcontent-%COMP%]{width:100%}}.swiper-button-prev[_ngcontent-%COMP%]{left:100px}.swiper-button-next[_ngcontent-%COMP%]{right:100px}"] 22730 }); 22731 } 22732 return t; 22733 })(), hf = "theme-rating-star-full", ff = "theme-rating-star-empty", vf = (() => { 22734 class t { 22735 game = m.required(); 22736 hideActivePlayerCount = m(!1); 22737 hideMinMaxBet = m(!1); 22738 fallBackImageUrl = m(""); 22739 launchGameRequest = j(); 22740 markGameAsFavourite = j(); 22741 deviceService = s(J); 22742 gameImageService = s(rt); 22743 favIconSize = g(() => this.deviceService.isMobileWidth() ? "medium" : "large"); 22744 iconName = g(() => this.game().isFavourite ? hf : ff); 22745 primaryImageUrl = g(() => { 22746 let e = this.game(); 22747 return this.gameImageService.getIconConfig({ 22748 gameId: e.gameId, 22749 iconType: ue.SuperSquare 22750 }).src; 22751 }); 22752 showBetAmount = g(() => !this.hideMinMaxBet() && this.game().minBet && this.game().maxBet); 22753 showPlayerCount = g(() => !this.hideActivePlayerCount() && this.game().playerCount); 22754 showCardInfo = g(() => this.showBetAmount() || this.showPlayerCount()); 22755 imageLoadFailed = ni({ 22756 source: () => this.primaryImageUrl(), 22757 computation: () => !1 22758 }); 22759 imageUrl = g(() => this.imageLoadFailed() ? this.fallBackImageUrl() || this.gameImageService.getGrayImageUrl() : this.primaryImageUrl()); 22760 onImageError() { 22761 this.imageLoadFailed.set(!0); 22762 } 22763 launchGame(e) { 22764 let n = this.game(), i = n.gameLaunchData ?? { 22765 gameId: n.gameId, 22766 gameName: n.gameVariant || n.gameId, 22767 gameContainer: "volatility-range" 22768 }; 22769 this.launchGameRequest.emit(i); 22770 } 22771 toggleFavourite(e, n) { 22772 e.stopImmediatePropagation(), this.markGameAsFavourite.emit(n); 22773 } 22774 static ɵfac = function(e) { 22775 return new (e || t)(); 22776 }; 22777 static ɵcmp = I({ 22778 type: t, 22779 selectors: [["cw-volatility-range-card"]], 22780 inputs: { 22781 game: [1, "game"], 22782 hideActivePlayerCount: [1, "hideActivePlayerCount"], 22783 hideMinMaxBet: [1, "hideMinMaxBet"], 22784 fallBackImageUrl: [1, "fallBackImageUrl"] 22785 }, 22786 outputs: { 22787 launchGameRequest: "launchGameRequest", 22788 markGameAsFavourite: "markGameAsFavourite" 22789 }, 22790 decls: 7, 22791 vars: 8, 22792 consts: [ 22793 [ 22794 "alt", 22795 "", 22796 1, 22797 "card__image-probe", 22798 3, 22799 "error", 22800 "src" 22801 ], 22802 [ 22803 "role", 22804 "button", 22805 "tabindex", 22806 "0", 22807 1, 22808 "card", 22809 3, 22810 "click", 22811 "keydown.enter", 22812 "keydown.space" 22813 ], 22814 [1, "card__label-container"], 22815 [1, "card__label"], 22816 [ 22817 "type", 22818 "button", 22819 1, 22820 "card__fav", 22821 3, 22822 "click" 22823 ], 22824 [ 22825 "size", 22826 "16", 22827 1, 22828 "card__fav-icon", 22829 3, 22830 "name" 22831 ], 22832 [1, "card__info"], 22833 [1, "card__bet-amount"], 22834 [1, "card__player-count"], 22835 [ 22836 "name", 22837 "theme-account-i", 22838 "width", 22839 "12", 22840 "height", 22841 "12", 22842 1, 22843 "card__player-icon" 22844 ] 22845 ], 22846 template: function(e, n) { 22847 e & 1 && (l(0, "img", 0), S("error", function() { 22848 return n.onImageError(); 22849 }), d(), l(1, "div", 1), S("click", function(i) { 22850 return n.launchGame(i); 22851 })("keydown.enter", function(i) { 22852 return n.launchGame(i); 22853 })("keydown.space", function(i) { 22854 return n.launchGame(i), i.preventDefault(); 22855 }), l(2, "div", 2), f(3, E0, 2, 1, "div", 3), l(4, "button", 4), S("click", function(i) { 22856 return n.toggleFavourite(i, n.game()); 22857 }), b(5, "vn-icon", 5), d()(), f(6, D0, 3, 2, "div", 6), d()), e & 2 && (p("src", n.primaryImageUrl(), Y), T("aria-hidden", !0), a(), k("background-image", "url(" + n.imageUrl() + ")"), a(2), h(n.game().label ? 3 : -1), a(), T("aria-label", n.game().isFavourite ? "Remove from favourites" : "Add to favourites"), a(), p("name", n.iconName()), a(), h(n.showCardInfo() ? 6 : -1)); 22858 }, 22859 dependencies: [Ee], 22860 styles: [".card__image-probe[_ngcontent-%COMP%]{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;opacity:0}
22860.card[_ngcontent-%COMP%]{width:220.0807px;height:220.0807px;opacity:1;display:flex;flex-direction:column;justify-content:space-between;border-radius:var(--%NS%semantic-size-x5);background-size:contain;background-repeat:no-repeat;background-position:center;background-color:transparent;position:relative;box-sizing:border-box}.card__label-container[_ngcontent-%COMP%], .card__info[_ngcontent-%COMP%]{display:none}.card__label-container[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding:6px 16px;border-radius:var(--%NS%semantic-size-x5) var(--%NS%semantic-size-x5) 0 0;margin-top:8px}.card__label-container[_ngcontent-%COMP%] > .card__label[_ngcontent-%COMP%]{background-color:var(--%NS%semantic-color-feedback-danger);color:var(--%NS%semantic-color-on-feedback-danger);padding:4px;font-family:var(--%NS%semantic-typography-label-font-family);font-weight:var(--%NS%semantic-typography-label-md-strong-font-weight);font-size:var(--%NS%semantic-typography-label-md-strong-font-size);line-height:var(--%NS%semantic-typography-label-md-strong-line-height);height:var(--%NS%semantic-size-x5);display:flex;justify-content:center;align-items:center}.card__label-container[_ngcontent-%COMP%] .card__fav[_ngcontent-%COMP%]{width:32px;height:32px;border-radius:50%;background:var(--%NS%semantic-color-opacity-strong-active);display:flex;justify-content:center;align-items:center;margin-left:auto}.card__label-container[_ngcontent-%COMP%] .card__fav[_ngcontent-%COMP%] .card__fav-icon[_ngcontent-%COMP%]{width:16px;height:16px;color:var(--%NS%semantic-color-on-feedback-danger)}.card__info[_ngcontent-%COMP%]{display:flex;height:28px;justify-content:space-between;align-items:center;padding:6px 12px;background:var(--%NS%semantic-color-opacity-strong-active);border-radius:0 0 var(--%NS%semantic-size-x5) var(--%NS%semantic-size-x5);color:var(--%NS%semantic-color-on-feedback-danger)}.card__info[_ngcontent-%COMP%] .card__bet-amount[_ngcontent-%COMP%]{height:16px;font-family:var(--%NS%semantic-typography-label-font-family);font-weight:var(--%NS%semantic-typography-label-lg-strong-font-weight);font-size:var(--%NS%semantic-typography-label-lg-strong-font-size);line-height:var(--%NS%semantic-typography-label-lg-strong-line-height)}.card__info[_ngcontent-%COMP%] .card__player-count[_ngcontent-%COMP%]{margin-left:auto;height:16px;width:50px;font-family:var(--%NS%semantic-typography-label-font-family);font-weight:var(--%NS%semantic-typography-label-md-strong-font-weight);font-size:var(--%NS%semantic-typography-label-md-strong-font-size);line-height:var(--%NS%semantic-typography-label-md-strong-line-height);vertical-align:middle}.card__info[_ngcontent-%COMP%] .card__player-count[_ngcontent-%COMP%] .card__player-icon[_ngcontent-%COMP%]{width:12px;height:12px;color:var(--%NS%semantic-color-on-feedback-danger);margin-right:4px}.volatility-swiper[_ngcontent-%COMP%] .swiper-slide-active[_ngcontent-%COMP%] .card__label-container[_ngcontent-%COMP%], .volatility-swiper[_ngcontent-%COMP%] .swiper-slide-active[_ngcontent-%COMP%] .card__info[_ngcontent-%COMP%]{display:flex}.volatility-swiper[_ngcontent-%COMP%] .swiper-slide-prev[_ngcontent-%COMP%] .card__label-container[_ngcontent-%COMP%], .volatility-swiper[_ngcontent-%COMP%] .swiper-slide-prev[_ngcontent-%COMP%] .card__info[_ngcontent-%COMP%], .volatility-swiper[_ngcontent-%COMP%] .swiper-slide-next[_ngcontent-%COMP%] .card__label-container[_ngcontent-%COMP%], .volatility-swiper[_ngcontent-%COMP%] .swiper-slide-next[_ngcontent-%COMP%] .card__info[_ngcontent-%COMP%]{display:none}@media(min-width:641px){.card[_ngcontent-%COMP%]{width:345.45px;height:345.45px}.card__bet-amount[_ngcontent-%COMP%]{height:24px;display:flex;justify-content:center;align-items:center;font-family:var(--%NS%semantic-typography-body-font-family);font-weight:var(--%NS%semantic-typography-body-lg-strong-font-weight);font-size:var(--%NS%semantic-typography-body-lg-strong-font-size);line-height:var(--%NS%semantic-typography-body-lg-strong-line-height)}.card__player-count[_ngcontent-%COMP%]{width:56px;height:16px;display:flex;justify-content:center;align-items:center;font-family:var(--%NS%semantic-typography-body-font-family);font-weight:var(--%NS%semantic-typography-body-lg-strong-font-we
22860ight);font-size:var(--%NS%semantic-typography-body-lg-strong-font-size);line-height:var(--%NS%semantic-typography-body-lg-strong-line-height)}.card__player-count[_ngcontent-%COMP%] .card__player-icon[_ngcontent-%COMP%]{width:16px;height:16px}.card__fav[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:50%;background:var(--%NS%semantic-color-opacity-strong-active)}.card__label-container[_ngcontent-%COMP%]{margin-top:12px}}@media(min-width:1200px){.card[_ngcontent-%COMP%]{width:391.0302px;height:391.0302px}.card__bet-amount[_ngcontent-%COMP%]{height:24px;display:flex;justify-content:center;align-items:center;font-family:var(--%NS%semantic-typography-body-font-family);font-weight:var(--%NS%semantic-typography-body-lg-strong-font-weight);font-size:var(--%NS%semantic-typography-body-lg-strong-font-size);line-height:var(--%NS%semantic-typography-body-lg-strong-line-height)}.card__player-count[_ngcontent-%COMP%]{height:16px;display:flex;justify-content:center;align-items:center;font-family:var(--%NS%semantic-typography-body-font-family);font-weight:var(--%NS%semantic-typography-body-lg-strong-font-weight);font-size:var(--%NS%semantic-typography-body-lg-strong-font-size);line-height:var(--%NS%semantic-typography-body-lg-strong-line-height)}.card__fav[_ngcontent-%COMP%]{width:44px;height:44px;border-radius:50%;background:var(--%NS%semantic-color-opacity-strong-active)}.card__label-container[_ngcontent-%COMP%]{margin-top:15px}}@media(max-width:640px){.card__player-count[_ngcontent-%COMP%]{height:16px;display:flex;justify-content:center;align-items:center}}"] 22861 }); 22862 } 22863 return t; 22864 })(), zi = "high", bf = "volatility-range", Cf = { 22865 low: { 22866 bgActive: "lowactivebgcolor", 22867 bgInactive: "lowInactivebgcolor", 22868 colorActive: "lowActivecolor", 22869 colorInactive: "lowInactivecolor" 22870 }, 22871 med: { 22872 bgActive: "mediumActivebgcolor", 22873 bgInactive: "mediumInactivebgcolor", 22874 colorActive: "mediumActivecolor", 22875 colorInactive: "mediumInactivecolor" 22876 }, 22877 high: { 22878 bgActive: "highActivebgcolor", 22879 bgInactive: "highInactivebgcolor", 22880 colorActive: "highActivecolor", 22881 colorInactive: "highInactivecolor" 22882 } 22883 }, yf = { 22884 low: "low", 22885 med: "medium", 22886 high: "high" 22887 }, wf = (() => { 22888 class t { 22889 widgetData = m.required(); 22890 volatilityChangedFlag = Yb(0); 22891 setVolatility = j(); 22892 volatilityKeys = [ 22893 "low", 22894 "med", 22895 zi 22896 ]; 22897 volatility = O("low"); 22898 buttonProps = g(() => { 22899 let e = this.widgetData().attributes, n = this.volatility(); 22900 return { 22901 low: this.getButtonStyle("low", e, n), 22902 med: this.getButtonStyle("med", e, n), 22903 high: this.getButtonStyle(zi, e, n) 22904 }; 22905 }); 22906 getButtonStyle(e, n, i) { 22907 let r = i === e, u = Cf[e], v = yf[e]; 22908 return { 22909 backgroundColor: r ? n[u.bgActive] : n[u.bgInactive], 22910 color: r ? n[u.colorActive] : n[u.colorInactive], 22911 isActive: r, 22912 labelText: this.widgetData()[v] 22913 }; 22914 } 22915 styleFor(e) { 22916 let n = this.buttonProps()[e]; 22917 return { 22918 backgroundColor: n.backgroundColor, 22919 color: n.color 22920 }; 22921 } 22922 isActive(e) { 22923 return this.buttonProps()[e].isActive; 22924 } 22925 labelFor(e) { 22926 return this.buttonProps()[e].labelText; 22927 } 22928 select(e) { 22929 this.volatilityChangedFlag.update((n) => n + 1), this.volatility.set(e), this.setVolatility.emit(e); 22930 } 22931 static ɵfac = function(e) { 22932 return new (e || t)(); 22933 }; 22934 static ɵcmp = I({ 22935 type: t, 22936 selectors: [["cw-volatility-range-footer"]], 22937 inputs: { 22938 widgetData: [1, "widgetData"], 22939 volatilityChangedFlag: [1, "volatilityChangedFlag"] 22940 }, 22941 outputs: { 22942 volatilityChangedFlag: "volatilityChangedFlagChange", 22943 setVolatility: "setVolatility" 22944 }, 22945 decls: 7, 22946 vars: 1, 22947 consts: [ 22948 [1, "footer"], 22949 [1, "footer__info"], 22950 [ 22951 "role", 22952 "radiogroup", 22953 "aria-label", 22954 "Volatility level selection", 22955 1, 22956 "footer__buttons" 22957 ], 22958 [ 22959 "type", 22960 "button", 22961 "role", 22962 "radio", 22963 1, 22964 "footer__btn", 22965 3, 22966 "footer__btn--active", 22967 "backgroundColor", 22968 "color" 22969 ], 22970 [ 22971 "type", 22972 "button", 22973 "role", 22974 "radio", 22975 1, 22976 "footer__btn", 22977 3, 22978 "click" 22979 ] 22980 ], 22981 template: function(e, n) { 22982 e & 1 && (H(0, "div", 0)(1, "span", 1)(2, "p"), C(3), K()(), H(4, "div", 2), D(5, z0, 2, 8, "button", 3, ht), K()()), e & 2 && (a(3), x(n.widgetData()?.questionText), a(2), R(n.volatilityKeys)); 22983 }, 22984 styles: [".footer[_ngcontent-%COMP%]{width:351px;display:flex;flex-direction:column;align-items:center;justify-content:center}.footer__buttons[_ngcontent-%COMP%]{display:flex;justify-content:space-between;margin-bottom:8px;font-family:var(--%NS%semantic-typography-label-font-family);font-size:var(--%NS%semantic-typography-label-md-font-size);line-height:var(--%NS%semantic-typography-label-md-line-height)}.footer__buttons[_ngcontent-%COMP%] .footer__btn[_ngcontent-%COMP%]{width:114.3333px;min-width:44px;border:none;border-radius:var(--%NS%cs-game-tile-border-radius);text-align:center;display:flex;justify-content:center;align-items:center;margin:0 1.33px;text-transform:none;font-weight:var(--%NS%semantic-typography-label-md-font-weight);cursor:pointer;transition:all .2s ease;padding:var(--%NS%semantic-spacing-container-padding-md) var(--%NS%semantic-spacing-container-padding-lg)}.footer__buttons[_ngcontent-%COMP%] .footer__btn--active[_ngcontent-%COMP%]{font-weight:var(--%NS%semantic-typography-label-md-strong-font-we
22984ight)}@media(min-width:641px){.footer[_ngcontent-%COMP%]{width:576px}.footer__buttons[_ngcontent-%COMP%] .footer__btn[_ngcontent-%COMP%]{width:189px}}@media(min-width:1200px){.footer[_ngcontent-%COMP%]{width:640px}.footer__buttons[_ngcontent-%COMP%] .footer__btn[_ngcontent-%COMP%]{width:210px}}"] 22985 }); 22986 } 22987 return t; 22988 })(), Pf = "visible", Sf = "hidden", Mf = "1", Of = "0", xf = "cards", Jt = 3, _f = (() => { 22989 class t { 22990 deviceService = s(J); 22991 containerService = s(ie); 22992 gameLaunchAggregatorService = s(Qe); 22993 favouriteService = s(Re); 22994 destroyRef = s(q); 22995 renderer = s(lt); 22996 platform = s(X); 22997 widgetData = m.required(); 22998 containerMetadata = m(); 22999 hideActivePlayerCount = m(!1); 23000 hideMinMaxBet = m(!1); 23001 setVolatility = j(); 23002 launchGameRequest = j(); 23003 markGameAsFavourite = j(); 23004 volatilityChangedFlag = O(0); 23005 isMobile = g(() => this.deviceService.isMobileWidth()); 23006 selectedVolatility = O("low"); 23007 fallBackImageUrl = g(() => this.widgetData()?.fallBackImage?.src ?? ""); 23008 allGames = g(() => this.widgetData()?.games ?? []); 23009 highGames = O([]); 23010 highGamesFetched = !1; 23011 lowGames = g(() => this.allGames().slice(0, Jt)); 23012 medGames = g(() => this.allGames().slice(Jt, Jt * 2)); 23013 highGamesFromApi = g(() => { 23014 let e = this.allGames().slice(Jt * 2, Jt * 3); 23015 return e.length > 0 ? e : this.highGames(); 23016 }); 23017 gameList = g(() => { 23018 switch (this.selectedVolatility()) { 23019 case "low": return this.lowGames(); 23020 case "med": return this.medGames(); 23021 case zi: return this.highGamesFromApi(); 23022 default: return this.lowGames(); 23023 } 23024 }); 23025 swiper; 23026 constructor() { 23027 ol(() => { 23028 this.selectedVolatility(); 23029 let e = this.swiper; 23030 e && (e.update(), e.activeIndex !== 1 && e.slideTo(1)); 23031 }); 23032 } 23033 swiperOptions = g(() => F0(this.isMobile(), this.deviceService.isTouch, (e) => { 23034 this.swiper = e, this.syncVisibleSlides(e); 23035 }, (e) => this.syncVisibleSlides(e))); 23036 syncVisibleSlides(e) { 23037 this.platform.isBrowser && B0(e, this.renderer); 23038 } 23039 onVolatilityChange(e) { 23040 this.selectedVolatility.set(e), this.setVolatility.emit(e), e === zi && !this.highGamesFetched && this.highGamesFromApi().length === 0 && this.fetchHighGames(); 23041 } 23042 fetchHighGames() { 23043 let e = this.containerMetadata(); 23044 e && (this.highGamesFetched = !0, this.containerService.fetchAndSetContainer(e, !0), this.containerService.container$.pipe(We((n) => (n?.games?.length ?? 0) > Jt * 2), et(1), z(this.destroyRef)).subscribe((n) => { 23045 let i = (n?.games ?? []).slice(Jt * 2, Jt * 3); 23046 i.length > 0 && this.highGames.set(i); 23047 })); 23048 } 23049 toggleFavourite(e) { 23050 this.favouriteService.toggleFavourite(e.gameId), this.markGameAsFavourite.emit(e); 23051 } 23052 onLaunchGame(e) { 23053 let n = { 23054 game: { gameId: e.gameId }, 23055 isTouch: this.deviceService.isTouch, 23056 clickTimeStamp: Date.now(), 23057 gamePosition: e.gamePosition ?? 0, 23058 categoryType: e.categoryType ?? "", 23059 from: e.from ?? bf, 23060 isDemoLaunch: e.isDemoLaunch ?? !1, 23061 gameContainer: e.gameContainer 23062 }; 23063 this.gameLaunchAggregatorService.launchGame(n), this.launchGameRequest.emit(e); 23064 } 23065 static ɵfac = function(e) { 23066 return new (e || t)(); 23067 }; 23068 static ɵcmp = I({ 23069 type: t, 23070 selectors: [["cw-volatility-range"]], 23071 inputs: { 23072 widgetData: [1, "widgetData"], 23073 containerMetadata: [1, "containerMetadata"], 23074 hideActivePlayerCount: [1, "hideActivePlayerCount"], 23075 hideMinMaxBet: [1, "hideMinMaxBet"] 23076 }, 23077 outputs: { 23078 setVolatility: "setVolatility", 23079 launchGameRequest: "launchGameRequest", 23080 markGameAsFavourite: "markGameAsFavourite" 23081 }, 23082 features: [ce([ie])], 23083 decls: 6, 23084 vars: 3, 23085 consts: [ 23086 [1, "volatility-range-module"], 23087 [1, "cards"], 23088 [ 23089 "swiperClass", 23090 "volatility-swiper", 23091 3, 23092 "swiperOptions" 23093 ], 23094 [1, "swiper-slide"], 23095 [ 23096 1, 23097 "volatility-footer", 23098 3, 23099 "volatilityChangedFlagChange", 23100 "setVolatility", 23101 "widgetData", 23102 "volatilityChangedFlag" 23103 ], 23104 [ 23105 3, 23106 "markGameAsFavourite", 23107 "launchGameRequest", 23108 "game", 23109 "fallBackImageUrl", 23110 "hideMinMaxBet", 23111 "hideActivePlayerCount" 23112 ] 23113 ], 23114 template: function(e, n) { 23115 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "vn-swiper", 2), D(3, V0, 2, 4, "div", 3, Ze), d()(), l(5, "cw-volatility-range-footer", 4), jb("volatilityChangedFlagChange", function(i) { 23116 return Bb(n.volatilityChangedFlag, i) || (n.volatilityChangedFlag = i), i; 23117 }), S("setVolatility", function(i) { 23118 return n.onVolatilityChange(i); 23119 }), d()()), e & 2 && (a(2), p("swiperOptions", n.swiperOptions()), a(), R(n.gameList()), a(2), p("widgetData", n.widgetData()), Nb("volatilityChangedFlag", n.volatilityChangedFlag)); 23120 }, 23121 dependencies: [ 23122 vf, 23123 wf, 23124 Ft 23125 ], 23126 styles: [`cw-volatility-range .volatility-range-module{display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:0 var(--%NS%semantic-spacing-container-padding-xl);--%NS%vr-card-w: 220px;--%NS%vr-card-h: 220px;--%NS%vr-bottom-reserve: 28px;--%NS%vr-side-scale: .9}cw-volatility-range .volatility-range-module .cards{width:351px;height:calc(var(--%NS%vr-card-h) + var(--%NS%vr-bottom-reserve));min-height:calc(var(--%NS%vr-card-h) + var(--%NS%vr-bottom-reserve));display:flex;justify-content:center;align-items:center;position:relative;box-sizing:border-box;margin-top:25px;overflow:visible;max-width:351px}cw-volatility-range .volatility-range-module .volatility-footer{z-index:4}cw-volatility-range .volatility-range-module cw-container-header{align-self:stretch}cw-volatility-range .volatility-range-module .volatility-swiper{position:relative;width:391px;height:391px;overflow:visible;display:flex;justify-content:center;align-items:center}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide{width:391px;height:391px;
23126display:flex;align-items:center;justify-content:center;border-radius:var(--%NS%cs-jackpot-slots-tile-game-image-tile-border-radius);font-weight:700;background-size:contain;background-repeat:no-repeat;background-position:center;transition:transform .4s ease-in-out,opacity .4s ease-in-out;pointer-events:none}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide-prev .card,cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide-next .card{transform:scale(var(--%NS%vr-side-scale));transform-origin:center bottom;transition:transform .35s cubic-bezier(.2,.8,.2,1);opacity:1;margin-bottom:35px}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide-active .card{transform:scale(1);opacity:1;pointer-events:auto;cursor:pointer}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-button-prev,cw-volatility-range .volatility-range-module .volatility-swiper .swiper-button-next,cw-volatility-range .volatility-range-module .volatility-swiper .swiper-pagination{z-index:30}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-button-prev,cw-volatility-range .volatility-range-module .volatility-swiper .swiper-button-next{position:absolute}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-button-prev{left:-220px}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-button-next{right:-220px}@media(min-width:641px){cw-volatility-range .volatility-range-module{--%NS%vr-card-w: 345px;--%NS%vr-card-h: 345px;--%NS%vr-bottom-reserve: 42px;--%NS%vr-side-scale: .8;padding:0 var(--%NS%semantic-spacing-container-padding-4xl)}cw-volatility-range .volatility-range-module .cards{width:576px;overflow:visible;max-width:576px}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide{width:345px;height:345px}}@media(min-width:1200px){cw-volatility-range .volatility-range-module{--%NS%vr-card-w: 391px;--%NS%vr-card-h: 391px;--%NS%vr-bottom-reserve: 56px;--%NS%vr-side-scale: .8;max-width:1200px;margin:0 auto;padding:unset}cw-volatility-range .volatility-range-module .cards{width:820px;max-width:820px;gap:40px;overflow:visible}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide{width:391px;height:391px}}@media(max-width:640px){cw-volatility-range .volatility-range-module{--%NS%vr-card-w: 220px;--%NS%vr-card-h: 220px;--%NS%vr-bottom-reserve: 28px;--%NS%vr-side-scale: .9}cw-volatility-range .volatility-range-module .cards{width:351px;height:calc(var(--%NS%vr-card-h) + var(--%NS%vr-bottom-reserve));max-width:351px;display:flex;justify-content:center;align-items:center;overflow:hidden;position:relative;margin-top:12px}cw-volatility-range .volatility-range-module .volatility-swiper{width:220px;height:220px;display:flex;justify-content:center;align-items:center;overflow:visible}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide{width:220px;height:220px;display:flex;justify-content:center;align-items:center;transition:transform .3s ease,opacity .3s ease}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide-prev .card,cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide-next .card{transform:scale(var(--%NS%vr-side-scale));opacity:1;transform-origin:center bottom;margin-bottom:30px}cw-volatility-range .volatility-range-module .volatility-swiper .swiper-slide-active .card{transform:scale(1);opacity:1}cw-volatility-range .volatility-range-module .volatility-footer{margin-top:8px}} 23127`], 23128 encapsulation: 2 23129 }); 23130 } 23131 return t; 23132 })(), kf = (() => { 23133 class t { 23134 tiles = Array.from({ length: 24 }); 23135 static ɵfac = function(e) { 23136 return new (e || t)(); 23137 }; 23138 static ɵcmp = I({ 23139 type: t, 23140 selectors: [["cw-lobby-container-skeleton"]], 23141 decls: 5, 23142 vars: 0, 23143 consts: [ 23144 [1, "sk"], 23145 [1, "sk__title"], 23146 [1, "sk__tiles"], 23147 [1, "sk__tile"] 23148 ], 23149 template: function(e, n) { 23150 e & 1 && (H(0, "div", 0), Pe(1, "div", 1), H(2, "div", 2), D(3, j0, 1, 0, "div", 3, Ze), K()()), e & 2 && (a(3), R(n.tiles)); 23151 }, 23152 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;align-self:center;width:var(--%NS%cls-content-w)}.sk__title[_ngcontent-%COMP%]{width:220px;height:20px;margin-block:var(--%NS%semantic-spacing-container-padding-2xl) 0;flex:0 0 auto;border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}.sk__tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(var(--%NS%cols, 2),1fr);grid-auto-rows:var(--%NS%cls-row-h);gap:0;flex:0 0 auto;max-height:calc(var(--%NS%reserved-rows, 1) * var(--%NS%cls-row-h) + (var(--%NS%reserved-rows, 1) - 1) * var(--%NS%cls-gutter, 0px));overflow:hidden}
23152.sk__tile[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-container-padding-sm);border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}"] 23153 }); 23154 } 23155 return t; 23156 })(), If = (() => { 23157 class t { 23158 containerService = s(ie); 23159 configProviderService = s(V); 23160 deviceService = s(J); 23161 casinoStyles = s(jt); 23162 navigationService = s(he); 23163 vanillaTrackingAdapter = s(we); 23164 globalMessages = s(Mn); 23165 liveDealerService = s(Tt); 23166 liveCasinoConfig = s(qn); 23167 layoutId = m.required(); 23168 containerMetadata = m.required(); 23169 containerIndex = m.required(); 23170 isVirtualisationEnabled = m.required(); 23171 container = this.containerService.container; 23172 placeholderViewType = g(() => xi("lobby", this.containerMetadata().viewType)); 23173 placeholderRows = g(() => Mi(this.placeholderViewType())); 23174 placeholderLadder = g(() => Oi(this.placeholderViewType(), this.deviceService.isTouch, this.containerMetadata().enableCarousel ?? !1)); 23175 isLoading = g(() => !this.container() && !this.containerService.hasError()); 23176 initialGameCount = g(() => this.containerService.getConfigForGamesToFetch(this.containerMetadata())); 23177 placeholderGameCount = g(() => Si(this.placeholderViewType(), () => this.initialGameCount())); 23178 gameContainerType = g(() => Vt(this.container()?.type, this.container()?.viewType)); 23179 games = g(() => { 23180 let e = this.container()?.games ?? []; 23181 return !this.liveCasinoConfig.enabled || !this.configProviderService.provideCasinoConfig()?.enableLiveGames ? e : this.liveDealerService.reorderLiveGames(e) ?? e; 23182 }); 23183 isTouch = this.deviceService.isTouch; 23184 isTopTen = g(() => ie.isTopTenViewType(this.container()?.viewType)); 23185 isGameSwiperCard = g(() => ie.isGameSwiperCardViewType(this.container()?.viewType)); 23186 isTopFive = g(() => ie.isTopFiveViewType(this.container()?.viewType)); 23187 isThreeCategoriesWidget = g(() => ie.isThreeCategoriesWidgetViewType(this.container()?.type)); 23188 volatilityWidgetData = g(() => this.isThreeCategoriesWidget() ? this.container() : null); 23189 is3dCarousel = g(() => { 23190 if (!ui(this.container()?.viewType)) return !1; 23191 let e = this.deviceService.windowWidth(); 23192 return !(e >= 768 && e < 1200) && this.games().length >= 20; 23193 }); 23194 renderKind = g(() => this.is3dCarousel() ? "3d-carousel" : this.isGameSwiperCard() ? "swiper-card" : this.isThreeCategoriesWidget() ? "threeCategoriesWidget" : "grid"); 23195 fallbackViewType = g(() => { 23196 let e = this.container()?.viewType; 23197 return ui(e) ? U.Grid : e ?? U.SingleRow; 23198 }); 23199 enableCarouselForFallback = g(() => ui(this.container()?.viewType) ? !1 : this.container()?.enableCarousel ?? !1); 23200 themeConfig = g(() => this.isTopTen() ? this.container()?.themeConfig : void 0); 23201 isEpcotHeading = g(() => !!this.configProviderService.provideSubNavigationConfig()?.enableEpcotSubNavigation); 23202 headingTextColor = g(() => { 23203 let e = this.container(); 23204 return e ? this.casinoStyles.getContainerHeadingColor(e) : void 0; 23205 }); 23206 ngOnInit() { 23207 this.containerMetadata() && this.containerService.fetchAndSetContainer(this.containerMetadata()); 23208 } 23209 seeAllText = g(() => this.globalMessages().SeeAll || ""); 23210 containerEventContext() { 23211 return { 23212 containerId: this.container()?.id, 23213 lobbyName: this.navigationService.currentSubnav()?.id, 23214 containerPosition: this.containerIndex(), 23215 layoutId: this.layoutId() 23216 }; 23217 } 23218 onSeeAllClick() { 23219 let e = this.container(); 23220 if (e?.viewAllTarget) { 23221 let n = this.navigationService.createUrlForSeeAll(e.viewAllTarget); 23222 this.vanillaTrackingAdapter.trigger(yi(F(G({}, this.containerEventContext()), { 23223 seeAllText: this.seeAllText(), 23224 url: n 23225 }))), n && this.navigationService.goTo(n); 23226 } 23227 } 23228 onMoreInfoClick() { 23229 this.vanillaTrackingAdapter.trigger(La(this.containerEventContext())); 23230 } 23231 onMoreInfoOverlay(e) { 23232 this.vanillaTrackingAdapter.trigger(rn(this.containerEventContext(), e)); 23233 } 23234 onMoreInfoOverlayCtaClick(e) { 23235 this.vanillaTrackingAdapter.trigger(rn(G(G({}
23235, this.containerEventContext()), e), "click")); 23236 } 23237 containerClass = g(() => this.isCategoryScrollable() ? "scrollable-games" : "unscrollable-games"); 23238 hasParallaxImages = g(() => { 23239 let e = this.container(); 23240 return !!(e?.parallaxImage?.parallaxBackgroundImage1 || e?.parallaxImage?.parallaxBackgroundImage2 || e?.parallaxImage?.parallaxBackgroundImage3); 23241 }); 23242 showMoreInfo = g(() => !!(this.container()?.moreInfoDialog?.htmlContent && this.container()?.moreInfoDialog?.closeCtaText)); 23243 isCategoryScrollable() { 23244 return this.container()?.enableCarousel || !1; 23245 } 23246 loadNextGames() { 23247 this.containerService.fetchAndSetContainer(this.containerMetadata(), !0); 23248 } 23249 static ɵfac = function(e) { 23250 return new (e || t)(); 23251 }; 23252 static ɵcmp = I({ 23253 type: t, 23254 selectors: [["cw-lobby-container"]], 23255 inputs: { 23256 layoutId: [1, "layoutId"], 23257 containerMetadata: [1, "containerMetadata"], 23258 containerIndex: [1, "containerIndex"], 23259 isVirtualisationEnabled: [1, "isVirtualisationEnabled"] 23260 }, 23261 features: [ce([ie])], 23262 decls: 2, 23263 vars: 1, 23264 consts: [ 23265 [3, "casino-backgroungImage-Clr"], 23266 [ 23267 3, 23268 "containerId", 23269 "rows", 23270 "ladder", 23271 "gameCount" 23272 ], 23273 [ 23274 3, 23275 "src1", 23276 "src2", 23277 "src3" 23278 ], 23279 [ 23280 1, 23281 "lobby-container", 23282 "casino-game-tile-wrapper", 23283 "casino-lobby-width-gametile" 23284 ], 23285 [ 23286 3, 23287 "seeAllClick", 23288 "moreInfoClick", 23289 "moreInfoOverlayLoad", 23290 "moreInfoOverlayCtaClick", 23291 "moreInfoOverlayClose", 23292 "iconName", 23293 "title", 23294 "subtitle", 23295 "showViewAllButton", 23296 "isEpcotHeading", 23297 "isThemedTopTen", 23298 "headingTextColor", 23299 "showMoreInfo", 23300 "moreInfoDialog" 23301 ], 23302 [ 23303 3, 23304 "games", 23305 "layoutId", 23306 "containerId", 23307 "containerIndex", 23308 "containerTitle", 23309 "containerType" 23310 ], 23311 [ 23312 3, 23313 "widgetData", 23314 "containerMetadata" 23315 ], 23316 [ 23317 3, 23318 "class", 23319 "overflow-x", 23320 "top-ten-games", 23321 "non-touch-scrollable-games" 23322 ], 23323 [ 23324 3, 23325 "loadNextGames", 23326 "containerMetadata", 23327 "games", 23328 "lobbyType", 23329 "containerTitle", 23330 "containerIndex" 23331 ], 23332 [ 23333 3, 23334 "loadNextGames", 23335 "layoutId", 23336 "viewType", 23337 "enableCarousel", 23338 "games", 23339 "themeConfig", 23340 "containerIndex", 23341 "containerId", 23342 "containerTitle", 23343 "containerType", 23344 "isBackgroundImageLayerPresent" 23345 ] 23346 ], 23347 template: function(e, n) { 23348 e & 1 && f(0, J0, 10, 20, "div", 0)(1, Y0, 2, 4, "cw-lobby-container-placeholder", 1), e & 2 && h(n.games().length ? 0 : n.isLoading() ? 1 : -1); 23349 }, 23350 dependencies: [ 23351 $t, 23352 Dh, 23353 dn, 23354 On, 23355 st, 23356 _f, 23357 uf, 23358 kf 23359 ], 23360 styles: ["[_nghost-%COMP%]{display:block;--%NS%cls-header: 52px}"], 23361 changeDetection: 1 23362 }); 23363 } 23364 return t; 23365 })(), mo = (t, o) => ({ 23366 $implicit: t, 23367 index: o 23368 }), Sc = (t, o) => o.id, Tf = (() => { 23369 class t { 23370 entries = m.required(); 23371 itemTemplate = m.required(); 23372 hasVirtualisedEntries = g(() => this.entries().some((e) => e.virtualise)); 23373 static ɵfac = function(e) { 23374 return new (e || t)(); 23375 }; 23376 static ɵcmp = I({ 23377 type: t, 23378 selectors: [["cw-lobby-virtual-scroll"]], 23379 hostAttrs: [ 23380 2, 23381 "display", 23382 "contents" 23383 ], 23384 inputs: { 23385 entries: [1, "entries"], 23386 itemTemplate: [1, "itemTemplate"] 23387 }, 23388 features: [ce([ak()])], 23389 decls: 2, 23390 vars: 1, 23391 consts: [ 23392 ["vv", "rxVirtualView"], 23393 [ 23394 "rxVirtualViewObserver", 23395 "", 23396 3, 23397 "root" 23398 ], 23399 [ 23400 "rxVirtualView", 23401 "", 23402 "startWithPlaceholderAsap", 23403 "", 23404 "keepLastKnownSize", 23405 "" 23406 ], 23407 [ 23408 3, 23409 "ngTemplateOutlet", 23410 "ngTemplateOutletContext" 23411 ], 23412 [4, "rxVirtualViewContent"], 23413 [ 23414 3, 23415 "height", 23416 4, 23417 "rxVirtualViewPlaceholder" 23418 ], 23419 [ 23420 3, 23421 "containerId", 23422 "rows", 23423 "ladder", 23424 "gameCount" 23425 ] 23426 ], 23427 template: function(e, n) { 23428 e & 1 && f(0, tk, 3, 1, "div", 1)(1, ik, 2, 0), e & 2 && h(n.hasVirtualisedEntries() ? 0 : 1); 23429 }, 23430 dependencies: [ 23431 mt, 23432 Wl, 23433 jl, 23434 $l, 23435 Jl, 23436 st 23437 ], 23438 styles: ["cw-lobby-container-placeholder[data-cls-kind=cabinet][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 340px}@media only screen and (min-width:568px){cw-lobby-container-placeholder[data-cls-kind=cabinet][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 300px}}cw-lobby-container-placeholder[data-cls-kind=casino-video][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 237px}@media only screen and (min-width:481px){cw-lobby-container-placeholder[data-cls-kind=casino-video][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 311px}}cw-lobby-container-placeholder[data-cls-kind=jackpot][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 620px;--%NS%cw-reserve-h-single: 432px;--%NS%cw-reserve-h-multi: 620px}@media only screen and (min-width:568px){cw-lobby-container-placeholder[data-cls-kind=jackpot][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 555px;--%NS%cw-reserve-h-single: 357px;--%NS%cw-reserve-h-multi: 555px}}cw-lobby-container-placeholder[data-cls-kind=lobby][_ngcontent-%COMP%]{--%NS%cls-header: 52px}cw-lobby-container-placeholder[data-cls-kind=minimal-recent-winners][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 316px}@media only screen and (max-width:1024px){cw-lobby-container-placeholder[data-cls-kind=minimal-recent-winners][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 261px}}cw-lobby-container-placeholder[data-cls-kind=minimal][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 0p
23438x}cw-lobby-container-placeholder[data-cls-kind=superbutton][_ngcontent-%COMP%]{--%NS%cw-reserve-h: 107px}cw-lobby-container-placeholder[data-cls-kind=welcomebox][_ngcontent-%COMP%]{--%NS%cw-reserve-h: var(--%NS%semantic-typography-display-sm-strong-line-height)}cw-lobby-container-placeholder[data-cls-kind=teaser][_ngcontent-%COMP%]{--%NS%cw-reserve-h: var(--%NS%teaser-h-mobile, 200px)}@media only screen and (min-width:768px){cw-lobby-container-placeholder[data-cls-kind=teaser][_ngcontent-%COMP%]{--%NS%cw-reserve-h: var(--%NS%teaser-h-tablet, 350px)}}@media only screen and (min-width:1025px){cw-lobby-container-placeholder[data-cls-kind=teaser][_ngcontent-%COMP%]{--%NS%cw-reserve-h: var(--%NS%teaser-h-desktop, 350px)}}"] 23439 }); 23440 } 23441 return t; 23442 })(), Nf = "betmgmoriginals/GetBetMGMOriginalsStatus", Lf = "betmgmoriginals/PostBetMGMOriginalsStatus", Gf = "INBOX", xe = { 23443 sourceType: "sourceType", 23444 sourceId: "sourceId", 23445 timerExpiryDate: "timerExpiryDate", 23446 viewGamesText: "viewGamesText", 23447 backGroundImage: "backGroundImage", 23448 mobileBackGroundImage: "mobileBackGroundImage", 23449 categoryBackgroundImage: "categoryBackgroundImage", 23450 mobileCategoryBackgroundImage: "mobileCategoryBackgroundImage", 23451 iconContent: "iconContent", 23452 headerTitleText: "headerTitleText", 23453 headerTitleSubText: "headerTitleSubText", 23454 description: "description", 23455 seeDetailsText: "seeDetailsText", 23456 seeDetailsDesc: "seeDetailsDesc", 23457 optinText: "optinText", 23458 optedInText: "optedInText", 23459 greenTick: "greenTick", 23460 prizeText: "prizeText", 23461 prizeValue: "prizeValue", 23462 timeZoneText: "timeZoneText", 23463 days: "days", 23464 hours: "hours", 23465 minutes: "minutes", 23466 seconds: "seconds", 23467 overlayHeaderText: "overlayHeaderText", 23468 overlayHeaderButtonText: "overlayHeaderButtonText", 23469 ticketIcon: "ticketIcon", 23470 ticketTextDetails: "ticketTextDetails", 23471 timerIcon: "timerIcon", 23472 timeTextDetails: "timeTextDetails", 23473 durationText: "durationText", 23474 subDetailsHeaderText: "subDetailsHeaderText", 23475 subDetailsText1: "subDetailsText1", 23476 subDetailsText2: "subDetailsText2", 23477 bonusIcon: "bonusIcon", 23478 ticketInfo: "ticketInfo", 23479 aditionalInformation: "aditionalInformation", 23480 viewDetailsText: "viewDetailsText", 23481 viewDetailsUrl: "viewDetailsUrl", 23482 nativeExpiryDateFormat: "nativeExpiryDateFormat", 23483 beforeOptInContent: "beforeOptInContent", 23484 seeDetailsLastPrize: "seeDetailsLastPrize" 23485 }, ye = { 23486 category: "casino widgets", 23487 label: "in house games", 23488 action: "click", 23489 widgetPosition: "in house games widget", 23490 overlayPosition: "in house games widget overlay", 23491 locationHome: "home", 23492 locationOriginals: "originals lobby", 23493 locationOverlay: "originals overlay", 23494 detailsSeeDetails: "see details", 23495 detailsOptIn: "opt in", 23496 detailsClose: "close", 23497 detailsViewFullDetails: "view full details", 23498 detailsSeeAll: "see all", 23499 defaultUrl: "not applicable", 23500 gamesPosition: "in house games" 23501 }, Mc = "originals", Oc = "betmgm-seeall-overlay", gn = (function(t) { 23502 return t.Offered = "OFFERED", t.OptedIn = "OPTED_IN", t.NotOffered = "NOT_OFFERED", t; 23503 })(gn || {}), Xn = (() => { 23504 class t { 23505 api = s(Ae); 23506 userService = s(Ca); 23507 destroyRef = s(q); 23508 trackingAdapter = s(we); 23509 platform = s(X); 23510 logger = s(Ot); 23511 dialog = s(Bt); 23512 bottomSheet = s(Zl); 23513 deviceService = s(J); 23514 _optInStatus = O(gn.NotOffered); 23515 optInStatus = this._optInStatus.asReadonly(); 23516 _isLoading = O(!1); 23517 isLoading = this._isLoading.asReadonly(); 23518 _isTimerRunning = O(!0); 23519 isTimerRunning = this._isTimerRunning.asReadonly(); 23520 setTimerExpired() { 23521 this._isTimerRunning.set(!1); 23522 } 23523 fetchOptInStatus(e, n) { 23524 this.userService.isAuthenticated && (this._isLoading.set(!0), this.api.get(Nf, { 23525 type: e, 23526 id: n 23527 }).pipe(et(1), z(this.destroyRef)).subscribe({ 23528 next: (i) => { 23529 i?.status && this._optInStatus.set(i.status.toUpperCase()), this._isLoading.set(!1); 23530 }, 23531 error: () => { 23532 this._optInStatus.set(gn.NotOffered), this._isLoading.set(!1); 23533 } 23534 })); 23535 } 23536 postOptIn(e, n) { 23537 this.userService.isAuthenticated && this.api.post(Lf, { 23538 type: e, 23539 id: n, 23540 optIn: !0, 23541 source: Gf 23542 }).pipe(et(1), z(this.destroyRef)).subscribe({ 23543 next: (i) => { 23544 i?.status && this._optInStatus.set(i.status.toUpperCase()); 23545 }, 23546 error: () => { 23547 this.logger.warn("[OriginalsService] Failed to post opt-in"); 23548 } 23549 }); 23550 } 23551 isTimerValid(e) { 23552 if (!e) return !1; 23553 let n = new Date(e); 23554 return isNaN(n.getTime()) ? !1 : n.getTime() > Date.now(); 23555 } 23556 isWidgetVisible(e) { 23557 return !this.platform.isBrowser || !this.userService.isAuthenticated || !e || Object.keys(e).length === 0 ? !1 : !!e[xe.sourceType] && !!e[xe.sourceId] && this.isTimerValid(e[xe.timerExpiryDate]); 23558 } 23559 trackEvent(e, n, i, r = ye.defaultUrl) { 23560 this.trackingAdapter.trigger({ 23561 name: se.EventTracking, 23562 data: { 23563 [M.ComponentCategoryEvent]: ye.category, 23564 [M.ComponentLabelEvent]: ye.label, 23565 [M.ComponentActionEvent]: ye.action, 23566 [M.ComponentPositionEvent]: e, 23567 [M.ComponentLocationEvent]: n, 23568 [M.ComponentEventDetails]: i, 23569 [M.ComponentUrlClicked]: r 23570 } 23571 }); 23572 } 23573 openOverlay(e, n) { 23574 let i = { config: n }; 23575 this.deviceService.isMobilePhone ? this.bottomSheet.open(e, { 23576 panelClass: Oc, 23577 disableClose: !0, 23578 autoFocus: !1, 23579 data: i 23580 }) : this.dialog.open(e, { 23581 panelClass: Oc, 23582 disableClose: !0, 23583 autoFocus: !1, 23584 width: "auto", 23585 data: i 23586 }); 23587 } 23588 static ɵfac = function(e) { 23589 return new (e || t)(); 23590 }; 23591 static ɵprov = A({ 23592 token: t, 23593 factory: t.ɵfac, 23594 providedIn: "root" 23595 }); 23596 } 23597 return t; 23598 })(), Ef = "originals-success-icon", po = (() => { 23599 class t { 23600 originalsService = s(Xn); 23601 originalsConfig = m.required(); 23602 fromOverlay = m(!1); 23603 optInStatus = this.originalsService.optInStatus; 23604 isOptedIn = g(() => this.optInStatus() === gn.OptedIn); 23605 CONFIG_KEY = xe; 23606 SUCCESS_ICON_CLASS = Ef; 23607 optIn(e) { 23608 e.stopPropagation(), e.stopImmediatePropagation(); 23609 let n = this.originalsConfig(), i = n[xe.sourceType], r = n[xe.sourceId]; 23610 i && r && this.originalsService.postOptIn(i, r), this.fromOverlay() ? this.originalsService.trackEvent(ye.overlayPosition, ye.locationOverlay, ye.detailsOptIn) : this.originalsService.trackEvent(ye.widgetPosition, ye.locationHome, ye.detailsOptIn); 23611 } 23612 static ɵfac = function(e) { 23613 return new (e || t)(); 23614 }; 23615 static ɵcmp = I({ 23616 type: t, 23617 selectors: [["cw-originals-optin"]], 23618 inputs: { 23619 originalsConfig: [1, "originalsConfig"], 23620 fromOverlay: [1, "fromOverlay"] 23621 }, 23622 decls: 2, 23623 vars: 1, 23624 consts: [ 23625 [ 23626 "role", 23627 "status", 23628 "aria-live", 23629 "polite", 23630 1, 23631 "optin-success-text" 23632 ], 23633 [1, "optin-text"], 23634 ["aria-hidden", "true"], 23635 [1, "originals-optedin-text"], 23636 [ 23637 "ds-button", 23638 "", 23639 "size", 23640 "medium", 23641 "variant", 23642 "filled", 23643 "kind", 23644 "primary", 23645 3, 23646 "click" 23647 ] 23648 ], 23649 template: function(e, n) { 23650 e & 1 && f(0, ok, 4, 3, "div", 0)(1, rk, 3, 1, "div", 1), e & 2 && h(n.isOptedIn() ? 0 : 1); 23651 }, 23652 dependencies: [ke], 23653 styles: [".originals-success-icon[_ngcontent-%COMP%]{color:var(--%NS%theme-success);background-color:#fff;display:flex;align-items:center;border-radius:50%;width:var(--%NS%semantic-size-x3, 12px);height:var(--%NS%semantic-size-x3, 12px)}.casino-originals-desktop[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .originals-optedin-text[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .originals-optedin-text[_ngcontent-%COMP%]{font-size:13px;line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px)}.casino-originals-desktop[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%]{height:38px;width:120px}.casino-originals-desktop[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:13px;line-height:18px;
23653font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400)}.casino-originals-desktop[_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%]{display:flex;width:120px;height:var(--%NS%semantic-size-x8, 32px);font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);align-items:center;justify-content:center;gap:5px}.sub-category-originals[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%], .sub-category-originals [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%]{width:80px;height:var(--%NS%semantic-size-x6, 24px);min-height:unset}.sub-category-originals[_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%], .sub-category-originals [_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%]{display:flex;width:80px;height:var(--%NS%semantic-size-x6, 24px);align-items:center;justify-content:center;font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);gap:5px}.casino-originals-mobile[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .originals-optedin-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .originals-optedin-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px)}.casino-originals-mobile[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%]{width:85px;height:var(--%NS%semantic-size-x6, 24px);min-height:unset}.casino-originals-mobile[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400)}.casino-originals-mobile[_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%]{display:flex;width:85px;height:var(--%NS%semantic-size-x6, 24px);font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);align-items:center;justify-content:center;gap:5px}.sub-category-originals-mobile[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%], .sub-category-originals-mobile [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%]{width:80px;height:25px;min-height:unset}.sub-category-originals-mobile[_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .sub-category-originals-mobile [_nghost-%COMP%] .optin-text[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400)}.sub-category-originals-mobile[_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%], .sub-category-originals-mobile [_nghost-%COMP%] .optin-success-text[_ngcontent-%COMP%]{display:flex;width:80px;height:var(--%NS%semantic-size-x6, 24px);font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);align-items:center;justify-content:center;gap:5px}"] 23654 }); 23655 } 23656 return t; 23657 })(), xc = (t, o) => o.labelKey, _c = (() => { 23658 class t { 23659 timerService = s(de); 23660 originalsService = s(Xn); 23661 destroyRef = s(q); 23662 platform = s(X); 23663 CONFIG_KEY = xe; 23664 timerExpiryDate = m.required(); 23665 originalsConfig = m.required(); 23666 isOriginalsSubnav = m(!1); 23667 isMobile = m(!1); 23668 isDays = O(!0); 23669 days = O("00"); 23670 hours = O("00"); 23671 minutes = O("00"); 23672 seconds = O("00"); 23673 timeSegments = g(() => { 23674 let e = []; 23675 return this.isDays() && e.push({ 23676 digits: this.days(), 23677 labelKey: xe.days 23678 }), e.push({ 23679 digits: this.hours(), 23680 labelKey: xe.hours 23681 }), e.push({ 23682 digits: this.minutes(), 23683 labelKey: xe.minutes 23684 }), this.isDays() || e.push({ 23685 digits: this.seconds(), 23686 labelKey: xe.seconds 23687 }), e; 23688 }); 23689 intervalId; 23690 currentIntervalMs = 0; 23691 ngOnInit() { 23692 this.platform.isBrowser && this.originalsService.isTimerValid(this.timerExpiryDate()) && (this.updateTimer(), this.destroyRef.onDestroy(() => { 23693 this.timerService.clearInterval(this.intervalId); 23694 })); 23695 } 23696 static DAYS_INTERVAL_MS = 6e4; 23697 static SECONDS_INTERVAL_MS = 1e3; 23698 startInterval() { 23699 let e = this.isDays() ? t.DAYS_INTERVAL_MS : t.SECONDS_INTERVAL_MS; 23700 e !== this.currentIntervalMs && (this.currentIntervalMs = e, this.timerService.clearInterval(this.intervalId), this.intervalId = this.timerService.setInterval(() => this.updateTimer(), e, { serverMode: "omit" })); 23701 } 23702 updateTimer() { 23703 let e = new Date(this.timerExpiryDate()), n = Date.now(), i = e.getTime() - n; 23704 if (i <= 0) { 23705 this.days.set("00"), this.hours.set("00"), this.minutes.set("00"), this.seconds.set("00"), this.timerService.clearInterval(this.intervalId), this.originalsService.setTimerExpired(); 23706 return; 23707 } 23708 let r = Math.floor(i / 864e5), u = Math.floor(i % 864e5 / 36e5), v = Math.floor(i % 36e5 / 6e4), P = Math.floor(i / 1e3 % 60); 23709 this.isDays.set(r > 0), this.days.set(r < 10 ? "0" + r : "" + r), this.hours.set(u < 10 ? "0" + u : "" + u), this.minutes.set(v < 10 ? "0" + v : "" + v), this.seconds.set(P < 10 ? "0" + P : "" + P), this.startInterval(); 23710 } 23711 static ɵfac = function(e) { 23712 return new (e || t)(); 23713 }; 23714 static ɵcmp = I({ 23715 type: t, 23716 selectors: [["cw-originals-timer"]], 23717 inputs: { 23718 timerExpiryDate: [1, "timerExpiryDate"], 23719 originalsConfig: [1, "originalsConfig"], 23720 isOriginalsSubnav: [1, "isOriginalsSubnav"], 23721 isMobile: [1, "isMobile"] 23722 }, 23723 decls: 11, 23724 vars: 3, 23725 consts: [ 23726 [1, "stats"], 23727 [1, "sub-cat-info"], 23728 [1, "prize"], 23729 [1, "originals-time-left"], 23730 [1, "originals-time-left-text"], 23731 [1, "originals-time-period"], 23732 [1, "originals-time-values"], 23733 [1, "originals-time-type"], 23734 [1, "prize-value"], 23735 [1, "originals-type"], 23736 [1, "colons"] 23737 ], 23738 template: function(e, n) { 23739 e & 1 && (H(0, "div", 0), f(1, sk, 2, 1, "div", 1), f(2, ck, 5, 2, "div", 2), H(3, "div", 3), f(4, lk, 2, 1, "div", 4), H(5, "div", 5), D(6, gk, 5, 3, null, null, xc), K(), H(8, "div", 6), D(9, mk, 2, 1, "div", 7, xc), K()()()), e & 2 && (a(), h(n.isOriginalsSubnav() && n.isMobile() ? 1 : -1), a(), h(n.isOriginalsSubnav() ? -1 : 2), a(2), h(n.isOriginalsSubnav() ? -1 : 4), a(2), R(n.timeSegments()), a(3), R(n.timeSegments())); 23740 }, 23741 styles: [".casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%]{justify-content:space-between;display:grid;gap:var(--%NS%semantic-spacing-stack-3xl, 24px)}.casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%]{width:208px;height:var(--%NS%semantic-size-x20, 80px);gap:var(--%NS%semantic-spacing-inline-sm, 4px);display:grid;padding-bottom:var(--%NS%semantic-spacing-container-padding-xl, 12px)}.casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-left-text[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-left-text[_ngcontent-%COMP%]{line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);
23741font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px)}.casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:2.7px}.casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .colons[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .colons[_ngcontent-%COMP%]{font-size:x-large;width:17px;text-align:center}.casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%]{width:25px;height:var(--%NS%semantic-size-x9, 36px);background:#b5a2a233;border-radius:5.4px;font-weight:var(--%NS%semantic-typography-title-lg-strong-font-weight, 700);display:flex;align-items:center;justify-content:center}.casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-values[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-values[_ngcontent-%COMP%]{text-align:center;flex-direction:row;justify-content:space-between;display:flex}.casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-type[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-type[_ngcontent-%COMP%]{width:54px;font-size:11px;font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);padding-top:5px}.sub-category-originals .casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%]{width:208px;height:var(--%NS%semantic-size-x14, 56px);display:block;padding-bottom:var(--%NS%semantic-spacing-container-padding-xl, 12px)}.sub-category-originals .casino-originals-desktop[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%]{background:#ad9f9f33}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%]{justify-content:space-between;display:flex;flex-direction:row;gap:5px;padding:var(--%NS%semantic-spacing-container-padding-lg, 8px) var(--%NS%semantic-spacing-container-padding-2xl, 16px);background:linear-gradient(180deg,#2f2007,#1e1504 108.52%);height:var(--%NS%semantic-size-x20, 80px)}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .prize[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .prize[_ngcontent-%COMP%]{align-content:center;font-size:11px;line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px)}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .prize[_ngcontent-%COMP%] .prize-value[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .prize[_ngcontent-%COMP%] .prize-value[_ngcontent-%COMP%]{font-size:28px;line-height:var(--%NS%semantic-typography-headline-md-line-height, 32px)}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%]{width:154px}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-left-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-left-text[_ngcontent-%COMP%]{font-size:11px;
23741font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);text-align:left}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:2.7px}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .colons[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .colons[_ngcontent-%COMP%]{font-size:large;width:13px;height:27px;text-align:center}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%]{width:19px;height:27px;background:#0003;border-radius:5.4px;font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);display:flex;font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);align-items:center;justify-content:center}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-values[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-values[_ngcontent-%COMP%]{text-align:center;flex-direction:row;justify-content:space-between;display:flex}.casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-type[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-type[_ngcontent-%COMP%]{width:40px;font-size:9px;font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);height:11px;line-height:var(--%NS%semantic-typography-label-xs-line-height, 12px)}.sub-category-originals-mobile .casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%]{background:linear-gradient(180deg,#2f2007,#1e1504 108.52%);justify-content:space-around;align-items:center;gap:var(--%NS%semantic-spacing-container-padding-xl, 12px);padding:var(--%NS%semantic-spacing-container-padding-lg, 8px) var(--%NS%semantic-spacing-container-padding-2xl, 16px)}.sub-category-originals-mobile .casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .colons[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .colons[_ngcontent-%COMP%]{font-size:x-large;width:17px;height:27px;text-align:center}.sub-category-originals-mobile .casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%]{margin:0 auto}.sub-category-originals-mobile .casino-originals-mobile[_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .stats[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%] .originals-time-period[_ngcontent-%COMP%] .originals-type[_ngcontent-%COMP%]{background:#85818133}.sub-category-originals-mobile .casino-originals-mobile[_nghost-%COMP%] .sub-cat-info[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-cat-info[_ngcontent-%COMP%]{font-size:13px;
23741font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:18px;text-align:center}"] 23742 }); 23743 } 23744 return t; 23745 })(), Af = () => ({ btnSize: "small" }), Rf = () => ({ btnSize: "medium" }), Df = (() => { 23746 class t { 23747 CONFIG_KEY = xe; 23748 config = m.required(); 23749 isMobile = m.required(); 23750 hasViewGames = m.required(); 23751 seeAllDetails = j(); 23752 gotoSubNav = j(); 23753 onSeeAllDetails(e) { 23754 this.seeAllDetails.emit(e); 23755 } 23756 onGotoSubNav() { 23757 this.gotoSubNav.emit(); 23758 } 23759 static ɵfac = function(e) { 23760 return new (e || t)(); 23761 }; 23762 static ɵcmp = I({ 23763 type: t, 23764 selectors: [["cw-originals-home-lobby"]], 23765 inputs: { 23766 config: [1, "config"], 23767 isMobile: [1, "isMobile"], 23768 hasViewGames: [1, "hasViewGames"] 23769 }, 23770 outputs: { 23771 seeAllDetails: "seeAllDetails", 23772 gotoSubNav: "gotoSubNav" 23773 }, 23774 decls: 10, 23775 vars: 3, 23776 consts: [ 23777 ["headerBranding", ""], 23778 ["ctaSection", ""], 23779 ["viewGamesLink", ""], 23780 [ 23781 "tabindex", 23782 "0", 23783 "role", 23784 "link", 23785 1, 23786 "originals-background", 23787 3, 23788 "background-image", 23789 "cursor" 23790 ], 23791 [1, "originals-branding"], 23792 [1, "originals-title-row"], 23793 [ 23794 1, 23795 "originals-icon", 23796 3, 23797 "alt", 23798 "src" 23799 ], 23800 [1, "originals-subtitle"], 23801 [1, "originals-cta-group"], 23802 [ 23803 "ds-button", 23804 "", 23805 "kind", 23806 "secondary", 23807 "variant", 23808 "outline", 23809 3, 23810 "click", 23811 "size" 23812 ], 23813 [3, "originalsConfig"], 23814 [ 23815 "tabindex", 23816 "0", 23817 "role", 23818 "link", 23819 1,
23820 "originals-view-games", 23821 3, 23822 "click" 23823 ], 23824 [ 23825 "aria-hidden", 23826 "true", 23827 1, 23828 "theme-right" 23829 ], 23830 [ 23831 "tabindex", 23832 "0", 23833 "role", 23834 "link", 23835 1, 23836 "originals-background", 23837 3, 23838 "click" 23839 ], 23840 [1, "originals-content"], 23841 [1, "originals-info"], 23842 [4, "ngTemplateOutlet"], 23843 [1, "originals-description"], 23844 [ 23845 4, 23846 "ngTemplateOutlet", 23847 "ngTemplateOutletContext" 23848 ], 23849 [1, "originals-timer-section"], 23850 [ 23851 3, 23852 "timerExpiryDate", 23853 "originalsConfig", 23854 "isOriginalsSubnav", 23855 "isMobile" 23856 ], 23857 [1, "originals-header-row"], 23858 [1, "originals-mobile-body"] 23859 ], 23860 template: function(e, n) { 23861 if (e & 1 && (Et(0)(1), te(2, uk, 7, 3, "ng-template", null, 0, Ne)(4, hk, 4, 3, "ng-template", null, 1, Ne)(6, fk, 3, 1, "ng-template", null, 2, Ne), f(8, wk, 10, 14, "div", 3)(9, xk, 9, 14)), e & 2) { 23862 let i = Fe(n.config()); 23863 a(), Fe(i[n.CONFIG_KEY.headerTitleText] + " " + i[n.CONFIG_KEY.headerTitleSubText]), a(7), h(n.isMobile() ? 9 : 8); 23864 } 23865 }, 23866 dependencies: [ 23867 mt, 23868 ke, 23869 _c, 23870 po 23871 ], 23872 styles: [".casino-originals-desktop[_nghost-%COMP%] .originals-background[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-background[_ngcontent-%COMP%]{background-size:cover;background-position:center;position:relative}.casino-originals-desktop[_nghost-%COMP%] .originals-content[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-content[_ngcontent-%COMP%]{max-width:1200px;height:275px;display:flex;padding:38px 0 0 39px;gap:160px}.casino-originals-desktop[_nghost-%COMP%] .originals-info[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-info[_ngcontent-%COMP%]{width:334px;display:flex;flex-direction:column;gap:var(--%NS%semantic-spacing-container-padding-xl, 12px)}.casino-originals-desktop[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%]{display:flex;flex-direction:column}.casino-originals-desktop[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:var(--%NS%semantic-spacing-container-padding-lg, 8px);font-size:var(--%NS%semantic-typography-title-lg-font-size, 20px);line-height:25px;font-weight:var(--%NS%semantic-typography-title-lg-font-weight, 400)}.casino-originals-desktop[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%] .originals-icon[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%] .originals-icon[_ngcontent-%COMP%]{width:var(--%NS%semantic-size-icon-large, 20px);height:var(--%NS%semantic-size-icon-large, 20px)}.casino-originals-desktop[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-subtitle[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-subtitle[_ngcontent-%COMP%]{font-size:42px;font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);line-height:50.61px}.casino-originals-desktop[_nghost-%COMP%] .originals-description[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-description[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-lg-font-size, 20px);line-height:var(--%NS%semantic-typography-title-lg-line-height, 24px);margin:0}.casino-originals-desktop[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:var(--%NS%semantic-spacing-container-padding-2xl, 16px);align-items:center}.casino-originals-desktop[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%]{height:38px;width:120px}.casino-originals-desktop[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:13px;line-height:18px;
23872font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400)}.casino-originals-desktop[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-btn-outline-secondary[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-btn-outline-secondary[_ngcontent-%COMP%]{color:#fff;border-color:#fff}.casino-originals-desktop[_nghost-%COMP%] .originals-timer-section[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-timer-section[_ngcontent-%COMP%]{flex:1;display:flex;align-items:flex-start;padding-top:38px}.casino-originals-desktop[_nghost-%COMP%] .originals-view-games[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-view-games[_ngcontent-%COMP%]{position:absolute;top:20px;right:20px;color:#79bfff;font-size:13px;line-height:18px;font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);cursor:pointer}.casino-originals-desktop[_nghost-%COMP%] .originals-view-games[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .originals-v
23872iew-games[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:sub}.casino-originals-mobile[_nghost-%COMP%] .originals-background[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-background[_ngcontent-%COMP%]{height:136px;background-position:right 5px;background-repeat:no-repeat;background-size:contain;padding:var(--%NS%semantic-typography-body-md-font-size, 14px) var(--%NS%semantic-spacing-container-padding-2xl, 16px)}.casino-originals-mobile[_nghost-%COMP%] .originals-header-row[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-header-row[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.casino-originals-mobile[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%]{display:flex;gap:var(--%NS%semantic-spacing-container-padding-lg, 8px);flex-direction:row;align-items:center}.casino-originals-mobile[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%]{display:flex;flex-direction:row;align-items:center;gap:var(--%NS%semantic-spacing-inline-sm, 4px);font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px)}.casino-originals-mobile[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%] .originals-icon[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-title-row[_ngcontent-%COMP%] .originals-icon[_ngcontent-%COMP%]{width:var(--%NS%semantic-size-icon-small, 12px);height:var(--%NS%semantic-size-icon-small, 12px)}.casino-originals-mobile[_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-subtitle[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-branding[_ngcontent-%COMP%] .originals-subtitle[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);margin-left:-4px}.casino-originals-mobile[_nghost-%COMP%] .originals-mobile-body[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-mobile-body[_ngcontent-%COMP%]{display:flex;flex-direction:column}.casino-originals-mobile[_nghost-%COMP%] .originals-description[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-description[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-md-font-size, 17px);font-weight:var(--%NS%semantic-typography-title-lg-strong-font-weight, 700);line-height:calc(var(--%NS%semantic-typography-title-lg-line-height, 24px) - 2px);text-align:left;margin:var(--%NS%semantic-spacing-container-padding-lg, 8px) 80px 15px 0}.casino-originals-mobile[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:var(--%NS%semantic-spacing-container-padding-2xl, 16px);align-items:center}.casino-originals-mobile[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%]{width:85px;height:var(--%NS%semantic-size-x6, 24px);min-height:unset}.casino-originals-mobile[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-button[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);
23872font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400)}.casino-originals-mobile[_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-btn-outline-secondary[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-cta-group[_ngcontent-%COMP%] .ds-btn-outline-secondary[_ngcontent-%COMP%]{border-color:#fff;color:#fff}.casino-originals-mobile[_nghost-%COMP%] .originals-view-games[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-view-games[_ngcontent-%COMP%]{color:#79bfff;font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);text-align:right;cursor:pointer}.casino-originals-mobile[_nghost-%COMP%] .originals-view-games[_ngcontent-%COMP%] span[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .originals-view-games[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{vertical-align:sub}"] 23873 }); 23874 } 23875 return t; 23876 })(), zf = (() => { 23877 class t { 23878 navigation = s(qe); 23879 dialogRef = s(Ye, { optional: !0 }); 23880 bottomSheetRef = s(ed, { optional: !0 }); 23881 datePipe = s(Ro); 23882 originalsService = s(Xn); 23883 dialogData = s(Ke, { optional: !0 }); 23884 bottomSheetData = s(td, { optional: !0 }); 23885 isOpenedAsDialog; 23886 config; 23887 constructor() { 23888 let e = (this.dialogData?.config ? this.dialogData : null) || this.bottomSheetData; 23889 this.config = e?.config || {}, this.isOpenedAsDialog = !!this.dialogData?.config; 23890 } 23891 expireDate = O(""); 23892 daysText = O(0); 23893 ngOnInit() { 23894 this.calculateTimeDifference(); 23895 } 23896 calculateTimeDifference() { 23897 let e = this.config[xe.timerExpiryDate], n = this.config[xe.nativeExpiryDateFormat]; 23898 if (e) { 23899 let i = new Date(e); 23900 this.expireDate.set(this.datePipe.transform(i, n)); 23901 let r = (/* @__PURE__ */ new Date()).getTime(), u = i.getTime() - r; 23902 if (u <= 0) this.daysText.set(0); 23903 else { 23904 let v = Math.floor(u / 864e5), P = this.config[xe.durationText] || "In {{0}} day(s)"; 23905 this.daysText.set(P.replace("{{0}}", String(v))); 23906 } 23907 } else this.daysText.set(0); 23908 } 23909 closeOverlay(e) { 23910 e && e.stopPropagation(), this.dismiss(), this.originalsService.trackEvent(ye.overlayPosition, ye.locationOverlay, ye.detailsClose); 23911 } 23912 gotoPromo() { 23913 let e = this.config[xe.viewDetailsUrl]; 23914 e && this.navigation.goTo(e), this.dismiss(), this.originalsService.trackEvent(ye.overlayPosition, ye.locationOverlay, ye.detailsViewFullDetails); 23915 } 23916 dismiss() { 23917 this.isOpenedAsDialog ? this.dialogRef?.close() : this.bottomSheetRef?.dismiss(); 23918 } 23919 static ɵfac = function(e) { 23920 return new (e || t)(); 23921 }; 23922 static ɵcmp = I({ 23923 type: t, 23924 selectors: [["cw-originals-overlay"]], 23925 features: [ce([Ro])], 23926 decls: 40, 23927 vars: 19, 23928 consts: [ 23929 [1, "originals-overlay-container"], 23930 [1, "overlay-header"], 23931 [1, "overlay-header-text"], 23932 [ 23933 "ds-button", 23934 "", 23935 "size", 23936 "small", 23937 "variant", 23938 "outline", 23939 "kind", 23940 "secondary", 23941 3, 23942 "click" 23943 ], 23944 [1, "overlay-content-items"], 23945 [1, "overlay-originals-icons"], 23946 [ 23947 1, 23948 "overlay-icon-img", 23949 3, 23950 "alt", 23951 "src" 23952 ], 23953 [1, "overlay-originals-time"], 23954 ["aria-hidden", "true"], 23955 [1, "time-exprires"], 23956 [1, "originals-days-count"], 23957 [1, "originals-steps-title"], 23958 [1, "originals-circle-ordered-list"], 23959 [1, "originals-circle-list"], 23960 [1, "additional-text"], 23961 [1, "overlay-see-all-optin-text"], 23962 [ 23963 "ds-button", 23964 "", 23965 "size", 23966 "medium", 23967 "variant", 23968 "outline", 23969 "kind", 23970 "secondary", 23971 3, 23972 "click" 23973 ], 23974 [ 23975 3, 23976 "originalsConfig", 23977 "fromOverlay" 23978 ] 23979 ], 23980 template: function(e, n) { 23981 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2), C(3), d(), l(4, "button", 3), S("click", function(i) { 23982 return n.closeOverlay(i); 23983 }), C(5), d()(), l(6, "div", 4)(7, "div", 5), b(8, "img", 6), l(9, "span"), C(10), d()(), l(11, "div", 7), b(12, "div", 8), l(13, "div", 9)(14, "div"), C(15), d(), l(16, "div", 10), C(17), d()()(), b(18, "hr"), l(19, "div")(20, "div", 11), C(21), d(), l(22, "ol", 12)(23, "li", 13)(24, "span"), C(25), d()(), l(26, "li", 13)(27, "span"), C(28), d()()(), l(29, "div", 5), b(30, "img", 6), l(31, "span"), C(32), d()(), l(33, "div", 14), C(34), d()(), b(35, "hr"), d(), l(36, "div", 15)(37, "button", 16), S("click", function() { 23984 return n.gotoPromo(); 23985 }), C(38), d(), b(39, "cw-originals-optin", 17), d()()), e & 2 && (a(3), x(n.config.overlayHeaderText), a(2), E(" ", n.config.overlayHeaderButtonText || "Close", " "), a(3), p("alt", n.c
23985onfig.ticketTextDetails)("src", n.config.ticketIcon, Y), a(2), x(n.config.ticketTextDetails), a(2), W(n.config.timerIcon || ""), a(3), x(n.config.timeTextDetails + " : " + n.expireDate()), a(2), x(n.daysText()), a(4), x(n.config.subDetailsHeaderText), a(4), x(n.config.subDetailsText1), a(3), x(n.config.subDetailsText2), a(2), p("alt", n.config.ticketInfo)("src", n.config.bonusIcon, Y), a(2), x(n.config.ticketInfo), a(2), x(n.config.aditionalInformation), a(4), E(" ", n.config.viewDetailsText, " "), a(), p("originalsConfig", n.config)("fromOverlay", !0)); 23986 }, 23987 dependencies: [ke, po], 23988 styles: [`.originals-overlay-container{background-color:#fff;color:#000}.originals-overlay-container .overlay-header{height:44px;display:flex;justify-content:space-between;align-items:center;background:var(--%NS%semantic-color-supporting-gray-tint);padding:var(--%NS%semantic-spacing-container-padding-md, 6px) var(--%NS%semantic-spacing-container-padding-2xl, 16px)}.originals-overlay-container .overlay-header-text{font-size:var(--%NS%semantic-typography-title-md-font-size, 17px);font-weight:var(--%NS%semantic-typography-title-md-strong-font-weight, 700)}.originals-overlay-container .originals-steps-title{font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);width:359px}.originals-overlay-container .originals-days-count{color:red;font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px)}.originals-overlay-container .time-exprires{display:flex;justify-content:space-between;align-items:center;width:100%}.originals-overlay-container .overlay-header .overlay-button-text,.originals-overlay-container .overlay-see-all-optin-text .overlay-button-text{background-color:transparent;border-color:#857979}.originals-overlay-container .overlay-originals-time{display:flex;gap:var(--%NS%semantic-spacing-container-padding-lg, 8px);text-align:center;align-items:center}.originals-overlay-container .overlay-originals-time .theme-time:before{width:var(--%NS%semantic-size-icon-medium, 16px);height:var(--%NS%semantic-size-icon-medium, 16px);display:flex;align-items:center;justify-content:center}.originals-overlay-container .overlay-content-items{padding:var(--%NS%semantic-spacing-container-padding-md, 6px) var(--%NS%semantic-spacing-container-padding-2xl, 16px)}.originals-overlay-container .overlay-details-text{font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500)}.originals-overlay-container .overlay-originals-icons{display:flex;gap:var(--%NS%semantic-spacing-container-padding-lg, 8px);line-height:var(--%NS%semantic-typography-body-md-line-height, 20px);margin-bottom:5px;align-items:center}.originals-overlay-container .overlay-icon-img{font-size:var(--%NS%semantic-typography-title-lg-font-size, 20px);line-height:var(--%NS%semantic-typography-title-lg-line-height, 24px);font-weight:var(--%NS%semantic-typography-body-lg-font-weight, 400)}.originals-overlay-container .overlay-icon-img img{width:var(--%NS%semantic-size-icon-large, 20px);height:var(--%NS%semantic-size-icon-large, 20px)}.originals-overlay-container .originals-circle-ordered-list{container:auto;list-style:none;counter-reset:circle-counter;overflow:hidden;margin:unset}.originals-overlay-container .originals-circle-ordered-list .originals-circle-list{position:relative;padding-left:2em;margin-bottom:1em;margin-right:var(--%NS%semantic-spacing-container-padding-2xl, 16px);font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px)}.originals-overlay-container .originals-circle-ordered-list .originals-circle-list:after{content:"";position:absolute;left:7px;height:var(--%NS%semantic-size-x2, 8px);top:19px;bottom:-16px;width:2px;background-color:var(--%NS%semantic-color-supporting-gray-tint, #f3f4f5);z-index:99}.originals-overlay-container .originals-circle-ordered-list .originals-circle-list:last-child:after{display:none}.originals-overlay-container .originals-circle-ordered-list .originals-circle-list:before{content:counter(circle-counter);counter-increment:circle-counter;position:absolute;
23988left:0;width:var(--%NS%semantic-size-icon-medium, 16px);border:1px solid #c3c4c7;height:var(--%NS%semantic-size-icon-medium, 16px);line-height:var(--%NS%semantic-size-icon-medium, 16px);border-radius:50%;color:#1d1b1b;text-align:center;font-weight:700;display:flex;align-items:center;justify-content:center}.originals-overlay-container .originals-success-icon{color:var(--%NS%theme-success);background-color:#fff;display:flex;align-items:center;border-radius:50%;width:var(--%NS%semantic-size-x3, 12px);height:var(--%NS%semantic-size-x3, 12px)}.mat-mdc-dialog-container .originals-overlay-container{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);width:454px;height:auto;overflow:hidden}.mat-mdc-dialog-container .originals-overlay-container .overlay-originals-icons{width:359px}.mat-mdc-dialog-container .originals-overlay-container .overlay-icon-img{width:var(--%NS%semantic-spacing-inline-xl, 16px);height:var(--%NS%semantic-spacing-inline-xl, 16px)}.mat-mdc-dialog-container .originals-overlay-container .originals-circle-ordered-list{padding:calc(var(--%NS%site-spacer-tiny, 2px) + var(--%NS%site-spacer-xs, 4px)) 0 0 0;width:359px}.mat-mdc-dialog-container .originals-overlay-container .overlay-see-all-optin-text{display:flex;justify-content:center;gap:15px;height:70px}.mat-mdc-dialog-container .originals-overlay-container .overlay-see-all-optin-text button,.mat-mdc-dialog-container .originals-overlay-container .optin-text button{width:205px;height:44px}.mat-mdc-dialog-container .originals-overlay-container .overlay-see-all-optin-text button span .ds-btn-text,.mat-mdc-dialog-container .originals-overlay-container .optin-text button span .ds-btn-text{font-size:13px}.mat-mdc-dialog-container .originals-overlay-container .additional-text{font-size:11px;margin-top:18px}.mat-mdc-dialog-container .originals-overlay-container .optin-success-text{display:flex;width:205px;height:44px;align-items:center;justify-content:center;font-size:13px;gap:5px}.mat-bottom-sheet-container{padding:unset;border-radius:var(--%NS%semantic-radius-semi-rounded-sm, 6px) var(--%NS%semantic-radius-semi-rounded-sm, 6px) 0 0;width:390px;height:auto}.mat-bottom-sheet-container .originals-overlay-container .originals-steps-title{padding:0 0 calc(var(--%NS%site-spacer-tiny, 2px) + var(--%NS%site-spacer-xs, 4px)) 0}.mat-bottom-sheet-container .originals-overlay-container .overlay-see-all-optin-text{display:flex;justify-content:center;gap:15px;padding:0 0 var(--%NS%semantic-spacing-container-padding-xl, 12px) 0}.mat-bottom-sheet-container .originals-overlay-container .overlay-see-all-optin-text button,.mat-bottom-sheet-container .originals-overlay-container .optin-text button{width:172px;height:42px}.mat-bottom-sheet-container .originals-overlay-container .overlay-see-all-optin-text button span .ds-btn-text,.mat-bottom-sheet-container .originals-overlay-container .optin-text button span .ds-btn-text{font-size:var(--%NS%semantic-typography-body-md-font-size, 14px)}.mat-bottom-sheet-container .originals-overlay-container .overlay-content-items{font-size:var(--%NS%semantic-typography-label-md-font-size, 12px)}.mat-bottom-sheet-container .originals-overlay-container .additional-text{font-size:var(--%NS%semantic-typography-label-lg-font-size, 14px);margin-top:18px}.mat-bottom-sheet-container .originals-overlay-container .overlay-icon-img{width:var(--%NS%semantic-size-icon-medium, 16px);height:var(--%NS%semantic-size-icon-medium, 16px)}.mat-bottom-sheet-container .originals-overlay-container .originals-circle-ordered-list{padding:var(--%NS%semantic-spacing-container-padding-md, 6px) 0 0 0}.mat-bottom-sheet-container .optin-success-text{display:flex;width:172px;height:44px;align-items:center;justify-content:center;font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);gap:5px}.betmgm-seeall-overlay .mat-bottom-sheet-container{overflow:hidden auto} 23989`], 23990 encapsulation: 2 23991 }); 23992 } 23993 return t; 23994 })(), Bf = (() => { 23995 class t { 23996 originalsService = s(Xn); 23997 CONFIG_KEY = xe; 23998 config = m.required(); 23999 isMobile = m.required(); 24000 isOptedIn = g(() => this.originalsService.optInStatus() === gn.OptedIn); 24001 seeAllDetails = j(); 24002 onSeeAllDetails(e) { 24003 this.seeAllDetails.emit(e); 24004 } 24005 static ɵfac = function(e) { 24006 return new (e || t)(); 24007 }; 24008 static ɵcmp = I({ 24009 type: t, 24010 selectors: [["cw-originals-subnav"]], 24011 inputs: { 24012 config: [1, "config"], 24013 isMobile: [1, "isMobile"] 24014 }, 24015 outputs: { seeAllDetails: "seeAllDetails" }, 24016 decls: 9, 24017 vars: 4, 24018 consts: [ 24019 ["subnavCta", ""], 24020 ["drawingImage", ""], 24021 [ 24022 1, 24023 "casino-originals-background", 24024 "sub-category-originals", 24025 3, 24026 "background-image" 24027 ], 24028 [ 24029 1, 24030 "sub-category-originals-background", 24031 "sub-category-originals-mobile", 24032 3, 24033 "background-image" 24034 ], 24035 [1, "subcat-see-all-button"], 24036 [ 24037 "ds-button", 24038 "", 24039 "size", 24040 "medium", 24041 "kind", 24042 "secondary", 24043 "variant", 24044 "outline", 24045 3, 24046 "click" 24047 ], 24048 [3, "originalsConfig"], 24049 [1, "drawing-image"], 24050 [ 24051 3, 24052 "alt", 24053 "src" 24054 ], 24055 [ 24056 1, 24057 "casino-originals-background", 24058 "sub-category-originals" 24059 ], 24060 [1, "sub-cat-origins"], 24061 [1, "left-section"], 24062 [1, "sub-heading"], 24063 [1, "heading"], 24064 [1, "right-section"], 24065 [1, "sub-cat-info"], 24066 [1, "timer"], 24067 [ 24068 3, 24069 "timerExpiryDate", 24070 "originalsConfig", 24071 "isOriginalsSubnav", 24072 "isMobile" 24073 ], 24074 [1, "sub-drawing-sec"], 24075 [1, "originals-prize-info"], 24076 [4, "ngTemplateOutlet"], 24077 [1, "drawing-sec"], 24078 [1, "originals-header-section"], 24079 [1, "originals-prize-details"], 24080 [1, "before-optin-content"], 24081 [1, "sub-cat-optin-text"], 24082 [ 24083 1, 24084 "sub-category-originals-background", 24085 "sub-category-originals-mobile" 24086 ], 24087 [1, "sub-cat-timer"], 24088 [1, "content-sec"], 24089 [1, "mobile-subcat-header"], 24090 [1, "mobile-subcat-prize"], 24091 [1, "mobile-subcat-content"], 24092 [1, "mobile-subcat-optin-text"] 24093 ], 24094 template: function(e, n) { 24095 if (e & 1 && (Et(0)(1)(2), te(3, _k, 4, 2, "ng-template", null, 0, Ne)(5, Ik, 1, 1, "ng-template", null, 1, Ne), f(7, Gk, 23, 14, "div", 2)(8, Dk, 19, 12, "div", 3)), e & 2) { 24096 let i = Fe(n.config()); 24097 a(), Fe(i[n.CONFIG_KEY.headerTitleText] + " " + i[n.CONFIG_KEY.headerTitleSubText]), a(), Fe(i[n.CONFIG_KEY.seeDetailsLastPrize] + " : " + i[n.CONFIG_KEY.prizeValue]), a(5), h(n.isMobile() ? 8 : 7); 24098 } 24099 }, 24100 dependencies: [ 24101 mt, 24102 ke, 24103 _c, 24104 po 24105 ], 24106 styles: [".casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%]{height:430px;
24106display:flex;align-items:center;justify-content:center;width:100%;max-width:1450px;background-size:cover;background-position:center}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .originals-prize-details[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .originals-prize-details[_ngcontent-%COMP%]{font-size:11px;font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);text-align:left}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .before-optin-content[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .before-optin-content[_ngcontent-%COMP%]{font-size:11px;font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);text-align:left}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-origins[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-origins[_ngcontent-%COMP%]{display:flex;width:950px;align-items:center;margin-left:250px;justify-content:flex-end;gap:35px}@media only screen and (max-width:1024px){.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-origins[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-origins[_ngcontent-%COMP%]{margin-left:0;width:100%;justify-content:center}}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%]{display:flex;width:433px;flex-direction:column}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%]{width:392px}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-heading[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-heading[_ngcontent-%COMP%]{font-size:43px;font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:43px}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .heading[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .heading[_ngcontent-%COMP%]{font-size:100px;line-height:100px;font-weight:var(--%NS%semantic-typography-title-lg-strong-font-weight, 700)}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .drawing-sec[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .drawing-sec[_ngcontent-%COMP%]{width:50%}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .drawing-sec[_ngcontent-%COMP%] .originals-header-section[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .drawing-sec[_ngcontent-%COMP%] .originals-header-section[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px)}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%]{flex-flow:wrap;justify-content:end;gap:var(--%NS%semantic-spacing-container-padding-lg, 8px);display:flex;flex-direction:column}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:80px;height:var(--%NS%semantic-size-x6, 24px);min-height:unset}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:80px;height:var(--%NS%semantic-size-x6, 24px);color:#fff;border-color:#fff;min-height:unset}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:13px}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .originals-prize-info[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .originals-prize-info[_ngcontent-%COMP%]{display:flex;background:#303030;padding:var(--%NS%semantic-spacing-container-padding-lg, 8px);height:68px;border-radius:var(--%NS%semantic-radius-semi-rounded-sm, 6px)}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .drawing-image[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .drawing-image[_ngcontent-%COMP%]{margin:0 var(--%NS%semantic-spacing-container-padding-lg, 8px) 0 0;display:grid}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-info[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .sub-cat-info[_ngcontent-%COMP%]{text-align:center;font-size:var(--%NS%semantic-typography-title-md-font-size, 17px);padding-bottom:15px;line-height:22px}.casino-originals-desktop[_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .timer[_ngcontent-%COMP%], .casino-originals-desktop [_nghost-%COMP%] .sub-category-originals[_ngcontent-%COMP%] .timer[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-bottom:10px}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%]{background:radial-gradient(115.45% 115.45% at 50% 0%,#614102,#382004 41.42%,#090601 98.14%)}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%]{padding-top:93px;gap:var(--%NS%semantic-spacing-inline-sm, 4px);display:flex;flex-direction:column}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%] .sub-heading[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%] .sub-heading[_ngcontent-%COMP%]{font-size:34px;font-weight:var(--%NS%semantic-typography-title-lg-strong-font-we
24106ight, 700);line-height:41px;text-align:center}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%] .sub-cat-timer[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .left-section[_ngcontent-%COMP%] .sub-cat-timer[_ngcontent-%COMP%]{max-width:334px;margin:0 auto}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .originals-prize-info[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .originals-prize-info[_ngcontent-%COMP%]{display:flex;margin:var(--%NS%semantic-spacing-container-padding-md, 6px);padding:var(--%NS%semantic-spacing-container-padding-lg, 8px);border-radius:var(--%NS%semantic-radius-semi-rounded-sm, 6px);background:#303030;height:68px}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .content-sec[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .content-sec[_ngcontent-%COMP%]{display:flex;width:100%}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .drawing-image[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .drawing-image[_ngcontent-%COMP%]{padding-right:5px}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-header[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-header[_ngcontent-%COMP%]{justify-content:left;align-items:center;display:flex;font-size:var(--%NS%semantic-typography-body-md-font-size, 14px);font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px)}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:end;gap:var(--%NS%semantic-spacing-container-padding-lg, 8px)}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:80px;height:25px;min-height:unset}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:80px;height:25px;color:#fff;border-color:#fff;min-height:unset}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%] button[_ngcontent-%COMP%] span[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);
24106font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400)}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .subcat-see-all-button[_ngcontent-%COMP%]{display:flex}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%]{display:flex}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-optin-text[_ngcontent-%COMP%] .optin-text[_ngcontent-%COMP%] span[_ngcontent-%COMP%] .ds-btn-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-sm-font-size, 12px);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400)}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-prize[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-prize[_ngcontent-%COMP%]{font-size:11px;font-weight:var(--%NS%semantic-typography-body-md-strong-font-weight, 500);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);text-align:left}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-content[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-content[_ngcontent-%COMP%]{font-size:11px;font-weight:var(--%NS%semantic-typography-body-sm-font-weight, 400);line-height:var(--%NS%semantic-typography-body-sm-line-height, 16px);text-align:left}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .originals-time-left[_ngcontent-%COMP%]{width:154px;margin:0 auto;padding-bottom:var(--%NS%semantic-spacing-container-padding-xl, 12px)}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .drawing-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .drawing-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{vertical-align:unset}.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .sub-cat-origins[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .sub-cat-origins[_ngcontent-%COMP%]{width:100%;padding-top:100px}@media only screen and (max-width:361px){.casino-originals-mobile[_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-header[_ngcontent-%COMP%], .casino-originals-mobile [_nghost-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%] .right-section[_ngcontent-%COMP%] .mobile-subcat-header[_ngcontent-%COMP%]{font-size:13px}}"] 24107 }); 24108 } 24109 return t; 24110 })(), Ff = (() => { 24111 class t { 24112 containerService = s(ie); 24113 originalsService = s(Xn); 24114 deviceService = s(J); 24115 navigation = s(he); 24116 casinoStyles = s(jt); 24117 containerMetadata = m.required(); 24118 containerIndex = m.required(); 24119 layoutId = m(""); 24120 containerData = Q(this.containerService.container$, { initialValue: null }); 24121 originalsConfig = g(() => this.containerData()?.originalsConfigurations ?? {}); 24122 isReady = g(() => !!this.containerData()); 24123 isVisible = g(() => this.isReady() && this.originalsService.isTimerRunning() && this.originalsService.isWidgetVisible(this.originalsConfig()) && (this.originalsService.optInStatus() === gn.OptedIn || this.originalsService.optInStatus() === gn.Offered)); 24124 isMobile = g(() => this.deviceService.isMobilePhone); 24125 containerHeader = g(() => { 24126 let e = this.containerData(); 24127 return { 24128 title: e?.title, 24129 subtitle: e?.subtitle, 24130 iconName: e?.iconName, 24131 headingTextColor: e ? this.casinoStyles.getContainerHeadingColor(e) : void 0 24132 }; 24133 }); 24134 isOriginalsSubnav = g(() => { 24135 let e = this.navigation.currentSubnav(), n = this.navigation.subnavId(); 24136 return e?.id === Mc || n === Mc; 24137 }); 24138 hasViewGames = g(() => !!this.originalsConfig()[xe.viewGamesText]); 24139 optInSourceType = g(() => this.originalsConfig()[xe.sourceType] ?? ""); 24140 optInSourceId = g(() => this.originalsConfig()[xe.sourceId] ?? ""); 24141 constructor() { 24142 Z(() => { 24143 this.containerService.fetchAndSetContainer(this.containerMetadata()); 24144 }), Z(() => { 24145 let e = this.optInSourceType(), n = this.optInSourceId(); 24146 !e || !n || this.originalsService.fetchOptInStatus(e, n); 24147 }); 24148 } 24149 seeAllDetails(e) { 24150 e.stopPropagation(), e.stopImmediatePropagation(), this.originalsService.openOverlay(zf, this.originalsConfig()); 24151 let n = this.isOriginalsSubnav() ? ye.locationOriginals : ye.locationHome; 24152 this.originalsService.trackEvent(ye.widgetPosition, n, ye.detailsSeeDetails); 24153 } 24154 gotoSubNav() { 24155 if (!this.hasViewGames()) return; 24156 let e = this.containerData()?.viewAllTarget, n = ""; 24157 if (e) n = this.navigation.createUrlForSeeAll(e), n && this.navigation.goTo(n); 24158 else { 24159 let i = this.navigation.currentLayout(); 24160 if (i) { 24161 let r = { 24162 id: "originals", 24163 isDefault: !1, 24164 type: rr.Page, 24165 title: "Originals", 24166 isHidden: !1, 24167 iconName: "", 24168 value: "" 24169 }; 24170 n = this.navigation.createUrlForNav(i, r), n && this.navigation.goTo(n); 24171 } 24172 } 24173 this.originalsService.trackEvent(ye.gamesPosition, ye.locationHome, ye.detailsSeeAll, n || ye.defaultUrl); 24174 } 24175 static ɵfac = function(e) { 24176 return new (e || t)(); 24177 }; 24178 static ɵcmp = I({ 24179 type: t, 24180 selectors: [["cw-container-originals-widget"]], 24181 inputs: { 24182 containerMetadata: [1, "containerMetadata"], 24183 containerIndex: [1, "containerIndex"], 24184 layoutId: [1, "layoutId"] 24185 }, 24186 features: [ce([ie])], 24187 decls: 1, 24188 vars: 1, 24189 consts: [ 24190 [ 24191 1, 24192 "casino-game-tile-wrapper", 24193 "casino-lobby-width-gametile", 24194 "lobby-container" 24195 ], 24196 [ 24197 3, 24198 "config", 24199 "isMobile", 24200 "hasViewGames" 24201 ], 24202 [ 24203 3, 24204 "config", 24205 "isMobile" 24206 ], 24207 [ 24208 3, 24209 "title", 24210 "subtitle", 24211 "iconName", 24212 "headingTextColor" 24213 ], 24214 [ 24215 3, 24216 "seeAllDetails", 24217 "gotoSubNav", 24218 "config", 24219 "isMobile", 24220 "hasViewGames" 24221 ], 24222 [ 24223 3, 24224 "seeAllDetails", 24225 "config", 24226 "isMobile" 24227 ] 24228 ], 24229 template: function(e, n) { 24230 e & 1 && f(0, Vk, 7, 8), e & 2 && h(n.isVisible() ? 0 : -1); 24231 }, 24232 dependencies: [ 24233 $t, 24234 Df, 24235 Bf 24236 ], 24237 styles: ["[_nghost-%COMP%]{display:block}
24237.casino-originals-desktop[_ngcontent-%COMP%]{display:flex;background:radial-gradient(115.45% 115.45% at 50% 0%,#614102,#382004 41.42%,#090601 98.14%);justify-content:center;flex-direction:column;width:100%;max-width:1200px;margin:0 auto;border-radius:var(--%NS%semantic-radius-semi-rounded-md, 8px);overflow:hidden;color:var(--%NS%color-white, #fff)}.casino-originals-mobile[_ngcontent-%COMP%]{background:radial-gradient(115.45% 115.45% at 50% 0%,#614102,#000 70%,#090601);color:var(--%NS%color-white, #fff)}.category-Level-Originals[_ngcontent-%COMP%] .sub-category-originals-mobile[_ngcontent-%COMP%]{padding-top:93px;display:flex;flex-direction:column;gap:var(--%NS%semantic-spacing-inline-sm, 4px);background-size:contain}.category-Level-Originals[_ngcontent-%COMP%] .casino-originals-desktop[_ngcontent-%COMP%]{max-width:unset;align-items:center}"] 24238 }); 24239 } 24240 return t; 24241 })(), Vf = { 24242 preventPopupTitle: "Game Rounds in Progress", 24243 preventPopupClose: "Close", 24244 preventPopupSingleGameDescription: "It looks like you have an unfinished game round. Before you can join a tournament, you need to complete this active round.", 24245 preventPopupMultipleGameDescription: "It looks like you have a couple of unfinished game rounds. Before you can join a tournament, you need to complete those active rounds.",
24246 preventPopupLaunchUnfinishedGame: "Complete first round" 24247 }, jf = [ 24248 "rank", 24249 "prize", 24250 "prize-img", 24251 "player", 24252 "points" 24253 ], Bi = (() => { 24254 class t { 24255 dialog = s(Bt); 24256 defaultConfig = { 24257 panelClass: Xo, 24258 width: pa, 24259 maxWidth: fa, 24260 autoFocus: !1 24261 }; 24262 openPickGameDialog(e, n, i) { 24263 this.dialog.closeAll(), this.dialog.open(n, F(G({}, this.defaultConfig), { data: e })).afterClosed().subscribe((r) => { 24264 r?.launchGame && r.game && i && i(r.game); 24265 }); 24266 } 24267 openRaceInfoDialog(e, n, i) { 24268 this.dialog.closeAll(), this.dialog.open(n, F(G({}, this.defaultConfig), { data: e })).afterClosed().subscribe((r) => { 24269 r?.openPickGameOverlay && i(); 24270 }); 24271 } 24272 openNotificationOverlay(e, n) { 24273 this.dialog.closeAll(), this.dialog.open(n, F(G({}, this.defaultConfig), { data: e })); 24274 } 24275 openConfirmToasterDialog(e, n) { 24276 return this.dialog.open(n, { 24277 data: e, 24278 panelClass: Y1, 24279 autoFocus: !1 24280 }); 24281 } 24282 openNotificationToaster(e, n) { 24283 this.dialog.open(n, { 24284 width: H1, 24285 data: e, 24286 panelClass: X1 24287 }); 24288 } 24289 openUnfinishedGamesDialog(e, n, i) { 24290 this.dialog.open(n, { 24291 data: e, 24292 panelClass: Z1, 24293 autoFocus: !1 24294 }).afterClosed().subscribe((r) => { 24295 r && i(r); 24296 }); 24297 } 24298 openFullRulesDialog(e, n) { 24299 this.dialog.open(n, { 24300 data: e, 24301 panelClass: Xo, 24302 width: pa, 24303 maxWidth: fa 24304 }); 24305 } 24306 openResultsDialog(e, n) { 24307 this.dialog.open(n, { 24308 data: e, 24309 panelClass: ew, 24310 width: pa, 24311 maxWidth: fa 24312 }); 24313 } 24314 closeAll() { 24315 this.dialog.closeAll(); 24316 } 24317 static ɵfac = function(e) { 24318 return new (e || t)(); 24319 }; 24320 static ɵprov = A({ 24321 token: t, 24322 factory: t.ɵfac 24323 }); 24324 } 24325 return t; 24326 })(), Ln = (() => { 24327 class t { 24328 trackingService = s(yl); 24329 track(e, n, i, r, u = !1) { 24330 this.trackingService?.triggerEvent("Event.Tracking", { 24331 "component.CategoryEvent": "Slots", 24332 "component.LabelEvent": u ? "filter tab" : "Race Cards", 24333 "component.ActionEvent": e, 24334 "component.PositionEvent": n, 24335 "component.LocationEvent": i, 24336 "component.EventDetails": r, 24337 "component.URLClicked": "not applicable" 24338 }); 24339 } 24340 static ɵfac = function(e) { 24341 return new (e || t)(); 24342 }; 24343 static ɵprov = A({ 24344 token: t, 24345 factory: t.ɵfac, 24346 providedIn: "root" 24347 }); 24348 } 24349 return t; 24350 })(), Gn = { 24351 PlayNow: "Play Now", 24352 OptInPlay: "Opt In & Play", 24353 OptIn: "Opt In", 24354 PickGame: "Pick Game" 24355 }, $f = [ 24356 Ie.COINS, 24357 Ie.FREE_SPINS, 24358 Ie.FREE_SPIN, 24359 Ie.GOLDEN_CHIP 24360 ], kc = 1440, Wf = "00:00:00", Uf = /* @__PURE__ */ new Set([Ie.FREE_SPINS, Ie.FREE_SPIN]), Ic = 3, Hf = "beatbankeronlycoin", mn = { 24361 title: "Prevent_Popup_Title", 24362 close: "Prevent_Popup_Close", 24363 singleGameDescription: "Prevent_Popup_SingleGame_Description", 24364 multipleGameDescription: "Prevent_Popup_MultipleGame_Description", 24365 launchUnfinishedGame: "Prevent_Popup_Launch_Unfinished_Game", 24366 preventIcon: "Prevent_Icon", 24367 radialShadow: "Radial_Shadow_Effect" 24368 }, qf = (t, o) => o.gameId, Jf = /^https?:\/\//i, Fi = (() => { 24369 class t { 24370 gameImageService = s(rt); 24371 gameVariantList = m([]); 24372 layoutId = m(""); 24373 isLive = m(!1); 24374 isClickable = m(!0); 24375 iconClick = j(); 24376 isMultiIcon = g(() => this.gameVariantList().length > 1); 24377 static MAX_GRID_ICONS = 4; 24378 overlayApplicable = g(() => this.gameVariantList().length > t.MAX_GRID_ICONS); 24379 overlayCount = g(() => this.gameVariantList().length - (t.MAX_GRID_ICONS - 1)); 24380 gameVariantIconList = g(() => { 24381 let e = this.gameVariantList(); 24382 if (e.length === 0) return []; 24383 let n = Math.min(e.length, t.MAX_GRID_ICONS), i = []; 24384 for (let r = 0; r < n; r++) { 24385 let u = n === 2 || n === 3 && r === 0 ? 2 : 1, v = u === 2 ? ue.Landscape : ue.Square, P = e[r] ?? ""; 24386 i.push({ 24387 gameId: P, 24388 src: this.resolveIconUrl(P, v), 24389 colspan: u 24390 }); 24391 } 24392 return i; 24393 }); 24394 singleIconSrc = g(() => {
24395 let e = this.gameVariantList(); 24396 return e.length === 0 ? "" : this.resolveIconUrl(e[0] ?? "", ue.Square); 24397 }); 24398 resolveIconUrl(e, n) { 24399 if (!e) return ""; 24400 if (Jf.test(e)) return e; 24401 let i = { gameId: e }; 24402 return this.gameImageService.getIconConfigForType(i, n).src; 24403 } 24404 onIconClick() { 24405 this.isClickable() && this.iconClick.emit(); 24406 } 24407 static ɵfac = function(e) { 24408 return new (e || t)(); 24409 }; 24410 static ɵcmp = I({ 24411 type: t, 24412 selectors: [["cw-slot-races-icon"]], 24413 inputs: { 24414 gameVariantList: [1, "gameVariantList"], 24415 layoutId: [1, "layoutId"], 24416 isLive: [1, "isLive"], 24417 isClickable: [1, "isClickable"] 24418 }, 24419 outputs: { iconClick: "iconClick" }, 24420 decls: 2, 24421 vars: 1, 24422 consts: [ 24423 [ 24424 "tabindex", 24425 "0", 24426 "role", 24427 "button", 24428 1, 24429 "tourney-icon-container", 24430 3, 24431 "cursor" 24432 ], 24433 [ 24434 "tabindex", 24435 "0", 24436 "role", 24437 "button", 24438 1, 24439 "coineconomy-imgs", 24440 3, 24441 "cursor" 24442 ], 24443 [ 24444 "tabindex", 24445 "0", 24446 "role", 24447 "button", 24448 1, 24449 "tourney-icon-container", 24450 3, 24451 "click", 24452 "keydown.enter" 24453 ], 24454 [ 24455 "cols", 24456 "2", 24457 "rowHeight", 24458 "1:1" 24459 ], 24460 [3, "colspan"], 24461 [ 24462 1, 24463 "tourney-icon", 24464 2, 24465 "width", 24466 "100%", 24467 "height", 24468 "100%", 24469 3, 24470 "src", 24471 "alt", 24472 "draggable" 24473 ], 24474 [1, "tourney-icon-overlay"], 24475 [ 24476 "tabindex", 24477 "0", 24478 "role", 24479 "button", 24480 1, 24481 "coineconomy-imgs", 24482 3, 24483 "click", 24484 "keydown.enter" 24485 ], 24486 [ 24487 "alt", 24488 "", 24489 1, 24490 "img-coineconomy", 24491 3, 24492 "src", 24493 "draggable" 24494 ] 24495 ], 24496 template: function(e, n) { 24497 e & 1 && f(0, lI, 4, 2, "div", 0)(1, dI, 2, 4, "div", 1), e & 2 && h(n.isMultiIcon() ? 0 : 1); 24498 }, 24499 dependencies: [ 24500 Fn, 24501 la, 24502 da 24503 ], 24504 styles: ["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] .tourney-icon-container.tourney-icon-container[_ngcontent-%COMP%]{width:100%;height:100%}[_nghost-%COMP%] .tourney-icon-container.tourney-icon-container[_ngcontent-%COMP%] mat-grid-tile.mat-grid-tile{border-radius:var(--%NS%sr-game-tile-border-radius, .125rem);box-sizing:unset;border:var(--%NS%sr-game-tile-border, thin solid var(--%NS%semantic-color-primary-base));overflow:hidden}[_nghost-%COMP%] .tourney-icon-container.tourney-icon-container[_ngcontent-%COMP%] mat-grid-tile.mat-grid-tile figure.mat-figure, [_nghost-%COMP%] .tourney-icon-container.tourney-icon-container[_ngcontent-%COMP%] mat-grid-tile.mat-grid-tile .mat-grid-tile-content{padding:0}.tourney-icon[_ngcontent-%COMP%]{height:100%;width:100%;object-fit:cover}.tourney-icon-overlay[_ngcontent-%COMP%]{position:absolute;height:100%;width:100%;z-index:1;background:#000000bf;color:#fff;text-align:center;padding-top:30%;font-size:var(--%NS%semantic-typography-label-md-font-size)}.coineconomy-imgs[_ngcontent-%COMP%]{width:100%;height:100%;position:relative}.img-coineconomy[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;border-radius:3%}"] 24505 }); 24506 } 24507 return t; 24508 })(), Yf = (t) => [t], Tc = (() => { 24509 class t { 24510 dialogRef = s(Ye); 24511 dialog = s(Bt); 24512 contentApi = s(Te); 24513 lifecycleService = s(wn); 24514 deviceService = s(J); 24515 destroyRef = s(q); 24516 data = s(Ke); 24517 race = O(this.data.race); 24518 layoutId = O(this.data.layoutId); 24519 trackingLocation = O(this.data.trackingLocation); 24520 coinImg = O(this.data.coinImg); 24521 cardComponent = O(this.data.cardComponent ?? null); 24522 messages = this.contentApi.messages; 24523 isLive = !!this.data.race?.isLive; 24524 isUpcoming = !this.isLive; 24525 static GRID_COLS_MOBILE = 3; 24526 static GRID_COLS_DESKTOP = 4; 24527 breakpoint = g(() => this.deviceService.isMobileWidth() ? t.GRID_COLS_MOBILE : t.GRID_COLS_DESKTOP); 24528 cardInputs = g(() => ({ 24529 race: this.race(), 24530 trackingLocation: this.trackingLocation(), 24531 layoutId: this.layoutId(), 24532 coinImg: this.coinImg(), 24533 fromPickGameOverlay: !0, 24534 showRaceInfo: !0 24535 })); 24536 isClickable = g(() => { 24537 let e = this.race(); 24538 if (!e) return !0; 24539 let n = e.subType?.toUpperCase(), i = n === pt.FREE_TO_PLAY || n === pt.FREE_PLAY_TECH; 24540 return !(!e.isLive && i); 24541 }); 24542 ngOnInit() { 24543 this.lifecycleService.liveRacesData.pipe(z(this.destroyRef)).subscribe((e) => { 24544 e && md(this.race(), e, this.isLive, this.isUpcoming) && this.close(); 24545 }); 24546 } 24547 close() { 24548 this.dialog.closeAll(); 24549 } 24550 launchGame(e, n) { 24551 this.dialogRef.close({ 24552 launchGame: !0, 24553 game: e, 24554 position: n 24555 }); 24556 } 24557 static ɵfac = function(e) { 24558 return new (e || t)(); 24559 }; 24560 static ɵcmp = I({ 24561 type: t, 24562 selectors: [["cw-slot-races-pick-game"]], 24563 decls: 11, 24564 vars: 3, 24565 consts: [ 24566 [1, "casino-lobby-container-main"], 24567 [ 24568 1, 24569 "casino-slot-races-pick-game", 24570 "casino-race-info-container" 24571 ], 24572 [1, "race-info-title-container"], 24573 [ 24574 "mat-dialog-title", 24575 "", 24576 1, 24577 "race-info-title" 24578 ], 24579 [ 24580 "tabindex", 24581 "0", 24582 "role", 24583 "button", 24584 1, 24585 "theme-ex", 24586 "race-info-close", 24587 3, 24588 "click", 24589 "keyup.enter" 24590 ], 24591 [1, "cs-sr-overlay-games-section"], 24592 [ 24593 "rowHeight", 24594 "1:1", 24595 "gutterSize", 24596 "10px", 24597 3, 24598 "cols" 24599 ], 24600 [ 24601 3, 24602 "ngComponentOutlet", 24603 "ngComponentOutletInputs" 24604 ], 24605 [ 24606 1, 24607 "cw-slot-races-icon", 24608 3, 24609 "iconClick", 24610 "gameVariantList", 24611 "layoutId", 24612 "isLive", 24613 "isClickable" 24614 ] 24615 ], 24616 template: function(e, n) { 24617 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "span", 3), C(4), d(), l(5, "span", 4), S("click", function() { 24618 return n.close(); 24619 })("keyup.enter", function() { 24620 return n.close(); 24621 }), d()(), f(6, gI, 2, 2, "div"), l(7, "div", 5)(8, "mat-grid-list", 6), D(9, mI, 2, 6, "mat-grid-tile", null, ht), d()()()()), e & 2 && (a(4), x(n.messages().PickGameOverlayTitle || "Choose Your Game"), a(2), h(n.cardComponent() ? 6 : -1), a(2), p("cols", n.breakpoint()), a(), R(n.race().gameVariantList)); 24622 }, 24623 dependencies: [ 24624 hl, 24625 Fn, 24626 la, 24627 da, 24628 Fi 24629 ], 24630 styles: ["[_nghost-%COMP%]{display:block;color:#fff} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container, .cdk-overlay-container .sr-results-dialog mat-dialog-container, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container{max-width:100%} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container .mdc-dialog__surface{overflow-x:hidden} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:5px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-track{border-radius:10px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px var(--%NS%sr-scrollbar-thumb, #c1c1c1)} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface{scrollbar-width:none} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:0}
24630.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;justify-content:center;height:3.4375rem;margin:0;padding:0 1.25rem;text-align:center;background-color:var(--%NS%sr-dialog-header-bg, #000)}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-title[_ngcontent-%COMP%]{display:inline-block;font-size:var(--%NS%semantic-typography-title-lg-font-size);font-weight:400;line-height:3.4375rem;letter-spacing:unset;color:#fff}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-title[_ngcontent-%COMP%]:before{height:unset}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-close[_ngcontent-%COMP%]{position:absolute;right:.9375rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#fff;cursor:pointer}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item{display:block;width:100%;margin:0}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget{width:100%;margin:0;border-radius:0}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget img, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget img{z-index:0}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top{height:119px;padding:var(--%NS%semantic-spacing-container-padding-xl) 0 0 1.25rem}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .total-prize, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .total-prize{font-size:var(--%NS%semantic-typography-label-md-font-size);width:5.0625rem}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .sr-card-total-prize-value, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .sr-card-total-prize-value{width:auto;font-size:var(--%NS%semantic-typography-headline-sm-font-size)}@media screen and (min-width:768px){.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box{margin-top:.625rem}}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section{width:24%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .ends, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .ends{font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter{font-size:var(--%NS%semantic-typography-title-lg-font-size)}
24630.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section{width:40%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .min-bet, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .min-bet{font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet{font-size:var(--%NS%semantic-typography-title-lg-font-size)}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box.sr-card-counter-bet-box-max, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box.sr-card-counter-bet-box-max{position:relative}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon{margin-left:0;margin-top:0;height:5.25rem;width:5.25rem;max-width:5.25rem;border-radius:.1875rem}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img{width:5.25rem;height:5.25rem;border-radius:.1875rem}@media screen and (min-width:768px){.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img{width:6.125rem;height:6.125rem;border-radius:0}}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom{height:3.5625rem;position:relative;padding:0 20px}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .time-sec, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .pleyer-count, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .time-sec, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .spin-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .btn-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .pleyer-count{z-index:9}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .pleyer-count, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .pleyer-count{width:15%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .time-sec, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .time-sec{width:16%}
24630.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .spin-section{width:24%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .btn-section{width:45%;margin:0;text-align:right}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .expand-show-btn, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .expand-show-btn{display:none}.cs-sr-overlay-games-section[_ngcontent-%COMP%]{margin:2%}.cs-sr-overlay-games-section[_ngcontent-%COMP%] .mat-grid-tile .mat-figure, .cs-sr-overlay-games-section[_ngcontent-%COMP%] .mat-grid-tile-content{padding:0}.cs-sr-overlay-games-section[_ngcontent-%COMP%] .cw-slot-races-icon{width:100%}.cs-sr-overlay-games-section[_ngcontent-%COMP%] .cw-slot-races-icon img{width:100%;border-radius:3%}.cs-sr-overlay-games-section[_ngcontent-%COMP%] .cw-slot-races-icon .coineconomy-imgs:after{content:\"\";position:absolute;inset:0;border-radius:var(--%NS%sr-game-tile-border-radius, .125rem);border:var(--%NS%sr-game-tile-border, thin solid var(--%NS%semantic-color-primary-base));pointer-events:none;z-index:1}"] 24631 }); 24632 } 24633 return t; 24634 })(), Kf = 1e4, Nc = 40, Lc = 40, Gc = (() => { 24635 class t { 24636 currencyPipe = s(St); 24637 leaderboardApi = s(ur); 24638 configProviderService = s(V); 24639 contentApi = s(Te); 24640 slotRacesService = s(an); 24641 user = s(Je); 24642 destroyRef = s(q); 24643 race = m(void 0); 24644 coinImg = m(""); 24645 resultsHistory = m(null); 24646 displayedColumns = jf; 24647 visibleStats = O([]); 24648 height = O(null); 24649 messages = this.contentApi.messages; 24650 sharedListMessages = this.contentApi.sharedMessages; 24651 prizeIconClass = g(() => { 24652 let e = this.race(); 24653 return `sr-prize-icon ${e ? Gr(e, this.sharedListMessages()) : ""}`.trim(); 24654 }); 24655 showHeaderCoin = g(() => { 24656 let e = this.race(); 24657 return e && Er(e) ? !0 : (this.resultsHistory()?.awardType?.toLowerCase() ?? "") === Ie.COINS; 24658 }); 24659 headerBgColor = g(() => this.sharedListMessages().leaderboardHeaderBgColor || null); 24660 headerTextColor = g(() => this.sharedListMessages().leaderboardHeaderTextColor || null); 24661 contentTextColor = g(() => this.sharedListMessages().leaderboardContentTextColor || null); 24662 playerPositionTextColor = g(() => this.sharedListMessages().leaderboardPlayerPositionTextColor || null); 24663 playerPositionAwardBgColor = g(() => this.sharedListMessages().leaderboardPlayerPositionAwardTypeBgColor || null); 24664 playerPositionAwardTextColor = g(() => this.sharedListMessages().leaderboardPlayerPositionAwardTypeTextColor || null); 24665 ngOnInit() { 24666 let e = this.configProviderService.provideSlotRacesConfig(), n = e?.maxLeaderboardRows || 0, i = this.resultsHistory(); 24667 if (i) { 24668 this.loadResultsHistoryLeaderboard(i, n); 24669 return; 24670 } 24671 let r = this.race(); 24672 r && Vb(0, e?.leaderboardPollingInterval || Kf).pipe(Xt(() => this.leaderboardApi.getLeaderboard(r.promoId, r.slotUniqueId, n, !1)), z(this.destroyRef)).subscribe({ 24673 next: (u) => { 24674 if (u?.rankDetails?.length) { 24675 let v = this.withCurrentUserRow(Ar(u, this.currencyPipe), r, u); 24676 this.visibleStats.set(v); 24677 let P = (r.ctaList?.indexOf(ze.OPTIN) ?? -1) === -1; 24678 this.height.set(P ? v.length * Nc + Lc : null); 24679 } 24680 }, 24681 error: (u) => { 24682 this.slotRacesService.addErrorMessage(u.errorCode); 24683 } 24684 }); 24685 } 24686 withCurrentUserRow(e, n, i) { 24687 let r = this.user.screenname || this.user.id || ""; 24688 if (!r) return e; 24689 let u = !1, v = e.map(($) => $.playerName !== r ? $ : (u = !0, F(G({}, $), { isUser: !0 }))); 24690 if (u) return v;
24691 let P = n.rankDetails?.find(($) => $.playerName === r); 24692 if (!P) return v; 24693 let [N] = Ar({ 24694 rankDetails: [P], 24695 content: i.content 24696 }, this.currencyPipe); 24697 return [...v, F(G({}, N), { isUser: !0 })]; 24698 } 24699 loadResultsHistoryLeaderboard(e, n) { 24700 let i = e.configMap ?? e.configMaps?.[0]; 24701 if (!i) return; 24702 let r = Number(i.promoId), u = Number(i.slotId); 24703 this.leaderboardApi.getLeaderboard(r, u, 0, !0).pipe(z(this.destroyRef)).subscribe({ 24704 next: (v) => { 24705 let P = v?.rankDetails?.length ? Ar(v, this.currencyPipe) : []; 24706 n && (P = P.filter((fe) => fe.rank <= n)); 24707 let N = { 24708 rank: e.rank, 24709 playerName: e.playerName, 24710 points: e.points, 24711 prize: e.prize ?? "", 24712 prizeIcon: e.prizeIcon, 24713 isUser: !0 24714 }, $ = (fe) => fe.playerName === e.playerName, me = P.some($) ? P.map((fe) => $(fe) ? F(G({}, fe), { isUser: !0 }) : fe) : [...P, N]; 24715 this.visibleStats.set(me), this.height.set(me.length * Nc + Lc); 24716 }, 24717 error: (v) => { 24718 this.slotRacesService.addErrorMessage(v.errorCode); 24719 } 24720 }); 24721 } 24722 static ɵfac = function(e) { 24723 return new (e || t)(); 24724 }; 24725 static ɵcmp = I({ 24726 type: t, 24727 selectors: [["cw-slot-races-leaderboard"]], 24728 hostVars: 12, 24729 hostBindings: function(e, n) { 24730 e & 2 && k("--%NS%sr-table-header-bg", n.headerBgColor())("--%NS%sr-table-header-text", n.headerTextColor())("--%NS%sr-table-content-text", n.contentTextColor())("--%NS%sr-player
24730-position-text", n.playerPositionTextColor())("--%NS%sr-player-position-award-bg", n.playerPositionAwardBgColor())("--%NS%sr-player-position-award-text", n.playerPositionAwardTextColor()); 24731 }, 24732 inputs: { 24733 race: [1, "race"], 24734 coinImg: [1, "coinImg"], 24735 resultsHistory: [1, "resultsHistory"] 24736 }, 24737 features: [ce([St])], 24738 decls: 20, 24739 vars: 5, 24740 consts: [ 24741 [ 24742 1, 24743 "example-container", 24744 "madgrid-align-proparty" 24745 ], 24746 [ 24747 "mat-table", 24748 "", 24749 1, 24750 "sr-alternate-colors", 24751 3, 24752 "dataSource" 24753 ], 24754 [1, "hide-caption"], 24755 ["matColumnDef", "rank"], 24756 [ 24757 "mat-header-cell", 24758 "", 24759 4, 24760 "matHeaderCellDef" 24761 ], 24762 [ 24763 "mat-cell", 24764 "", 24765 "class", 24766 "casino-sr-rank", 24767 4, 24768 "matCellDef" 24769 ], 24770 ["matColumnDef", "prize"], 24771 [ 24772 "mat-cell", 24773 "", 24774 4, 24775 "matCellDef" 24776 ], 24777 ["matColumnDef", "prize-img"], 24778 [ 24779 "mat-cell", 24780 "", 24781 "class", 24782 "srl-prize-td", 24783 4, 24784 "matCellDef" 24785 ], 24786 ["matColumnDef", "player"], 24787 ["matColumnDef", "points"], 24788 [ 24789 "mat-cell", 24790 "", 24791 "class", 24792 "casino-sr-points", 24793 4, 24794 "matCellDef" 24795 ], 24796 [ 24797 "mat-header-row", 24798 "", 24799 4, 24800 "matHeaderRowDef" 24801 ], 24802 [ 24803 "mat-row", 24804 "", 24805 3, 24806 "sr-user-row", 24807 4, 24808 "matRowDef", 24809 "matRowDefColumns" 24810 ], 24811 ["mat-header-cell", ""], 24812 [ 24813 "mat-cell", 24814 "", 24815 1, 24816 "casino-sr-rank" 24817 ], 24818 [1, "srp-coin-reward"], 24819 [1, "leader-board-prize-align"], 24820 [1, "sr-card-total-coin"], 24821 [ 24822 "alt", 24823 "Coin Image", 24824 1, 24825 "coin-img", 24826 3, 24827 "src" 24828 ], 24829 ["mat-cell", ""], 24830 [1, "casino-Bonus"], 24831 [1, "theme-plus"], 24832 [ 24833 "mat-cell", 24834 "", 24835 1, 24836 "srl-prize-td" 24837 ], 24838 [1, "srl-prize-container"], 24839 [ 24840 1, 24841 "brown_trophy", 24842 3, 24843 "innerHTML" 24844 ], 24845 [ 24846 "mat-cell", 24847 "", 24848 1, 24849 "casino-sr-points" 24850 ], 24851 ["mat-header-row", ""], 24852 ["mat-row", ""] 24853 ], 24854 template: function(e, n) { 24855 e & 1 && (l(0, "div", 0)(1, "table", 1), b(2, "caption", 2), yn(3, 3), te(4, pI, 2, 1, "th", 4)(5, uI, 2, 1, "td", 5), un(), yn(6, 6), te(7, fI, 5, 4, "th", 4)(8, wI, 2, 1, "td", 7), un(), yn(9, 8), te(10, PI, 1, 0, "th", 4)(11, MI, 3, 1, "td", 9), un(), yn(12, 10), te(13, OI, 2, 1, "th", 4)(14, xI, 2, 1, "td", 7), un(), yn(15, 11), te(16, _I, 2, 1, "th", 4)(17, kI, 2, 1, "td", 12), un(), te(18, II, 1, 0, "tr", 13)(19, TI, 1, 2, "tr", 14), d()()), e & 2 && (k("height", n.height(), "px"), a(), p("dataSource", n.visibleStats()), a(17), p("matHeaderRowDef", n.displayedColumns), a(), p("matRowDefColumns", n.displayedColumns)); 24856 }, 24857 dependencies: [ 24858 c1, 24859 u1, 24860 l1, 24861 C1, 24862 b1, 24863 f1, 24864 g1, 24865 p1, 24866 m1, 24867 v1, 24868 h1 24869 ], 24870 styles: ["[_nghost-%COMP%]{display:block}.example-container[_ngcontent-%COMP%]{overflow:auto;scrollbar-width:none}.example-container[_ngcontent-%COMP%]::-webkit-scrollbar{width:0}.madgrid-align-proparty[_ngcontent-%COMP%] table{width:100%}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-mdc-header-row{height:var(--%NS%semantic-size-x10)}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-mdc-row{height:var(--%NS%semantic-size-x10)}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-mdc-cell, .madgrid-align-proparty[_ngcontent-%COMP%] .mat-mdc-header-cell{font-size:var(--%NS%semantic-typography-label-lg-font-size);border:none;padding:0 .3125rem}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-mdc-cell{color:var(--%NS%sr-table-content-text, #333)}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-mdc-header-cell{color:var(--%NS%sr-table-header-text, #fff);font-weight:var(--%NS%semantic-typography-title-sm-strong-font-weight);letter-spacing:-.01px;background:var(--%NS%sr-table-header-bg, var(--%NS%sr-leaderboard-header-bg, var(--%NS%theme-brand-03)));z-index:1}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-column-rank{width:15%}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-column-prize{width:30%}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-column-prize-img{width:5%}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-column-points{width:15%;font-weight:var(--%NS%semantic-typography-title-sm-strong-font-we
24870ight)}.madgrid-align-proparty[_ngcontent-%COMP%] .mat-column-player{width:20%}.sr-alternate-colors[_ngcontent-%COMP%] .mat-mdc-row:nth-child(odd){background:var(--%NS%sr-table-row-odd, #f5f5f5)}.sr-alternate-colors[_ngcontent-%COMP%] .mat-mdc-row:nth-child(2n){background:var(--%NS%sr-table-row-even, #fff)}.casino-sr-rank[_ngcontent-%COMP%], .casino-sr-points[_ngcontent-%COMP%]{font-weight:var(--%NS%semantic-typography-title-sm-strong-font-weight)}.casino-Bonus[_ngcontent-%COMP%]{width:fit-content;padding:.1875rem .625rem;border-radius:var(--%NS%semantic-radius-l2-badge-medium);font-size:var(--%NS%semantic-typography-label-xs-font-size);font-weight:var(--%NS%semantic-typography-title-sm-strong-font-weight);background:var(--%NS%semantic-color-primary-base);color:var(--%NS%semantic-color-on-primary-base);display:flex;align-items:center}.sr-prize-icon[_ngcontent-%COMP%]{font-size:1.875rem;position:relative;top:var(--%NS%semantic-size-x1)}.sr-prize-icon[_ngcontent-%COMP%] .theme-golden-chip[_ngcontent-%COMP%]{font-size:1.5625rem}.leader-board-prize-align[_ngcontent-%COMP%]{position:relative;bottom:var(--%NS%semantic-size-x2)}.srl-prize-td[_ngcontent-%COMP%]{text-align:right}.srl-prize-td[_ngcontent-%COMP%] .srl-prize-container[_ngcontent-%COMP%]{display:inline-block;margin-right:0}.brown_trophy[_ngcontent-%COMP%]{color:var(--%NS%sr-trophy-bronze, #cd7f32)}.brown_trophy[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:1.4375rem;height:auto}.srp-coin-reward[_ngcontent-%COMP%], .sr-card-total-coin[_ngcontent-%COMP%]{display:flex;align-items:center}.coin-img[_ngcontent-%COMP%]{width:var(--%NS%semantic-size-x4);height:var(--%NS%semantic-size-x4);margin-right:var(--%NS%semantic-spacing-inline-sm)}.See-full-leaderboard[_ngcontent-%COMP%]{text-align:center;padding:.625rem 0}.hide-caption[_ngcontent-%COMP%]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.madgrid-align-proparty[_ngcontent-%COMP%] tr.sr-user-row td.mat-mdc-cell{position:sticky;bottom:0;z-index:1;background:var(--%NS%semantic-color-primary-base);
24870color:var(--%NS%sr-player-position-text, var(--%NS%semantic-color-on-primary-base));font-weight:var(--%NS%semantic-typography-title-sm-strong-font-weight)}.madgrid-align-proparty[_ngcontent-%COMP%] tr.sr-user-row td.mat-mdc-cell .casino-Bonus{background:var(--%NS%sr-player-position-award-bg, var(--%NS%semantic-color-on-primary-base));color:var(--%NS%sr-player-position-award-text, var(--%NS%semantic-color-primary-base))}"] 24871 }); 24872 } 24873 return t; 24874 })(), Vi = (() => { 24875 class t { 24876 panel = s(ci); 24877 srPanelState = m(!0, { transform: hn }); 24878 open = ni(() => this.srPanelState()); 24879 constructor() { 24880 this.panel.opened.pipe(z()).subscribe(() => this.open.set(!0)), this.panel.closed.pipe(z()).subscribe(() => this.open.set(!1)); 24881 } 24882 static ɵfac = function(e) { 24883 return new (e || t)(); 24884 }; 24885 static ɵdir = Dn({ 24886 type: t, 24887 selectors: [[ 24888 "mat-expansion-panel", 24889 "srPanelState", 24890 "" 24891 ]], 24892 inputs: { srPanelState: [1, "srPanelState"] }, 24893 exportAs: ["srPanelState"] 24894 }); 24895 } 24896 return t; 24897 })(), ji = (t) => ({ $implicit: t }), uo = (t, o) => o.ruleType, Qf = (t, o) => o.ruleConfig, ho = 4, Xf = [ 24898 "one", 24899 "two", 24900 "three", 24901 "four", 24902 "five", 24903 "six", 24904 "seven", 24905 "eight", 24906 "nine", 24907 "ten" 24908 ], Zf = (() => { 24909 class t { 24910 contentApi = s(Te); 24911 deviceService = s(J); 24912 race = m(void 0); 24913 pointsData = g(() => { 24914 let e = this.contentApi.contentSignal(); 24915 return e ? this.buildPointsData(this.race(), e) : []; 24916 }); 24917 showPointsV2 = g(() => (this.race()?.slotRaceRuleConfigV2?.length ?? 0) > 0); 24918 showCarousel = !this.deviceService.isTouch; 24919 messages = this.contentApi.messages; 24920 pointsContentColor = g(() => this.messages().PointsContentColor || ""); 24921 pointsCountClass = g(() => { 24922 let e = this.pointsData().length; 24923 return e >= 1 && e <= 3 ? `dropdown-text sr${e}-points` : "dropdown-text"; 24924 }); 24925 pointsView = g(() => this.pointsData().map((e) => { 24926 let n = e.slabList ?? [], i = n.length, r = e.ruleType === li.WIN_X_TIMES_ON_BET; 24927 return F(G({}, e), { 24928 isCompact: i > ho, 24929 slabClass: qI(i, Xf[i - 1]), 24930 slabs: n.map((u) => ({ 24931 ruleConfig: u.ruleConfig, 24932 points: u.points, 24933 isWinXTimesOnBet: r, 24934 descLabel: Number(u.ruleConfig) > 1 ? e.descMult : e.descSingle, 24935 pointsLabel: u.points > 1 ? e.pointMult : e.pointSingle 24936 })) 24937 }); 24938 })); 24939 swiperOptions = { 24940 slidesPerView: 2, 24941 spaceBetween: 8, 24942 navigation: !0, 24943 pagination: !0, 24944 autoHeight: !0 24945 }; 24946 buildPointsData(e, n) { 24947 let i = JSON.parse(JSON.stringify(n.raceRuleConfigs || [])), r = !!e?.slotRaceRuleConfigV2?.length, u = (r ? e?.slotRaceRuleConfigV2 : e?.slotRaceRuleConfig) ?? []; 24948 if (u.length === 0) return this.buildSitecorePointsData(i); 24949 let v = [...u]; 24950 for (let P of v) { 24951 let N = i.find(($) => $.metadata?.id?.itemName?.toLowerCase() === P.ruleType?.toLowerCase()); 24952 P.pointValue = P.points, P.pointsImage = N?.pointsImage, P.pointsText = N?.pointsText?.replace(Vn.POINTS, "") ?? "", P.pointsDescription = N?.pointsDescription?.replace(Vn.RULE_CONFIG, String(P.ruleConfig)) ?? "", r && (P.ruleTitle = N?.ruleConfigTitleV2 ?? "", P.ruleDescription = N?.ruleConfigDescriptionV2 ?? "", this.setPointsV2DescriptionTexts(P)); 24953 } 24954 return v; 24955 } 24956 buildSitecorePointsData(e) { 24957 return e.map((n) => ({ 24958 ruleType: n.metadata?.id?.itemName ?? "", 24959 points: 0, 24960 ruleNo: 0, 24961 slabList: [], 24962 ruleConfig: n.ruleConfigValue, 24963 pointValue: n.pointValue, 24964 pointsImage: n.pointsImage, 24965 pointsText: (n.pointsText ?? "").replace(Vn.POINTS, ""), 24966 pointsDescription: (n.pointsDescription ?? "").replace(Vn.RULE_CONFIG, String(n.ruleConfigValue ?? "")), 24967 ruleTitle: n.ruleConfigTitleV2, 24968 ruleDescription: n.ruleConfigDescriptionV2 24969 })); 24970 } 24971 setPointsV2DescriptionTexts(e) { 24972 let n = this.messages(), i = "", r = ""; 24973 switch (e.ruleType?.toUpperCase()) { 24974 case li.CONSECUTIVE_WINS: 24975 case li.WIN_SPIN: 24976 i = n.WinSingle ?? "Win", r = n.WinMultiple ?? "Wins"; 24977 break; 24978 case li.CONSECUTIVE_LOSSES: 24979 i = n.LossSingle ?? "Loss", r = n.LossMultiple ?? "Losses"; 24980 break; 24981 case li.WIN_X_TIMES_ON_BET: i = n.StakeWon ?? "", r = n.StakeWon ?? ""; 24982 } 24983 let u = (e.slabList?.length ?? 0) > ho; 24984 Object.assign(e, { 24985 descSingle: i, 24986 descMult: r, 24987 pointSingle: (u ? n.PtSingle : n.PointSingle) ?? "Point", 24988 pointMult: (u ? n.PtMultiple : n.PointMultiple) ?? "Points" 24989 }); 24990 } 24991 static ɵfac = function(e) { 24992 return new (e || t)(); 24993 }; 24994 static ɵcmp = I({ 24995 type: t, 24996 selectors: [["cw-slot-races-points"]], 24997 inputs: { race: [1, "race"] }, 24998 decls: 5, 24999 vars: 1, 25000 consts: [ 25001 ["ruleCard", ""], 25002 ["multiplierLabel", ""], 25003 ["panelState", "srPanelState"], 25004 [ 25005 1, 25006 "casino-rules-and-tc", 25007 "casino-point-carousel", 25008 3, 25009 "points-panel-closed" 25010 ], 25011 [ 25012 1, 25013 "casino-rules-and-tc", 25014 "casino-point-carousel" 25015 ], 25016 [ 25017 "hideToggle", 25018 "", 25019 "srPanelState", 25020 "", 25021 3, 25022 "expanded" 25023 ], 25024 [1, "panel-title"], 25025 [ 25026 "id", 25027 "points-dropdown", 25028 3, 25029 "color", 25030 "class" 25031 ], 25032 [1, "main-title"], 25033 [1, "main-discription"], 25034 [1, "sr-link-text"], 25035 [1, "casino-point-carousel-container"], 25036 [3, "swiperOptions"], 25037 [1, "innerscrolable"], 25038 [1, "swiper-slide"], 25039 [ 25040 3, 25041 "ngTemplateOutlet", 25042 "ngTemplateOutletContext" 25043 ], 25044 ["id", "points-dropdown"], 25045 [1, "explain-div"], 25046 [1, "points-panel-data"], 25047 [1, "total-points"], 25048 [1, "points-image-n-text"], 25049 [1, "background-image-section"], 25050 [1, "total-points-value"], 25051 [1, "total-points-text"], 25052 [1, "total-points-text2"], 25053 [1, "seperator-class"], 25054 [1, "sub-title"], 25055 [1, "sub-discription"], 25056 [1, "total-points-new"], 25057 [1, "typetwo-points"], 25058 [1, "type-one-linetwo"], 25059 [1, "pt-value"], 25060 [1, "points-lh"], 25061 [1, "type-one"] 25062 ], 25063 template: function(e, n) { 25064 e & 1 && (f(0, BI, 11, 7, "div", 3), te(1, $I, 9, 5, "ng-template", null, 0, Ne)(3, HI, 5, 3, "ng-template", null, 1, Ne)), e & 2 && h(n.pointsData().length ? 0 : -1); 25065 }, 25066 dependencies: [ 25067 sa, 25068 ci, 25069 ca, 25070 ra, 25071 oa, 25072 ma, 25073 ga, 25074 si, 25075 mt, 25076 Vi 25077 ], 25078 styles: ["[_nghost-%COMP%]{display:block}.sr-link-text[_ngcontent-%COMP%]{text-decoration:underline;cursor:pointer}
25078.casino-point-carousel[_ngcontent-%COMP%]{color:#fff;background:linear-gradient(to bottom,var(--%NS%sr-points-gradient-start, var(--%NS%semantic-color-supporting-gray-base)) 0%,var(--%NS%sr-points-gradient-end, var(--%NS%semantic-color-primary-base)) 100%)}.casino-point-carousel[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:focus, .casino-point-carousel[_ngcontent-%COMP%] .mat-expansion-panel-header.mat-expanded:hover{background:unset}.casino-point-carousel[_ngcontent-%COMP%] .main-title[_ngcontent-%COMP%]{font-weight:700;padding:0 0 var(--%NS%semantic-spacing-container-padding-lg) 1.5625rem}.casino-point-carousel[_ngcontent-%COMP%] .main-discription[_ngcontent-%COMP%]{padding:0 1.5625rem var(--%NS%semantic-spacing-container-padding-lg)}.casino-point-carousel[_ngcontent-%COMP%] .main-discription[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:pointer}.casino-point-carousel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%], .casino-point-carousel[_ngcontent-%COMP%] .theme-minus[_ngcontent-%COMP%]{color:#fff}.casino-point-carousel.points-panel-closed[_ngcontent-%COMP%]{background:unset;color:unset}.casino-point-carousel.points-panel-closed[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%], .casino-point-carousel.points-panel-closed[_ngcontent-%COMP%] .theme-plus[_ngcontent-%COMP%]{color:var(--%NS%sr-panel-text-color, #fff)}.sr-full-rules-dialog[_nghost-%COMP%] .casino-point-carousel[_ngcontent-%COMP%], .sr-full-rules-dialog [_nghost-%COMP%] .casino-point-carousel[_ngcontent-%COMP%]{background:unset;color:unset}.sr-full-rules-dialog[_nghost-%COMP%] .casino-point-carousel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%], .sr-full-rules-dialog [_nghost-%COMP%] .casino-point-carousel[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%], .sr-full-rules-dialog[_nghost-%COMP%] .casino-point-carousel[_ngcontent-%COMP%] .theme-minus[_ngcontent-%COMP%], .sr-full-rules-dialog [_nghost-%COMP%] .casino-point-carousel[_ngcontent-%COMP%] .theme-minus[_ngcontent-%COMP%]{color:var(--%NS%sr-panel-text-color, #fff)}.casino-point-carousel-container[_ngcontent-%COMP%]{width:100%;height:auto;color:#000;margin-left:.9375rem;padding-bottom:4.75rem}.casino-point-carousel-container[_ngcontent-%COMP%] .swiper-pagination-bullet, .casino-point-carousel-container[_ngcontent-%COMP%] .native-swiper-bullet{width:var(--%NS%semantic-size-x3);height:var(--%NS%semantic-size-x3);border-radius:50%;background:#fff;opacity:.4}.casino-point-carousel-container[_ngcontent-%COMP%] .swiper-pagination-bullet-active, .casino-point-carousel-container[_ngcontent-%COMP%] .native-swiper-bullet.active{opacity:1;background:#fff}.casino-point-carousel-container[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%]{background:#fff;width:100%;height:auto;min-height:24.375rem;padding-bottom:1.25rem;border-radius:var(--%NS%semantic-radius-l2-card);margin-top:1.5625rem;overflow:hidden}.casino-point-carousel-container[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%] .sub-title[_ngcontent-%COMP%]{margin:.8125rem 1rem;font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:700}.casino-point-carousel-container[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%] .sub-discription[_ngcontent-%COMP%]{margin:.8125rem 1rem 0;font-size:.625rem}.casino-point-carousel-container[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%] .sub-discription[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{text-decoration:underline}.casino-point-carousel-container[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]{width:50%;float:left;text-align:center;margin-top:2.1875rem}.casino-point-carousel-container[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);color:#000}.casino-point-carousel-container[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .pt-value[_ngcontent-%COMP%]{width:2.125rem;height:2.125rem;line-height:2.125rem;background:var(--%NS%semantic-color-primary-base);border-radius:50%;display:inline-block;color:#fff}.casino-point-carousel-container[_ngcontent-%COMP%] .point-typetwo[_ngcontent-%COMP%] .background-image-section[_ngcontent-%COMP%]{background-image:unset;height:unset;width:unset}.casino-point-carousel-container[_ngcontent-%COMP%] .point-typetwo[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one-linetwo[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .point-typetwo[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%]{display:inline-block}
25078.casino-point-carousel-container[_ngcontent-%COMP%] .point-typetwo[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%]{white-space:normal;word-break:break-word}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:last-child, .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:last-child, .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-five[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:last-child, .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-seven[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:last-child, .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-nine[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:last-child{width:100%;margin-top:var(--%NS%semantic-spacing-stack-2xl)}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-five[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-five[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:last-child{margin-top:2.1875rem}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-six[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]{margin-top:2.1875rem}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-two[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%]{position:relative;height:4.0625rem;width:100%;margin:0 auto;text-align:center}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%]:before, .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-two[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%]:before, .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%]:before, .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%]:before{content:\"\";position:absolute;width:4.0625rem;height:4.0625rem;top:.3125rem;left:1.875rem;background:var(--%NS%semantic-color-primary-base);border-radius:50%}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-two[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%]{position:relative;bottom:-1.875rem;margin:0 auto;font-size:var(--%NS%semantic-typography-label-md-font-size);text-align:center}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%] .total-points-text[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-two[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%] .total-points-text[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%] .total-points-text[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one[_ngcontent-%COMP%] .total-points-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);display:inline}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .pt-value[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-two[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .pt-value[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .pt-value[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .pt-value[_ngcontent-%COMP%]{width:unset;background:unset;display:block;position:relative;top:.3125rem;color:#fff;font-size:var(--%NS%semantic-typography-headline-sm-font-size)}
25078.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .points-lh[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-two[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .points-lh[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .points-lh[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .points-lh[_ngcontent-%COMP%]{display:block;height:1.25rem;line-height:1.25rem}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-one[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one-linetwo[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-two[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one-linetwo[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-three[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one-linetwo[_ngcontent-%COMP%], .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%] .typetwo-points[_ngcontent-%COMP%] .type-one-linetwo[_ngcontent-%COMP%]{position:relative;top:9px;color:var(--%NS%semantic-color-on-primary-base);font-size:var(--%NS%semantic-typography-label-xs-font-size);text-align:center;text-transform:uppercase;font-weight:700}.casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:nth-child(1), .casino-point-carousel-container[_ngcontent-%COMP%] .points-counts-four[_ngcontent-%COMP%] .total-points-new[_ngcontent-%COMP%]:nth-child(2){margin-top:0}.background-image-section[_ngcontent-%COMP%]{background-size:contain;background-repeat:no-repeat;height:var(--%NS%semantic-size-x20);width:122px;margin:0 auto}#points-dropdown[_ngcontent-%COMP%]{margin-bottom:1.875rem;padding:0 18%}#points-dropdown[_ngcontent-%COMP%] .explain-div[_ngcontent-%COMP%]{text-align:center;margin-bottom:var(--%NS%semantic-spacing-stack-2xl);font-size:var(--%NS%semantic-typography-label-xs-font-size);font-weight:700}#points-dropdown[_ngcontent-%COMP%] .seperator-class[_ngcontent-%COMP%]{width:1px;height:1.875rem;float:left;margin-top:var(--%NS%semantic-spacing-stack-3xl);background:var(--%NS%sr-points-separator-bg, var(--%NS%semantic-color-l2-navigation-background-base))}.total-points[_ngcontent-%COMP%]{width:32.9%;float:left}.total-points[_ngcontent-%COMP%] .total-points-text2[_ngcontent-%COMP%]{font-size:.625rem;margin-top:.3125rem;text-align:center}.total-points[_ngcontent-%COMP%] .total-points-value[_ngcontent-%COMP%]{position:relative;height:4.0625rem;width:4.0625rem;background:#f6f8f9;border-radius:50%;font-size:var(--%NS%semantic-typography-headline-sm-font-size);font-weight:700;padding-top:.625rem;margin:0 auto;text-align:center}.total-points[_ngcontent-%COMP%] .total-points-value[_ngcontent-%COMP%] .total-points-text[_ngcontent-%COMP%]{position:absolute;top:2.5rem;left:1rem;font-size:var(--%NS%semantic-typography-label-xs-font-size)}.dropdown-text.sr1-points[_ngcontent-%COMP%] .total-points[_ngcontent-%COMP%]{float:none;margin:0 auto}.dropdown-text.sr2-points[_ngcontent-%COMP%] .total-points[_ngcontent-%COMP%]{width:49%}@media screen and (min-width:1024px){#points-dropdown[_ngcontent-%COMP%]{padding:0 20%}}@media screen and (max-width:767px){.casino-point-carousel[_ngcontent-%COMP%] .main-title[_ngcontent-%COMP%], .casino-point-carousel[_ngcontent-%COMP%] .main-discription[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-2xl) var(--%NS%semantic-spacing-container-padding-lg);font-size:var(--%NS%semantic-typography-body-lg-font-size)}
25078.casino-point-carousel[_ngcontent-%COMP%] .main-discription[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-md-font-size)}.casino-point-carousel-container.mobile-mode[_ngcontent-%COMP%]{margin-left:0;margin-bottom:var(--%NS%semantic-spacing-stack-md);width:100%;overflow-x:auto;overflow-y:hidden}.casino-point-carousel-container.mobile-mode[_ngcontent-%COMP%] .innerscrolable[_ngcontent-%COMP%]{display:flex;flex:1;margin:0 auto;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory}.casino-point-carousel-container.mobile-mode[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%]{width:319px;flex:0 0 319px;height:auto;min-height:380px;padding-bottom:1.25rem;margin-left:var(--%NS%semantic-spacing-inline-md);scroll-snap-align:center}.casino-point-carousel-container.mobile-mode[_ngcontent-%COMP%] .points-new[_ngcontent-%COMP%] .sub-discription[_ngcontent-%COMP%]{margin:.8125rem 1rem 1.25rem}}"] 25079 }); 25080 } 25081 return t; 25082 })(), ev = (t) => ({ 25083 $implicit: t, 25084 coinClass: "srp-coin-reward" 25085 }), tv = (t) => ({ 25086 $implicit: t, 25087 coinClass: "srp-coin-reward coin" 25088 }), nv = (t, o) => o.rank + o.awardType, iv = "disabled-pointer", av = (() => { 25089 class t { 25090 contentApi = s(Te); 25091 prizesApi = s(fr); 25092 destroyRef = s(q); 25093 currencyPipe = s(St); 25094 race = m.required(); 25095 coinImg = m(""); 25096 showHeader = m(!0); 25097 isCollapsible = m(!0); 25098 isExpanded = m(!0); 25099 messages = this.contentApi.messages; 25100 title = g(() => this.messages().PrizesTitle || "Prizes"); 25101 isExpansionDisabled = g(() => this.isCollapsible() ? "" : iv); 25102 prizesOne = O([]); 25103 prizesTwo = O([]); 25104 prizeValueForBeatBanker = O(null); 25105 participateReward = O(null); 25106 showBeatBankerCash = g(() => { 25107 let e = this.prizeValueForBeatBanker(); 25108 return !!e && String(e.awardType ?? "").toLowerCase() !== Ie.COINS; 25109 }); 25110 ngOnInit() { 25111 this.loadPrizes(); 25112 } 25113 loadPrizes() { 25114 let e = this.race(); 25115 if (!e) return; 25116 let n = this.prizesApi.getPrizesForPromo(e.promoId); 25117 if (n?.length) { 25118 this.setPrizes(n); 25119 return; 25120 } 25121 this.prizesApi.getPrizes().pipe(z(this.destroyRef)).subscribe((i) => { 25122 let r = i?.[e.promoId]; 25123 r && this.setPrizes(r); 25124 }); 25125 } 25126 setPrizes(e) { 25127 let n = this.race(); 25128 if (!n || !e?.length) return; 25129 let { prizes: i, beatBanker: r } = tI(e, Kk(n), this.messages(), this.currencyPipe), u = nI(i, this.messages().ParticipationAwardValue), { prizesOne: v, prizesTwo: P } = iI(i, !!r, u); 25130 this.prizeValueForBeatBanker.set(r), this.participateReward.set(u), this.prizesOne.set(v), this.prizesTwo.set(P); 25131 } 25132 static ɵfac = function(e) { 25133 return new (e || t)(); 25134 }; 25135 static ɵcmp = I({ 25136 type: t, 25137 selectors: [["cw-slot-races-prizes"]], 25138 inputs: { 25139 race: [1, "race"], 25140 coinImg: [1, "coinImg"], 25141 showHeader: [1, "showHeader"], 25142 isCollapsible: [1, "isCollapsible"], 25143 isExpanded: [1, "isExpanded"] 25144 }, 25145 features: [ce([St])], 25146 decls: 3, 25147 vars: 1, 25148 consts: [ 25149 ["prizeItemTpl", ""], 25150 ["panelState", "srPanelState"], 25151 [3, "casino-beat-the-banker-prize"], 25152 [1, "casino-lobby-container-main"], 25153 [ 25154 "hideToggle", 25155 "true", 25156 3, 25157 "expanded", 25158 "srPanelState" 25159 ], 25160 [1, "panel-title"], 25161 [1, "casino-srp-container"], 25162 [1, "casino-beat-the-banker"], 25163 [ 25164 "cols", 25165 "3", 25166 "rowHeight", 25167 "113px", 25168 "gutterSize", 25169 "0", 25170 1, 25171 "srp-grid-list" 25172 ], 25173 [ 25174 2, 25175 "width", 25176 "100%" 25177 ], 25178 [ 25179 "rowHeight", 25180 "113px", 25181 "gutterSize", 25182 "0", 25183 1, 25184 "srp-grid-list", 25185 3, 25186 "cols" 25187 ], 25188 [ 25189 "cols", 25190 "1", 25191 "rowHeight", 25192 "113px", 25193 "gutterSize", 25194 "0", 25195 1, 25196 "srp-grid-list" 25197 ], 25198 [1, "srp-title-container"], 25199 [1, "casino-betathebanker-prize-container"], 25200 [1, "bt-info-container"], 25201 [1, "info-title"], 25202 [1, "info-label"], 25203 [1, "points-and-revards"], 25204 [1, "bt-points"], 25205 [1, "rewards"], 25206 [1, "reward1"], 25207 [1, "reward2"], 25208 [1, "srp-coin-reward"], 25209 [1, "theme-plus"], 25210 [1, "sr-card-total-coin"], 25211 [ 25212 "alt", 25213 "Coin Image", 25214 1, 25215 "coin-img", 25216 3, 25217 "src" 25218 ], 25219 [ 25220 1, 25221 "srp-grid-tile", 25222 "prize-tile-small" 25223 ], 25224 [ 25225 4, 25226 "ngTemplateOutlet", 25227 "ngTemplateOutletContext" 25228 ], 25229 [1, "Participant-Reward"], 25230 [1, "Coin-Value"], 25231 [1, "Coin-StaticText"], 25232 [3, "class"], 25233 [ 25234 1, 25235 "srp-img", 25236 3, 25237 "innerHTML" 25238 ], 25239 [1, "srp-rank"], 25240 [ 25241 1, 25242 "srp-prize", 25243 3, 25244 "innerHTML" 25245 ], 25246 [1, "coins-divs"] 25247 ], 25248 template: function(e, n) { 25249 e & 1 && (f(0, s2, 14, 12, "div", 2), te(1, f2, 2, 0, "ng-template", null, 0, Ne)), e & 2 && h(n.race() ? 0 : -1); 25250 }, 25251 dependencies: [ 25252 mt, 25253 sa, 25254 ci, 25255 ca, 25256 ra, 25257 oa, 25258 ma, 25259 ga, 25260 Fn, 25261 la, 25262 da, 25263 Vi 25264 ], 25265 styles: ["[_nghost-%COMP%]{display:block}.srp-title-container[_ngcontent-%COMP%]{height:1.1875rem;font-size:var(--%NS%semantic-typography-title-md-font-size);font-weight:500;letter-spacing:-.01px;color:var(--%NS%sr-panel-text-color, #fff)}.casino-srp-container[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;justify-content:center;margin:var(--%NS%semantic-spacing-stack-2xl) 0}.casino-srp-container[_ngcontent-%COMP%] .srp-grid-list[_ngcontent-%COMP%]{text-align:center;margin:0;padding:0;width:100%}
25265.casino-srp-container[_ngcontent-%COMP%] .srp-grid-tile[_ngcontent-%COMP%]{margin:0;text-align:center}.casino-srp-container[_ngcontent-%COMP%] .srp-grid-tile[_ngcontent-%COMP%] .srp-img[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:auto;width:var(--%NS%semantic-size-x10);margin-top:.1875rem;margin-bottom:.1875rem}.casino-srp-container[_ngcontent-%COMP%] .srp-grid-tile[_ngcontent-%COMP%] .srp-rank[_ngcontent-%COMP%]{font-size:.625rem;line-height:inherit;letter-spacing:-.01px;text-align:center;color:var(--%NS%sr-panel-text-color, #fff)}.casino-srp-container[_ngcontent-%COMP%] .srp-grid-tile[_ngcontent-%COMP%] .srp-prize[_ngcontent-%COMP%]{margin-top:.375rem;height:1.1rem;font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:700;line-height:1.14;letter-spacing:-.01px;text-align:center;color:var(--%NS%sr-panel-text-color, #fff);word-wrap:normal}.casino-srp-container[_ngcontent-%COMP%] .srp-grid-tile[_ngcontent-%COMP%] .srp-prize[_ngcontent-%COMP%] p{line-height:unset}.casino-srp-container[_ngcontent-%COMP%] .mat-grid-tile-content{display:flex;padding:unset;flex-direction:column;justify-content:flex-start}.casino-srp-container[_ngcontent-%COMP%] mat-grid-tile figure{display:block}.srp-coin-reward[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);display:flex;align-items:center;flex-direction:column}.srp-coin-reward[_ngcontent-%COMP%] .coins-divs[_ngcontent-%COMP%]{display:flex;align-items:center;font-weight:700}.srp-coin-reward[_ngcontent-%COMP%] .theme-plus[_ngcontent-%COMP%]{font-size:.5rem;margin:0 0 0 .3125rem;display:flex;align-items:center}.srp-coin-reward[_ngcontent-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%]{display:flex;align-items:center}.srp-coin-reward[_ngcontent-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%] .coin-img[_ngcontent-%COMP%]{height:.875rem;width:.875rem;margin:0 .3125rem;display:flex;align-items:center}.Participant-Reward[_ngcontent-%COMP%]{text-align:center;margin-top:var(--%NS%semantic-spacing-stack-2xl);font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:700;color:var(--%NS%sr-panel-text-color, #fff)}.Participant-Reward[_ngcontent-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%] .coin-img[_ngcontent-%COMP%]{height:2.1875rem;width:2.1875rem}@media screen and (max-width:767px){.casino-srp-container[_ngcontent-%COMP%] .casino-beat-the-banker[_ngcontent-%COMP%]{width:100%}}.casino-betathebanker-prize-container[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;max-width:100%;min-width:39.375rem;margin-bottom:.625rem;padding:.625rem .9375rem;color:var(--%NS%sr-beat-the-banker-text, #fff);background:var(--%NS%sr-beat-the-banker-prize-bg, rgba(13, 4, 48, .6))}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .bt-info-container[_ngcontent-%COMP%]{flex:3}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .bt-info-container[_ngcontent-%COMP%] .info-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:700}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .bt-info-container[_ngcontent-%COMP%] .info-label[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-sm-font-size)}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%], .casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%] .bt-points[_ngcontent-%COMP%]{display:flex;align-items:center}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%] .bt-points[_ngcontent-%COMP%] .theme-slots-race-free-spins[_ngcontent-%COMP%]{font-size:1.5rem;height:1.75rem}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%] .bt-points[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%] .rewards[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;margin-left:.9375rem;padding:var(--%NS%semantic-spacing-container-padding-xs) var(--%NS%semantic-spacing-container-padding-sm);border-radius:var(--%NS%semantic-radius-l2-badge-medium);font-size:var(--%NS%semantic-typography-label-md-font-size);background:var(--%NS%sr-beat-the-banker-rewards-bg, var(--%NS%theme-brand-03));color:var(--%NS%sr-beat-the-banker-rewards-color, var(--%NS%semantic-color-primary-base))}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%] .rewards[_ngcontent-%COMP%] .srp-coin-reward[_ngcontent-%COMP%]{flex-direction:row}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%] .rewards[_ngcontent-%COMP%] .reward1[_ngcontent-%COMP%], .casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%] .rewards[_ngcontent-%COMP%] .reward2[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-xs-font-size)}@media screen and (max-width:768px){.casino-betathebanker-prize-container[_ngcontent-%COMP%]{min-width:unset}.casino-betathebanker-prize-container[_ngcontent-%COMP%] .points-and-revards[_ngcontent-%COMP%]{flex-direction:column}}@media screen and (max-width:768px){.casino-beat-the-banker-prize[_ngcontent-%COMP%] .mat-expansion-panel-body{padding:0 0 var(--%NS%semantic-spacing-container-padding-2xl)}}"] 25266 }); 25267 } 25268 return t; 25269 })(), ov = (t, o) => o.title, Ec = (() => { 25270 class t { 25271 contentApi = s(Te); 25272 inline = m(!1); 25273 rules = g(() => this.contentApi.rules().map((e) => ({ 25274 image: e.image || { src: "" }, 25275 title: e.title || "", 25276 text: e.text || "" 25277 }))); 25278 messages = this.contentApi.messages; 25279 static ɵfac = function(e) { 25280 return new (e || t)(); 25281 }; 25282 static ɵcmp = I({ 25283 type: t, 25284 selectors: [["cw-slot-races-rules"]], 25285 inputs: { inline: [1, "inline"] }, 25286 decls: 6, 25287 vars: 1, 25288 consts: [ 25289 ["rulesContent", ""], 25290 ["panelState", "srPanelState"], 25291 [1, "casino-lobby-container-main"], 25292 [1, "casino-rules-and-tc"], 25293 [ 25294 "hideToggle", 25295 "", 25296 3, 25297 "expanded" 25298 ], 25299 [ 25300 "hideToggle", 25301 "", 25302 "srPanelState", 25303 "", 25304 3, 25305 "expanded" 25306 ], 25307 [4, "ngTemplateOutlet"], 25308 [1, "panel-title"], 25309 [ 25310 1, 25311 "dropdown-text", 25312 "rules-sec" 25313 ], 25314 [1, "edge-allign"], 25315 [ 25316 "id", 25317 "rule-content", 25318 1, 25319 "rules" 25320 ], 25321 [ 25322 "draggable", 25323 "false", 25324 1, 25325 "rules-image", 25326 3, 25327 "src", 25328 "alt" 25329 ], 25330 [1, "rules-title"], 25331 [ 25332 1, 25333 "rules-title-text", 25334 3, 25335 "innerHTML" 25336 ] 25337 ], 25338 template: function(e, n) { 25339 e & 1 && (l(0, "div", 2)(1, "div", 3), f(2, b2, 3, 2, "mat-expansion-panel", 4)(3, y2, 9, 5, "mat-expansion-panel", 5), d()(), te(4, S2, 3, 0, "ng-template", null, 0, Ne)), e & 2 && (a(2), h(n.inline() ? 2 : 3)); 25340 }, 25341 dependencies: [ 25342 mt, 25343 sa, 25344 ci, 25345 ca, 25346 ra, 25347 oa, 25348 ma, 25349 ga, 25350 Vi 25351 ], 25352 styles: ["[_nghost-%COMP%]{display:block}
25352.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel{display:initial;box-shadow:none;background:transparent}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-body{padding:.3125rem 0}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-header{padding:0 1.25rem}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-header-title{width:100%;margin-top:.3125rem;flex-basis:unset}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-header-description{margin:0 0 0 auto;text-align:right;margin-top:.625rem}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-md-font-size);font-weight:500;letter-spacing:-.01px;color:var(--%NS%sr-panel-text-color, #fff)}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .dropdown-text.rules-sec[_ngcontent-%COMP%]{position:relative;font-size:.625rem;line-height:1.4;letter-spacing:-.01px;color:var(--%NS%sr-panel-text-color, #fff);float:left;width:100%;z-index:0}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .dropdown-text.rules-sec[_ngcontent-%COMP%]:before{content:\"\";position:absolute;height:var(--%NS%sr-rules-hr-height, 1px);width:66%;top:30%;left:17%;background:var(--%NS%semantic-color-primary-base);z-index:-1}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .edge-allign[_ngcontent-%COMP%]{text-align:center}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .rules[_ngcontent-%COMP%]{width:33.33%;float:left;text-align:center}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .rules-image[_ngcontent-%COMP%]{width:5.9375rem;height:var(--%NS%semantic-size-x16);object-fit:contain}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .rules-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-body-lg-font-size);font-weight:800;text-transform:uppercase;margin-top:1px;line-height:1.4}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .rules-title-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-xs-font-size);font-weight:400;line-height:1.4}.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .rules-title-text[_ngcontent-%COMP%] p{font-size:.625rem;line-height:inherit;margin:0}@media screen and (min-width:768px){.casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .dropdown-text.rules-sec[_ngcontent-%COMP%]:before{width:44%;left:28%}}.tabs[_nghost-%COMP%] .casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .dropdown-text.rules-sec[_ngcontent-%COMP%]:before, .tabs [_nghost-%COMP%] .casino-lobby-container-main[_ngcontent-%COMP%] .casino-rules-and-tc[_ngcontent-%COMP%] .dropdown-text.rules-sec[_ngcontent-%COMP%]:before{width:66%;top:35%;left:18%}"] 25353 }); 25354 } 25355 return t; 25356 })(), rv = (t, o) => o.title, sv = (() => { 25357 class t { 25358 contentApi = s(Te); 25359 tips = g(() => this.contentApi.tips().map((e) => ({ 25360 src: e.image?.src ?? "", 25361 title: e.title ?? "", 25362 text: e.text ?? "" 25363 }))); 25364 messages = this.contentApi.messages; 25365 static ɵfac = function(e) { 25366 return new (e || t)(); 25367 }; 25368 static ɵcmp = I({ 25369 type: t, 25370 selectors: [["cw-slot-races-tips"]], 25371 decls: 1, 25372 vars: 1, 25373 consts: [ 25374 ["panelState", "srPanelState"], 25375 [1, "casino-rules-and-tc"], 25376 [ 25377 "hideToggle", 25378 "", 25379 "srPanelState", 25380 "", 25381 3, 25382 "expanded" 25383 ], 25384 [1, "panel-title"], 25385 [ 25386 "id", 25387 "tips-dropdown", 25388 1, 25389 "dropdown-text" 25390 ], 25391 [ 25392 "id", 25393 "tips-content", 25394 1, 25395 "tips" 25396 ], 25397 [1, "casino-tips-image"], 25398 [1, "tips-text"], 25399 [1, "tips-title"], 25400 [ 25401 1, 25402 "tips-title-text", 25403 3, 25404 "innerHTML" 25405 ], 25406 [ 25407 "width", 25408 "80px", 25409 "height", 25410 "90px", 25411 "draggable", 25412 "false", 25413 3, 25414 "src", 25415 "alt" 25416 ] 25417 ], 25418 template: function(e, n) { 25419 e & 1 && f(0, x2, 12, 4, "div", 1), e & 2 && h(n.tips().length ? 0 : -1); 25420 }, 25421 dependencies: [ 25422 sa, 25423 ci, 25424 ca, 25425 ra, 25426 oa, 25427 ma, 25428 ga, 25429 Vi 25430 ], 25431 styles: ["[_nghost-%COMP%]{display:block}
25431.casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel{display:initial;box-shadow:none;background:transparent}.casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-body{padding:.3125rem 0}.casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-header{padding:0 .625rem}.casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-header-title{width:100%;margin-top:.3125rem;flex-basis:unset}.casino-rules-and-tc[_ngcontent-%COMP%] .mat-expansion-panel-header-description{margin:0;text-align:right;margin-top:.625rem}.casino-rules-and-tc[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-md-font-size);font-weight:500;letter-spacing:-.01px;color:var(--%NS%sr-panel-text-color, #fff)}.casino-rules-and-tc[_ngcontent-%COMP%] .dropdown-text[_ngcontent-%COMP%]{position:relative;font-size:.625rem;line-height:1.4;letter-spacing:-.01px;color:var(--%NS%sr-panel-text-color, #fff);float:left;width:100%}.casino-rules-and-tc[_ngcontent-%COMP%] .tips[_ngcontent-%COMP%]{width:100%;float:left;display:flex;align-items:center}.casino-rules-and-tc[_ngcontent-%COMP%] .casino-tips-image[_ngcontent-%COMP%]{width:15%;float:left;text-align:right}.casino-rules-and-tc[_ngcontent-%COMP%] .casino-tips-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:var(--%NS%semantic-size-x20);height:90px;object-fit:contain}.casino-rules-and-tc[_ngcontent-%COMP%] .tips-text[_ngcontent-%COMP%]{width:75%;float:left;margin-top:.3125rem;padding-left:.9375rem}.casino-rules-and-tc[_ngcontent-%COMP%] .tips-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:800;letter-spacing:-.01px;line-height:1.4}.casino-rules-and-tc[_ngcontent-%COMP%] .tips-title-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-xs-font-size);line-height:1.4;letter-spacing:-.01px}.casino-rules-and-tc[_ngcontent-%COMP%] .tips-title-text[_ngcontent-%COMP%] ul{margin-top:.3125rem}@media screen and (max-width:1024px){.casino-rules-and-tc[_ngcontent-%COMP%] .casino-tips-image[_ngcontent-%COMP%]{width:15%}.casino-rules-and-tc[_ngcontent-%COMP%] .tips-text[_ngcontent-%COMP%]{width:80%}}@media screen and (max-width:767px){.casino-rules-and-tc[_ngcontent-%COMP%] .casino-tips-image[_ngcontent-%COMP%]{width:23%;float:left}}@media screen and (max-width:320px){.casino-rules-and-tc[_ngcontent-%COMP%] .casino-tips-image[_ngcontent-%COMP%]{width:27%}.casino-rules-and-tc[_ngcontent-%COMP%] .tips-text[_ngcontent-%COMP%]{width:73%;max-width:210px}}"] 25432 }); 25433 } 25434 return t; 25435 })(), cv = "MobileCasino-v1.0/CasinoSlotRaces/TermsAndConditions/TnC/TnCHtml", lv = (() => { 25436 class t { 25437 contentApi = s(Te); 25438 productService = s(ea); 25439 race = m(void 0); 25440 messages = this.contentApi.messages; 25441 globalTncPath = cv; 25442 tnc = O(""); 25443 get currentProduct() { 25444 return this.productService.current?.name; 25445 } 25446 ngOnInit() { 25447 let e = this.race(); 25448 e?.content?.promotion?.termsAndConditionsText && this.tnc.set(e.content.promotion.termsAndConditionsText); 25449 } 25450 static ɵfac = function(e) { 25451 return new (e || t)(); 25452 }; 25453 static ɵcmp = I({ 25454 type: t, 25455 selectors: [["cw-slot-races-tnc"]], 25456 inputs: { race: [1, "race"] }, 25457 decls: 1, 25458 vars: 1, 25459 consts: [ 25460 [ 25461 "id", 25462 "csSlotRaceTnC", 25463 1, 25464 "non-collapsable-content", 25465 "terms-and-cond" 25466 ], 25467 [1, "casino-slotraces-tnc"], 25468 [1, "tnc-title"], 25469 [ 25470 "id", 25471 "tnc-panel-title", 25472 1, 25473 "panel-title" 25474 ], 25475 [1, "panel-text"], 25476 [1, "dropdown-text"], 25477 [ 25478 1, 25479 "tnc-text", 25480 3, 25481 "vnDynamicHtml" 25482 ], 25483 [1, "tnc-text"], 25484 [ 25485 3, 25486 "path", 25487 "product" 25488 ] 25489 ], 25490 template: function(e, n) { 25491 e & 1 && f(0, I2, 9, 2, "div", 0), e & 2 && h(n.tnc() || !n.race() ? 0 : -1); 25492 }, 25493 dependencies: [Jo, na], 25494 styles: ["[_nghost-%COMP%]{display:block}.non-collapsable-content.terms-and-cond[_ngcontent-%COMP%]{padding:0 1.25rem}.casino-slotraces-tnc[_ngcontent-%COMP%] .tnc-title[_ngcontent-%COMP%] .panel-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-md-font-size);font-weight:500;letter-spacing:-.01px;color:var(--%NS%sr-panel-text-color, #fff);margin-bottom:.625rem;margin-top:.625rem;margin-left:-4px}.casino-slotraces-tnc[_ngcontent-%COMP%] .panel-text[_ngcontent-%COMP%] .dropdown-text[_ngcontent-%COMP%]{position:relative;font-size:.625rem;line-height:1.4;letter-spacing:-.01px;color:var(--%NS%sr-panel-text-color, #fff);width:100%;display:inline-block}
25494.casino-slotraces-tnc[_ngcontent-%COMP%] .panel-text[_ngcontent-%COMP%] .dropdown-text[_ngcontent-%COMP%] .tnc-text{font-size:.625rem;line-height:1.4;letter-spacing:-.01px}.casino-slotraces-tnc[_ngcontent-%COMP%] .panel-text[_ngcontent-%COMP%] .dropdown-text[_ngcontent-%COMP%] .tnc-text ul, .casino-slotraces-tnc[_ngcontent-%COMP%] .panel-text[_ngcontent-%COMP%] .dropdown-text[_ngcontent-%COMP%] .tnc-text ol{font-size:.625rem;line-height:1.4;letter-spacing:-.01px;margin:var(--%NS%semantic-spacing-stack-sm) 0}.casino-slotraces-tnc[_ngcontent-%COMP%] .panel-text[_ngcontent-%COMP%] .dropdown-text[_ngcontent-%COMP%] .tnc-text a{color:var(--%NS%semantic-color-primary-base);text-decoration:underline}"] 25495 }); 25496 } 25497 return t; 25498 })(), Ac = (() => { 25499 class t { 25500 dialogRef = s(Ye, { optional: !0 }); 25501 dialogData = s(Ke, { optional: !0 }); 25502 contentApi = s(Te); 25503 tracking = s(Ln); 25504 race = m(void 0); 25505 coinImg = m(""); 25506 messages = this.contentApi.messages; 25507 hasTips = g(() => this.contentApi.tips().length > 0); 25508 rulesBannerImage = g(() => this.contentApi.contentSignal()?.rulesBanner?.image?.src ?? ""); 25509 rulesBannerTitle = g(() => this.contentApi.contentSignal()?.rulesBanner?.title ?? ""); 25510 get isDialog() { 25511 return !!this.dialogData?.showTitleHeader; 25512 } 25513 get resolvedRace() { 25514 return this.race() ?? this.dialogData?.race; 25515 } 25516 get resolvedCoinImg() { 25517 return this.coinImg() || this.dialogData?.coinImg || ""; 25518 } 25519 close() { 25520 this.tracking.track("Close (x) - CTA Clicked", "Rules TnC - Overlay", this.dialogData?.trackingLocation ?? "", "User Clicked on Close(x) CTA to close the overlay"), this.dialogRef?.close(); 25521 } 25522 static ɵfac = function(e) { 25523 return new (e || t)(); 25524 }; 25525 static ɵcmp = I({ 25526 type: t, 25527 selectors: [["cw-slot-races-rules-and-tnc"]], 25528 inputs: { 25529 race: [1, "race"], 25530 coinImg: [1, "coinImg"] 25531 }, 25532 decls: 11, 25533 vars: 7, 25534 consts: [ 25535 [1, "casino-lobby-container-main"], 25536 [1, "casino-rules-tnc-popup"], 25537 [ 25538 "id", 25539 "casino-prizes-container", 25540 1,
25541 "casino-rules-panel" 25542 ], 25543 [1, "casino-rules-panel"], 25544 [1, "points-panel"], 25545 [3, "race"], 25546 [1, "tips-panel"], 25547 [1, "tnc-panel"], 25548 [1, "rules-header"], 25549 [1, "header-text"], 25550 [ 25551 "tabindex", 25552 "0", 25553 "role", 25554 "button", 25555 "aria-label", 25556 "Close", 25557 1, 25558 "theme-ex", 25559 "race-info-close", 25560 3, 25561 "click", 25562 "keydown.enter" 25563 ], 25564 [1, "rules-header-image"], 25565 [1, "rules-header-image-section"], 25566 [1, "rules-image-title"], 25567 [ 25568 3, 25569 "race", 25570 "coinImg", 25571 "showHeader", 25572 "isCollapsible", 25573 "isExpanded" 25574 ] 25575 ], 25576 template: function(e, n) { 25577 if (e & 1 && (l(0, "div", 0), f(1, N2, 5, 2), l(2, "div", 1), f(3, L2, 2, 5, "div", 2), l(4, "div", 3), b(5, "cw-slot-races-rules"), d(), l(6, "div", 4), b(7, "cw-slot-races-points", 5), d(), f(8, G2, 2, 0, "div", 6), l(9, "div", 7), b(10, "cw-slot-races-tnc", 5), d()()()), e & 2) { 25578 let i; 25579 L("sr-full-rules-dialog", n.isDialog), a(), h(n.isDialog ? 1 : -1), a(2), h((i = n.resolvedRace) ? 3 : -1, i), a(4), p("race", n.resolvedRace), a(), h(n.hasTips() ? 8 : -1), a(2), p("race", n.resolvedRace); 25580 } 25581 }, 25582 dependencies: [ 25583 av, 25584 Ec, 25585 Zf, 25586 sv, 25587 lv 25588 ], 25589 styles: ["[_nghost-%COMP%]{display:block} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container, .cdk-overlay-container .sr-results-dialog mat-dialog-container, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container{max-width:100%} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container .mdc-dialog__surface{overflow-x:hidden} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:5px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-track{border-radius:10px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px var(--%NS%sr-scrollbar-thumb, #c1c1c1)} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface{scrollbar-width:none} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:0}.rules-header[_ngcontent-%COMP%]{height:3.5rem;font-size:var(--%NS%semantic-typography-title-lg-font-size);font-weight:300;text-align:center;background:var(--%NS%semantic-color-primary-base);position:relative}.rules-header[_ngcontent-%COMP%] .header-text[_ngcontent-%COMP%]{width:100%;line-height:3.5rem;text-align:center}.rules-header[_ngcontent-%COMP%] .race-info-close[_ngcontent-%COMP%]{position:absolute;right:.9375rem;top:50%;transform:translateY(-50%);cursor:pointer}.rules-header-image[_ngcontent-%COMP%] .rules-header-image-section[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;height:161px;text-align:center;background-size:100% 100%}@media screen and (max-width:767px){.rules-header-image[_ngcontent-%COMP%] .rules-header-image-section[_ngcontent-%COMP%]{height:117px}}.rules-header-image[_ngcontent-%COMP%] .rules-header-image-section[_ngcontent-%COMP%] .rules-image-title[_ngcontent-%COMP%]{width:100%;text-align:center;color:#fff;font-size:1.375rem;font-weight:900}
25589.casino-rules-tnc-popup[_ngcontent-%COMP%] .casino-rules-panel[_ngcontent-%COMP%], .casino-rules-tnc-popup[_ngcontent-%COMP%] .points-panel[_ngcontent-%COMP%], .casino-rules-tnc-popup[_ngcontent-%COMP%] .tips-panel[_ngcontent-%COMP%], .casino-rules-tnc-popup[_ngcontent-%COMP%] .tnc-panel[_ngcontent-%COMP%]{float:left;width:100%;border-bottom:1px solid #e1e1e1;color:var(--%NS%sr-panel-text-color, #fff)}.casino-rules-tnc-popup[_ngcontent-%COMP%] .tnc-panel[_ngcontent-%COMP%]{border-bottom:none}"] 25590 }); 25591 } 25592 return t; 25593 })(), dv = (t, o, e, n) => ({ 25594 race: t, 25595 trackingLocation: o, 25596 layoutId: e, 25597 coinImg: n, 25598 showRaceInfo: !1 25599 }), Rc = (() => { 25600 class t { 25601 dialogRef = s(Ye); 25602 contentApi = s(Te); 25603 lifecycleService = s(wn); 25604 destroyRef = s(q); 25605 cardComponent = O(null); 25606 data = s(Ke); 25607 race = O(this.data.race); 25608 layoutId = O(this.data.layoutId); 25609 trackingLocation = O(this.data.trackingLocation); 25610 coinImg = O(this.data.coinImg); 25611 messages = this.contentApi.messages; 25612 title = g(() => { 25613 let e = this.messages(), n = this.race(); 25614 return n && !n.isLive ? e.UpcomingRaceOverlayTitle || "Tournament Info" : e.LiveRaceOverlayTitle || "Tournament Info"; 25615 }); 25616 isLive = !!this.data.race?.isLive; 25617 isUpcoming = !this.isLive; 25618 ngOnInit() { 25619 this.data.cardComponent && this.cardComponent.set(this.data.cardComponent), this.lifecycleService.liveRacesData.pipe(z(this.destroyRef)).subscribe((e) => { 25620 e && md(this.race(), e, this.isLive, this.isUpcoming) && this.close(); 25621 }); 25622 } 25623 close() { 25624 this.dialogRef.close(); 25625 } 25626 openPickGameOverlay() { 25627 this.dialogRef.close({ openPickGameOverlay: !0 }); 25628 } 25629 static ɵfac = function(e) { 25630 return new (e || t)(); 25631 }; 25632 static ɵcmp = I({ 25633 type: t, 25634 selectors: [["cw-slot-races-info"]], 25635 decls: 10, 25636 vars: 3, 25637 consts: [ 25638 [1, "casino-lobby-container-main"], 25639 [1, "casino-race-info-container"], 25640 [1, "race-info-title-container"], 25641 [ 25642 "mat-dialog-title", 25643 "", 25644 1, 25645 "race-info-title" 25646 ], 25647 [ 25648 "tabindex", 25649 "0", 25650 "role", 25651 "button", 25652 "aria-label", 25653 "Close", 25654 1, 25655 "theme-ex", 25656 "race-info-close", 25657 3, 25658 "click", 25659 "keydown.enter" 25660 ], 25661 [1, "casino-race-info-card-container"], 25662 [ 25663 3, 25664 "ngComponentOutlet", 25665 "ngComponentOutletInputs" 25666 ], 25667 [1, "casino-race-info-tnc-container"], 25668 [ 25669 3, 25670 "race", 25671 "coinImg" 25672 ] 25673 ], 25674 template: function(e, n) { 25675 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "span", 3), C(4), d(), l(5, "span", 4), S("click", function() { 25676 return n.close(); 25677 })("keydown.enter", function() { 25678 return n.close(); 25679 }), d()(), l(6, "div", 5), f(7, E2, 1, 7, "ng-container", 6), d(), f(8, R2, 3, 3, "div")(9, D2, 2, 2, "div", 7), d()()), e & 2 && (a(4), x(n.title()), a(3), h(n.cardComponent() ? 7 : -1), a(), h(n.race().isLive ? 8 : 9)); 25680 }, 25681 dependencies: [ 25682 hl, 25683 _l, 25684 Gc, 25685 Ac 25686 ], 25687 styles: ["[_nghost-%COMP%]{display:block;color:#fff} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container, .cdk-overlay-container .sr-results-dialog mat-dialog-container, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container{max-width:100%} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container .mdc-dialog__surface{overflow-x:hidden} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:5px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-track{border-radius:10px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px var(--%NS%sr-scrollbar-thumb, #c1c1c1)} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface{scrollbar-width:none} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:0}
25687.casino-lobby-container-main[_ngcontent-%COMP%]{color:#fff}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;justify-content:center;height:3.4375rem;margin:0;padding:0 1.25rem;text-align:center;background-color:var(--%NS%sr-dialog-header-bg, #000)}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-title[_ngcontent-%COMP%]{display:inline-block;font-size:var(--%NS%semantic-typography-title-lg-font-size);font-weight:400;line-height:3.4375rem;letter-spacing:unset;color:#fff}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-title[_ngcontent-%COMP%]:before{height:unset}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-close[_ngcontent-%COMP%]{position:absolute;right:.9375rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#fff;cursor:pointer}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item{display:block;width:100%;margin:0}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget{width:100%;margin:0;border-radius:0}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget img, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget img{z-index:0}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top{height:119px;padding:var(--%NS%semantic-spacing-container-padding-xl) 0 0 1.25rem}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .total-prize, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .total-prize{font-size:var(--%NS%semantic-typography-label-md-font-size);width:5.0625rem}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .sr-card-total-prize-value, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .sr-card-total-prize-value{width:auto;font-size:var(--%NS%semantic-typography-headline-sm-font-size)}@media screen and (min-width:768px){.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box{margin-top:.625rem}}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section{width:24%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .ends, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .ends{font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter{font-size:var(--%NS%semantic-typography-title-lg-font-size)}
25687.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section{width:40%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .min-bet, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .min-bet{font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet{font-size:var(--%NS%semantic-typography-title-lg-font-size)}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box.sr-card-counter-bet-box-max, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box.sr-card-counter-bet-box-max{position:relative}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon{margin-left:0;margin-top:0;height:5.25rem;width:5.25rem;max-width:5.25rem;border-radius:.1875rem}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img{width:5.25rem;height:5.25rem;border-radius:.1875rem}@media screen and (min-width:768px){.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img{width:6.125rem;height:6.125rem;border-radius:0}}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom{height:3.5625rem;position:relative;padding:0 20px}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .time-sec, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .pleyer-count, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .time-sec, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .spin-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .btn-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .pleyer-count{z-index:9}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .pleyer-count, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .pleyer-count{width:15%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .time-sec, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .time-sec{width:16%}
25687.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .spin-section{width:24%}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .casino-sr-card-widget .sr-card-container-bottom .btn-section{width:45%;margin:0;text-align:right}.casino-race-info-container[_ngcontent-%COMP%] cw-slot-race-card .expand-show-btn, .casino-race-info-container[_ngcontent-%COMP%] cw-slot-races-item .expand-show-btn{display:none}.casino-race-info-card-container[_ngcontent-%COMP%]{height:fit-content} cw-slot-races-rules-and-tnc .casino-rules-tnc-popup{color:#fff} cw-slot-races-rules .panel-title, cw-slot-races-tips .panel-title, cw-slot-races-points .panel-title{color:var(--%NS%sr-panel-text-color, #fff)} cw-slot-races-rules .theme-plus, cw-slot-races-rules .theme-minus, cw-slot-races-tips .theme-plus, cw-slot-races-tips .theme-minus, cw-slot-races-points .theme-plus, cw-slot-races-points .theme-minus{color:var(--%NS%sr-panel-text-color, #fff)} cw-slot-races-rules .casino-rules-and-tc .mat-expansion-panel, cw-slot-races-tips .casino-rules-and-tc .mat-expansion-panel, cw-slot-races-points .casino-rules-and-tc .mat-expansion-panel{background:transparent;color:#fff} cw-slot-races-rules .casino-rules-and-tc .mat-expansion-panel-body, cw-slot-races-tips .casino-rules-and-tc .mat-expansion-panel-body, cw-slot-races-points .casino-rules-and-tc .mat-expansion-panel-body{color:#fff} cw-slot-races-rules .casino-rules-and-tc .dropdown-text.rules-sec, cw-slot-races-tips .casino-rules-and-tc .dropdown-text.rules-sec, cw-slot-races-points .casino-rules-and-tc .dropdown-text.rules-sec{color:#ffffffb3} cw-slot-races-rules .casino-rules-and-tc .rules-title, cw-slot-races-tips .casino-rules-and-tc .rules-title, cw-slot-races-points .casino-rules-and-tc .rules-title{color:var(--%NS%sr-panel-text-color, #fff)} cw-slot-races-rules .casino-rules-and-tc .rules-title-text, cw-slot-races-tips .casino-rules-and-tc .rules-title-text, cw-slot-races-points .casino-rules-and-tc .rules-title-text{color:var(--%NS%sr-panel-text-color, #fff)} cw-slot-races-rules .casino-rules-and-tc .edge-allign, cw-slot-races-tips .casino-rules-and-tc .edge-allign, cw-slot-races-points .casino-rules-and-tc .edge-allign{color:#fff} cw-slot-races-rules .casino-point-carousel, cw-slot-races-tips .casino-point-carousel, cw-slot-races-points .casino-point-carousel{color:#fff} cw-slot-races-tnc .casino-slotraces-tnc{color:#fff} cw-slot-races-tnc .casino-slotraces-tnc .tnc-title .panel-title{color:#fff} cw-slot-races-tnc .casino-slotraces-tnc .panel-text .dropdown-text .tnc-text a{color:var(--%NS%semantic-color-primary-base)} cw-slot-races-leaderboard .mat-mdc-table{background:transparent} cw-slot-races-prizes .panel-title{color:#fff} cw-slot-races-prizes .theme-plus, cw-slot-races-prizes .theme-minus{color:var(--%NS%sr-panel-text-color, #fff)} cw-slot-races-prizes .mat-expansion-panel{background:transparent;color:#fff} cw-slot-races-prizes .srp-rank, cw-slot-races-prizes .srp-prize{color:#fff}"] 25688 }); 25689 } 25690 return t; 25691 })(), gv = (t, o) => o.gameId, mv = (() => { 25692 class t { 25693 dialogRef = s(Ye); 25694 data = s(Ke); 25695 text = B2(this.data.unfinishedPopuUpText); 25696 unfinishedGames = [...this.data.unfinishedGamesData]; 25697 preventIconSrc = this.data.preventIconSrc; 25698 radialShadowSrc = this.data.radialShadowSrc; 25699 close() { 25700 this.dialogRef.close(null); 25701 } 25702 launchUnfinishedGame(e) { 25703 e && this.dialogRef.close(e); 25704 } 25705 static ɵfac = function(e) { 25706 return new (e || t)(); 25707 }; 25708 static ɵcmp = I({ 25709 type: t, 25710 selectors: [["cw-unfinished-games-popup"]], 25711 decls: 23, 25712 vars: 10, 25713 consts: [ 25714 [1, "tournament-unfinished-games-pop-up-container"], 25715 [1, "unfinished-games-modal"], 25716 [1, "modal-header"], 25717 [1, "title"], 25718 [ 25719 "type", 25720 "button", 25721 "ds-button", 25722 "", 25723 "size", 25724 "medium", 25725 "variant", 25726 "outline", 25727 "kind", 25728 "secondary", 25729 1, 25730 "close-button", 25731 3, 25732 "click" 25733 ], 25734 [1, "dialog-content"], 25735 [1, "image-container-parent"], 25736 [1, "image-container"], 25737 [1, "prevent-icon"], 25738 [ 25739 "alt", 25740 "prevent-icon", 25741 3, 25742 "src" 25743 ], 25744 [1, "tournament-unfinished-game-container"], 25745 [ 25746 1, 25747 "game-image", 25748 3, 25749 "src", 25750 "alt" 25751 ], 25752 [1, "radial-shadow-container"], 25753 [ 25754 "alt", 25755 "radial-shadow", 25756 3, 25757 "src" 25758 ], 25759 [1, "description"], 25760 [1, "description-text"], 25761 [1, "bottom-button-container"], 25762 [ 25763 "type", 25764 "button", 25765 "ds-button", 25766 "", 25767 "size", 25768 "large", 25769 "variant", 25770 "filled", 25771 "kind", 25772 "primary", 25773 1, 25774 "launch-game-button", 25775 "w-100", 25776 3, 25777 "click" 25778 ] 25779 ], 25780 template: function(e, n) { 25781 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "span", 3), C(4), d(), l(5, "button", 4), S("click", function() { 25782 return n.close(); 25783 }), C(6), d()(), l(7, "div", 5)(8, "div", 6)(9, "div", 7)(10, "div", 8), b(11, "img", 9), d(), l(12, "div", 10), D(13, z2, 1, 2, "img", 11, gv), d()(), l(15, "div", 12), b(16, "img", 13), d()(), l(17, "div", 14)(18, "span", 15), C(19), d()()(), l(20, "div", 16)(21, "button", 17), S("click", function() { 25784 return n.launchUnfinishedGame(n.unfinishedGames[0]?.gameId || ""); 25785 }), C(22), d()()()()), e & 2 && (a(4), x(n.text.preventPopupTitle), a(2), E(" ", n.text.preventPopupClose, " "), a(5), p("src", n.preventIconSrc, Y), a(), L("tournament-unfinished-game-container-single", n.unfinishedGames.length === 1)("tournament-unfinished-game-container-stacked", n.unfinishedGames.length !== 1), a(), R(n.unfinishedGames), a(3), p("src", n.radialShadowSrc, Y), a(3), E(" ", n.unfinishedGames.length === 1 ? n.text.preventPopupSingleGameDescription : n.text.preventPopupMultipleGameDescription, " "), a(3), E(" ", n.text.preventPopupLaunchUnfinishedGame, " ")); 25786 }, 25787 dependencies: [ke], 25788 styles: ["[_nghost-%COMP%]{display:block}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .bottom-button-container[_ngcontent-%COMP%], .tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%], .tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .radial-shadow-container[_ngcontent-%COMP%], .tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container-parent[_ngcontent-%COMP%]{display:flex;justify-content:center;align-items:center}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%]{width:358px}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .unfinished-games-modal[_ngcontent-%COMP%]{width:100%}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .modal
25788-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{font-family:var(--%NS%semantic-typography-title-font-family),serif;font-weight:var(--%NS%semantic-typography-title-md-strong-font-weight);font-size:var(--%NS%semantic-typography-title-md-strong-font-size);line-height:var(--%NS%semantic-typography-title-md-line-height)}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container-parent[_ngcontent-%COMP%]{flex-direction:column;padding-top:calc(var(--%NS%semantic-spacing-stack-2xl) + 2px)}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{border:none;line-height:var(--%NS%semantic-typography-body-sm-line-height)}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .description[_ngcontent-%COMP%] .description-text[_ngcontent-%COMP%]{display:block;font-family:var(--%NS%semantic-typography-body-font-family),serif;font-weight:var(--%NS%semantic-typography-body-sm-font-weight);font-size:var(--%NS%semantic-typography-body-sm-font-size);line-height:var(--%NS%semantic-typography-body-sm-line-height)}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .radial-shadow-container[_ngcontent-%COMP%]{width:100%}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .radial-shadow-container[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:flex}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .prevent-icon[_ngcontent-%COMP%]{width:100px;height:100px;position:relative;z-index:2;margin-right:-10px}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .prevent-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{display:flex;align-self:center}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .tournament-unfinished-game-container[_ngcontent-%COMP%]{height:108px;width:108px;z-index:1;position:relative}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .tournament-unfinished-game-container[_ngcontent-%COMP%] .game-image[_ngcontent-%COMP%]{border-radius:var(--%NS%semantic-radius-semi-rounded-lg);overflow:hidden;width:108px;height:108px;object-fit:cover;display:block}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .tournament-unfinished-game-container.tournament-unfinished-game-container-stacked[_ngcontent-%COMP%] .game-image[_ngcontent-%COMP%]{position:absolute}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .tournament-unfinished-game-container.tournament-unfinished-game-container-stacked[_ngcontent-%COMP%] .game-image[_ngcontent-%COMP%]:nth-child(1){z-index:6;width:108px;height:108px;left:0}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .tournament-unfinished-game-container.tournament-unfinished-game-container-stacked[_ngcontent-%COMP%] .game-image[_ngcontent-%COMP%]:nth-child(2){left:25px;z-index:5;width:92px;height:92px;top:8px;opacity:.8}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .dialog-content[_ngcontent-%COMP%] .image-container[_ngcontent-%COMP%] .tournament-unfinished-game-container.tournament-unfinished-game-container-stacked[_ngcontent-%COMP%] .game-image[_ngcontent-%COMP%]:nth-child(3){left:49px;z-index:4;width:76px;height:76px;top:16px;opacity:.8}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .bottom-button-container[_ngcontent-%COMP%]{margin:calc(var(--%NS%semantic-spacing-stack-2xl) + 2px) auto 0 auto;width:100%}.tournament-unfinished-games-pop-up-container[_ngcontent-%COMP%] .bottom-button-container[_ngcontent-%COMP%] .launch-game-button[_ngcontent-%COMP%]{width:100%}"] 25789 }); 25790 } 25791 return t; 25792 })(), pv = "OptInPromotion", $i = "slotraces", fo = (() => { 25793 class t { 25794 slotRacesService = s(an); 25795 contentApi = s(Te); 25796 pollingService = s(hr); 25797 configProviderService = s(V); 25798 gameImageService = s(rt); 25799 currencyPipe = s(St); 25800 destroyRef = s(q); 25801 dialogService = s(Bi); 25802 user = s(Je); 25803 messageQueue = s(ri); 25804 loginDialogService = s(BC); 25805 gameLaunchService = s(Qe); 25806 unfinishedGamesService = s(_t); 25807 deviceService = s(J); 25808 timerService = s(de); 25809 window = s(pe); 25810 gameCatalogService = s(Oe); 25811 tracking = s(Ln); 25812 race = m.required(); 25813 trackingLocation = m("lobby"); 25814 layoutId = m(""); 25815 coinImg = m(""); 25816 fromPickGameOverlay = m(!1); 25817 showRaceInfo = m(!0);
25818 iconClickable = m(!0); 25819 showCardMenu = m(!1); 25820 showPlaceholderCard = m(!1); 25821 first = m(!1); 25822 last = m(!1); 25823 collapsible = m(!1); 25824 hideCard = j(); 25825 expandCard = ni(() => this.collapsible() ? this.first() : !0); 25826 timeSpan = O(0); 25827 progressValue = O(0); 25828 sliderMaxValue = O(0); 25829 playerCount = O(0); 25830 spinCount = O(0); 25831 messages = this.contentApi.messages; 25832 sharedListMessages = this.contentApi.sharedMessages; 25833 ctaClass = ua; 25834 enableMaxBet() { 25835 return !!this.configProviderService.provideSlotRacesConfig()?.enableMaxBet; 25836 } 25837 enableRaceNotification() { 25838 return !!this.configProviderService.provideSlotRacesConfig()?.enableRaceNotification; 25839 } 25840 promptNotifyOnOptInSuccess = !1; 25841 showCoinBalancePopup = !1; 25842 cardTitle = g(() => { 25843 this.gameCatalogService.games(); 25844 let e = this.race(), n = e?.gameVariantList?.[0]; 25845 return Mw(e, n ? this.gameCatalogService.getGameName(n) : void 0); 25846 }); 25847 isBeatBanker = g(() => !!this.race()?.beatBanker); 25848 isFreePlayTech = g(() => this.race()?.subType?.toUpperCase() === pt.FREE_PLAY_TECH); 25849 isFreeTournament = g(() => { 25850 let e = this.race()?.subType?.toUpperCase(); 25851 return e === pt.FREE_TO_PLAY || e === pt.FREE_PLAY_TECH; 25852 }); 25853 showImage = g(() => pd(this.race(), this.messages())); 25854 backgroundImageSrc = g(() => { 25855 let e = this.race()?.gameVariantList?.[0], n = e ? this.gameImageService.getIconConfigForType({ gameId: e }, ue.Landscape).src : ""; 25856 return Ow(this.race(), this.messages(), n); 25857 }); 25858 cardBackground = g(() => xw(this.race(), this.messages())); 25859 cardTextColor = g(() => this.messages().CardTextColor || ""); 25860 slotRaceDuration = g(() => Hk(this.race(), this.messages())); 25861 formattedTime = g(() => qk(this.timeSpan())); 25862 prizeIconClass = g(() => `sr-prize-icon ${Gr(this.race(), this.sharedListMessages())}`.trim()); 25863 showCoinIcon = g(() => Er(this.race())); 25864 showSupplementaryCoin = g(() => tg(this.race())); 25865 totalPrizeDisplay = g(() => ng(this.race(), this.currencyPipe)); 25866 betRange = g(() => Uk(this.race(), this.currencyPipe, this.enableMaxBet())); 25867 minBetDisplay = g(() => this.betRange().min); 25868 maxBetDisplay = g(() => this.betRange().max); 25869 showMaxBet = g(() => this.betRange().hasMax); 25870 isMultiGame = g(() => (this.race()?.gameVariantList?.length ?? 0) > 1); 25871 ctaListVersion = O(0); 25872 ctaText = g(() => (this.ctaListVersion(), jk(this.race(), this.messages()))); 25873 ctaDisabled = g(() => (this.ctaListVersion(), $k(this.race(), this.fromPickGameOverlay(), this.playerCount(), this.spinCount()))); 25874 coinCtaCount = g(() => { 25875 this.ctaListVersion(); 25876 let e = this.race(); 25877 if (!e?.isOptinWithCoins) return null; 25878 let n = e.ctaList ?? []; 25879 return n.includes(ze.OPTIN) || n.includes(ze.OPTIN_EXPIRED) ? e.coinsForOptin ?? null : null; 25880 }); 25881 beatBankerMinPoints = g(() => this.race()?.beatBanker?.minPoints || "0"); 25882 beatBankerCurrentPoints = g(() => this.race()?.beatBanker?.currPoints || "0"); 25883 beatBankerSliderMax = g(() => parseFloat(this.beatBankerMinPoints()) || 0); 25884 beatBankerSliderValue = g(() => parseFloat(this.beatBankerCurrentPoints()) || 0); 25885 showBeatBankerProgress = g(() => { 25886 this.ctaListVersion(); 25887 let e = this.race(); 25888 if (!e?.isLive || !this.user.isAuthenticated) return !1; 25889 let n = e.ctaList ?? []; 25890 return !n.includes(ze.OPTIN) && !n.includes(ze.OPTIN_EXPIRED); 25891 }); 25892 notifyOn = O(!1); 25893 notifyBellVisible = O(!1); 25894 showNotificationBell = g(() => { 25895 let e = this.race(); 25896 return !e || e.isLive || e.isNotify || !this.enableRaceNotification() ? !1 : this.notifyBellVisible() || this.slotRacesService.isNotifyBellVisible(e.promoId, e.slotUniqueId); 25897 }); 25898 notificationBellClass = g(() => { 25899 let e = this.sharedListMessages(); 25900 return `btn btn-primary notification-btn ${this.notifyOn() ? e.notificationBellOnIcon || "theme-alert-selected" : e.notificationBellOffIcon || "theme-notification-off"}`; 25901 }); 25902 ngOnInit() { 25903 let e = this.race(); 25904 e && (this.playerCount.set(e.targetedPlayerCount || 0), this.spinCount.set(_w(e)), this.updateTimer(), this.pollingService.globalTimerObservable.pipe(z(this.destroyRef)).subscribe(() => this.updateTimer()), this.notifyOn.set(!!e.notificationStatus), this.notifyBellVisible.set(!(e.ctaList ?? []).includes(ze.OPTIN)), this.subscribeToOptInSuccess(), this.subscribeToForceCoinBalance(), this.subscribeToNotifyStatus()); 25905 } 25906 subscribeToNotifyStatus() {
25907 this.slotRacesService.notifyObservable.pipe(z(this.destroyRef)).subscribe((e) => { 25908 let n = this.race(); 25909 n && e?.promoId === n.promoId && e?.slotUniqueId === n.slotUniqueId && (n.notificationStatus = e.status, this.notifyOn.set(e.status), this.notifyBellVisible.set(!0)); 25910 }); 25911 } 25912 onNotificationClick() { 25913 let e = this.race(); 25914 if (!e) return; 25915 let n = !this.notifyOn(); 25916 this.slotRacesService.updateNotificationStatus(e.promoId, e.slotUniqueId, n).pipe(z(this.destroyRef)).subscribe((i) => { 25917 i && (e.notificationStatus = n, this.notifyOn.set(n), this.slotRacesService.setNotifyStatus(e.promoId, e.slotUniqueId, n), import("./chunk-Bnhc28t3h.js").then((r) => this.dialogService.openNotificationToaster({ 25918 messages: this.messages(), 25919 status: n 25920 }, r.NotificationPopUpComponent))); 25921 }); 25922 } 25923 subscribeToForceCoinBalance() { 25924 this.slotRacesService.forceCoinBalanceObs.pipe(z(this.destroyRef)).subscribe((e) => { 25925 let n = this.race(), i = e?.race; 25926 n && i && Number(i.promoId) === n.promoId && Number(i.slotUniqueId) === n.slotUniqueId && e.coinBal?.balance && this.showConfirmToaster(n, e.coinBal); 25927 }); 25928 } 25929 subscribeToOptInSuccess() { 25930 this.slotRacesService.optInSuccess$.pipe(z(this.destroyRef)).subscribe((e) => { 25931 let n = this.race(); 25932 if (!n || e.promoId !== n.promoId || e.slotUniqueId !== n.slotUniqueId) return; 25933 let i = n.ctaList.indexOf(ze.OPTIN); 25934 i !== -1 && n.ctaList.splice(i, 1), this.ctaListVersion.update((r) => r + 1), this.promptNotifyOnOptInSuccess && (this.promptNotifyOnOptInSuccess = !1, this.openNotificationOverlay(n)); 25935 }); 25936 } 25937 openNotificationOverlay(e) { 25938 import("./chunk-biz25nly.js").then((n) => this.dialogService.openNotificationOverlay(F(G({}, this.dialogData()), { race: e }), n.NotificationOverlayComponent)); 25939 } 25940 onCtaClick() { 25941 let e = this.race(); 25942 if (!e) return; 25943 let n = this.unfinishedGamesForRace(e); 25944 if (n.length > 0) { 25945 this.openUnfinishedGamesDialog(n); 25946 return; 25947 } 25948 if (this.messageQueue.clear(), e.ctaList?.indexOf(ze.OPTIN) === -1) { 25949 this.playOrPickGame("cta"); 25950 return; 25951 } 25952 this.trackOptinClick(e), this.user.isAuthenticated ? e.isOptinWithCoins ? this.showCoinBalancePopup || this.checkCoinBalance(e) : (this.promptNotifyOnOptInSuccess = !e.isLive && this.enableRaceNotification() && !e.isNotify, this.slotRacesService.optInToRace(e, this.destroyRef)) : this.promptLoginForOptin(e); 25953 } 25954 checkCoinBalance(e) { 25955 this.showCoinBalancePopup = !0, this.slotRacesService.getCoinBalance().pipe(z(this.destroyRef)).subscribe({ 25956 next: (n) => this.showConfirmToaster(e, n), 25957 error: () => { 25958 this.showCoinBalancePopup = !1; 25959 } 25960 }); 25961 } 25962 showConfirmToaster(e, n) { 25963 (e.coinsForOptin ?? 0) <= (n?.balance ?? 0) ? this.openConfirmToasterDialog(e, !0) : (this.showCoinBalancePopup = !1, this.openConfirmToasterDialog(e, !1)); 25964 } 25965 openConfirmToasterDialog(e, n) { 25966 let i = `${this.trackingLocation()},${e.gameId ?? ""}`; 25967 this.tracking.track("load", "optin with coin", i, n ? this.messages().Purchase || "" : "oops! toaster popup"), import("./chunk-3bcuv3sgq.js").then((r) => { 25968 this.dialogService.openConfirmToasterDialog({ 25969 messages: this.messages(), 25970 showConfirmPopup: n 25971 }, r.CoinEconomyConfirmPopupComponent).afterClosed().pipe(z(this.destroyRef)).subscribe((u) => { 25972 this.showCoinBalancePopup = !1, this.confirmPopupTracking(e, u?.type), u?.type === di.CONFIRM ? (this.promptNotifyOnOptInSuccess = !e.isLive && this.enableRaceNotification() && !e.isNotify, this.slotRacesService.optInToRace(e, this.destroyRef, !0)) : this.slotRacesService.forceCoinBalancepublisher.next({}); 25973 }); 25974 }); 25975 } 25976 confirmPopupTracking(e, n) { 25977 let i = "optin with coin", r = `${this.trackingLocation()},${e.gameId ?? ""}`, u = this.messages(); 25978 switch (n) { 25979 case di.CONFIRM: 25980 this.tracking.track("click", i, r, `${u.Confrim || ""} cta`); 25981 break; 25982 case di.CLOSE: 25983 this.tracking.track("close", i, r, "confirmation popup"); 25984 break; 25985 case di.CANCEL: 25986 this.tracking.track("click", i, r, `${u.Cancel || ""} cta`); 25987 break; 25988 case di.TOASTER_CLOSE: this.tracking.track("close", i, r, "oops! toaster popup"); 25989 } 25990 } 25991 trackOptinClick(e) { 25992 if (e.isOptinWithCoins) { 25993 let n = this.messages().OptinWithText; 25994 this.tracking.track("click", e.gameId ?? "", this.trackingLocation(), n ? `${n} coin cta` : "Optin With coin cta"); 25995 } else this.tracking.track("click", e.gameId ?? "", this.trackingLocation(), `${this.ctaText()} cta`); 25996 } 25997 onIconClick() { 25998 this.race() && this.playOrPickGame("promo icon"); 25999 }
26000 onInfoClick() { 26001 let e = this.race(); 26002 if (e) { 26003 if (this.tracking.track("Quick Info Overlay (I) - Clicked", e.gameId ?? "", this.trackingLocation(), "User Clicked on (i) to open quick info overlay"), this.fromPickGameOverlay()) { 26004 this.dialogService.closeAll(), this.timerService.setTimeout(() => this.openRaceInfoDialog()); 26005 return; 26006 } 26007 this.openRaceInfoDialog(); 26008 } 26009 } 26010 hideRaceCard() { 26011 this.hideCard.emit(); 26012 } 26013 toggleCardExpansion() { 26014 let e = this.race()?.gameId ?? ""; 26015 this.expandCard() ? this.tracking.track("Collapse (-) - CTA Clicked", e, this.trackingLocation(), "User clicked on Collapse(-) to see the slot race details") : this.tracking.track("Expand (+) - CTA Clicked", e, this.trackingLocation(), "User clicked on Expand(+) to see the slot race details"), this.expandCard.update((n) => !n); 26016 } 26017 updateTimer() { 26018 let e = this.race(); 26019 if (!e) return; 26020 let n = Date.now(), i = new Date(e.startTime).getTime(), r = new Date(e.endTime).getTime(); 26021 this.sliderMaxValue.set(r - i), this.timeSpan.set(e.isLive ? r - n : i - n), e.isLive && this.progressValue.set(n - i); 26022 } 26023 playOrPickGame(e = "promo icon") { 26024 (this.race()?.gameVariantList?.length ?? 0) > 1 && !this.fromPickGameOverlay() ? this.openPickGameDialog(e) : this.launchGame(); 26025 } 26026 launchGame(e) { 26027 let n = this.race(), i = e || n?.gameVariantList?.[0]; 26028 if (!n || !i) return; 26029 let r = { 26030 game: { 26031 gameId: i, 26032 lobbyType: this.layoutId() 26033 }, 26034 isTouch: this.deviceService.isTouch, 26035 gamePosition: 0, 26036 categoryType: this.trackingLocation(), 26037 from: $i, 26038 replaceRouteInHistory: !1, 26039 isDemoLaunch: !1, 26040 gameLaunchedFrom: $i, 26041 gameContainer: $i, 26042 gameSection: $i, 26043 returnUrl: this.window.location.href, 26044 promoId: n.promoId, 26045 slotUniqueId: n.slotUniqueId, 26046 clickTimeStamp: Date.now() 26047 }; 26048 this.gameLaunchService.launchGame(r); 26049 } 26050 unfinishedGamesForRace(e) { 26051 return aI(e.gameVariantList, this.unfinishedGamesService.getUnfinishedGames(), (n) => this.gameImageService.getIconConfigForType({ gameId: n }, ue.Square).src); 26052 } 26053 openUnfinishedGamesDialog(e) { 26054 let n = this.messages(); 26055 this.dialogService.openUnfinishedGamesDialog(G({ 26056 unfinishedGamesData: e, 26057 unfinishedPopuUpText: oI(n) 26058 }, rI(n)), mv, (i) => this.launchGame(i)); 26059 } 26060 promptLoginForOptin(e) { 26061 let n = e.isOptinWithCoins ? er : Zo; 26062 this.window.sessionStorage.setItem(n, JSON.stringify(F(G({}, e), { layoutId: this.layoutId() }))); 26063 let i = !this.showRaceInfo() || this.fromPickGameOverlay(); 26064 this.loginDialogService.whenReady.pipe(z(this.destroyRef)).subscribe(() => { 26065 i && this.dialogService.closeAll(), this.loginDialogService.open({ loginMessageKey: pv }); 26066 }); 26067 } 26068 dialogData() { 26069 return { 26070 race: this.race(), 26071 layoutId: this.layoutId(), 26072 trackingLocation: this.trackingLocation(), 26073 coinImg: this.coinImg(), 26074 cardComponent: t 26075 }; 26076 } 26077 openPickGameDialog(e = "promo icon") { 26078 let n = this.race(); 26079 n && (this.tracking.track(`Pick Game - ${e} clicked`, n.content?.promotion?.promoName ?? "", this.trackingLocation(), `User opened the pick-game overlay from the ${e} for the Slots Race`), this.dialogService.openPickGameDialog(this.dialogData(), Tc, (i) => this.launchGame(i))); 26080 } 26081 openRaceInfoDialog() { 26082 if (!this.race()) return; 26083 let e = F(G({}, this.dialogData()), { enableOptin: !0 }); 26084 this.dialogService.openRaceInfoDialog(e, Rc, () => this.openPickGameDialog()); 26085 } 26086 static ɵfac = function(e) { 26087 return new (e || t)(); 26088 }; 26089 static ɵcmp = I({ 26090 type: t, 26091 selectors: [["cw-slot-race-card"]], 26092 inputs: { 26093 race: [1, "race"], 26094 trackingLocation: [1, "trackingLocation"], 26095 layoutId: [1, "layoutId"], 26096 coinImg: [1, "coinImg"], 26097 fromPickGameOverlay: [1, "fromPickGameOverlay"], 26098 showRaceInfo: [1, "showRaceInfo"], 26099 iconClickable: [1, "iconClickable"], 26100 showCardMenu: [1, "showCardMenu"], 26101 showPlaceholderCard: [1, "showPlaceholderCard"], 26102 first: [1, "first"], 26103 last: [1, "last"], 26104 collapsible: [1, "collapsible"] 26105 }, 26106 outputs: { hideCard: "hideCard" }, 26107 features: [ce([St, Bi])], 26108 decls: 1, 26109 vars: 1, 26110 consts: [ 26111 [ 26112 1, 26113 "casino-sr-card-widget", 26114 3, 26115 "no-blur", 26116 "collapse", 26117 "sr-multi-game", 26118 "casino-beat-the-banker", 26119 "color", 26120 "background" 26121 ], 26122 [1, "casino-sr-card-widget"], 26123 [ 26124 "tabindex", 26125 "0", 26126 "role", 26127 "button", 26128 1, 26129 "theme-info" 26130 ], 26131 [ 26132 3, 26133 "src", 26134 "alt" 26135 ], 26136 [1, "slot-list"], 26137 [1, "sr-card-game-title"], 26138 [1, "sr-card-upcoming-game-title"], 26139 [1, "sr-card-container-top"], 26140 [ 26141 1, 26142 "btn-section", 26143 "expandshow" 26144 ], 26145 [1, "sr-card-game-icon"], 26146 [ 26147 3, 26148 "iconClick", 26149 "gameVariantList", 26150 "layoutId", 26151 "isLive", 26152 "isClickable" 26153 ], 26154 [1, "sr-card-total-prize"], 26155 [1, "sr-card-total-prize-box"], 26156 [1, "total-prize"], 26157 [1, "sr-card-total-coin"], 26158 [1, "sr-card-total-prize-value"], 26159 [1, "sr-card-counter-bet-box"], 26160 [1, "time-section"], 26161 [1, "ends"], 26162 [1, "sr-card-counter"], 26163 [ 26164 1, 26165 "casino-beat-the-banker-container", 26166 3, 26167 "btb-progress-bar" 26168 ], 26169 [1, "sr-card-progress-bar"], 26170 [1, "sr-card-container-bottom"], 26171 [1, "pleyer-count"], 26172 [1, "cs-sr-players"], 26173 [1, "sr-card-player-count"], 26174 [1, "time-sec"], 26175 [1, "duration"], 26176 [1, "sr-card-race-duration"], 26177 ["aria-hidden", "true"], 26178 [1, "spin-section"], 26179 [1, "spin-limit"], 26180 [1, "sr-card-spins-count"], 26181 [ 26182 "tabindex", 26183 "0", 26184 "role", 26185 "button", 26186 3, 26187 "class" 26188 ], 26189 [1, "btn-section"], 26190 [ 26191 "tabindex", 26192 "0", 26193 "role", 26194 "button", 26195 1, 26196 "theme-info", 26197 3, 26198 "click", 26199 "keydown.enter" 26200 ], 26201 [ 26202 1, 26203 "list-item", 26204 "time" 26205 ], 26206 [ 26207 1, 26208 "list-item", 26209 "red-dot" 26210 ], 26211 [ 26212 1, 26213 "list-item", 26214 "game-name" 26215 ], 26216 [ 26217 "tabindex", 26218 "0", 26219 "role", 26220 "button", 26221 "aria-label", 26222 "Collapse card", 26223 1, 26224 "list-item", 26225 "theme-minus", 26226 3, 26227 "click", 26228 "keydown.enter" 26229 ], 26230 [1, "race-title"], 26231 [ 26232 "tabindex", 26233 "0", 26234 "role", 26235 "button", 26236 "aria-label", 26237 "Toggle race details", 26238 1, 26239 "expandcollaps", 26240 3, 26241 "click", 26242 "keydown.enter" 26243 ], 26244 [ 26245 3, 26246 "ctaClick", 26247 "ctaText", 26248 "disabled", 26249 "csDecoratorClass", 26250 "coinsForOptin", 26251 "imgSrc" 26252 ], 26253 [ 26254 "alt", 26255 "Coin Image", 26256 1, 26257 "coin-img", 26258 3, 26259 "src" 26260 ], 26261 [1, "theme-plus"], 26262 [1, "bet-section"], 26263 [1, "min-bet"], 26264 [1, "src-card-min-bet"], 26265 [1, "casino-beat-the-banker-container"], 26266 [1, "scrore-text"], 26267 [1, "casino-beat-the-banker-progress-bar"], 26268 [ 26269 1, 26270 "casino-beat-the-banker-progress-bar-color", 26271 3, 26272 "disabled", 26273 "max" 26274 ], 26275 [1, "freespins-count"], 26276 [ 26277 "matSliderThumb", 26278 "", 26279 3, 26280 "value" 26281 ], 26282 [ 26283 1, 26284 "sr-progress-bar-color", 26285 3, 26286 "disabled", 26287 "max" 26288 ], 26289 [ 26290 "tabindex", 26291 "0", 26292 "role", 26293 "button", 26294 3, 26295 "click", 26296 "keydown.enter", 26297 "keydown.space" 26298 ] 26299 ], 26300 template: function(e, n) { 26301 if (e & 1 && f(0, aT, 49, 50, "div", 0), e & 2) { 26302 let i; 26303 h((i = n.race()) ? 0 : -1, i); 26304 } 26305 }, 26306 dependencies: [ 26307 F1, 26308 z1, 26309 B1, 26310 $n, 26311 Fi 26312 ], 26313 styles: ["@charset \"UTF-8\";[_nghost-%COMP%]{display:block}
26313.casino-sr-card-widget[_ngcontent-%COMP%]{position:relative;width:361px;border-radius:var(--%NS%semantic-radius-l2-card);margin-left:.4375rem;margin-right:.4375rem;color:#fff;overflow:hidden}.casino-sr-card-widget.no-blur[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{filter:unset;-webkit-filter:blur(0)}.casino-sr-card-widget[_ngcontent-%COMP%] > img[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;z-index:-1;-webkit-filter:blur(10px);filter:blur(10px);object-fit:cover}.casino-sr-card-widget[_ngcontent-%COMP%] .theme-info[_ngcontent-%COMP%]{position:absolute;right:var(--%NS%sr-info-icon-right, .6875rem);top:.9375rem;height:var(--%NS%sr-info-icon-height, auto);width:var(--%NS%sr-info-icon-width, auto);cursor:pointer;font-size:var(--%NS%sr-info-icon-font-size, 1.25rem);color:#fff;z-index:4}.casino-sr-card-widget[_ngcontent-%COMP%] .theme-info[_ngcontent-%COMP%]:before{background:var(--%NS%sr-info-icon-bg, var(--%NS%semantic-color-primary-base));border-radius:50%;vertical-align:middle;padding:.3125rem;display:flex}.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%]{display:flex;height:3.125rem;line-height:3.125rem;padding:0 0 0 .625rem;align-items:center}.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.time[_ngcontent-%COMP%]{text-align:left;font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:700;min-width:7%}@media screen and (min-width:320px){.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.time[_ngcontent-%COMP%]{min-width:13%}}@media screen and (min-width:480px){.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.time[_ngcontent-%COMP%]{min-width:9%}}@media screen and (min-width:1024px){.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.time[_ngcontent-%COMP%]{min-width:6.8%}}.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.game-name[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);line-height:.9375rem;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.theme-minus[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;width:10%;padding-top:.3125rem;padding-right:.9375rem;font-size:1.25rem;font-weight:700;text-align:center;cursor:pointer}@media screen and (min-width:480px){.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.theme-minus[_ngcontent-%COMP%]{width:3.75rem}}@media screen and (min-width:1024px){.casino-sr-card-widget[_ngcontent-%COMP%] .slot-list[_ngcontent-%COMP%] .list-item.theme-minus[_ngcontent-%COMP%]{width:6%}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:800;line-height:normal;letter-spacing:-.01px;padding:.5625rem 0 0 .625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%]{padding:.5625rem 0 0 1.25rem}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-upcoming-game-title[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:800;line-height:normal;letter-spacing:-.01px;padding:.5625rem 0 0 .625rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%]{display:flex;flex-direction:row;height:118px;padding:var(--%NS%semantic-spacing-container-padding-lg)}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .btn-section.expandshow[_ngcontent-%COMP%]{display:none}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%]{height:5.25rem;width:5.25rem;margin-top:.625rem;position:relative;border-radius:.1875rem}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%]{margin-top:0}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%]{width:20%;max-width:6.125rem;height:6.125rem;border-radius:0}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:5.25rem;height:5.25rem;border-radius:.1875rem;z-index:1;-webkit-filter:unset;filter:unset}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%]{margin:0 var(--%NS%semantic-spacing-inline-md) var(--%NS%semantic-spacing-stack-md) var(--%NS%semantic-spacing-inline-xl);width:10.75rem}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%]{z-index:3}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%]{width:80%;margin:.5rem .5rem .5rem 1.8125rem}}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%]{width:80%;margin:0 var(--%NS%semantic-spacing-inline-md) var(--%NS%semantic-spacing-stack-md) 1.5625rem}@media screen and (max-width:420px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%]{width:70%;margin:var(--%NS%semantic-spacing-stack-md) var(--%NS%semantic-spacing-inline-md) var(--%NS%semantic-spacing-stack-md) var(--%NS%semantic-spacing-inline-xl)}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%]{width:60%;margin-top:0}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%]{width:80%;margin:0 var(--%NS%semantic-spacing-inline-md) var(--%NS%semantic-spacing-stack-md) 1.5625rem}@media screen and (max-width:767px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%]{width:75%;margin:var(--%NS%semantic-spacing-stack-md) var(--%NS%semantic-spacing-inline-md) var(--%NS%semantic-spacing-stack-md) .625rem}}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%]{width:80%;margin:.5rem .5rem .5rem 1.8125rem}@media screen and (max-width:767px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%]{width:69%;margin:.8125rem .5rem .5rem .875rem}}@media screen and (max-width:767px){cw-slot-races-cards[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%], cw-slot-races-cards [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%]{margin-top:.625rem}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%]{position:relative;top:-10%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{width:34%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .ends[_ngcontent-%COMP%]{display:inline-block}
26313.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%]{width:30%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .min-bet[_ngcontent-%COMP%]{display:inline-block}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%]{display:flex;align-items:center}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%]{font-size:.625rem;width:4.375rem;display:inline-block;position:relative;color:#fff}@media screen and (max-width:768px){.casino-sr-card-wrapper[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%], .casino-sr-card-wrapper [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%]{width:var(--%NS%semantic-size-x10)}}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size)}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%]{width:5.0625rem}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-prize-icon[_ngcontent-%COMP%]{font-size:1.5625rem;padding-right:.1875rem;padding-left:var(--%NS%semantic-spacing-container-padding-xs)}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%]{display:flex;margin:0 .1875rem;z-index:1}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%] .coin-img[_ngcontent-%COMP%]{width:1.125rem;height:1.125rem;filter:unset;position:unset}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value[_ngcontent-%COMP%]{font-size:1rem;font-weight:700;margin-right:var(--%NS%semantic-spacing-inline-xs)}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%]{width:100%}
26313.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .min-bet[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .ends[_ngcontent-%COMP%]{font-size:.625rem;line-height:inherit;color:#fff}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .min-bet[_ngcontent-%COMP%]:after, .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .ends[_ngcontent-%COMP%]:after{content:\"\\a0\"}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .min-bet[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .min-bet[_ngcontent-%COMP%], .casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .ends[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .ends[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .ends[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .ends[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size)}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-title-md-font-size);font-weight:700}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{display:inline-block;width:50%}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{width:33%}}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{width:24%}@media screen and (max-width:768px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{width:27%}}@media screen and (max-width:420px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{width:38%}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%]{display:inline-block}
26313.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%]{height:6.25rem;padding:.1875rem .625rem}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%]{height:4.6875rem;padding:.3125rem 1.25rem}}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%]{height:3.5625rem;margin-top:.0625rem;padding:0 .625rem;align-items:center}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .btn-section[_ngcontent-%COMP%]{margin-top:0}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;width:-webkit-fill-available;max-width:27.5rem;height:1.5rem;margin:.3125rem;padding:0 .4375rem;font-size:var(--%NS%semantic-typography-label-sm-font-size);border-radius:var(--%NS%semantic-radius-semi-rounded-xs);background:var(--%NS%sr-beat-the-banker-bg, rgba(13, 4, 48, .6))}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .scrore-text[_ngcontent-%COMP%]{flex:2;white-space:pre}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .sr-prize-icon[_ngcontent-%COMP%]{flex:2;height:1.5rem;text-align:center;font-size:1.375rem}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .freespins-count[_ngcontent-%COMP%]{flex:2;text-align:right;font-size:var(--%NS%semantic-typography-label-lg-font-size);white-space:nowrap}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container.btb-progress-bar[_ngcontent-%COMP%] .scrore-text[_ngcontent-%COMP%]{flex:1.5;white-space:pre}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container.btb-progress-bar[_ngcontent-%COMP%] .sr-prize-icon[_ngcontent-%COMP%]{flex:.8;padding:0 .3125rem;align-items:center;justify-content:center}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container.btb-progress-bar[_ngcontent-%COMP%] .casino-beat-the-banker-progress-bar[_ngcontent-%COMP%]{flex:6.5;margin:0 var(--%NS%semantic-spacing-inline-md);height:unset;background:none}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container.btb-progress-bar[_ngcontent-%COMP%] .freespins-count[_ngcontent-%COMP%]{flex:2;white-space:pre}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .casino-beat-the-banker-progress-bar[_ngcontent-%COMP%]{flex:6.5;margin:0 var(--%NS%semantic-spacing-inline-md);border-radius:.375rem;position:relative;height:.625rem}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .casino-beat-the-banker-progress-bar[_ngcontent-%COMP%] mat-slider{position:relative;inset:0;width:100%;min-width:unset;padding:0;margin:0}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .casino-beat-the-banker-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__track{height:.125rem;border-radius:.375rem}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .casino-beat-the-banker-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__track--inactive{background:transparent;opacity:1;height:.125rem}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .casino-beat-the-banker-progress-bar[_ng
26313content-%COMP%] mat-slider .mdc-slider__track--active{height:.125rem}.casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%] .casino-beat-the-banker-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__track--active .mdc-slider__track--active_fill{border-color:var(--%NS%sr-progress-bar-color, var(--%NS%semantic-color-primary-base));border-top-width:.625rem;height:.625rem}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider{position:absolute;padding:0;width:100%;height:0;margin:0 auto;z-index:1}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__thumb-knob{background-color:var(--%NS%sr-progress-bar-color, var(--%NS%semantic-color-primary-base));border-radius:100%;top:0;left:0}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mat-ripple{background-color:var(--%NS%sr-progress-bar-color, var(--%NS%semantic-color-primary-base));border-radius:50%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__track--active_fill{border-color:var(--%NS%sr-progress-bar-color, var(--%NS%semantic-color-primary-base));height:2px;border-top-width:4px}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__track{height:2px;width:100%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__track .mdc-slider__track--inactive{background-color:unset;height:2px}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__track .mdc-slider__track--active{top:0;border-radius:0;height:2px}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__thumb{height:20px;width:20px;top:-10px;left:-10px}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%] mat-slider .mdc-slider__input{height:100%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%]{display:flex;background:var(--%NS%sr-card-bottom-bg, rgba(13, 4, 48, .6));height:4.375rem;padding:.625rem;margin-top:1px;align-items:center;overflow:auto}@media screen and (min-width:960px){.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%]{overflow:unset}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .cs-sr-players[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .duration[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-limit[_ngcontent-%COMP%]{font-size:.625rem;line-height:inherit;color:#fff}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .cs-sr-players[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .cs-sr-players[_ngcontent-%COMP%], .casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .duration[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .duration[_ngcontent-%COMP%], .casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-limit[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-limit[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);display:inline}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:700;color:#fff}@media screen and (max-width:420px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%]{font-size:1rem}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%]{width:18%;position:relative}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%]{width:15%}@media screen and (max-width:768px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%]{width:18%}}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%]{width:20%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .time-sec[_ngcontent-%COMP%]{width:22%}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .time-sec[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .time-sec[_ngcontent-%COMP%]{width:16%}@media screen and (max-width:768px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .time-sec[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .time-sec[_ngcontent-%COMP%]{width:24%}}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .time-sec[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .time-sec[_ngcontent-%COMP%]{width:27%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-section[_ngcontent-%COMP%]{width:22%}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-section[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-section[_ngcontent-%COMP%]{width:24%}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .btn-section[_ngcontent-%COMP%]{width:38%;text-align:right;display:flex;justify-content:flex-end;align-items:center}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .btn-section[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .btn-section[_ngcontent-%COMP%]{width:45%}@media screen and (max-width:768px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .btn-section[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .btn-section[_ngcontent-%COMP%]{width:34%}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .btn.btn-primary.notification-btn[_ngcontent-%COMP%]{display:flex;align-items:center;height:41px;margin-left:auto}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-font-size)}@media screen and (max-width:768px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size)}}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%]{min-width:6.25rem}@media screen and (max-width:480px){.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom.optin-limit[_ngcontent-%COMP%] .pleyer-count[_ngcontent-%COMP%]{min-width:4.0625rem}}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps[_ngcontent-%COMP%]{position:absolute;right:.9375rem;top:.9375rem;border:solid #fff;border-width:0 .1875rem .1875rem 0;padding:.1875rem;transform:rotate(42deg);cursor:pointer;display:none}@media screen and (max-width:768px){.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps[_ngcontent-%COMP%]{display:block}
26313.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps.collapsed[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps.collapsed[_ngcontent-%COMP%]{transform:rotate(42deg);transition:all .5s}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps.expanded[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%] .expandcollaps.expanded[_ngcontent-%COMP%]{transform:rotate(-135deg);transition:all .5s}}@media screen and (max-width:768px){.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%]{height:102px;min-height:102px;transition:all .5s ease-in}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-game-title[_ngcontent-%COMP%]{padding:.625rem}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-progress-bar[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%]{display:none}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .theme-info[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .theme-info[_ngcontent-%COMP%]{display:none}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .btn-section.expandshow[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .btn-section.expandshow[_ngcontent-%COMP%]{display:block;position:absolute;right:.9375rem;bottom:.9375rem}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%]{height:3.125rem;width:3.125rem}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:3.125rem;height:3.125rem}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%]{margin-top:0}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value[_ngcontent-%COMP%]{font-size:.875rem}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{width:100%}
26313.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%]{display:none}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%]{display:inline-block;margin-left:.9375rem}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-widget.collapse[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%]{width:100%}}@media screen and (max-width:767px){.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{font-size:.875rem}.casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size)}}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%]{top:-15%}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%]{width:31%}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%]{width:31%}@media screen and (max-width:767px){cw-slot-races-info[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], cw-slot-races-info [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], cw-slot-races-info[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], cw-slot-races-info [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{font-size:1rem}}.red-dot[_ngcontent-%COMP%]{min-width:.6875rem;height:.6875rem;background:var(--%NS%semantic-color-primary-base);border-radius:50%;position:relative;margin:0 var(--%NS%semantic-spacing-inline-md)}.red-dot[_ngcontent-%COMP%]:after{content:\"\";height:1.375rem;width:.0625rem;background:var(--%NS%semantic-color-primary-base);position:absolute;top:.5rem;left:.3125rem}.red-dot[_ngcontent-%COMP%]:before{content:\"\";height:1.375rem;width:.0625rem;background:var(--%NS%semantic-color-primary-base);position:absolute;bottom:.625rem;left:.3125rem}.red-dot.red-dot-last[_ngcontent-%COMP%]:after{display:none}.red-dot.red-dot-first[_ngcontent-%COMP%]:before{display:none}@media screen and (min-width:768px){.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value[_ngcontent-%COMP%]{width:auto;font-size:1.375rem;line-height:inherit}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget.sr-multi-game[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget.sr-multi-game[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%]{margin-left:1.125rem}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%]{font-size:1.1875rem;line-height:inherit;margin-left:.375rem;display:inline}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{font-size:1.125rem;line-height:inherit;margin-left:.375rem;display:inline}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-player-count[_ngcontent-%COMP%], .casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-race-duration[_ngcontent-%COMP%], .casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .sr-card-spins-count[_ngcontent-%COMP%]{color:#fff;font-size:1rem;line-height:inherit;margin-left:.375rem}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-section[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-bottom[_ngcontent-%COMP%] .spin-section[_ngcontent-%COMP%]{width:20%}.casino-race-info-container[_nghost-%COMP%] .casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%], .casino-race-info-container [_nghost-%COMP%] .casino-sr-card-widget.casino-beat-the-banker[_ngcontent-%COMP%] .casino-beat-the-banker-container[_ngcontent-%COMP%]{width:100%;max-width:23.75rem;height:1.875rem;top:-.0625rem;left:19%}}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%]{width:5.0625rem;font-size:var(--%NS%semantic-typography-label-md-font-size);position:relative;top:-4px}@media screen and (max-width:420px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .total-prize[_ngcontent-%COMP%]{font-size:.6875rem;width:2.8125rem}}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value[_ngcontent-%COMP%]{width:auto;font-size:1.375rem}@media screen and (max-width:560px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value.sr-card-total-prize-value[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value.sr-card-total-prize-value[_ngcontent-%COMP%]{font-size:1.125rem}}@media screen and (max-width:420px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value.sr-card-total-prize-value[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-total-prize-box[_ngcontent-%COMP%] .sr-card-total-prize-value.sr-card-total-prize-value[_ngcontent-%COMP%]{font-size:1rem}}@media screen and (min-width:768px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{margin-left:.375rem;font-size:1.25rem;display:inline}}.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%]{border-radius:0;margin-top:0;margin-left:.625rem;width:100%;height:6.125rem;max-width:6.125rem}@media screen and (max-width:767px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%]{height:5.25rem;max-width:5.25rem}}@media screen and (max-width:420px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-game-icon[_ngcontent-%COMP%]{width:30%;border-radius:.1875rem}}@media screen and (max-width:560px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%],
26313 .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{margin-left:0;font-size:.875rem}}@media screen and (max-width:420px){.casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .time-section[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-wrapper-sr-expand[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-wrapper-sr-expand [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize.sr-max-bet[_ngcontent-%COMP%] .sr-card-counter-bet-box.sr-card-counter-bet-box-max[_ngcontent-%COMP%] .bet-section[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{display:block}}.casino-sr-notification-message[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-sr-notification-message [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .sr-card-counter[_ngcontent-%COMP%], .casino-sr-notification-message[_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%], .casino-sr-notification-message [_nghost-%COMP%] .casino-sr-card-widget[_ngcontent-%COMP%] .sr-card-container-top[_ngcontent-%COMP%] .sr-card-total-prize[_ngcontent-%COMP%] .sr-card-counter-bet-box[_ngcontent-%COMP%] .src-card-min-bet[_ngcontent-%COMP%]{font-size:1rem}"] 26314 }); 26315 } 26316 return t; 26317 })(), Dc = (() => { 26318 class t { 26319 contentApi = s(Te); 26320 lifecycleService = s(wn); 26321 slotRacesService = s(an); 26322 configProviderService = s(V); 26323 deviceService = s(J); 26324 destroyRef = s(q); 26325 tracking = s(Ln); 26326 layoutId = m(""); 26327 trackingLocation = m("lobby"); 26328 showLeaderboard = m(!1); 26329 addUpcoming = m(!1); 26330 showPlaceholderCard = m(!0); 26331 selectedOption = m("ALL"); 26332 rawLiveRaces = O([]); 26333 rawUpcomingToday = O([]); 26334 rawUpcomingTomorrow = O([]); 26335 enableCoinEconomy() { 26336 return !!this.configProviderService.provideSlotRacesConfig()?.enableCoinEconomy; 26337 } 26338 races = g(() => { 26339 let e = (this.configProviderService.provideSlotRacesConfig()?.noOfCards || t.DEFAULT_CARD_COUNT) - 1, n = this.selectedOption(), i = this.enableCoinEconomy(), r = Oa(this.rawLiveRaces(), n, i); 26340 if (!this.addUpcoming() || r.length >= e) return r.slice(0, e); 26341 let u = Oa(this.rawUpcomingToday(), n, i), v = Oa(this.rawUpcomingTomorrow(), n, i), P = this.appendOptedInFirst([...r], u, e); 26342 return P.length < e && (P = this.appendOptedInFirst(P, v, e)), P; 26343 }); 26344 isTouchLayout = this.deviceService.isTouch; 26345 showCarousel = g(() => !this.isTouchLayout && !this.showLeaderboard()); 26346 messages = this.contentApi.messages; 26347 coinImg = this.contentApi.coinImg; 26348 placeholderImage = this.contentApi.placeholderImage; 26349 ctaClass = ua; 26350 static SLIDES_PER_VIEW = 3; 26351 static DEFAULT_CARD_COUNT = 4; 26352 swiperOptions = { 26353 autoHeight: !0, 26354 allowTouchMove: !1, 26355 spaceBetween: 1, 26356 slidesPerView: t.SLIDES_PER_VIEW, 26357 navigation: !0, 26358 preventClicks: !1, 26359 preventClicksPropagation: !1 26360 }; 26361 ngOnInit() { 26362 this.slotRacesService.cardsVisible.set(!0), this.destroyRef.onDestroy(() => this.slotRacesService.cardsVisible.set(!1)), this.addUpcoming() ? Io([this.lifecycleService.liveRacesData, this.lifecycleService.upcomingRacesData]).pipe(z(this.destroyRef)).subscribe(([e, n]) => { 26363 this.rawLiveRaces.set(e?.liveNow?.slice(0) || []), this.rawUpcomingToday.set(n?.upcomingToday?.slice(0) || []), this.rawUpcomingTomorrow.set(n?.upcomingTomorrow?.slice(0) || []); 26364 }) : this.lifecycleService.liveRacesData.pipe(z(this.destroyRef)).subscribe((e) => { 26365 this.rawLiveRaces.set(e?.liveNow?.slice(0) || []); 26366 }); 26367 } 26368 appendOptedInFirst(e, n, i) { 26369 if (n.length === 0) return e; 26370 let r = (v) => (v.ctaList?.indexOf(ze.OPTIN) ?? -1) === -1, u = [...e, ...n.filter(r).slice(0, i - e.length)]; 26371 return u.length < i && (u = [...u, ...n.filter((v) => !r(v)).slice(0, i - u.length)]), u; 26372 } 26373 raceTrackFn(e, n) { 26374 return `${n.isLive}_${n.promoId}_${n.slotUniqueId}`; 26375 } 26376 seeAllClick = j(); 26377 gotoSlotRaces() { 26378 this.tracking.track("See upcoming - CTA Clicked", "not applicable", this.trackingLocation(), "User clicked on see upcoming Link"), this.seeAllClick.emit(); 26379 } 26380 static ɵfac = function(e) { 26381 return new (e || t)(); 26382 }; 26383 static ɵcmp = I({ 26384 type: t, 26385 selectors: [["cw-slot-races-cards"]], 26386 inputs: { 26387 layoutId: [1, "layoutId"], 26388 trackingLocation: [1, "trackingLocation"], 26389 showLeaderboard: [1, "showLeaderboard"], 26390 addUpcoming: [1, "addUpcoming"], 26391 showPlaceholderCard: [1, "showPlaceholderCard"], 26392 selectedOption: [1, "selectedOption"] 26393 }, 26394 outputs: { seeAllClick: "seeAllClick" }, 26395 decls: 5, 26396 vars: 1, 26397 consts: [ 26398 ["placeholderCard", ""], 26399 [ 26400 "id", 26401 "casinotournamentscards", 26402 1, 26403 "casino-wrapper-sr" 26404 ], 26405 [1, "casino-sr-card-wrapper-non-touch"], 26406 [ 26407 3, 26408 "casino-sr-card-wrapper", 26409 "casino-sr-card-wrapper-non-touch", 26410 "sr-card-leaderboard", 26411 "sr-card-odd" 26412 ], 26413 [3, "swiperOptions"], 26414 [3, "ngTemplateOutlet"], 26415 [1, "swiper-slide"], 26416 [ 26417 1, 26418 "cw-slot-race-card", 26419 3, 26420 "race", 26421 "trackingLocation", 26422 "layoutId", 26423 "coinImg", 26424 "showPlaceholderCard" 26425 ], 26426 [ 26427 3, 26428 "card-width", 26429 "sr-new-cards" 26430 ], 26431 [ 26432 1, 26433 "cw-slot-race-card", 26434 3, 26435 "race", 26436 "trackingLocation", 26437 "layoutId", 26438 "coinImg", 26439 "first", 26440 "collapsible", 26441 "showPlaceholderCard" 26442 ], 26443 [1, "casino-sr-card-widget"], 26444 [ 26445 "draggable", 26446 "false", 26447 3, 26448 "alt", 26449 "src" 26450 ], 26451 [1, "casino-new-races-soon"], 26452 [ 26453 1, 26454 "casino-new-races-soon-icon", 26455 "theme-slots-race-coming-soon" 26456 ], 26457 [1, "casino-new-races-soon-title"], 26458 [ 26459 1, 26460 "sr-card-container-bottom", 26461 "sr-card-placeholder" 26462 ], 26463 [1, "btn-section"], 26464 [ 26465 3, 26466 "ctaClick", 26467 "ctaText", 26468 "csDecoratorClass" 26469 ] 26470 ], 26471 template: function(e, n) { 26472 e & 1 && (l(0, "div", 1), f(1, lT, 3, 1, "div", 2)(2, mT, 4, 9, "div", 3), d(), te(3, pT, 9, 5, "ng-template", null, 0, Ne)), e & 2 && (a(), h(n.showCarousel() ? 1 : 2)); 26473 }, 26474 dependencies: [ 26475 mt, 26476 si, 26477 fo, 26478 $n 26479 ], 26480 styles: ["[_nghost-%COMP%]{display:block}
26480.casino-wrapper-sr[_ngcontent-%COMP%]{max-width:1250px;margin:0 auto;padding:0 1.25rem;position:relative}@media screen and (max-width:768px){.casino-wrapper-sr[_ngcontent-%COMP%]{padding:0}}.casino-wrapper-sr[_ngcontent-%COMP%] .swiper:not(.native-swiper-container){position:unset}.casino-wrapper-sr[_ngcontent-%COMP%] .swiper-button-prev, .casino-wrapper-sr[_ngcontent-%COMP%] .swiper-button-next, .casino-wrapper-sr[_ngcontent-%COMP%] .native-swiper-nav-prev ds-arrow, .casino-wrapper-sr[_ngcontent-%COMP%] .native-swiper-nav-next ds-arrow{color:var(--%NS%semantic-color-primary-base);width:var(--%NS%semantic-size-x12);height:var(--%NS%semantic-size-x12);border-radius:var(--%NS%semantic-radius-max);z-index:3}.casino-wrapper-sr[_ngcontent-%COMP%] .swiper-button-prev, .casino-wrapper-sr[_ngcontent-%COMP%] .swiper-button-next{position:absolute;top:5rem}.casino-wrapper-sr[_ngcontent-%COMP%] .native-swiper-nav-prev, .casino-wrapper-sr[_ngcontent-%COMP%] .native-swiper-nav-next{top:5rem;transform:none;z-index:3}.casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap}.casino-sr-card-wrapper[_ngcontent-%COMP%]{position:relative;width:100%;display:flex;overflow-x:auto;overflow-y:hidden}.casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{width:391px;height:13.375rem;border-radius:var(--%NS%semantic-radius-semi-rounded-sm);margin-left:.375rem;margin-right:.375rem}@media screen and (max-width:1024px){.casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{width:300px}}@media screen and (max-width:767px){.casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{width:288px;min-height:13.375rem;margin-left:.4375rem;margin-right:.4375rem}}.casino-sr-card-widget[_ngcontent-%COMP%]{position:relative;width:361px;border-radius:var(--%NS%semantic-radius-l2-card);color:#fff;overflow:hidden}.casino-sr-card-widget[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{position:absolute;width:100%;height:100%;z-index:-1;filter:blur(10px)}.casino-new-races-soon[_ngcontent-%COMP%]{height:118px;text-align:center}.casino-new-races-soon-title[_ngcontent-%COMP%]{text-transform:uppercase;font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:800;color:#fff;width:11.25rem;margin:auto}.casino-new-races-soon-icon[_ngcontent-%COMP%]{display:block;margin:0 auto}.sr-card-container-bottom[_ngcontent-%COMP%]{display:flex;align-items:center}.sr-card-placeholder[_ngcontent-%COMP%]{background:none}.sr-card-placeholder[_ngcontent-%COMP%] .btn-section[_ngcontent-%COMP%]{margin:0 auto;width:auto}.btn-section[_ngcontent-%COMP%]{text-align:center;padding:.625rem 0}.sr-new-cards[_ngcontent-%COMP%]{display:inline-block}.sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child{display:block;width:100%;max-width:920px}.sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card{display:block}.sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card .casino-sr-card-widget{width:100%;max-width:920px}.sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .bet-section, .sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .time-section{max-width:120px}.sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .time-sec, .sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-section, .sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .pleyer-count{max-width:100px}.sr-card-odd[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]:first-child cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section{margin-left:auto}@media screen and (min-width:1024px){.casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%]{width:50%;box-sizing:border-box}.casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] .sr-new-cards[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{width:100%;margin:0}}.casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{border-radius:var(--%NS%semantic-radius-semi-rounded-sm)}@media screen and (min-width:1024px){.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{border-radius:var(--%NS%semantic-radius-semi-rounded-md)}}@media screen and (max-width:1023px){.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%], .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%]{display:unset;overflow:visible}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] cw-slot-race-card, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] cw-slot-race-card{display:block}
26480.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{width:100%;margin:.3125rem 0;border-radius:var(--%NS%semantic-radius-semi-rounded-md)}}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .bet-section .src-card-min-bet, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .bet-section .src-card-min-bet, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .bet-section .src-card-min-bet, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize.sr-max-bet .sr-card-counter-bet-box.sr-card-counter-bet-box-max .bet-section .src-card-min-bet{font-size:1rem;line-height:.9375rem}.casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter, .casino-sr-sub-wrapper.new-slotraces-styles[_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet, .casino-sr-sub-wrapper.new-slotraces-styles [_nghost-%COMP%] .casino-sr-card-wrapper-non-touch cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet{font-size:1rem;line-height:.9375rem}"] 26481 }); 26482 } 26483 return t; 26484 })(), uv = (() => { 26485 class t { 26486 dialogRef = s(Ye); 26487 contentApi = s(Te); 26488 data = s(Ke); 26489 messages = this.contentApi.messages; 26490 sharedMessages = this.contentApi.sharedMessages; 26491 raceResult = O(this.data.raceResult); 26492 coinImg = O(this.data.coinImg || ""); 26493 awardIconClass(e) { 26494 return e && this.sharedMessages()[e.toLowerCase()] || ""; 26495 } 26496 close() { 26497 this.dialogRef.close(); 26498 } 26499 static ɵfac = function(e) { 26500 return new (e || t)(); 26501 }; 26502 static ɵcmp = I({ 26503 type: t, 26504 selectors: [["cw-slot-races-result-detail"]], 26505 decls: 40, 26506 vars: 19, 26507 consts: [ 26508 [1, "casino-lobby-container-main"], 26509 [1, "casino-race-info-container"], 26510 [1, "race-info-title-container"], 26511 [ 26512 "tabindex", 26513 "0", 26514 "role", 26515 "button", 26516 "aria-label", 26517 "Back", 26518 1, 26519 "theme-left", 26520 "race-info-back", 26521 3, 26522 "click", 26523 "keydown.enter" 26524 ], 26525 [ 26526 1, 26527 "race-info-title", 26528 "race-info-title-left" 26529 ], 26530 [1, "casino-sr-result-wraper"], 26531 [1, "sr-results-list"], 26532 [1, "result-list-container"], 26533 [1, "list-titles"], 26534 [1, "list-elements"], 26535 [ 26536 1, 26537 "cw-slot-races-icon", 26538 3, 26539 "gameVariantList", 26540 "isClickable" 26541 ], 26542 [ 26543 1, 26544 "sr-prize-icon", 26545 3, 26546 "ngClass" 26547 ], 26548 [1, "sr-card-total-prize-value"], 26549 [1, "srp-coin-reward"], 26550 [ 26551 1, 26552 "srp-img", 26553 3, 26554 "innerHTML" 26555 ], 26556 [ 26557 3, 26558 "resultsHistory", 26559 "coinImg" 26560 ], 26561 [1, "sr-back-to-results"], 26562 [ 26563 "type", 26564 "button", 26565 1, 26566 "show-result-btn", 26567 "btn", 26568 "btn-primary", 26569 3, 26570 "click" 26571 ], 26572 [1, "theme-plus"], 26573 [1, "sr-card-total-coin"], 26574 [ 26575 "alt", 26576 "Coin Image", 26577 1, 26578 "coin-img", 26579 3, 26580 "src" 26581 ] 26582 ], 26583 template: function(e, n) { 26584 if (e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div", 2)(3, "span", 3), S("click", function() { 26585 return n.close(); 26586 })("keydown.enter", function() { 26587 return n.close(); 26588 }), d(), l(4, "span", 4), C(5), d()(), Et(6), l(7, "div", 5)(8, "div", 6)(9, "div", 7)(10, "ul", 8)(11, "li"), C(12), d(), l(13, "li"), C(14), d(), l(15, "li"), C(16), d(), l(17, "li"), C(18), d(), l(19, "li"), C(20), d()(), l(21, "ul", 9)(22, "li"), b(23, "cw-slot-races-icon", 10), d(), l(24, "li"), C(25), d(), l(26, "li"), b(27, "i", 11), l(28, "span", 12), C(29), f(30, hT, 6, 3, "span", 13), d()(), l(31, "li"), f(32, fT, 1, 1, "div", 14), C(33), d(), l(34, "li"), C(35), d()()()(), b(36, "cw-slot-races-leaderboard", 15), l(37, "div", 16)(38, "button", 17), S("click", function() { 26589 return n.close(); 26590 }), C(39), d()()()()()), e & 2) { 26591 a(5), x(n.messages().InfoRaceTitle || "Info race"), a(); 26592 let i = Fe(n.raceResult()); 26593 a(6), x(n.messages().Game || "Game"), a(2), x(n.messages().Date || "Date"), a(2), x(n.messages().Prize || "Prize"), a(2), x(n.messages().YourPlace || "Your Place"), a(2), x(n.messages().Points || "Points"), a(3), p("gameVariantList", i.gameVariantList)("isClickable", !1), a(2), x(i.dateStr), a(2), p("ngClass", n.awardIconClass(i.awardType)), a(2), E(" ", i.prize || "--", " "), a(), h(i.isDisplayCoin && n.coinImg() ? 30 : -1), a(2), h(i.prizeIcon ? 32 : -1), a(), E(" ", i.rank, " "), a(2), x(i.points), a(), p("resultsHistory", i)("coinImg", n.c
26593oinImg()), a(3), E(" ", n.messages().BackToResults || "Back to results", " "); 26594 } 26595 }, 26596 dependencies: [ 26597 Fi, 26598 Gc, 26599 At 26600 ], 26601 styles: ["[_nghost-%COMP%]{display:block} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container, .cdk-overlay-container .sr-results-dialog mat-dialog-container, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container{max-width:100%} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container .mdc-dialog__surface{overflow-x:hidden} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:5px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-track{border-radius:10px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px var(--%NS%sr-scrollbar-thumb, #c1c1c1)} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface{scrollbar-width:none} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:0}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%]{position:relative;display:flex;align-items:center;justify-content:center;height:3.4375rem;margin:0;padding:0 1.25rem;text-align:center;background-color:var(--%NS%sr-dialog-header-bg, #000)}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-title[_ngcontent-%COMP%]{display:inline-block;font-size:var(--%NS%semantic-typography-title-lg-font-size);font-weight:400;line-height:3.4375rem;letter-spacing:unset;color:#fff}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-title[_ngcontent-%COMP%]:before{height:unset}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-close[_ngcontent-%COMP%]{position:absolute;right:.9375rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#fff;cursor:pointer}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%]{justify-content:flex-start;padding-left:2.75rem}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-back[_ngcontent-%COMP%]{position:absolute;left:.9375rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;font-size:1.25rem;color:#fff;cursor:pointer}.casino-race-info-container[_ngcontent-%COMP%] .race-info-title-container[_ngcontent-%COMP%] .race-info-title-left[_ngcontent-%COMP%]{text-align:left}.casino-race-info-container[_ngcontent-%COMP%] .list-titles[_ngcontent-%COMP%]{background-color:var(--%NS%sr-results-header-bg);color:var(--%NS%sr-results-header-text)}.result-list-container[_ngcontent-%COMP%]{overflow-x:auto}.list-titles[_ngcontent-%COMP%], .list-elements[_ngcontent-%COMP%]{display:flex;list-style:none;margin:0;padding:.625rem 0;align-items:center}.list-titles[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .list-elements[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{flex:1;font-size:var(--%NS%semantic-typography-body-sm-font-size);text-align:center} .cw-slot-races-icon{width:3rem;height:3rem;display:inline-block}"] 26602 }); 26603 } 26604 return t; 26605 })(), hv = (t, o) => o.slotStartDate + o.gameVariantName, zc = "sr-results-hidden", fv = 864e5, vv = (() => { 26606 class t { 26607 dialogRef = s(Ye); 26608 slotRacesService = s(an); 26609 contentApi = s(Te); 26610 configProviderService = s(V); 26611 dialog = s(Bt); 26612 destroyRef = s(q); 26613 currencyPipe = s(St); 26614 data = s(Ke); 26615 coinImg = O(this.data.coinImg || ""); 26616 sharedMessages = this.contentApi.sharedMessages; 26617 messages = this.contentApi.messages; 26618 ctaClass = ua; 26619 results = O([]); 26620 showNoResults = O(!1); 26621 resultsErrorMsg = O(""); 26622 initialLoad = O(!0); 26623 option = O("All"); 26624 displayedResults = g(() => { 26625 let e = this.results(), n = this.messages().Wins || "Wins"; 26626 return this.option() === n ? e.filter((i) => i.isWin) : e; 26627 }); 26628 enableResultsHistoryPage() { 26629 return !!this.configProviderService.provideSlotRacesConfig()?.enableResultsHistoryPage; 26630 } 26631 awardIconClass(e) { 26632 return e && this.sharedMessages()[e.toLowerCase()] || ""; 26633 } 26634 static INITIAL_RESULTS_COUNT = 5; 26635 fromDate = null; 26636 toDate = null; 26637 fromMinDate = null; 26638 fromMaxDate = /* @__PURE__ */ new Date(); 26639 toMinDate = null; 26640 toMaxDate = /* @__PURE__ */ new Date(); 26641 ngOnInit() { 26642 this.loadResults(); 26643 } 26644 closeDialog() { 26645 this.dialogRef.close(); 26646 } 26647 onTabChange(e) { 26648 this.option.set(e); 26649 } 26650 openRaceInfoDialog(e) { 26651 this.dialogRef.addPanelClass(zc); 26652 let n = { 26653 raceResult: e, 26654 trackingLocation: this.data.trackingLocation, 26655 coinImg: this.coinImg() 26656 }; 26657 this.dialog.open(uv, { 26658 data: n, 26659 panelClass: Xo, 26660 width: pa, 26661 maxWidth: fa, 26662 autoFocus: !1 26663 }).afterClosed().pipe(z(this.destroyRef)).subscribe(() => this.dialogRef.removePanelClass(zc)); 26664 } 26665 fromChangeDate(e) { 26666 this.fromDate = e.value, this.fromDate && (this.toMinDate = this.fromDate); 26667 } 26668 toChangeDate(e) { 26669 this.toDate = e.value, this.toDate && (this.fromMaxDate = this.toDate); 26670 } 26671 showResults() { 26672 this.initialLoad.set(!1), this.loadResults(); 26673 } 26674 maxResultsDays() { 26675 return this.configProviderService.provideSlotRacesConfig()?.resultsForNoOfDays ?? 1 / 0; 26676 } 26677 loadResults() { 26678 let e = this.initialLoad(); 26679 if (this.fromDate && this.toDate) { 26680 let r = Math.round((this.toDate.getTime() - this.fromDate.getTime()) / fv), u = this.maxResultsDays(); 26681 if (r > u) { 26682 this.results.set([]), this.resultsErrorMsg.set((this.messages().ResultsNotMoreThan || "Results cannot be requested for more than {noOfDays} days").replace(Vn.NO_OF_DAYS, String(u))), this.showNoResults.set(!0); 26683 return; 26684 } 26685 } 26686 let n = this.toDate ? this.toDate.toISOString() : void 0, i = this.fromDate ? this.fromDate.toISOString() : void 0; 26687 this.slotRacesService.getResultsHistory(n, i).pipe(z(this.destroyRef)).subscribe({ 26688 next: (r) => { 26689 if (r?.length) { 26690 let u = r.map((v) => G(G({}, v), Yk(v.configMaps, this.currencyPipe))); 26691 this.results.set(e ? u.slice(0, t.INITIAL_RESULTS_COUNT) : u), this.showNoResults.set(!1); 26692 } else this.results.set([]), this.showNoResults.set(!0); 26693 }, 26694 error: (r) => { 26695 this.resultsErrorMsg.set(this.slotRacesService.getErrorMessage(r.errorCode)), this.results.set([]), this.showNoResults.set(!0); 26696 } 26697 }); 26698 } 26699 static ɵfac = function(e) { 26700 return new (e || t)(); 26701 }; 26702 static ɵcmp = I({ 26703 type: t, 26704 selectors: [["cw-slot-races-results"]], 26705 features: [ce([y1(), St])], 26706 decls: 29, 26707 vars: 24, 26708 consts: [ 26709 ["pickerFrom", ""], 26710 ["pickerTo", ""], 26711 [1, "casino-lobby-container-main"], 26712 [1, "result-title"], 26713 [ 26714 "tabindex", 26715 "0", 26716 "role", 26717 "button", 26718 "aria-label", 26719 "Close", 26720 1, 26721 "cls-btn", 26722 "theme-ex", 26723 3, 26724 "click", 26725 "keydown.enter" 26726 ], 26727 [1, "casino-sr-result-wraper"], 26728 [1, "sr-winners-container"], 26729 [1, "casino-winners-title"], 26730 [1, "casino-inner-container"], 26731 [1, "results-btn"], 26732 [ 26733 3, 26734 "activeOptionChange", 26735 "fullWidth", 26736 "activeOption" 26737 ], 26738 [ 26739 3, 26740 "title", 26741 "name" 26742 ], 26743 [1, "select-date"], 26744 [1, "from"], 26745 [ 26746 "matInput", 26747 "", 26748 "readonly", 26749 "", 26750 3, 26751 "dateChange", 26752 "click", 26753 "min", 26754 "max", 26755 "matDatepicker", 26756 "placeholder" 26757 ], 26758 [ 26759 "matSuffix", 26760 "", 26761 3, 26762 "for" 26763 ], 26764 [ 26765 "panelClass", 26766 "casino-datepicker", 26767 3, 26768 "disabled" 26769 ], 26770 [1, "to"], 26771 [ 26772 3, 26773 "ctaClick", 26774 "ctaText", 26775 "csDecoratorClass" 26776 ], 26777 [ 26778 1, 26779 "sr-results-list", 26780 3, 26781 "result-history-enabled" 26782 ], 26783 [1, "no-result-found"], 26784 [1, "sr-results-list"], 26785 [1, "result-list-title"], 26786 [1, "result-list-container"], 26787 [1, "list-titles"], 26788 ["aria-hidden", "true"], 26789 [1, "list-elements"], 26790 [ 26791 1, 26792 "cw-slot-races-icon", 26793 3, 26794 "gameVariantList", 26795 "isClickable" 26796 ], 26797 [ 26798 1, 26799 "sr-prize-icon", 26800 3, 26801 "ngClass" 26802 ], 26803 [1, "sr-card-total-prize-value"], 26804 [1, "srp-coin-reward"], 26805 [ 26806 1, 26807 "srp-img", 26808 3, 26809 "innerHTML" 26810 ], 26811 [ 26812 "tabindex", 26813 "0", 26814 "role", 26815 "button", 26816 1, 26817 "theme-right", 26818 "result-detail-arrow" 26819 ], 26820 [1, "theme-plus"], 26821 [1, "sr-card-total-coin"], 26822 [ 26823 "alt", 26824 "Coin Image", 26825 1, 26826 "coin-img", 26827 3, 26828 "src" 26829 ], 26830 [ 26831 "tabindex", 26832 "0", 26833 "role", 26834 "button", 26835 1, 26836 "theme-right", 26837 "result-detail-arrow", 26838 3, 26839 "click", 26840 "keydown.enter" 26841 ] 26842 ], 26843 template: function(e, n) { 26844 if (e & 1) { 26845 let i = _(); 26846 l(0, "div", 2)(1, "div", 3), C(2), l(3, "div", 4), S("click", function() { 26847 return n.closeDialog(); 26848 })("keydown.enter", function() { 26849 return n.closeDialog(); 26850 }), d()(), l(4, "div", 5)(5, "div", 6)(6, "span", 7), C(7), d(), l(8, "div", 8)(9, "div", 9)(10, "ds-segmented-control",
2685010), S("activeOptionChange", function(r) { 26851 return n.onTabChange(r); 26852 }), b(11, "ds-segmented-option", 11)(12, "ds-segmented-option", 11), d()(), l(13, "div", 12)(14, "div", 13)(15, "mat-form-field")(16, "input", 14), S("dateChange", function(r) { 26853 return n.fromChangeDate(r); 26854 })("click", function() { 26855 return y(i), w(ee(19).open()); 26856 }), d(), b(17, "mat-datepicker-toggle", 15)(18, "mat-datepicker", 16, 0), d()(), l(20, "div", 17)(21, "mat-form-field")(22, "input", 14), S("dateChange", function(r) { 26857 return n.toChangeDate(r); 26858 })("click", function() { 26859 return y(i), w(ee(25).open()); 26860 }), d(), b(23, "mat-datepicker-toggle", 15)(24, "mat-datepicker", 16, 1), d()()(), l(26, "cw-slotrace-cta", 18), S("ctaClick", function() { 26861 return n.showResults(); 26862 }), d()()(), f(27, MT, 17, 9, "div", 19), f(28, OT, 2, 1, "div", 20), d()(); 26863 } 26864 if (e & 2) { 26865 let i = ee(19), r = ee(25); 26866 a(2), E(" ", n.messages().MyResults || "My Results", " "), a(5), x(n.messages().Searchforresults || "Search for results"), a(3), p("fullWidth", !0)("activeOption", n.option()), a(), p("title", n.messages().All || "All")("name", n.messages().All || "All"), a(), p("title", n.messages().Wins || "Wins")("name", n.messages().Wins || "Wins"), a(4), p("min", n.fromMinDate)("max", n.fromMaxDate)("matDatepicker", i)("placeholder", n.messages().From || "From"), a(), p("for", i), a(), p("disabled", !1), a(4), p("min", n.toMinDate)("max", n.toMaxDate)("matDatepicker", r)("placeholder", n.messages().To || "To"), a(), p("for", r), a(), p("disabled", !1), a(2), p("ctaText", n.messages().ShowResults || "Show Results")("csDecoratorClass", n.ctaClass.SHOW_RESULTS), a(), h(n.results().length > 0 ? 27 : -1), a(), h(n.showNoResults() ? 28 : -1); 26867 } 26868 }, 26869 dependencies: [ 26870 E1, 26871 L1, 26872 G1, 26873 A1, 26874 M1, 26875 _1, 26876 O1, 26877 I1, 26878 x1, 26879 $n, 26880 Fi, 26881 Hl, 26882 ql, 26883 Kl, 26884 At 26885 ], 26886 styles: ["[_nghost-%COMP%]{display:block} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container, .cdk-overlay-container .sr-results-dialog mat-dialog-container, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container{max-width:100%} .cdk-overlay-container .casino-sr-mat-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog mat-dialog-container .mdc-dialog__surface, .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-container .mdc-dialog__surface{overflow-x:hidden} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:5px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-track{border-radius:10px} .cdk-overlay-container .sr-results-dialog .mat-mdc-dialog-surface::-webkit-scrollbar-thumb{border-radius:10px;box-shadow:inset 0 0 6px var(--%NS%sr-scrollbar-thumb, #c1c1c1)} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface{scrollbar-width:none} .cdk-overlay-container .casino-sr-mat-dialog .mat-mdc-dialog-surface::-webkit-scrollbar{width:0}.result-title[_ngcontent-%COMP%]{position:relative;text-align:center;font-size:var(--%NS%semantic-typography-title-lg-font-size);font-weight:700;height:3.5rem;line-height:3.5rem;padding:0}.cls-btn[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;right:.9375rem;display:flex;justify-content:center;align-items:center;background:none;border:none;cursor:pointer;font-size:1.25rem;color:inherit}.casino-winners-title[_ngcontent-%COMP%]{display:block;font-size:var(--%NS%semantic-typography-label-lg-font-size);font-weight:700;margin-bottom:.625rem}.select-date[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:.625rem;margin-bottom:.9375rem}.result-list-container[_ngcontent-%COMP%]{overflow-x:auto}.list-titles[_ngcontent-%COMP%], .list-elements[_ngcontent-%COMP%]{display:flex;list-style:none;margin:0;padding:.625rem 0;border-bottom:1px solid #e1e1e1;align-items:center}.list-titles[_ngcontent-%COMP%] li[_ngcontent-%COMP%], .list-elements[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{flex:1;font-size:var(--%NS%semantic-typography-body-sm-font-size);text-align:center}.list-titles[_ngcontent-%COMP%]{font-weight:700;background-color:var(--%NS%sr-table-header-bg, #0d0430);color:#fff;border-radius:var(--%NS%semantic-radius-l2-card) var(--%NS%semantic-radius-l2-card) 0 0}.list-elements[_ngcontent-%COMP%]:nth-child(odd){background-color:var(--%NS%sr-table-row-odd, #f5f5f5)}.no-result-found[_ngcontent-%COMP%]{text-align:center;margin:4% auto;font-size:var(--%NS%semantic-typography-body-md-font-size);
26886color:#777679} .cw-slot-races-icon{width:3rem;height:3rem;display:inline-block} mat-datepicker-content{height:345px} .casino-datepicker{z-index:1050}.result-history-enabled[_ngcontent-%COMP%] .list-titles[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child, .result-history-enabled[_ngcontent-%COMP%] .list-elements[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:last-child{flex:0 0 1.75rem}.result-history-enabled[_ngcontent-%COMP%] .list-elements[_ngcontent-%COMP%] .result-detail-arrow[_ngcontent-%COMP%]{cursor:pointer} .cdk-overlay-pane.sr-results-hidden{display:none}"] 26887 }); 26888 } 26889 return t; 26890 })(), bv = (() => { 26891 class t { 26892 currencyPipe = s(St); 26893 tracking = s(Ln); 26894 contentApi = s(Te); 26895 sharedListMessages = this.contentApi.sharedMessages; 26896 race = m.required(); 26897 layoutId = m(""); 26898 trackingLocation = m(""); 26899 coinImg = m(""); 26900 messages = m({}); 26901 first = m(!1); 26902 last = m(!1); 26903 toggleFirstCardOn = m(!1); 26904 openRaceInfo = j(); 26905 openPickGameOverlay = j(); 26906 showRaceCard = ni({ 26907 source: () => ({ 26908 race: this.race(), 26909 toggleFirstCardOn: this.toggleFirstCardOn(), 26910 first: this.first() 26911 }), 26912 computation: ({ toggleFirstCardOn: e, first: n }) => e && n 26913 }); 26914 title = g(() => { 26915 let e = this.race(); 26916 return e?.content?.promotion?.promoTitle || e?.content?.promotion?.promoName || e?.gameId || ""; 26917 }); 26918 prizeAmount = g(() => ng(this.race(), this.currencyPipe)); 26919 showCoinIcon = g(() => Er(this.race())); 26920 showSupplementaryCoin = g(() => tg(this.race())); 26921 trophyIcon = g(() => { 26922 let e = this.sharedListMessages(); 26923 return Gr(this.race(), e) || e.trophyIcon || "theme-slots-race-cash"; 26924 }); 26925 toggleRaceCardVisibility() { 26926 let e = this.race(), n = e?.gameId ?? "", i = e?.isOptinWithCoins; 26927 this.showRaceCard() ? this.tracking.track("Collapse", n, this.trackingLocation(), i ? "with coin icon" : "User clicked on Collapse to hide the slot race details") : this.tracking.track("Expand", n, this.trackingLocation(), i ? "with coin icon" : "User clicked on Expand to see the slot race details"), this.showRaceCard.update((r) => !r); 26928 } 26929 static ɵfac = function(e) { 26930 return new (e || t)(); 26931 }; 26932 static ɵcmp = I({ 26933 type: t, 26934 selectors: [["cw-slot-races-item"]], 26935 inputs: { 26936 race: [1, "race"], 26937 layoutId: [1, "layoutId"], 26938 trackingLocation: [1, "trackingLocation"], 26939 coinImg: [1, "coinImg"], 26940 messages: [1, "messages"], 26941 first: [1, "first"], 26942 last: [1, "last"], 26943 toggleFirstCardOn: [1, "toggleFirstCardOn"] 26944 }, 26945 outputs: { 26946 openRaceInfo: "openRaceInfo", 26947 openPickGameOverlay: "openPickGameOverlay" 26948 }, 26949 features: [ce([St])], 26950 decls: 2, 26951 vars: 2, 26952 consts: [ 26953 [ 26954 1, 26955 "slot-list", 26956 3, 26957 "slot-list-last" 26958 ], 26959 [1, "slot-list"], 26960 [ 26961 1, 26962 "list-item", 26963 "time" 26964 ], 26965 [ 26966 1, 26967 "list-item", 26968 "red-dot" 26969 ], 26970 [ 26971 1, 26972 "list-item", 26973 "game-name" 26974 ], 26975 [1, "optin-with-coin"], 26976 [ 26977 1, 26978 "list-item", 26979 "prize-amount" 26980 ], 26981 [ 26982 1, 26983 "list-item", 26984 "slot-trophy" 26985 ], 26986 [1, "sr-card-total-coin"], 26987 [ 26988 "tabindex", 26989 "0", 26990 "role", 26991 "button", 26992 1, 26993 "list-item", 26994 "theme-down", 26995 "plus", 26996 3, 26997 "click", 26998 "keydown.enter" 26999 ], 27000 [ 27001 "aria-hidden", 27002 "true", 27003 3, 27004 "name" 27005 ], 27006 [ 27007 "alt", 27008 "Coin Image", 27009 1, 27010 "coin-img", 27011 3, 27012 "src" 27013 ], 27014 [1, "theme-plus"], 27015 [1, "casino-wrapper-sr-expand"], 27016 [ 27017 3, 27018 "hideCard", 27019 "race", 27020 "trackingLocation", 27021 "layoutId", 27022 "coinImg", 27023 "showCardMenu", 27024 "showRaceInfo", 27025 "first", 27026 "last" 27027 ] 27028 ], 27029 template: function(e, n) { 27030 e & 1 && (f(0, TT, 13, 15, "div", 0), f(1, NT, 3, 8, "div")), e & 2 && (h(n.showRaceCard() ? -1 : 0), a(), h(n.showRaceCard() ? 1 : -1)); 27031 }, 27032 dependencies: [fo, Ee], 27033 styles: ["[_nghost-%COMP%]{display:block}.slot-list[_ngcontent-%COMP%]{display:flex;height:3.125rem;line-height:3.125rem;border-top:.0625rem solid #e1e1e1;padding:0 0 0 .625rem;align-items:center}.slot-list.slot-list-last[_ngcontent-%COMP%]{border-bottom:.0625rem solid #e1e1e1}.slot-list[_ngcontent-%COMP%] .sr-card-total-coin[_ngcontent-%COMP%]{display:flex}.slot-list[_ngcontent-%COMP%] .coin-img[_ngcontent-%COMP%]{height:1.125rem;margin:0 .3125rem}.list-item.time[_ngcontent-%COMP%]{text-align:left;font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:700;min-width:7%}
27033.list-item.game-name[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);line-height:.9375rem;flex:1;overflow:hidden;text-overflow:ellipsis}.list-item.game-name[_ngcontent-%COMP%] .optin-with-coin[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-md);background:#ffcd00;border-radius:var(--%NS%semantic-radius-l2-pill);font-size:var(--%NS%semantic-typography-label-xs-font-size);min-height:.9375rem;display:flex;width:fit-content;font-weight:600}.list-item.prize-amount[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-md-font-size);font-weight:700;text-align:right;padding-right:.3125rem}.list-item.slot-trophy[_ngcontent-%COMP%]{width:29px;height:29px;color:#fff;display:flex;align-items:center;justify-content:center}.list-item.theme-down.plus[_ngcontent-%COMP%]{text-align:center;font-weight:700;cursor:pointer;display:flex;justify-content:flex-end;padding-right:.9375rem;font-size:1rem}.red-dot[_ngcontent-%COMP%]{min-width:.6875rem;height:.6875rem;background:var(--%NS%semantic-color-primary-base);border-radius:50%;position:relative;margin:0 var(--%NS%semantic-spacing-inline-md)}.red-dot[_ngcontent-%COMP%]:after{content:\"\";height:1.375rem;width:.0625rem;background:var(--%NS%semantic-color-primary-base);position:absolute;top:.5rem;left:.3125rem}.red-dot[_ngcontent-%COMP%]:before{content:\"\";height:1.375rem;width:.0625rem;background:var(--%NS%semantic-color-primary-base);position:absolute;bottom:.625rem;left:.3125rem}.red-dot-last[_ngcontent-%COMP%]:after{display:none}.red-dot-first[_ngcontent-%COMP%]:before{display:none}.casino-wrapper-sr-expand[_ngcontent-%COMP%]{max-width:920px;margin:0 auto}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card{display:block}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget{width:100%;margin:0}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .theme-info{top:3.75rem;right:1.25rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top{height:111px;padding:0}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize{margin:0 var(--%NS%semantic-spacing-inline-md) var(--%NS%semantic-spacing-stack-md) 1.5625rem;width:80%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .total-prize{font-size:var(--%NS%semantic-typography-label-md-font-size);width:5.0625rem;top:-4px;position:relative}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-total-prize-box .sr-card-total-prize-value{width:auto;font-size:var(--%NS%semantic-typography-headline-sm-font-size)}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box{margin-top:.625rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section{width:24%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .ends{font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section .sr-card-counter{font-size:var(--%NS%semantic-typography-title-lg-font-size);display:inline;margin-left:.375rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section{width:40%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .min-bet{font-size:var(--%NS%semantic-typography-label-md-font-size)}
27033.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section .src-card-min-bet{display:inline;margin-left:.375rem;font-size:var(--%NS%semantic-typography-title-lg-font-size)}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box.sr-card-counter-bet-box-max .time-section{width:34%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon{border-radius:0;margin-left:.625rem;height:6.125rem;width:100%;max-width:6.125rem;margin-top:0}@media screen and (max-width:767px){.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon{height:5.25rem;max-width:5.25rem}}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img{width:6.125rem;height:6.125rem;border-radius:0}@media screen and (max-width:767px){.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img{width:5.25rem;height:5.25rem}}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom{height:3.5rem;padding:0 1.25rem;margin-top:0;align-items:center}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-player-count, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-race-duration, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-spins-count, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .cs-sr-players, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .duration, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-limit{display:inline;font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-player-count, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-race-duration, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-spins-count{font-size:var(--%NS%semantic-typography-title-md-font-size);margin-left:.375rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .pleyer-count{width:15%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .time-sec{width:16%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-section{width:24%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section{width:45%;text-align:right;margin:0}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn.btn-primary.notification-btn{display:flex;align-items:center;height:41px;margin-left:auto}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom.optin-limit .pleyer-count{min-width:10rem}@media(min-width:320px){.list-item.time[_ngcontent-%COMP%]{min-width:13%}.list-item.game-name[_ngcontent-%COMP%]{width:47%}}@media(min-width:375px){.list-item.game-name[_ngcontent-%COMP%]{width:49%}}@media(min-width:480px){.list-item.time[_ngcontent-%COMP%]{min-width:9%}
27033.list-item.game-name[_ngcontent-%COMP%]{width:60%}}@media(min-width:1024px){.list-item.time[_ngcontent-%COMP%]{min-width:6.8%}.casino-wrapper-sr-expand[_ngcontent-%COMP%]{max-width:920px}}@media(max-width:768px){.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .time-section, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section{width:27%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .pleyer-count{width:18%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .time-sec{width:24%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-section{width:24%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section{width:34%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom.optin-limit .pleyer-count{min-width:6.25rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom.optin-limit .sr-card-race-duration, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom.optin-limit .sr-card-spins-count, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom.optin-limit .sr-card-player-count{font-size:var(--%NS%semantic-typography-label-md-font-size)}}@media(max-width:560px){.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-player-count, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-race-duration, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .sr-card-spins-count{display:block;margin-left:0}}@media(max-width:460px){.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box{margin-top:0}}@media(max-width:420px){.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top{height:104px}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-game-icon img{border-radius:.1875rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box{margin-top:-.3125rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-top .sr-card-total-prize .sr-card-counter-bet-box .bet-section{width:50%}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom{height:4.3125rem;padding:0 .625rem}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .cs-sr-players, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .duration, .casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .spin-limit{font-size:.625rem;display:block}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section{font-size:var(--%NS%semantic-typography-label-md-font-size)}.casino-wrapper-sr-expand[_ngcontent-%COMP%] cw-slot-race-card .casino-sr-card-widget .sr-card-container-bottom .btn-section .btn.btn-primary.sr-playbtn{width:auto}}@media(min-width:1366px){.list-item.time[_ngcontent-%COMP%]{min-width:6.8%}
27033.list-item.game-name[_ngcontent-%COMP%]{width:70%}.list-item.prize-amount[_ngcontent-%COMP%]{width:14%}}"] 27034 }); 27035 } 27036 return t; 27037 })(), Cv = /* @__PURE__ */ new Set([ 27038 va.FREE_TECH_OPTIN_LIMIT_EXCEED, 27039 va.SLOT_RACE_EDIT, 27040 va.PLAYER_NOTIFICATION_STARTED 27041 ]), yv = (() => { 27042 class t { 27043 slotRacesService = s(an); 27044 contentApi = s(Te); 27045 lifecycleService = s(wn); 27046 userService = s(Je); 27047 platform = s(X); 27048 rtmsService = s(GC); 27049 dialogService = s(Bi); 27050 destroyRef = s(q); 27051 productService = s(ea); 27052 configProviderService = s(V); 27053 deviceService = s(J); 27054 tracking = s(Ln); 27055 router = s(Rt); 27056 route = s(Dt); 27057 layoutId = m(""); 27058 trackingLocation = m(""); 27059 RACE_SUB_TYPE = pt; 27060 enableCoinEconomy() { 27061 return !!this.configProviderService.provideSlotRacesConfig()?.enableCoinEconomy; 27062 } 27063 isNonTouch = !this.deviceService.isTouch; 27064 content = this.contentApi.contentSignal; 27065 messages = this.contentApi.messages; 27066 ctaClass = ua; 27067 coinImg = this.contentApi.coinImg; 27068 entryDetails = this.contentApi.entryDetails; 27069 entryDetailsKeys = g(() => Object.entries(this.entryDetails()).filter(([, e]) => !!e?.trim()).map(([e]) => e)); 27070 auth = O(!1); 27071 selectedOption = O("ALL"); 27072 currentProduct = O(void 0); 27073 urlFilter = Q(this.route.queryParams.pipe(Me((e) => e.filter ?? "")), { initialValue: "" }); 27074 filterRestored = !1; 27075 constructor() { 27076 Z(() => { 27077 let e = this.entryDetails(), n = this.urlFilter(); 27078 this.filterRestored || Object.keys(e).length === 0 || (this.filterRestored = !0, this.selectedOption.set(this.resolveFilterKey(n, e))); 27079 }); 27080 } 27081 liveRaces = Q(this.lifecycleService.liveRacesData.pipe(Me((e) => e.liveNow)), { initialValue: [] }); 27082 upcomingToday = Q(this.lifecycleService.upcomingRacesData.pipe(Me((e) => e.upcomingToday)), { initialValue: [] }); 27083 upcomingTomorrow = Q(this.lifecycleService.upcomingRacesData.pipe(Me((e) => e.upcomingTomorrow)), { initialValue: [] }); 27084 liveRacesList = g(() => this.filterRaces(this.liveRaces())); 27085 upcomingTodayList = g(() => this.filterRaces(this.upcomingToday())); 27086 upcomingTomorrowList = g(() => this.filterRaces(this.upcomingTomorrow())); 27087 expandFirstUpcomingToday = g(() => this.liveRacesList().length === 0 && this.upcomingTodayList().length > 0); 27088 expandFirstUpcomingTomorrow = g(() => this.liveRacesList().length === 0 && this.upcomingTodayList().length === 0 && this.upcomingTomorrowList().length > 0); 27089 ngOnInit() { 27090 this.auth.set(this.userService.isAuthenticated), this.currentProduct.set(this.productService.current.name), this.platform.isBrowser && this.slotRacesService.getRaces(), this.rtmsService.messages.pipe(We((e) => Cv.has(e.type)), z(this.destroyRef)).subscribe((e) => { 27091 e.type === va.SLOT_RACE_EDIT && this.userService.isAuthenticated && this.slotRacesService.getUpcomingRaces(); 27092 }); 27093 } 27094 onFilterSelect(e) { 27095 let n = e || "ALL"; 27096 this.selectedOption.set(n); 27097 let i = (this.entryDetailsKeys().indexOf(n) + 1).toString(), r = this.entryDetails()[n] ?? n; 27098 this.tracking.track("click", i, this.trackingLocation(), r, !0), this.syncFilterToUrl(n); 27099 } 27100 syncFilterToUrl(e) { 27101 if (e.toUpperCase() === "ALL") { 27102 this.router.navigate([], { 27103 relativeTo: this.route, 27104 queryParams: { [q1]: null }, 27105 queryParamsHandling: "merge" 27106 }); 27107 return; 27108 } 27109 let n = this.entryDetails()[e]; 27110 n && this.router.navigate([], { 27111 relativeTo: this.route, 27112 queryParams: { filter: n.replace(/ /g, "_") }, 27113 queryParamsHandling: "merge" 27114 }); 27115 } 27116 resolveFilterKey(e, n) { 27117 if (!e) return "ALL"; 27118 let i = e.replace(/_/g, " "); 27119 return Object.keys(n).find((r) => n[r] === i) ?? "ALL"; 27120 } 27121 openRaceInfoDialog(e) { 27122 this.dialogService.openRaceInfoDialog(this.dialogData(e, { enableOptin: !0 }), Rc, () => this.openPickGameDialog(e)); 27123 } 27124 openPickGameDialog(e) { 27125 this.dialogService.openPickGameDialog(this.dialogData(e, { cardComponent: fo }), Tc); 27126 } 27127 openFullRulesDialog() { 27128 this.dialogService.openFullRulesDialog({ 27129 coinImg: this.coinImg(), 27130 trackingLocation: this.trackingLocation(), 27131 showTitleHeader: !0 27132 }, Ac); 27133 } 27134 showResults() { 27135 this.tracking.track("See your Results - CTA Clicked", "My Results Ovelay", this.trackingLocation(), "User Clicked on see reults CTA to check the results"), this.dialogService.openResultsDialog({ 27136 trackingLocation: this.trackingLocation(), 27137 coinImg: this.coinImg() 27138 }, vv); 27139 } 27140 dialogData(e, n) { 27141 return G({ 27142 race: e, 27143 layoutId: this.layoutId(), 27144 trackingLocation: this.trackingLocation(), 27145 coinImg: this.coinImg() 27146 }, n); 27147 } 27148 raceTrackFn(e) { 27149 return `${e.promoId}_${e.slotUniqueId}`; 27150 } 27151 filterRaces(e) { 27152 return Oa(e, this.selectedOption(), this.enableCoinEconomy()); 27153 } 27154 static ɵfac = function(e) { 27155 return new (e || t)(); 27156 }; 27157 static ɵcmp = I({ 27158 type: t, 27159 selectors: [["cw-slot-races"]], 27160 inputs: { 27161 layoutId: [1, "layoutId"], 27162 trackingLocation: [1, "trackingLocation"] 27163 }, 27164 features: [ce([Bi])], 27165 decls: 16, 27166 vars: 9, 27167 consts: [ 27168 [1, "casino-lobby-container-main"], 27169 [ 27170 1, 27171 "casino-sr-sub-wrapper", 27172 "new-slotraces-styles" 27173 ], 27174 [1, "tabs"], 27175 [3, "inline"], 27176 [1, "show-more"], 27177 [ 27178 "tabindex", 27179 "0", 27180 "role", 27181 "button", 27182 1, 27183 "showmore-text", 27184 3, 27185 "click", 27186 "keydown.enter" 27187 ], 27188 [ 27189 1, 27190 "coineconmy-filter", 27191 3, 27192 "coineconmy-filter-non-touch" 27193 ], 27194 [3, "scope"], 27195 [ 27196 3, 27197 "path", 27198 "product" 27199 ], 27200 [1, "today-section"], 27201 [1, "casino-show-result-btn"], 27202 [1, "coineconmy-filter"], 27203 [ 27204 "tabindex", 27205 "0", 27206 3, 27207 "active" 27208 ], 27209 [ 27210 "tabindex", 27211 "0", 27212 3, 27213 "click", 27214 "keydown.enter" 27215 ], 27216 [1, "casino-race-list-header"], 27217 [ 27218 1, 27219 "theme-icon", 27220 "theme-slots-race-headline" 27221 ], 27222 [1, "race-list-title"], 27223 [ 27224 3, 27225 "layoutId", 27226 "trackingLocation", 27227 "showLeaderboard", 27228 "showPlaceholderCard", 27229 "selectedOption" 27230 ], 27231 [ 27232 1, 27233 "theme-icon", 27234 "theme-slots-race-coming-up-today" 27235 ], 27236 [3, "play-tech"], 27237 [ 27238 3, 27239 "openRaceInfo", 27240 "openPickGameOverlay", 27241 "race", 27242 "layoutId", 27243 "trackingLocation", 27244 "coinImg", 27245 "messages", 27246 "first", 27247 "last", 27248 "toggleFirstCardOn" 27249 ], 27250 [ 27251 1, 27252 "theme-icon", 27253 "theme-slots-race-coming-tomorrow" 27254 ], 27255 [ 27256 3, 27257 "ctaClick", 27258 "ctaText", 27259 "csDecoratorClass" 27260 ] 27261 ], 27262 template: function(e, n) { 27263 e & 1 && (l(0, "div", 0)(1, "div", 1)(2, "div")(3, "div", 2), b(4, "cw-slot-races-rules", 3), d(), l(5, "div", 4)(6, "a", 5), S("click", function() { 27264 return n.openFullRulesDialog(); 27265 })("keydown.enter", function() { 27266 return n.openFullRulesDialog(); 27267 }), C(7), d()(), f(8, GT, 4, 2, "div", 6), b(9, "vn-message-panel", 7), f(10, ET, 5, 6), f(11, AT, 1, 2, "vn-page-matrix", 8), l(12, "div", 9), f(13, DT, 6, 1), f(14, BT, 6, 1), d()(), f(15, FT, 2, 2, "div", 10), d()()), e & 2 && (a(4), p("inline", !0), a(3), x(n.messages().SeeRules || "See full rules and T&C's"), a(), h(n.enableCoinEconomy() && n.entryDetailsKeys().length > 1 ? 8 : -1), a(), p("scope", "subslotraces"), a(), h(n.liveRacesList().length > 0 ? 10 : -1), a(), h(n.liveRacesList().length === 0 && n.upcomingTodayList().length === 0 && n.upcomingTomorrowList().length === 0 ? 11 : -1), a(2), h(n.upcomingTodayList().length > 0 ? 13 : -1), a(), h(n.upcomingTomorrowList().length >
27267 0 ? 14 : -1), a(), h(n.auth() ? 15 : -1)); 27268 }, 27269 dependencies: [ 27270 Dc, 27271 bv, 27272 $n, 27273 Ec, 27274 Jo, 27275 Ko 27276 ], 27277 styles: ["[_nghost-%COMP%]{display:block}.casino-lobby-container-main[_ngcontent-%COMP%]{width:100%}.casino-sr-sub-wrapper[_ngcontent-%COMP%]{max-width:920px;margin:0 auto}.tabs[_ngcontent-%COMP%] .casino-rules-and-tc .mat-expansion-panel-header{display:none}.show-more[_ngcontent-%COMP%]{text-align:center;margin:.625rem 0}.show-more[_ngcontent-%COMP%] .showmore-text[_ngcontent-%COMP%]{font-size:var(--%NS%semantic-typography-label-lg-font-size);color:var(--%NS%semantic-color-primary-base);font-weight:inherit;cursor:pointer;text-decoration:none}.coineconmy-filter[_ngcontent-%COMP%]{display:flex;justify-content:center;margin-top:1.875rem;margin-bottom:var(--%NS%semantic-spacing-stack-md)}.coineconmy-filter[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{display:flex;list-style:none;border:1px solid var(--%NS%sr-filter-active-bg, var(--%NS%semantic-color-primary-base));border-radius:var(--%NS%semantic-radius-l2-pill);padding:var(--%NS%semantic-spacing-container-padding-lg) .3125rem;margin:0;width:100%;max-width:fit-content;overflow-x:auto}.coineconmy-filter[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{margin:0 .1875rem;padding:.3125rem .625rem;font-size:var(--%NS%semantic-typography-label-md-font-size);white-space:nowrap;cursor:pointer}.coineconmy-filter[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li.active[_ngcontent-%COMP%], .coineconmy-filter-non-touch[_ngcontent-%COMP%] ul[_ngcontent-%COMP%] li[_ngcontent-%COMP%]:hover{background:var(--%NS%sr-filter-active-bg, var(--%NS%semantic-color-primary-base));color:var(--%NS%sr-filter-active-text, var(--%NS%semantic-color-on-primary-base));border-radius:var(--%NS%semantic-radius-l2-pill);font-weight:700}@media screen and (max-width:768px){[_nghost-%COMP%] .coineconmy-filter.coineconmy-filter[_ngcontent-%COMP%]{margin:.625rem .3125rem var(--%NS%semantic-spacing-stack-md)}}.casino-race-list-header[_ngcontent-%COMP%]{line-height:3.125rem;display:flex;height:3.125rem;align-items:center}.casino-race-list-header[_ngcontent-%COMP%] .theme-icon[_ngcontent-%COMP%]{font-size:1.875rem;padding:0 .625rem}.casino-race-list-header[_ngcontent-%COMP%] .race-list-title[_ngcontent-%COMP%]{font-weight:500}.casino-show-result-btn[_ngcontent-%COMP%]{text-align:center;margin:0 auto;max-width:351px}.casino-sr-card-widget.no-races[_ngcontent-%COMP%]{text-align:center;padding:1.25rem}@media(min-width:1024px){.casino-sr-sub-wrapper[_ngcontent-%COMP%]{max-width:920px;margin:auto}.casino-race-list-header[_ngcontent-%COMP%]{width:920px;margin:auto}}"] 27278 }); 27279 } 27280 return t; 27281 })(), wv = 56, Pv = "theme-bingo-community-jackpot", Sv = (() => { 27282 class t { 27283 slotRacesService = s(an); 27284 contentApi = s(Te); 27285 casinoManager = s(Ve); 27286 navigation = s(he); 27287 lobbyRouteService = s(ir); 27288 containerService = s(ie); 27289 platform = s(X); 27290 lifecycleService = s(wn); 27291 deviceService = s(J); 27292 unfinishedGamesService = s(_t); 27293 tracking = s(Ln); 27294 containerMetadata = m.required(); 27295 layoutId = m(""); 27296 stickyHeaderTop = wv; 27297 trackingLocation = g(() => this.isSubNavPage() ? K1 : J1); 27298 isMobile = this.deviceService.isMobileWidth; 27299 containerData = Q(this.containerService.container$, { initialValue: null }); 27300 viewAllTarget = g(() => this.containerData()?.viewAllTarget); 27301 hasRaces = Q(this.lifecycleService.liveRacesData.pipe(Me((e) => (e?.liveNow?.length ?? 0) > 0 || (this.lifecycleService.upcomingRacesValue?.upcomingToday?.length ?? 0) > 0)), { initialValue: !1 }); 27302 showHomeContainer = g(() => this.hasRaces()); 27303 effectiveLayoutId = g(() => this.layoutId() || this.casinoManager.getCurrentLobby()); 27304 isSubNavPage = g(() => { 27305 let e = this.viewAllTarget()?.subNavId || "tournaments"; 27306 return this.lobbyRouteService.params().subnavId === e; 27307 }); 27308 containerHeader = g(() => { 27309 let e = this.containerData(); 27310 return { 27311 title: e?.title || this.contentApi.messages().CategoryName || "Tournaments", 27312 subtitle: e?.subtitle, 27313 iconName: e?.iconName || Pv, 27314 headingTextColor: e?.headingTextColor 27315 }; 27316 }); 27317 seeUpcomingText = g(() => this.contentApi.messages().SeeUpcoming || "See upcoming"); 27318 constructor() { 27319 this.unfinishedGamesService.feedUnfinishedGamesData(), Z(() => { 27320 this.containerService.fetchAndSetContainer(this.containerMetadata()); 27321 }), Z(() => { 27322 let e = this.containerData()?.slotRacesContent; 27323 e && this.contentApi.setContent(e); 27324 }), Se(() => { 27325 this.slotRacesService.startTournaments(); 27326 }); 27327 } 27328 ngOnDestroy() { 27329 this.platform.isBrowser && this.slotRacesService.stopLiveSlotPolling(); 27330 } 27331 gotoUpcoming() { 27332 if (!this.platform.isBrowser) return; 27333 this.tracking.track("See upcoming - CTA Clicked", "not applicable", this.containerHeader().title, "User clicked on see upcoming Link"); 27334 let e = this.viewAllTarget() ?? this.fallbackViewAllTarget(); 27335 if (!e) return; 27336 let n = this.navigation.createUrlForSeeAll(e); 27337 n && this.navigation.goTo(n); 27338 } 27339 fallbackViewAllTarget() { 27340 let e = this.navigation.currentLayout(); 27341 return e ? { 27342 layoutId: e, 27343 subNavId: Q1 27344 } : void 0; 27345 } 27346 static ɵfac = function(e) { 27347 return new (e || t)(); 27348 }; 27349 static ɵcmp = I({ 27350 type: t, 27351 selectors: [["cw-container-tournaments"]], 27352 inputs: { 27353 containerMetadata: [1, "containerMetadata"], 27354 layoutId: [1, "layoutId"] 27355 }, 27356 features: [ce([ie])], 27357 decls: 2, 27358 vars: 1, 27359 consts: [ 27360 [ 27361 1, 27362 "sticky-header", 27363 3, 27364 "top" 27365 ], 27366 [ 27367 3, 27368 "layoutId", 27369 "trackingLocation" 27370 ], 27371 [1, "sticky-header"], 27372 [ 27373 "id", 27374 "category-filter", 27375 1, 27376 "casino-game-tile-wrapper", 27377 "casino-lobby-width" 27378 ], 27379 [ 27380 "classes", 27381 "casino-sub-header-text", 27382 3, 27383 "title", 27384 "subtitle", 27385 "iconName", 27386 "headingTextColor" 27387 ], 27388 [ 27389 1, 27390 "tournaments-container", 27391 "casino-lobby-container-main" 27392 ], 27393 [ 27394 1, 27395 "casino-game-tile-wrapper", 27396 "casino-lobby-width-gametile" 27397 ], 27398 [ 27399 3, 27400 "seeAllClick", 27401 "title", 27402 "subtitle", 27403 "iconName", 27404 "headingTextColor", 27405 "showViewAllButton", 27406 "seeAllText" 27407 ], 27408 [ 27409 3, 27410 "seeAllClick", 27411 "layoutId", 27412 "trackingLocation", 27413 "addUpcoming" 27414 ] 27415 ], 27416 template: function(e, n) { 27417 e & 1 && f(0, jT, 3, 3)(1, WT, 1, 1), e & 2 && h(n.isSubNavPage() ? 0 : 1); 27418 }, 27419 dependencies: [ 27420 Dc, 27421 yv, 27422 qr, 27423 $t 27424 ], 27425 styles: ["[_nghost-%COMP%]{display:block}.tournaments-container[_ngcontent-%COMP%]{width:100%}@media screen and (max-width:768px){.sticky-header[_ngcontent-%COMP%]{display:none}}"] 27426 }); 27427 } 27428 return t; 27429 })(), Mv = (() => { 27430 class t { 27431 apiService = s(Ae); 27432 getStories() { 27433 return this.apiService.get("gamingstory/GetStories"); 27434 } 27435 static ɵfac = function(e) { 27436 return new (e || t)(); 27437 }; 27438 static ɵprov = A({ 27439 token: t, 27440 factory: t.ɵfac, 27441 providedIn: "root" 27442 }); 27443 } 27444 return t; 27445 })(), Ov = "gamingStoriesPromoViewedState_", xv = 10, _v = 864e5, kv = (() => { 27446 class t { 27447 window = s(pe); 27448 user = s(Je); 27449 platform = s(X); 27450 logger = s(Ot); 27451 configProviderService = s(V); 27452 expirationDays = g(() => this.configProviderService.provideGamingStoriesConfig()?.localStorageExpirationDuration ?? xv); 27453 getCutoffTime() { 27454 return Date.now() - this.expirationDays() * _v; 27455 } 27456 getViewedPromoEntries() { 27457 let e = this.getValidEntries(); 27458 return new Map(e.map((n) => [n.promoItemId, n.viewedTimeStamp])); 27459 } 27460 getValidEntries() { 27461 if (!this.platform.isBrowser) return []; 27462 if (!this.user.isAuthenticated) return []; 27463 let e = this.readGamingStoriesArray(), n = this.getCutoffTime(); 27464 return e.filter((i) => i.viewedTimeStamp > n); 27465 } 27466 markAsViewed(e) { 27467 if (!this.platform.isBrowser || !this.user.isAuthenticated) return; 27468 let n = this.readGamingStoriesArray(), i = Date.now(), r = this.getCutoffTime(), u = n.filter((P) =>
27468 P.viewedTimeStamp > r), v = new Set(u.map((P) => P.promoItemId)); 27469 for (let P of e) v.has(P) || u.push({ 27470 promoItemId: P, 27471 viewedTimeStamp: i 27472 }); 27473 this.writeGamingStoriesArray(u); 27474 } 27475 get storageKey() { 27476 return Ov + (this.user.username ?? ""); 27477 } 27478 readGamingStoriesArray() { 27479 try { 27480 let e = this.window.localStorage.getItem(this.storageKey); 27481 return e ? JSON.parse(e) : []; 27482 } catch (e) { 27483 return this.logger.warn(`StoriesViewedStateService: Failed to read from localStorage key "${this.storageKey}"`, e), []; 27484 } 27485 } 27486 writeGamingStoriesArray(e) { 27487 try { 27488 this.window.localStorage.setItem(this.storageKey, JSON.stringify(e)); 27489 } catch (n) { 27490 this.logger.warn(`StoriesViewedStateService: Failed to write to localStorage key "${this.storageKey}"`, n); 27491 } 27492 } 27493 static ɵfac = function(e) { 27494 return new (e || t)(); 27495 }; 27496 static ɵprov = A({ 27497 token: t, 27498 factory: t.ɵfac, 27499 providedIn: "root" 27500 }); 27501 } 27502 return t; 27503 })(), Yt = { 27504 CATEGORY_WIDGETS: "casino widgets", 27505 LABEL: "stories", 27506 EVENT_DETAILS_SECTION: "stories section", 27507 EVENT_DETAILS_ICON: "story icon", 27508 EVENT_DETAILS_OVERLAY: "story overlay" 27509 }, Bc = (() => { 27510 class t { 27511 trackingAdapter = s(we); 27512 trackSectionLoad(e) { 27513 this.triggerStoriesEvent({ 27514 category: Yt.CATEGORY_WIDGETS, 27515 action: tn.LOAD, 27516 positionEvent: B.NOT_APPLICABLE, 27517 eventDetails: Yt.EVENT_DETAILS_SECTION, 27518 contentPosition: sg(e.containerIndex), 27519 layoutId: e.layoutId, 27520 subNavId: e.subNavId 27521 }); 27522 } 27523 trackStoryIconClick(e, n, i) { 27524 this.triggerStoriesEvent({ 27525 category: Yt.CATEGORY_WIDGETS, 27526 action: ve.CLICK, 27527 positionEvent: e || B.NOT_APPLICABLE, 27528 eventDetails: Yt.EVENT_DETAILS_ICON, 27529 contentPosition: n, 27530 layoutId: i.layoutId, 27531 subNavId: i.subNavId 27532 }); 27533 } 27534 trackOverlayLoad(e, n, i) { 27535 this.triggerStoriesEvent({ 27536 category: Yt.CATEGORY_WIDGETS, 27537 action: tn.LOAD, 27538 positionEvent: e || B.NOT_APPLICABLE, 27539 eventDetails: Yt.EVENT_DETAILS_OVERLAY, 27540 contentPosition: n, 27541 layoutId: i.layoutId, 27542 subNavId: i.subNavId 27543 }); 27544 } 27545 trackCtaClick(e, n, i, r) { 27546 this.triggerStoriesEvent({ 27547 category: Yt.CATEGORY_WIDGETS, 27548 action: ve.CLICK, 27549 positionEvent: e || B.NOT_APPLICABLE, 27550 eventDetails: n || B.NOT_APPLICABLE, 27551 contentPosition: i, 27552 layoutId: r.layoutId, 27553 subNavId: r.subNavId 27554 }); 27555 } 27556 triggerStoriesEvent(e) { 27557 this.trackingAdapter.trigger({ 27558 name: se.CasinoStories, 27559 data: { 27560 [M.ComponentCategoryEvent]: e.category, 27561 [M.ComponentLabelEvent]: Yt.LABEL, 27562 [M.ComponentActionEvent]: e.action, 27563 [M.ComponentPositionEvent]: e.positionEvent, 27564 [M.ComponentLocationEvent]: e.subNavId || B.NOT_APPLICABLE, 27565 [M.ComponentEventDetails]: e.eventDetails, 27566 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 27567 [M.ComponentContentPosition]: e.contentPosition, 27568 [M.ComponentCategoryType]: e.layoutId || B.NOT_APPLICABLE 27569 } 27570 }); 27571 } 27572 static ɵfac = function(e) { 27573 return new (e || t)(); 27574 }; 27575 static ɵprov = A({ 27576 token: t, 27577 factory: t.ɵfac, 27578 providedIn: "root" 27579 }); 27580 } 27581 return t; 27582 })(), Fc = "Stories", Iv = "stories", Tv = "widgets | stories", Nv = (() => { 27583 class t { 27584 gameLaunchAggregator = s(Qe); 27585 deviceService = s(J); 27586 navigationService = s(qe); 27587 gameCatalogService = s(Oe); 27588 launchGameFromCta(e, n, i, r) { 27589 let u = Tr(e); 27590 if (!u) return !1; 27591 let v = { 27592 game: { 27593 gameId: u, 27594 lobbyType: i.layoutId, 27595 name: this.gameCatalogService.getGameName(u) ?? r ?? void 0, 27596 provider: this.gameCatalogService.getGameProvider(u) ?? "" 27597 }, 27598 isTouch: this.deviceService.isTouch, 27599 gamePosition: n || 1, 27600 gridPosition: sg(i.containerIndex), 27601 categoryType: i.subNavId || i.layoutId, 27602 from: Fc, 27603 isDemoLaunch: !1, 27604 gameLaunchedFrom: Fc, 27605 gameContainer: Iv, 27606 gameContainerType: Tv,
27607 isBackgroundImageLayerPresent: !0, 27608 returnUrl: this.navigationService.location.url(), 27609 clickTimeStamp: Date.now() 27610 }; 27611 return this.gameLaunchAggregator.launchGame(v), !0; 27612 } 27613 static ɵfac = function(e) { 27614 return new (e || t)(); 27615 }; 27616 static ɵprov = A({ 27617 token: t, 27618 factory: t.ɵfac, 27619 providedIn: "root" 27620 }); 27621 } 27622 return t; 27623 })(), Lv = (() => { 27624 class t { 27625 stories = Array.from({ length: 6 }); 27626 static ɵfac = function(e) { 27627 return new (e || t)(); 27628 }; 27629 static ɵcmp = I({ 27630 type: t, 27631 selectors: [["cw-stories-skeleton"]], 27632 decls: 4, 27633 vars: 0, 27634 consts: [ 27635 [1, "sk"], 27636 [1, "sk__strip"], 27637 [1, "sk__story"] 27638 ], 27639 template: function(e, n) { 27640 e & 1 && (H(0, "div", 0)(1, "div", 1), D(2, UT, 1, 0, "div", 2, Ze), K()()), e & 2 && (a(2), R(n.stories)); 27641 }, 27642 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;align-self:center;flex-direction:row;align-items:center;justify-content:center;padding-block:var(--%NS%semantic-spacing-container-padding-xl)}.sk__strip[_ngcontent-%COMP%]{display:flex;gap:var(--%NS%semantic-spacing-inline-xl);align-items:center;justify-content:center}.sk__story[_ngcontent-%COMP%]{width:var(--%NS%semantic-size-x13);height:var(--%NS%semantic-size-x13);flex:0 0 auto;border-radius:var(--%NS%semantic-radius-max);background:var(--%NS%semantic-color-surface-container-high-base)}"] 27643 }); 27644 } 27645 return t; 27646 })(), Gv = ["instaStoryContainer"], Ev = (t, o) => o.storyItemId, Av = 5e3, Vc = 50, vo = 100, Rv = 500, Dv = 4.5, jc = 5, zv = 4, $c = ".more-info-btn", Wc = "a[href]", bo = ".close, .closebtn", Bv = (() => { 27647 class t { 27648 dialogRef = s(Ye); 27649 data = s(Ke); 27650 timerService = s(de); 27651 destroyRef = s(q); 27652 renderer = s(lt); 27653 gestureBuilder = s(zC); 27654 platform = s(X); 27655 window = s(pe); 27656 storiesTracking = s(Bc); 27657 storiesGameLaunch = s(Nv); 27658 trackingContext = this.data.trackingContext ?? { 27659 containerIndex: 0, 27660 layoutId: "" 27661 }; 27662 scrollContainer; 27663 promoList = g(() => this.data.promoList); 27664 activePromoIndex = O(this.data.activePromoIndex); 27665 activeStoryIndex = O(0); 27666 progressWidth = O(0); 27667 storyDuration = this.data.storyDuration ?? Av; 27668 activePromo = g(() => this.promoList()[this.activePromoIndex()] ?? null); 27669 activeStoryItem = g(() => { 27670 let e = this.activePromo(); 27671 return e ? e.instaStoryList.filter((n) => n.isValid)[this.activeStoryIndex()] ?? null : null; 27672 }); 27673 activeStoryPath = g(() => this.activeStoryItem()?.mainStoryContentPath?.path ?? ""); 27674 validStories = g(() => { 27675 let e = this.activePromo(); 27676 return e ? e.instaStoryList.filter((n) => n.isValid) : []; 27677 }); 27678 colors = this.data.colors ?? {}; 27679 casinoProduct = en.CASINO; 27680 progressTimer = null; 27681 swipeRecognizer; 27682 pressTimerId; 27683 rendererEvents = []; 27684 viewedPromoIndices = /* @__PURE__ */ new Set([this.data.activePromoIndex]); 27685 constructor() { 27686 this.destroyRef.onDestroy(() => { 27687 this.stopProgress(), this.swipeRecognizer?.destroy(), this.timerService.clearTimeout(this.pressTimerId); 27688 for (let e of this.rendererEvents) e(); 27689 this.rendererEvents = []; 27690 }), Se(() => { 27691 this.startProgress(), this.setupGestures(), this.trackOverlayLoad(); 27692 }); 27693 } 27694 onArrowLeft(e) { 27695 e.preventDefault(), this.onLeftTap(); 27696 } 27697 onArrowRight(e) { 27698 e.preventDefault(), this.onRightTap(); 27699 } 27700 onEscape() { 27701 this.closeModal(); 27702 } 27703 setupGestures() { 27704 if (!this.scrollContainer?.nativeElement) return; 27705 let e = this.scrollContainer.nativeElement; 27706 this.swipeRecognizer = this.gestureBuilder.buildGesture(e, { direction: 6 }), this.swipeRecognizer.addEventListener("swipeleft", () => this.onLeftSwipe()), this.swipeRecognizer.addEventListener("swiperight", () => this.onRightSwipe()), this.rendererEvents.push(this.renderer.listen(e, "click", (n) => this.onTap(n))), this.rendererEvents.push(this.renderer.listen(e, "pointerdown", (n) => { 27707 n.target?.closest(bo) || (this.pressTimerId = this.timerService.setTimeout(() => { 27708 this.pauseProgress(); 27709 }, Rv)); 27710 })), this.rendererEvents.push(this.renderer.listen(e, "pointerup", (n) => { 27711 if (n.target?.closest(bo)) { 27712 this.closeModal(); 27713 return; 27714 } 27715 this.timerService.clearTimeout(this.pressTimerId), this.resumeProgress(); 27716 })), this.rendererEvents.push(this.renderer.listen(e, "pointercancel", () => { 27717 this.timerService.clearTimeout(this.pressTimerId), this.resumeProgress(); 27718 })), this.setupCtaNavigation(); 27719 } 27720 onTap(e) { 27721 let n = this.scrollContainer?.nativeElement; 27722 if (!n) return; 27723 let i = e.target; 27724 if (i?.closest(bo)) { 27725 this.closeModal(); 27726 return; 27727 } 27728 if (!i?.closest(`${$c}, ${Wc}`) && n.offsetHeight / Dv < e.clientY) { 27729 let r = n.getBoundingClientRect(), u = e.clientX - r.left;
27730 u < n.offsetWidth / jc ? this.onLeftTap() : u > zv * (n.offsetWidth / jc) && this.onRightTap(); 27731 } 27732 } 27733 navigatePromo(e) { 27734 e === "next" ? this.activePromoIndex() + 1 < this.promoList().length ? (this.activePromoIndex.update((n) => n + 1), this.viewedPromoIndices.add(this.activePromoIndex()), this.activeStoryIndex.set(0), this.resetProgress(), this.trackOverlayLoad()) : this.closeModal() : this.activePromoIndex() > 0 ? (this.activePromoIndex.update((n) => n - 1), this.viewedPromoIndices.add(this.activePromoIndex()), this.activeStoryIndex.set(0), this.resetProgress(), this.trackOverlayLoad()) : this.closeModal(); 27735 } 27736 onLeftSwipe() { 27737 this.navigatePromo("next"); 27738 } 27739 onRightSwipe() { 27740 this.navigatePromo("prev"); 27741 } 27742 pauseProgress() { 27743 this.stopProgress(); 27744 } 27745 resumeProgress() { 27746 this.startProgress(); 27747 } 27748 closeModal() { 27749 this.stopProgress(), this.dialogRef.close([...this.viewedPromoIndices]); 27750 } 27751 setupCtaNavigation() { 27752 if (!this.platform.isBrowser) return; 27753 let e = this.scrollContainer?.nativeElement; 27754 e && this.rendererEvents.push(this.renderer.listen(e, "click", (n) => { 27755 let i = n.target?.closest(`${$c}, ${Wc}`); 27756 if (!i) return; 27757 n.preventDefault(), n.stopPropagation(); 27758 let r = i.getAttribute("href"), u = i.textContent?.trim() || "", v = this.activePromoIndex(), P = this.activePromo(), N = P?.promoItemId || P?.promoTitle || ""; 27759 this.storiesTracking.trackCtaClick(N, u, v + 1, this.trackingContext), this.closeModal(), r && !this.storiesGameLaunch.launchGameFromCta(r, v + 1, this.trackingContext, P?.promoTitle) && (this.window.location.href = r); 27760 })); 27761 } 27762 onLeftTap() { 27763 this.navigate("prev"); 27764 } 27765 onRightTap() { 27766 this.navigate("next"); 27767 } 27768 navigate(e) { 27769 let n = this.validStories().length; 27770 e === "next" ? this.activeStoryIndex() + 1 < n ? (this.activeStoryIndex.update((i) => i + 1), this.resetProgress()) : this.navigatePromo("next") : this.activeStoryIndex() > 0 ? (this.activeStoryIndex.update((i) => i - 1), this.resetProgress()) : this.navigatePromo("prev"); 27771 } 27772 startProgress() { 27773 this.stopProgress(); 27774 let e = Vc / this.storyDuration * vo; 27775 this.progressTimer = this.timerService.setInterval(() => { 27776 let n = this.progressWidth(); 27777 n >= vo ? this.onProgressComplete() : this.progressWidth.set(Math.min(n + e, vo)); 27778 }, Vc); 27779 } 27780 stopProgress() { 27781 this.progressTimer != null && (this.timerService.clearInterval(this.progressTimer), this.progressTimer = null); 27782 } 27783 resetProgress() { 27784 this.progressWidth.set(0), this.startProgress(); 27785 } 27786 onProgressComplete() { 27787 this.navigate("next"); 27788 } 27789 trackOverlayLoad() { 27790 let e = this.activePromo(); 27791 e && this.storiesTracking.trackOverlayLoad(e.promoItemId || e.promoTitle, this.activePromoIndex() + 1, this.trackingContext); 27792 } 27793 static ɵfac = function(e) { 27794 return new (e || t)(); 27795 }; 27796 static ɵcmp = I({ 27797 type: t, 27798 selectors: [["cw-story-modal"]], 27799 viewQuery: function(e, n) { 27800 if (e & 1 && pn(Gv, 5, tt), e & 2) { 27801 let i; 27802 vn(i = fn()) && (n.scrollContainer = i.first); 27803 } 27804 }, 27805 hostBindings: function(e, n) { 27806 e & 1 && S("keydown.arrowleft", function(i) { 27807 return n.onArrowLeft(i); 27808 }, Kt)("keydown.arrowright", function(i) { 27809 return n.onArrowRight(i); 27810 }, Kt)("keydown.escape", function() { 27811 return n.onEscape(); 27812 }, Kt); 27813 }, 27814 decls: 11, 27815 vars: 11, 27816 consts: [ 27817 ["instaStoryContainer", ""], 27818 [1, "story-model-container"], 27819 [1, "closebtn"], 27820 [ 27821 "role", 27822 "button", 27823 "tabindex", 27824 "0", 27825 1, 27826 "close", 27827 "theme-ex", 27828 3, 27829 "pointerdown", 27830 "mousedown", 27831 "touchstart", 27832 "click" 27833 ], 27834 [ 27835 "id", 27836 "instaStoryPageMatrixConatiner", 27837 1, 27838 "story-move-up" 27839 ], 27840 [1, "matrix-page-container"], 27841 [ 27842 3, 27843 "path", 27844 "product" 27845 ], 27846 [1, "progressbar-closebtn"], 27847 ["id", "casino-progressbar-container"], 27848 [1, "progressbar"], 27849 [1, "progress-fill"] 27850 ], 27851 template: function(e, n) { 27852 if (e & 1 && (l(0, "div", 1, 0)(2, "div", 2)(3, "span", 3), S("pointerdown", function(i) { 27853 return i.stopPropagation(); 27854 })("mousedown", function(i) { 27855 return i.stopPropagation(); 27856 })("touchstart", function(i) { 27857 return i.stopPropagation(); 27858 })("click", function() { 27859 return n.closeModal(); 27860 }), d()(), l(4, "div", 4)(5, "div", 5), f(6, HT, 1, 2, "vn-page-matrix",
278606), d(), l(7, "div", 7)(8, "div", 8), D(9, qT, 2, 4, "div", 9, Ev), d()()()()), e & 2) { 27861 let i; 27862 a(3), k("color", n.colors.closebtnClr), T("aria-label", "Close story"), a(3), h((i = n.activeStoryPath()) ? 6 : -1, i), a(2), k("--%NS%progress-bar-bg", n.colors.progressBarBgClr)("--%NS%progress-bar-fill", n.colors.progressBarClr)("--%NS%progress", n.progressWidth() / 100), T("aria-hidden", !0), a(), R(n.validStories()); 27863 } 27864 }, 27865 dependencies: [Jo], 27866 encapsulation: 2 27867 }); 27868 } 27869 return t; 27870 })(), Fv = (t, o) => o.promoItemId, Vv = 500, jv = 5, $v = 3, Wv = 4.7, Uv = 5, Hv = 4, qv = "375px", Jv = 5, Yv = 1e3, Uc = "casino-mobile-stories", Kv = "casino-stories-dialog", Qv = "Enter", Xv = " ", Zv = (() => { 27871 class t { 27872 storiesApiService = s(Mv); 27873 deviceService = s(J); 27874 dialog = s(Bt); 27875 document = s(Ge); 27876 renderer = s(lt); 27877 destroyRef = s(q); 27878 platform = s(X); 27879 storiesViewedStateService = s(kv); 27880 storiesTracking = s(Bc); 27881 casinoNavigationService = s(he); 27882 gameCatalogService = s(Oe); 27883 swiperComponent; 27884 containerMetadata = m.required(); 27885 containerIndex = m.required(); 27886 layoutId = m(""); 27887 storiesData = O(null); 27888 isTouch = this.deviceService.isTouch; 27889 instaCarouselThreshold = Hv; 27890 reorderedPromoList = O(null); 27891 swiperOptions = { 27892 speed: Vv, 27893 autoHeight: !0, 27894 spaceBetween: jv, 27895 slidesPerGroup: $v, 27896 preventClicks: !1, 27897 preventClicksPropagation: !1, 27898 slidesPerView: this.deviceService.isTouch ? Wv : Uv, 27899 allowTouchMove: !0, 27900 navigation: !this.deviceService.isTouch, 27901 touchStartPreventDefault: !1 27902 }; 27903 fetchSettled = O(!1); 27904 stories = g(() => this.storiesData()); 27905 isLoading = g(() => !this.fetchSettled()); 27906 promoList = g(() => { 27907 let e = this.reorderedPromoList(); 27908 if (e) return e; 27909 let n = this.storiesData(); 27910 return n?.instaPromoList ? n.instaPromoList : []; 27911 }); 27912 hasStories = g(() => this.promoList().length > 0); 27913 storyIconShape = g(() => this.storiesData()?.instaContainer?.storyIconShape ?? "circle"); 27914 storyStyles = g(() => { 27915 let e = this.storiesData()?.instaContainer?.sharedList; 27916 return { 27917 promotionsBgClr: e?.promotionsBgClr ?? "", 27918 notviewedPromotionBrClr: e?.notviewedPromotionBrClr ?? "#ff6b00", 27919 viewedPromotionBrClr: e?.viewedPromotionBrClr ?? "#9caadb", 27920 promotionTxtClr: e?.promotionTxtClr ?? "#fff", 27921 viewedpromotionTxtClr: e?.viewedpromotionTxtClr ?? "#fff", 27922 themeCheckClr: e?.themeCheckClr ?? "#fff", 27923 themeCheckBgClr: e?.themeCheckBgClr ?? "#4caf50" 27924 }; 27925 }); 27926 constructor() { 27927 this.fetchStories(), Se(() => { 27928 this.gameCatalogService.fetchGames(); 27929 }), Z(() => { 27930 this.hasStories() && this.platform.isBrowser && this.storiesTracking.trackSectionLoad(this.trackingContext()); 27931 }); 27932 } 27933 openStory(e) { 27934 if (!this.platform.isBrowser) return; 27935 let n = this.promoList()[e]; 27936 n && this.storiesTracking.trackStoryIconClick(n.promoItemId || n.promoTitle, e + 1, this.trackingContext()), this.markAsViewedImmediately(e); 27937 let i = { 27938 promoList: this.promoList(), 27939 activePromoIndex: e, 27940 storyDuration: (this.storiesData()?.instaContainer?.storyDisplayInterval ?? Jv) * Yv, 27941 colors: this.storiesData()?.instaContainer?.sharedList ?? void 0, 27942 trackingContext: this.trackingContext() 27943 }, r = i.promoList; 27944 this.renderer.addClass(this.document.documentElement, Uc), this.dialog.open(Bv, { 27945 width: qv, 27946 panelClass: Kv, 27947 data: i 27948 }).afterClosed().pipe(z(this.destroyRef)).subscribe((u) => { 27949 this.renderer.removeClass(this.document.documentElement, Uc); 27950 let v = u?.length ? u : [e]; 27951 this.reorderViewedToEnd(v); 27952 let P = v.map((N) => r[N]?.promoItemId).filter(Boolean); 27953 P.length > 0 && this.storiesViewedStateService.markAsViewed(P); 27954 }); 27955 } 27956 onStoryKeydown(e, n) { 27957 (e.key === Qv || e.key === Xv) && (e.preventDefault(), this.openStory(n)); 27958 } 27959 fetchStories() { 27960 this.storiesApiService.getStories().pipe(Gt(() => (this.fetchSettled.set(!0), eC)), z(this.destroyRef)).subscribe((e) => { 27961 if (e && Object.keys(e).length > 0) { 27962 let n = this.applyPersistedViewedState(e); 27963 this.storiesData.set(n); 27964 } 27965 this.fetchSettled.set(!0); 27966 }); 27967 } 27968 trackingContext = g(() => ({ 27969 containerIndex: this.containerIndex(), 27970 layoutId: this.layoutId(), 27971 subNavId: this.casinoNavigationService.currentSubnav()?.id 27972 })); 27973 applyPersistedViewedState(e) { 27974 let n = this.storiesViewedStateService.getViewedPromoEntries(); 27975 if (n.size === 0) return e; 27976 let [i, r] = this.partitionByViewed(e.instaPromoList, (u) => n.has(u.promoItemId)); 27977 return r.length === 0 ? e : (r.sort((u, v) =>
27977 (n.get(u.promoItemId) ?? 0) - (n.get(v.promoItemId) ?? 0)), F(G({}, e), { instaPromoList: i.concat(r) })); 27978 } 27979 markAsViewedImmediately(e) { 27980 let n = this.promoList().map((i, r) => r === e ? F(G({}, i), { viewed: !0 }) : i); 27981 this.reorderedPromoList.set(n); 27982 } 27983 reorderViewedToEnd(e) { 27984 let n = this.promoList(), i = new Set(e), r = n.map((u, v) => i.has(v) ? F(G({}, u), { viewed: !0 }) : u); 27985 this.reorderedPromoList.set(this.sortViewedToEnd(r)), this.swiperComponent && this.swiperComponent.forceUpdate(); 27986 } 27987 sortViewedToEnd(e) { 27988 let [n, i] = this.partitionByViewed(e, (r) => r.viewed === !0); 27989 return n.concat(i.reverse()); 27990 } 27991 partitionByViewed(e, n) { 27992 let i = [], r = []; 27993 for (let u of e) n(u) ? r.push(F(G({}, u), { viewed: !0 })) : i.push(u); 27994 return [i, r]; 27995 } 27996 static ɵfac = function(e) { 27997 return new (e || t)(); 27998 }; 27999 static ɵcmp = I({ 28000 type: t, 28001 selectors: [["cw-container-stories"]], 28002 viewQuery: function(e, n) { 28003 if (e & 1 && pn(Ft, 5), e & 2) { 28004 let i; 28005 vn(i = fn()) && (n.swiperComponent = i.first); 28006 } 28007 }, 28008 inputs: { 28009 containerMetadata: [1, "containerMetadata"], 28010 containerIndex: [1, "containerIndex"], 28011 layoutId: [1, "layoutId"] 28012 }, 28013 decls: 2, 28014 vars: 1, 28015 consts: [ 28016 [3, "containerId"], 28017 [ 28018 1, 28019 "casino-mobilestories-container", 28020 3, 28021 "background-color" 28022 ], 28023 [1, "casino-mobilestories-container"], 28024 [1, "mobilestories-carousel"], 28025 [3, "swiperOptions"], 28026 [1, "swiper-slide"], 28027 [1, "casino-instaPromo"], 28028 [1, "story-list"], 28029 [ 28030 3, 28031 "click", 28032 "keydown" 28033 ], 28034 [1, "story"], 28035 [ 28036 3, 28037 "ngSrc", 28038 "alt", 28039 "width", 28040 "height" 28041 ], 28042 [1, "promo-name"] 28043 ], 28044 template: function(e, n) { 28045 e & 1 && f(0, JT, 2, 1, "cw-lobby-container-placeholder", 0)(1, QT, 5, 7, "div", 1), e & 2 && h(n.isLoading() ? 0 : n.hasStories() ? 1 : -1); 28046 }, 28047 dependencies: [ 28048 Ft, 28049 Zt, 28050 st, 28051 Lv 28052 ], 28053 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: 123px}@media only screen and (min-width:768px){[_nghost-%COMP%]{--%NS%cw-reserve-h: 79px}}"] 28054 }); 28055 } 28056 return t; 28057 })(), eb = (() => { 28058 class t { 28059 MinimalFeatureType = Ma; 28060 containerMetadata = m.required(); 28061 containerIndex = m.required(); 28062 layoutId = m(""); 28063 static ɵfac = function(e) { 28064 return new (e || t)(); 28065 }; 28066 static ɵcmp = I({ 28067 type: t, 28068 selectors: [["cw-minimal-container"]], 28069 inputs: { 28070 containerMetadata: [1, "containerMetadata"], 28071 containerIndex: [1, "containerIndex"], 28072 layoutId: [1, "layoutId"] 28073 }, 28074 decls: 4, 28075 vars: 1, 28076 consts: [ 28077 [ 28078 3, 28079 "containerMetadata", 28080 "layoutId", 28081 "containerIndex" 28082 ], 28083 [ 28084 3, 28085 "containerMetadata", 28086 "containerIndex", 28087 "layoutId" 28088 ], 28089 [ 28090 3, 28091 "containerMetadata", 28092 "layoutId" 28093 ] 28094 ], 28095 template: function(e, n) { 28096 if (e & 1 && f(0, XT, 1, 3, "cw-container-winners-widget", 0)(1, ZT, 1, 3, "cw-container-stories", 1)(2, eN, 1, 2, "cw-container-tournaments", 2)(3, tN, 1, 3, "cw-container-originals-widget", 0), e & 2) { 28097 let i; 28098 h((i = n.containerMetadata().featureType) === n.MinimalFeatureType.RecentWinners ? 0 : i === n.MinimalFeatureType.InstaStory ? 1 : i === n.MinimalFeatureType.Tournaments ? 2 : i === n.MinimalFeatureType.Originals ? 3 : -1); 28099 } 28100 }, 28101 dependencies: [ 28102 Zv, 28103 ph, 28104 Ff, 28105 Sv 28106 ], 28107 encapsulation: 2 28108 }); 28109 } 28110 return t; 28111 })(), tb = (() => { 28112 class t { 28113 tiles = Array.from({ length: 24 }); 28114 static ɵfac = function(e) { 28115 return new (e || t)(); 28116 }; 28117 static ɵcmp = I({ 28118 type: t, 28119 selectors: [["cw-recently-played-skeleton"]], 28120 decls: 5, 28121 vars: 0, 28122 consts: [ 28123 [1, "sk"], 28124 [1, "sk__title"], 28125 [1, "sk__tiles"], 28126 [1, "sk__tile"] 28127 ], 28128 template: function(e, n) { 28129 e & 1 && (H(0, "div", 0), Pe(1, "div", 1), H(2, "div", 2), D(3, nN, 1, 0, "div", 3, Ze), K()()), e & 2 && (a(3), R(n.tiles)); 28130 }, 28131 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;align-self:center;width:var(--%NS%cls-content-w)}.sk__title[_ngcontent-%COMP%]{width:220px;height:20px;margin-block:var(--%NS%semantic-spacing-container-padding-2xl) 0;flex:0 0 auto;border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}.sk__tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(var(--%NS%cols, 2),1fr);grid-auto-rows:var(--%NS%cls-row-h);gap:0;flex:0 0 auto;max-height:calc(var(--%NS%reserved-rows, 1) * var(--%NS%cls-row-h) + (var(--%NS%reserved-rows, 1) - 1) * var(--%NS%cls-gutter, 0px));overflow:hidden}
28131.sk__tile[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-container-padding-sm);border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}"] 28132 }); 28133 } 28134 return t; 28135 })(), nb = (() => { 28136 class t { 28137 containerService = s(ie); 28138 recentGamesService = s(at); 28139 gameCatalogService = s(Oe); 28140 gameImageService = s(rt); 28141 user = s(Je); 28142 deviceService = s(J); 28143 configProviderService = s(V); 28144 casinoStyles = s(jt); 28145 navigationService = s(he); 28146 vanillaTrackingAdapter = s(we); 28147 globalMessages = s(Mn); 28148 destroyRef = s(q); 28149 layoutId = m.required(); 28150 containerMetadata = m.required(); 28151 containerIndex = m.required(); 28152 container = Q(this.containerService.container$, { initialValue: null }); 28153 rpGameIds = O([]); 28154 rpGamesSettled = this.recentGamesService.hasSettled; 28155 games = g(() => { 28156 if (this.recentGamesService.isRefreshing()) return []; 28157 let e = this.rpGameIds(); 28158 return e.length === 0 ? [] : e.map((n) => { 28159 let i = mi(n, { 28160 isRecentlyPlayed: !0, 28161 name: this.recentGamesService.getRecentGameName(n), 28162 provider: this.gameCatalogService.getGameProvider(n) 28163 }); 28164 return i.icon = this.gameImageService.getIconConfig(i), i.iconType = this.gameImageService.getGameIconType(i), i.iconFormat = this.gameImageService.getGameIconFormat(i), i; 28165 }); 28166 }); 28167 containerWithGames = g(() => { 28168 let e = this.container(), n = this.games(); 28169 return !e || n.length === 0 ? null : F(G({}, e), { games: n }); 28170 }); 28171 gameContainerType = g(() => Vt(this.container()?.type, this.container()?.viewType)); 28172 isTouch = this.deviceService.isTouch; 28173 headingTextColor = g(() => { 28174 let e = this.container(); 28175 return e ? this.casinoStyles.getContainerHeadingColor(e) : void 0; 28176 }); 28177 containerClass = g(() => this.container()?.enableCarousel ? "scrollable-games" : "unscrollable-games"); 28178 hasParallaxImages = g(() => { 28179 let e = this.container(); 28180 return !!(e?.parallaxImage?.parallaxBackgroundImage1 || e?.parallaxImage?.parallaxBackgroundImage2 || e?.parallaxImage?.parallaxBackgroundImage3); 28181 }); 28182 showMoreInfo = g(() => !!(this.container()?.moreInfoDialog?.htmlContent && this.container()?.moreInfoDialog?.closeCtaText)); 28183 visible = g(() => this.user.isAuthenticated ? !0 : this.configProviderService.provideFeaturesConfig()?.enablePreLoginRecentlyPlayed ?? !1); 28184 isLoading = g(() => !this.visible() || this.containerService.hasError() ? !1 : this.container() ? this.user.isAuthenticated && (!this.rpGamesSettled() || this.recentGamesService.isRefreshing()) : !0); 28185 placeholderViewType = g(() => xi("recently-played", this.containerMetadata().viewType)); 28186 placeholderRows = g(() => Mi(this.placeholderViewType()));
28187 placeholderLadder = g(() => Oi(this.placeholderViewType(), this.isTouch)); 28188 initialGameCount = g(() => this.containerService.getConfigForGamesToFetch(this.containerMetadata())); 28189 placeholderGameCount = g(() => Si(this.placeholderViewType(), () => this.initialGameCount())); 28190 ngOnInit() { 28191 this.containerMetadata() && this.containerService.fetchAndSetContainer(this.containerMetadata()), this.user.isAuthenticated && this.recentGamesService.setRecentGames(), this.recentGamesService.recentGamesFeedObservable.pipe(z(this.destroyRef)).subscribe(() => { 28192 this.rpGameIds.set(this.recentGamesService.getrecentGames()); 28193 }), this.user.events.pipe(We((e) => e instanceof bl), z(this.destroyRef)).subscribe((e) => { 28194 e.diff.has("isAuthenticated") && this.user.isAuthenticated && this.recentGamesService.setRecentGames(); 28195 }); 28196 } 28197 seeAllText = g(() => this.globalMessages().SeeAll || ""); 28198 containerEventContext(e) { 28199 return { 28200 containerId: e, 28201 lobbyName: this.navigationService.currentSubnav()?.id, 28202 containerPosition: this.containerIndex(), 28203 layoutId: this.layoutId() 28204 }; 28205 } 28206 onSeeAllClick(e) { 28207 let n = this.container(); 28208 if (n?.viewAllTarget) { 28209 let i = this.navigationService.createUrlForSeeAll(n.viewAllTarget); 28210 this.vanillaTrackingAdapter.trigger(yi(F(G({}, this.containerEventContext(e ?? n.id)), { 28211 seeAllText: this.seeAllText(), 28212 url: i 28213 }))), i && this.navigationService.goTo(i); 28214 } 28215 } 28216 onMoreInfoClick(e) { 28217 this.vanillaTrackingAdapter.trigger(La(this.containerEventContext(e))); 28218 } 28219 onMoreInfoOverlay(e, n) { 28220 this.vanillaTrackingAdapter.trigger(rn(this.containerEventContext(n), e)); 28221 } 28222 onMoreInfoOverlayCtaClick(e, n) { 28223 this.vanillaTrackingAdapter.trigger(rn(G(G({}, this.containerEventContext(n)), e), "click")); 28224 } 28225 static ɵfac = function(e) { 28226 return new (e || t)(); 28227 }; 28228 static ɵcmp = I({ 28229 type: t, 28230 selectors: [["cw-recently-played-container"]], 28231 inputs: { 28232 layoutId: [1, "layoutId"], 28233 containerMetadata: [1, "containerMetadata"], 28234 containerIndex: [1, "containerIndex"] 28235 }, 28236 features: [ce([ie])], 28237 decls: 2, 28238 vars: 1, 28239 consts: [ 28240 [3, "casino-backgroungImage-Clr"], 28241 [ 28242 3, 28243 "containerId", 28244 "rows", 28245 "ladder", 28246 "gameCount" 28247 ], 28248 [ 28249 3, 28250 "src1", 28251 "src2", 28252 "src3" 28253 ], 28254 [ 28255 1, 28256 "lobby-container", 28257 "casino-game-tile-wrapper", 28258 "casino-lobby-width-gametile" 28259 ], 28260 [ 28261 3, 28262 "seeAllClick", 28263 "moreInfoClick", 28264 "moreInfoOverlayLoad", 28265 "moreInfoOverlayCtaClick", 28266 "moreInfoOverlayClose", 28267 "iconName", 28268 "title", 28269 "subtitle", 28270 "showViewAllButton", 28271 "headingTextColor", 28272 "showMoreInfo", 28273 "moreInfoDialog" 28274 ], 28275 [ 28276 3, 28277 "layoutId", 28278 "viewType", 28279 "enableCarousel", 28280 "games", 28281 "containerIndex", 28282 "containerId", 28283 "containerTitle", 28284 "containerType", 28285 "isBackgroundImageLayerPresent" 28286 ] 28287 ], 28288 template: function(e, n) { 28289 if (e & 1 && f(0, aN, 7, 29, "div", 0)(1, oN, 2, 4, "cw-lobby-container-placeholder", 1), e & 2) { 28290 let i; 28291 h((i = n.visible() && n.containerWithGames()) ? 0 : n.isLoading() ? 1 : -1, i); 28292 } 28293 }, 28294 dependencies: [ 28295 $t, 28296 dn, 28297 On, 28298 st, 28299 tb 28300 ], 28301 encapsulation: 2 28302 }); 28303 } 28304 return t; 28305 })(), ib = ["scrollContainer"], Hc = (t, o) => o.gameId, ab = 2, ob = (() => { 28306 class t { 28307 container = m.required(); 28308 layoutId = m.required(); 28309 games = m.required(); 28310 isTouch = m(!1); 28311 type = m.required(); 28312 containerIndex = m.required(); 28313 deviceService = s(J); 28314 resizeObserver = s(Vo); 28315 scrollContainer = De("scrollContainer"); 28316 scrollOffset = O(0); 28317 containerWidth = Q(fl(this.scrollContainer).pipe(Xt((e) =>
28317 e ? this.resizeObserver.observe(e).pipe(Me((n) => n.contentBoxSize[0].inlineSize)) : ml)), { initialValue: 0 }); 28318 carouselRowCount = g(() => 1); 28319 carouselItemsCount = g(() => this.games().reduce((e, n) => e + (n.colSpan ?? 1), 0)); 28320 gameContainerType = g(() => Vt(this.container().type, this.container().viewType)); 28321 gameContainerTypeFor(e) { 28322 return cd(e, this.container().type, this.container().viewType); 28323 } 28324 gameSectionFor(e) { 28325 let n = this.container(), i = n.title ?? ""; 28326 return ld(e, { 28327 recentlyPlayedTitle: n.title ?? i, 28328 promotedGamesTitle: n.promotedGamesTitle ?? i, 28329 gamesYouMightLikeTitle: n.gamesYouMightLikeTitle ?? i 28330 }, i); 28331 } 28332 displayedColumns = g(() => { 28333 let e = this.deviceService.windowWidth(); 28334 return this.deviceService.isMobile ? 2 : e >= 768 ? 6 : e >= 568 ? 4 : 3; 28335 }); 28336 maxScrollLeft = g(() => { 28337 let e = this.containerWidth(); 28338 if (e === 0) return 0; 28339 let n = Math.ceil(this.carouselItemsCount() / this.carouselRowCount()), i = this.displayedColumns(); 28340 return n <= i ? 0 : e * (n - i) / i; 28341 }); 28342 canScrollPrev = g(() => !this.deviceService.isMobile && this.isCarouselMode() && this.scrollOffset() > 0); 28343 canScrollNext = g(() => !this.deviceService.isMobile && this.isCarouselMode() && this.scrollOffset() < this.maxScrollLeft() - ab); 28344 isCarouselMode = g(() => { 28345 let e = this.type() === "scrollable-games"; 28346 return this.container() ? e || this.deviceService.isTouch : !1; 28347 }); 28348 onScroll() { 28349 let e = this.scrollContainer()?.nativeElement; 28350 e && this.scrollOffset.set(Math.round(e.scrollLeft)); 28351 } 28352 scrollPrev() { 28353 this.scrollContainer()?.nativeElement.scrollBy({ 28354 left: -this.containerWidth(), 28355 behavior: "smooth" 28356 }); 28357 } 28358 scrollNext() { 28359 this.scrollContainer()?.nativeElement.scrollBy({ 28360 left: this.containerWidth(), 28361 behavior: "smooth" 28362 }); 28363 } 28364 static ɵfac = function(e) { 28365 return new (e || t)(); 28366 }; 28367 static ɵcmp = I({ 28368 type: t, 28369 selectors: [["cw-feature-css-grid"]], 28370 viewQuery: function(e, n) { 28371 e & 1 && He(n.scrollContainer, ib, 5), e & 2 && Ue(); 28372 }, 28373 inputs: { 28374 container: [1, "container"], 28375 layoutId: [1, "layoutId"], 28376 games: [1, "games"], 28377 isTouch: [1, "isTouch"], 28378 type: [1, "type"], 28379 containerIndex: [1, "containerIndex"] 28380 }, 28381 decls: 2, 28382 vars: 1, 28383 consts: [ 28384 ["scrollContainer", ""], 28385 [1, "css-carousel-container"], 28386 [1, "feature-css-grid"], 28387 [ 28388 1, 28389 "carousel-nav", 28390 "carousel-nav-prev" 28391 ], 28392 [ 28393 1, 28394 "carousel-scroll-container", 28395 3, 28396 "scroll" 28397 ], 28398 [ 28399 3, 28400 "class", 28401 "--%NS%col-span", 28402 "--%NS%row-span" 28403 ], 28404 [ 28405 1, 28406 "carousel-nav", 28407 "carousel-nav-next" 28408 ], 28409 [ 28410 "direction", 28411 "left", 28412 "size", 28413 "medium", 28414 "variant", 28415 "strong", 28416 3, 28417 "click" 28418 ], 28419 [ 28420 "cwGameImpression", 28421 "", 28422 3, 28423 "game", 28424 "layoutId", 28425 "containerId", 28426 "containerIndex", 28427 "gameIndex", 28428 "containerTitle", 28429 "priority", 28430 "containerType" 28431 ], 28432 [ 28433 "direction", 28434 "right", 28435 "size", 28436 "medium", 28437 "variant", 28438 "strong", 28439 3, 28440 "click" 28441 ], 28442 [ 28443 3, 28444 "class", 28445 "portrait", 28446 "landscape", 28447 "--%NS%col-span", 28448 "--%NS%row-span" 28449 ] 28450 ], 28451 template: function(e, n) { 28452 e & 1 && f(0, lN, 7, 2, "div", 1)(1, gN, 3, 0, "div", 2), e & 2 && h(n.isCarouselMode() ? 0 : 1); 28453 }, 28454 dependencies: [ 28455 Tn, 28456 ia, 28457 ln 28458 ], 28459 styles: ["[_nghost-%COMP%]{--%NS%base-gutter-mobile: 6;--%NS%base-gutter-desktop: 12;display:block;width:100%;container-type:inline-size;container-name:grid}.feature-css-grid[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);display:grid;gap:var(--%NS%gutter-size);width:100%;grid-template-columns:repeat(2,1fr);grid-auto-rows:calc((100cqw - (2 - 1) * var(--%NS%gutter-size)) / 2)}@container grid (min-width: 375px){.feature-css-grid[_ngcontent-%COMP%]{grid-template-columns:repeat(3,1fr);grid-auto-rows:calc((100cqw - (3 - 1) * var(--%NS%gutter-size)) / 3)}}@container grid (min-width: 568px){.feature-css-grid[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);grid-template-columns:repeat(4,1fr);grid-auto-rows:calc((100cqw - (4 - 1) * var(--%NS%gutter-size)) / 4)}}@container grid (min-width: 768px){.feature-css-grid[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);grid-template-columns:repeat(6,1fr);grid-auto-rows:calc((100cqw - (6 - 1) * var(--%NS%gutter-size)) / 6)}}.feature-css-grid[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]:hover{transform:scale(1.03);transition:transform .2s ease-in}.game-tile[_ngcontent-%COMP%]{grid-column:span var(--%NS%col-span, 1);grid-row:span var(--%NS%row-span, 1);width:100%;position:relative;overflow:hidden!important;border-radius:6px;aspect-ratio:1/1}.game-tile.portrait[_ngcontent-%COMP%]{aspect-ratio:195/398}.game-tile.landscape[_ngcontent-%COMP%]{aspect-ratio:398/195}
28459.game-tile.icon-3[_ngcontent-%COMP%]{aspect-ratio:195/398}.game-tile.icon-7[_ngcontent-%COMP%]{aspect-ratio:auto}.game-tile[_ngcontent-%COMP%] cw-game-lobby{display:block;width:100%;height:100%}.game-tile[_ngcontent-%COMP%] cw-game-lobby img{object-fit:cover}.css-carousel-container[_ngcontent-%COMP%]{position:relative;width:100%}.carousel-nav[_ngcontent-%COMP%]{position:absolute;top:50%;transform:translateY(-50%);z-index:1;transition:transform .2s ease,opacity .2s ease}.carousel-nav[_ngcontent-%COMP%]:hover, .carousel-nav[_ngcontent-%COMP%]:active{will-change:transform}.carousel-nav[_ngcontent-%COMP%]:hover{transform:translateY(-50%) scale(1.1)}.carousel-nav[_ngcontent-%COMP%]:active{transform:translateY(-50%) scale(.95)}.carousel-nav[_ngcontent-%COMP%]:not(:hover):not(:active){will-change:auto}.carousel-nav-prev[_ngcontent-%COMP%]{left:-4px}@container grid (min-width: 768px){.carousel-nav-prev[_ngcontent-%COMP%]{left:-18px}}.carousel-nav-next[_ngcontent-%COMP%]{right:-4px}@container grid (min-width: 768px){.carousel-nav-next[_ngcontent-%COMP%]{right:-18px}}.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-mobile);--%NS%gutter-size: calc(var(--%NS%base-gutter) * 1px);--%NS%carousel-tile-width: calc((100cqw - var(--%NS%gutter-size)) / 2);overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-behavior:smooth;display:grid;grid-auto-flow:column;grid-auto-columns:var(--%NS%carousel-tile-width);gap:0;scrollbar-width:none;-ms-overflow-style:none}.carousel-scroll-container[_ngcontent-%COMP%]::-webkit-scrollbar{display:none}@container grid (min-width: 375px){.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%carousel-tile-width: calc(100cqw / 3)}}@container grid (min-width: 568px){.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%carousel-tile-width: 25cqw }}@container grid (min-width: 768px){.carousel-scroll-container[_ngcontent-%COMP%]{--%NS%base-gutter: var(--%NS%base-gutter-desktop);--%NS%carousel-tile-width: calc(100cqw / 6)}}.carousel-scroll-container[_ngcontent-%COMP%] .game-tile[_ngcontent-%COMP%]{padding:calc(var(--%NS%gutter-size) / 2)}.carousel-item-wrapper[_ngcontent-%COMP%]{--%NS%carousel-tile-height: var(--%NS%carousel-tile-width);flex-shrink:0;scroll-snap-align:start;width:100%;border-radius:6px;aspect-ratio:1/1}.carousel-item-wrapper.portrait[_ngcontent-%COMP%]{--%NS%carousel-tile-height: calc(var(--%NS%carousel-tile-width) * 2);aspect-ratio:195/398}.carousel-item-wrapper.landscape[_ngcontent-%COMP%]{aspect-ratio:398/195}.carousel-item-wrapper.icon-3[_ngcontent-%COMP%]{aspect-ratio:195/398}.carousel-item-wrapper.icon-7[_ngcontent-%COMP%]{aspect-ratio:auto}.carousel-item-wrapper[_ngcontent-%COMP%] cw-game-lobby{display:block;width:100%;height:100%}"] 28460 }); 28461 } 28462 return t; 28463 })(), rb = (t) => ({ 28464 "sticky-container": !0, 28465 "casino-lobby-width-gametile": !0, 28466 "casino-ios-bottom-nav-bar": t 28467 }), sb = (t) => ({ "header-static-div": t }), cb = (t) => ({ "casino-ios-bottom-nav-bar": t }), Co = (t, o) => o.gameId, lb = (() => { 28468 class t { 28469 lobbyType = m.required(); 28470 containerInfo = m.required(); 28471 containerIndex = m.required(); 28472 swiperComponent = De(Ft); 28473 wiredSwiper; 28474 teardownSwiperEvents; 28475 alignIconRight; 28476 bingoRecentGames = []; 28477 casinoConfig; 28478 swiperOptions = { 28479 modules: [Ho], 28480 slidesPerView: 3, 28481 slidesPerGroup: 6, 28482 speed: 400, 28483 loop: !1, 28484 allowTouchMove: !1, 28485 pagination: !1, 28486 navigation: { 28487 nextEl: ".swiper-button-next", 28488 prevEl: ".swiper-button-prev" 28489 }, 28490 watchOverflow: !0, 28491 breakpoints: { 768: { 28492 slidesPerView: 6, 28493 slidesPerGroup: 6 28494 } } 28495 }; 28496 featureConfig; 28497 games = []; 28498 globalConfig; 28499 isCombinedCategories = !1; 28500 isCrossSaleIOS; 28501 isGamesWidgetPreButtonVisible; 28502 isNextButtonVisible; 28503 isPreButtonVisible; 28504 isSignPosting; 28505 isTouch; 28506 lang; 28507 maxScrollPosition; 28508 topValueForGYML; 28509 recentGamesCount = 0; 28510 recentGamesSubscription; 28511 recentStartIndex = 0; 28512 showAllButton = !1; 28513 staticGYML; 28514 trackingClass = ""; 28515 unfinishedGames = []; 28516 _unfinishedRPANDGYMLGameIds = []; 28517 get unfinishedRPANDGYMLGameIds() { 28518 return this._unfinishedRPANDGYMLGameIds; 28519 } 28520 set unfinishedRPANDGYMLGameIds(e) { 28521 this._unfinishedRPANDGYMLGameIds = e, this.updateHasSomeGymlGames(); 28522 } 28523 unfinishedRPANDGYMLGames = []; 28524 promotedGamesTitle = O("Promoted"); 28525 recentlyPlayedTitle = O("Recently Played"); 28526 gamesYouMightLikeTitle = O("Games You Might Like"); 28527 hasSomeGymlGames = O(!0); 28528 gymlSectionTitle = g(() => this.hasSomeGymlGames() ? this.gamesYouMightLikeTitle() : this.promotedGamesTitle()); 28529 hasRecentGames = O(!0); 28530 nonCombinedTitle = g(() => this.hasRecentGames() ? this.recentlyPlayedTitle() : this.gymlSectionTitle()); 28531 casinoManager = s(Ve); 28532 cdr = s(Ji); 28533 ngZone = s(bn); 28534 casinoIFrameOverlayService = s(cg); 28535 configProviderService = s(V); 28536 deviceService = s(J); 28537 elementRef = s(tt); 28538 recentGameService = s(at); 28539 gameCatalogService = s(Oe); 28540 unfinishedGamesService = s(_t); 28541 promotedGamesService = s(Ra); 28542 user = s(Je); 28543 gameBuilderService = s(ft); 28544 destroyRef = s(q); 28545 document = s(Ge); 28546 timerService = s(de); 28547 platform = s(X); 28548 renderer = s(lt); 28549 showFeatureGrid = O(!0); 28550 gameContainerType = g(() => Vt(this.containerInfo().type, this.containerInfo().viewType)); 28551 constructor() { 28552 Z(() => this.setIsTouch()), Z(() => { 28553 let e = this.swiperComponent()?.swiper; 28554 !e || e === this.wiredSwiper || (this.teardownSwiperEvents?.(), this.wiredSwiper = e, this.teardownSwiperEvents = this.wireSwiperEvents(e)); 28555 }), this.destroyRef.onDestroy(() => { 28556 this.teardownSwiperEvents?.(), this.teardownSwiperEvents = void 0, this.wiredSwiper = void 0; 28557 }); 28558 } 28559 wireSwiperEvents(e) { 28560 let n = () => { 28561 let u = e.slides; 28562 if (!u || u.length < 2) return; 28563 let v = u[1].offsetLeft - u[0].offsetLeft; 28564 v > 0 && this.renderer.setStyle(this.elementRef.nativeElement, "--rp-gyml-tile-pitch", `${v}px`, Hb.DashCase); 28565 }, i = () => this.ngZone.run(n), r = () => this.ngZone.run(() => { 28566 this.recentStartIndex = e.realIndex, this.isPreButtonVisible = e.isBeginning, this.isNextButtonVisible = e.isEnd; 28567 }); 28568 return n(), e.on("resize", i), e.on("slideChange", r), () => { 28569 e.off("resize", i), e.off("slideChange", r); 28570 }; 28571 } 28572 ngOnInit() { 28573 this.setRpGyml(), this.setIsTouch(); 28574 } 28575 ngAfterViewInit() { 28576 if (!this.platform.isBrowser) return; 28577 let e = this.document.getElementById("gymlId"); 28578 e && (this.maxScrollPosition = e.offsetLeft); 28579 } 28580 setIsTouch() { 28581 let e = this.deviceService.windowWidth(), n = this.deviceService.bodyWidth(); 28582 this.isTouch = !(e >= 768 || n >= 768); 28583 } 28584 setRpGyml() { 28585 this.featureConfig = this.configProviderService.provideFeaturesConfig(), this.globalConfig = this.configProviderService.provideGlobalConfig(), this.casinoConfig = this.configProviderService.provideCasinoConfig(), this.recentlyPlayedTitle.set(this.containerInfo().title ?? this.recentlyPlayedTitle()), this.gamesYouMightLikeTitle.set(this.containerInfo().gamesYouMightLikeTitle ?? this.gamesYouMightLikeTitle()), this.promotedGamesTitle.set(this.containerInfo().promotedGamesTitle ?? this.promotedGamesTitle()), this.setGamesOnInit(
28585), this.unfinishedGamesService.feedUnfinishedGamesData(), this.promotedGamesService.feedPromotedGamesData(), this.recentGamesSubscription = this.recentGameService.recentGamesFeedObservable.pipe(z(this.destroyRef)).subscribe(() => this.tryRender()), this.unfinishedGamesService.unfinishedGames$.pipe(z(this.destroyRef)).subscribe(() => this.tryRender()), this.promotedGamesService.promotedGames$.pipe(z(this.destroyRef)).subscribe(() => this.tryRender()), this.alignIconRight = this.casinoManager.IsFeatureEnabledForLobbyType(this.lobbyType(), this.featureConfig?.alignIconRight || []), this.isCrossSaleIOS = this.casinoIFrameOverlayService.isOverLayOnAProduct() && this.deviceService.isiOS, this.isSignPosting = this.casinoManager.IsFeatureEnabledForLobbyType(this.lobbyType(), this.featureConfig?.enableSignpostingSticker || []), this.trackingClass = `track_${this.containerInfo().id}`; 28586 } 28587 setGamesOnInit() { 28588 this.tryRender(); 28589 } 28590 getGymlGameIds() { 28591 let e = [], n = this.containerInfo().gymlGames || []; 28592 for (let i = 0; i < n.length; i++) e.push({ 28593 gameId: n[i].gameId, 28594 sticker: `sticker${i}`, 28595 name: n[i].name, 28596 provider: n[i].provider 28597 }); 28598 return e; 28599 } 28600 tryRender() { 28601 this.setUnfinishedRPAndGYML(this.unfinishedGamesService.getUnfinishedGames(), this.recentGameService.getrecentGames(), this.promotedGamesService.getPromotedGames(), this.bingoRecentGames, this.getGymlGameIds()); 28602 } 28603 setUnfinishedRPAndGYML(e, n, i, r, u) { 28604 this.unfinishedRPANDGYMLGameIds = this.mergeAllGames(e, n, i, r, u), this.processRecentGYMLGames(); 28605 } 28606 mergeAllGames(e, n, i, r, u) { 28607 let v = [], P = /* @__PURE__ */ new Set(), N = ($, me) => { 28608 for (let fe of $) if (!P.has(fe)) { 28609 P.add(fe); 28610 let { name: re, provider: Nt } = this.getFeedGameMetadata(fe, me); 28611 v.push({ 28612 gameId: fe, 28613 source: me, 28614 name: re, 28615 provider: Nt 28616 }); 28617 } 28618 }; 28619 N(e, be.Unfinished), N(n, be.Recent), N(i, be.Promoted), N(r, be.BingoRecent); 28620 for (let $ of u) P.has($.gameId) || (P.add($.gameId), v.push({ 28621 gameId: $.gameId, 28622 source: be.Gyml, 28623 sticker: $.sticker, 28624 name: $.name, 28625 provider: $.provider 28626 })); 28627 return v; 28628 } 28629 getFeedGameMetadata(e, n) { 28630 switch (n) { 28631 case be.Recent: return { 28632 name: this.recentGameService.getRecentGameName(e), 28633 provider: this.gameCatalogService.getGameProvider(e) 28634 }; 28635 case be.Unfinished: return { 28636 name: this.unfinishedGamesService.getUnfinishedGameName(e), 28637 provider: this.unfinishedGamesService.getUnfinishedGameProvider(e) 28638 }; 28639 case be.Promoted: return { 28640 name: this.promotedGamesService.getPromotedGameName(e), 28641 provider: this.promotedGamesService.getPromotedGameProvider(e) 28642 }; 28643 default: return {}; 28644 } 28645 } 28646 processRecentGYMLGames() { 28647 this.sliceGYMLLimitAndSetBaseGameCount(), this.setGames(), this.setIsCombinedCategories(); 28648 } 28649 sliceGYMLLimitAndSetBaseGameCount() { 28650 let e = this.unfinishedRPANDGYMLGameIds.filter((i) => wa(i.source)); 28651 e && (this.recentGamesCount = e.length, this.recentStartIndex = 0); 28652 let n = this.unfinishedRPANDGYMLGameIds.filter((i) => !wa(i.source)); 28653 n = n.slice(0, this.casinoConfig.gymlLimit), this.unfinishedRPANDGYMLGameIds = [...e, ...n]; 28654 } 28655 getStickersForSource(e) { 28656 let n = this.containerInfo(), i = this.globalConfig?.messages?.GameStickerStyle ?? ""; 28657 return e === be.Unfinished ? [{ 28658 key: "unfinished", 28659 name: n.unfinishedStickerLabel ?? "UNFINISHED", 28660 css: i 28661 }] : []; 28662 } 28663 getPromotedLabel(e) { 28664 return e !== be.Promoted ? void 0 : this.containerInfo().promotedStickerLabel ?? "PROMOTED"; 28665 } 28666 updateHasSomeGymlGames() { 28667 let e = this.unfinishedRPANDGYMLGameIds.filter((n) => !wa(n.source)); 28668 this.hasSomeGymlGames.set(e.length === 0 || e.some((n) => n.source === be.Gyml)); 28669 } 28670 buildProviderLookup() { 28671 let e = this.containerInfo(), n = /* @__PURE__ */ new Map(); 28672 for (let i of [...e.games ?? [], ...e.gymlGames ?? []]) i?.gameId && i.provider && n.set(i.gameId, i.provider); 28673 return n; 28674 } 28675 setGames() { 28676 if (this.unfinishedRPANDGYMLGameIds && this.unfinishedRPANDGYMLGameIds.length > 0) { 28677 let e = [], n = this.buildProviderLookup(); 28678 for (let i of this.unfinishedRPANDGYMLGameIds) { 28679 let r = mi(i.gameId, { 28680 isRecentlyPlayed: this.user.isAuthenticated && wa(i.source), 28681 isUnfinishedGame: i.source === be.Unfinished, 28682 name: i.name, 28683 provider: i.provider ?? n.get(i.gameId),
28684 stickers: this.getStickersForSource(i.source), 28685 gameSource: i.source, 28686 promotedLabel: this.getPromotedLabel(i.source) 28687 }), u = this.gameBuilderService.buildGame(r); 28688 u && e.push(u); 28689 } 28690 this.setDefaultLMTGameIcons(e); 28691 } else this.unfinishedRPANDGYMLGameIds && this.unfinishedRPANDGYMLGameIds.length === 0 && (this.games = [], this.unfinishedRPANDGYMLGames = []); 28692 } 28693 setDefaultLMTGameIcons(e) { 28694 this.games = e, this.hasRecentGames.set(e.some((n) => n.isRecentlyPlayed)), this.unfinishedRPANDGYMLGames = [], e && e.length > 0 && (this.unfinishedRPANDGYMLGames = this.games, this.isPreButtonVisible = !0, this.isNextButtonVisible = this.unfinishedRPANDGYMLGames.length <= 6); 28695 } 28696 setIsCombinedCategories() { 28697 this.showFeatureGrid.set(!1); 28698 let e = this.casinoConfig.recentGamesCountLimit; 28699 if (this.unfinishedRPANDGYMLGames && this.unfinishedRPANDGYMLGames.length > 0) { 28700 let n = this.unfinishedRPANDGYMLGames.filter((r) => r.isRecentlyPlayed), i = this.unfinishedRPANDGYMLGames.filter((r) => !r.isRecentlyPlayed); 28701 this.evaluateIsCombined(n, i) ? this.isCombinedCategories = !0 : (this.isCombinedCategories = !1, n.length === 0 && i.length > 0 ? (this.unfinishedRPANDGYMLGames = i, this.games = this.unfinishedRPANDGYMLGames, this.hasRecentGames.set(!1)) : (n.length >= e || n.length > 0) && (this.unfinishedRPANDGYMLGames = n, this.games = this.unfinishedRPANDGYMLGames, this.hasRecentGames.set(!0))); 28702 } 28703 this.cdr.detectChanges(), this.showFeatureGrid.set(!0); 28704 } 28705 evaluateIsCombined(e, n) { 28706 let i = this.casinoConfig.recentGamesCountLimit; 28707 return !(!e || e && e.length === 0 || !n || n && n.length === 0 || e && e.length > 0 && e.length > i); 28708 } 28709 scrollGYML() { 28710 this.elementRef.nativeElement.querySelectorAll(".scrollable-games")[0].scrollLeft >= this.maxScrollPosition ? (this.staticGYML = !0, this.timerService.setTimeout(() => { 28711 let e = this.document.getElementById("sticky-container"); 28712 e && this.renderer.setAttribute(e, "position", "relative"); 28713 }, 500)) : this.elementRef.nativeElement.querySelectorAll(".scrollable-games")[0].scrollLeft < this.maxScrollPosition && (this.staticGYML = !1); 28714 } 28715 setSubCategoryStyle() { 28716 return this.isTouch ? "scrollable-games" : "unscrollable-games"; 28717 } 28718 getRPGymlTrackingId(e) { 28719 let n = "gameIdentifier_"; 28720 return e?.isRecentlyPlayed ? `${n}recentlyplayed` : `${n}gymlgames`; 28721 } 28722 gameContainerTypeFor(e) { 28723 return cd(e, this.containerInfo().type, this.containerInfo().viewType); 28724 } 28725 gameSectionFor(e) { 28726 return ld(e, { 28727 recentlyPlayedTitle: this.recentlyPlayedTitle(), 28728 promotedGamesTitle: this.promotedGamesTitle(), 28729 gamesYouMightLikeTitle: this.gamesYouMightLikeTitle() 28730 }, this.nonCombinedTitle()); 28731 } 28732 ngOnDestroy() { 28733 this.recentGamesSubscription && this.recentGamesSubscription.unsubscribe(); 28734 } 28735 static ɵfac = function(e) { 28736 return new (e || t)(); 28737 }; 28738 static ɵcmp = I({ 28739 type: t, 28740 selectors: [["cw-rp-gyml"]], 28741 viewQuery: function(e, n) { 28742 e & 1 && He(n.swiperComponent, Ft, 5), e & 2 && Ue(); 28743 }, 28744 inputs: { 28745 lobbyType: [1, "lobbyType"], 28746 containerInfo: [1, "containerInfo"], 28747 containerIndex: [1, "containerIndex"] 28748 }, 28749 decls: 2, 28750 vars: 2, 28751 consts: [ 28752 [ 28753 "id", 28754 "sticky-container", 28755 3, 28756 "class", 28757 "ngClass" 28758 ], 28759 [ 28760 "id", 28761 "separate-container", 28762 3, 28763 "class", 28764 "ngClass" 28765 ], 28766 [ 28767 "id", 28768 "sticky-container", 28769 3, 28770 "ngClass" 28771 ], 28772 [ 28773 3, 28774 "scroll", 28775 "ngClass" 28776 ], 28777 [3, "ngClass"], 28778 [1, "base-category"], 28779 [1, "casino-allGames"], 28780 [1, "gameContainers"], 28781 [ 28782 3, 28783 "iconName", 28784 "classes", 28785 "title", 28786 "showViewAllButton" 28787 ], 28788 [ 28789 1, 28790 "casino-rcntly-gyml-game-touch", 28791 3, 28792 "id", 28793 "hidden" 28794 ], 28795 [ 28796 1, 28797 "gameContainers", 28798 "mrgn-lft-cls" 28799 ], 28800 [ 28801 "cwGameImpression", 28802 "", 28803 3, 28804 "game", 28805 "layoutId", 28806 "containerId", 28807 "containerIndex", 28808 "gameIndex", 28809 "containerTitle", 28810 "priority", 28811 "containerType" 28812 ], 28813 [1, "rp-gyml-pinned-headers"], 28814 [ 28815 3, 28816 "swiperOptions", 28817 "showPagination", 28818 "inverse", 28819 "arrowSize" 28820 ], 28821 [ 28822 1, 28823 "swiper-slide", 28824 "game" 28825 ], 28826 [ 28827 1, 28828 "game", 28829 3, 28830 "id" 28831 ], 28832 [ 28833 "cwGameImpression", 28834 "", 28835 3, 28836 "game", 28837 "layoutId", 28838 "containerId", 28839 "casino-recentlyPromo", 28840 "containerIndex", 28841 "gameIndex", 28842 "containerTitle", 28843 "priority", 28844 "containerType" 28845 ], 28846 [ 28847 "cwGameImpression", 28848 "", 28849 3, 28850 "casino-recentlyPromo", 28851 "game", 28852 "layoutId", 28853 "containerId", 28854 "containerIndex", 28855 "gameIndex", 28856 "containerTitle", 28857 "priority", 28858 "containerType" 28859 ], 28860 [ 28861 "id", 28862 "separate-container", 28863 3, 28864 "ngClass" 28865 ], 28866 [ 28867 3, 28868 "iconName", 28869 "title", 28870 "showViewAllButton" 28871 ], 28872 [1, "scrollable-games"], 28873 [ 28874 3, 28875 "layoutId", 28876 "container", 28877 "games", 28878 "isTouch", 28879 "type", 28880 "containerIndex" 28881 ] 28882 ], 28883 template: function(e, n) { 28884 e & 1 && (f(0, ON, 4, 12, "div", 0), f(1, _N, 4, 13, "div", 1)), e & 2 && (h(n.isCombinedCategories ? 0 : -1), a(), h(!n.isCombinedCategories && n.games.length > 0 ? 1 : -1)); 28885 }, 28886 dependencies: [ 28887 Tn, 28888 $t, 28889 Ft, 28890 At, 28891 ob, 28892 ln 28893 ], 28894 styles: ["#rpGYMLSection[_nghost-%COMP%] #sticky-container .swiper .swiper-button-prev, #rpGYMLSection [_nghost-%COMP%] #sticky-container .swiper .swiper-button-prev, #rpGYMLSection[_nghost-%COMP%] #sticky-container .swiper .swiper-button-next, #rpGYMLSection [_nghost-%COMP%] #sticky-container .swiper .swiper-button-next{background-color:var(--%NS%semantic-color-surface-container-highest-base)!important;color:var(--%NS%semantic-color-on-surface-base)!important;top:50px;bottom:0;margin-top:auto;margin-bottom:auto;z-index:3}@media(hover:hover){#rpGYMLSection[_nghost-%COMP%] #sticky-container .swiper .swiper-button-prev:hover, #rpGYMLSection [_nghost-%COMP%] #sticky-container .swiper .swiper-button-prev:hover, #rpGYMLSection[_nghost-%COMP%] #sticky-container .swiper .swiper-button-next:hover, #rpGYMLSection [_nghost-%COMP%] #sticky-container .swiper .swiper-button-next:hover{background-color:var(--%NS%semantic-color-surface-container-highest-hover)!important}}#rpGYMLSection[_nghost-%COMP%] #sticky-container .swiper .swiper-button-prev:active, #rpGYMLSection [_nghost-%COMP%] #sticky-container .swiper .swiper-button-prev:active, #rpGYMLSection[_nghost-%COMP%] #sticky-container .swiper .swiper-button-next:active, #rpGYMLSection [_nghost-%COMP%] #sticky-container .swiper .swiper-button-next:active{background-color:var(--%NS%semantic-color-surface-container-highest-active)!important}#rpGYMLSection[_nghost-%COMP%] #sticky-container .rp-gyml-pinned-headers, #rpGYMLSection [_nghost-%COMP%] #sticky-container .rp-gyml-pinned-headers{position:absolute;z-index:1;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(var(--%NS%rp-gyml-tile-pitch, 200px),auto);align-items:baseline;margin:18px 0 0 6px}#rpGYMLSection[_nghost-%COMP%] #sticky-container .rp-gyml-pinned-headers .non-touch-sticky-header-rp-gyml, #rpGYMLSection [_nghost-%COMP%] #sticky-container .rp-gyml-pinned-headers .non-touch-sticky-header-rp-gyml{position:static;margin:0}"], 28895 changeDetection: 1 28896 }); 28897 } 28898 return t; 28899 })(), db = (() => { 28900 class t { 28901 tiles = Array.from({ length: 24 }); 28902 static ɵfac = function(e) { 28903 return new (e || t)(); 28904 }; 28905 static ɵcmp = I({ 28906 type: t, 28907 selectors: [["cw-rp-gyml-skeleton"]], 28908 decls: 5, 28909 vars: 0, 28910 consts: [ 28911 [1, "sk"], 28912 [1, "sk__title"], 28913 [1, "sk__tiles"], 28914 [1, "sk__tile"] 28915 ], 28916 template: function(e, n) { 28917 e & 1 && (H(0, "div", 0), Pe(1, "div", 1), H(2, "div", 2), D(3, kN, 1, 0, "div", 3, Ze), K()()), e & 2 && (a(3), R(n.tiles)); 28918 }, 28919 styles: ["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 1 auto;width:100%;min-height:0;box-sizing:border-box}.sk[_ngcontent-%COMP%]{box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;width:100%;align-self:center;width:var(--%NS%cls-content-w)}.sk__title[_ngcontent-%COMP%]{width:220px;height:20px;margin-block:var(--%NS%semantic-spacing-container-padding-2xl) 0;flex:0 0 auto;border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}.sk__tiles[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(var(--%NS%cols, 2),1fr);grid-auto-rows:var(--%NS%cls-row-h);gap:0;flex:0 0 auto;max-height:calc(var(--%NS%reserved-rows, 1) * var(--%NS%cls-row-h) + (var(--%NS%reserved-rows, 1) - 1) * var(--%NS%cls-gutter, 0px));overflow:hidden}
28919.sk__tile[_ngcontent-%COMP%]{margin:var(--%NS%semantic-spacing-container-padding-sm);border-radius:var(--%NS%semantic-radius-semi-rounded-md);background:var(--%NS%semantic-color-surface-container-high-base)}"] 28920 }); 28921 } 28922 return t; 28923 })(), gb = (() => { 28924 class t { 28925 lobbyType = m.required(); 28926 containerMetadata = m.required(); 28927 containerIndex = m.required(); 28928 placeholderViewType = g(() => xi("rp-gyml", this.containerMetadata().viewType)); 28929 deviceService = s(J); 28930 placeholderRows = g(() => Mi(this.placeholderViewType())); 28931 placeholderLadder = g(() => Oi(this.placeholderViewType(), this.deviceService.isTouch)); 28932 configProviderService = s(V); 28933 user = s(Je); 28934 recentGamesService = s(at); 28935 containerService = s(ie); 28936 initialGameCount = g(() => this.containerService.getConfigForGamesToFetch(this.containerMetadata())); 28937 placeholderGameCount = g(() => Si(this.placeholderViewType(), () => this.initialGameCount())); 28938 destroyRef = s(q); 28939 containerInfo = Q(this.containerService.container$); 28940 hideRpGyml = O(!1); 28941 isLoading = g(() => !this.containerInfo() && !this.hideRpGyml() && !this.containerService.hasError()); 28942 ngOnInit() { 28943 this.containerMetadata() && this.containerService.fetchAndSetContainer(this.containerMetadata()), this.user.isAuthenticated && this.recentGamesService.setRecentGames(), this.user.events.pipe(We((e) => e instanceof bl), z(this.destroyRef)).subscribe((e) => { 28944 e.diff.has("isAuthenticated") && (this.user.isAuthenticated && this.recentGamesService.setRecentGames(), this.setRpGyml()); 28945 }), this.setRpGyml(); 28946 } 28947 setRpGyml() { 28948 let e = this.configProviderService.provideFeaturesConfig(); 28949 this.hideRpGyml.set(this.user.isAuthenticated ? !1 : !e.enablePreLoginRecentlyPlayed); 28950 } 28951 static ɵfac = function(e) { 28952 return new (e || t)(); 28953 }; 28954 static ɵcmp = I({ 28955 type: t, 28956 selectors: [["cw-rp-gyml-section"]], 28957 inputs: { 28958 lobbyType: [1, "lobbyType"], 28959 containerMetadata: [1, "containerMetadata"], 28960 containerIndex: [1, "containerIndex"] 28961 }, 28962 features: [ce([ie])], 28963 decls: 2, 28964 vars: 1, 28965 consts: [ 28966 [ 28967 "id", 28968 "rpGYMLSection", 28969 1, 28970 "casino-rpPositionConfiguration" 28971 ], 28972 [ 28973 3, 28974 "containerId", 28975 "rows", 28976 "ladder", 28977 "gameCount" 28978 ], 28979 [ 28980 3, 28981 "lobbyType", 28982 "containerInfo", 28983 "containerIndex" 28984 ] 28985 ], 28986 template: function(e, n) { 28987 e & 1 && f(0, IN, 2, 3, "div", 0)(1, TN, 2, 4, "cw-lobby-container-placeholder", 1), e & 2 && h(n.containerInfo() && !n.hideRpGyml() ? 0 : n.isLoading() ? 1 : -1); 28988 }, 28989 dependencies: [ 28990 lb, 28991 st, 28992 db 28993 ], 28994 encapsulation: 2, 28995 changeDetection: 1 28996 }); 28997 } 28998 return t; 28999 })(), mb = (t, o) => ({ 29000 borderColor: t, 29001 color: o 29002 }), pb = (() => { 29003 class t { 29004 deviceService = s(J); 29005 games = m.required(); 29006 emptyStateMessage = m(""); 29007 layoutId = m(""); 29008 widgetStyles = m({}); 29009 containerId = m(""); 29010 containerTitle = m(""); 29011 containerType = m(""); 29012 viewType = U.SingleRow; 29013 static ɵfac = function(e) { 29014 return new (e || t)(); 29015 }; 29016 static ɵcmp = I({ 29017 type: t, 29018 selectors: [["cw-rp-fav-widget-scroll-row"]], 29019 inputs: { 29020 games: [1, "games"], 29021 emptyStateMessage: [1, "emptyStateMessage"], 29022 layoutId: [1, "layoutId"], 29023 widgetStyles: [1, "widgetStyles"], 29024 containerId: [1, "containerId"], 29025 containerTitle: [1, "containerTitle"], 29026 containerType: [1, "containerType"] 29027 }, 29028 decls: 3, 29029 vars: 14, 29030 consts: [ 29031 [1, "base-category"], 29032 [ 29033 "id", 29034 "sticky-container", 29035 1, 29036 "scroll-container", 29037 "sticky-container", 29038 "casino-lobby-width-gametile" 29039 ], 29040 [ 29041 3, 29042 "games", 29043 "viewType", 29044 "enableCarousel", 29045 "layoutId", 29046 "containerIndex", 29047 "containerId", 29048 "containerTitle", 29049 "containerType", 29050 "isRpFavWidget", 29051 "emptyStateMessage", 29052 "emptyStateStyles" 29053 ] 29054 ], 29055 template: function(e, n) { 29056 e & 1 && (l(0, "div", 0)(1, "div", 1), b(2, "cw-feature-grid", 2), d()()), e & 2 && (a(2), p("games", n.games())("viewType", n.viewType)("enableCarousel", !0)("layoutId", n.layoutId())("containerIndex", 0)("containerId", n.containerId())("containerTitle", n.containerTitle())("containerType", n.containerType())("isRpFavWidget", !0)("emptyStateMessage", n.emptyStateMessage())("emptyStateStyles", Xe(11, mb, n.widgetStyles().frameColor, n.widgetStyles().defaultMsgTextColor))); 29057 }, 29058 dependencies: [dn], 29059 styles: ["[_nghost-%COMP%]{display:block}"] 29060 }); 29061 } 29062 return t; 29063 })(), ub = (() => { 29064 class t { 29065 activeTab = m.required(); 29066 showRpTab = m(!0); 29067 showFavTab = m(!0); 29068 labels = m.required(); 29069 styles = m({}); 29070 tabChanged = j(); 29071 closed = j(); 29072 activeColor = g(() => this.styles()?.activeToggleColor || void 0); 29073 inactiveColor = g(() => this.styles()?.inactiveToggleColor || void 0); 29074 activeTextColor = g(() => this.styles()?.activeToggleTextColor || void 0); 29075 inactiveTextColor = g(() => this.styles()?.inactiveToggleTextColor || void 0); 29076 rpIcon = g(() => this.styles()?.rpWidgetIcon || ""); 29077 favIcon = g(() => this.styles()?.favWidgetIcon || ""); 29078 rpChevronKind = g(() => this.activeTab() === "rp" ? "down" : "up"); 29079 favChevronKind = g(() => this.activeTab() === "fav" ? "down" : "up"); 29080 static ɵfac = function(e) { 29081 return new (e || t)(); 29082 }; 29083 static ɵcmp = I({ 29084 type: t, 29085 selectors: [["cw-rp-fav-widget-toggle"]], 29086 hostVars: 2, 29087 hostBindings: function(e, n) { 29088 e & 2 && k("width", "100%"); 29089 }, 29090 inputs: { 29091 activeTab: [1, "activeTab"], 29092 showRpTab: [1, "showRpTab"], 29093 showFavTab: [1, "showFavTab"], 29094 labels: [1, "labels"], 29095 styles: [1, "styles"] 29096 }, 29097 outputs: { 29098 tabChanged: "tabChanged", 29099 closed: "closed" 29100 }, 29101 decls: 4, 29102 vars: 3, 29103 consts: [ 29104 [ 29105 "role", 29106 "tablist", 29107 1, 29108 "casino-rcp-buttons" 29109 ], 29110 [ 29111 "id", 29112 "rp-tab", 29113 "ds-button", 29114 "", 29115 "size", 29116 "medium", 29117 "role", 29118 "tab", 29119 1, 29120 "rcp-widget-btn", 29121 3, 29122 "kind", 29123 "inverse" 29124 ], 29125 [ 29126 "id", 29127 "fav-tab", 29128 "ds-button", 29129 "", 29130 "size", 29131 "medium", 29132 "role", 29133 "tab", 29134 1, 29135 "rcp-widget-btn", 29136 3, 29137 "kind", 29138 "inverse" 29139 ], 29140 [ 29141 "type", 29142 "button", 29143 "aria-label", 29144 "Close", 29145 1, 29146 "theme-close", 29147 3, 29148 "color" 29149 ], 29150 [ 29151 "id", 29152 "rp-tab", 29153 "ds-button", 29154 "", 29155 "size", 29156 "medium", 29157 "role", 29158 "tab", 29159 1, 29160 "rcp-widget-btn", 29161 3, 29162 "click", 29163 "kind", 29164 "inverse" 29165 ], 29166 [ 29167 "slot", 29168 "start", 29169 "aria-hidden", 29170 "true", 29171 3, 29172 "class" 29173 ], 29174 [ 29175 "slot", 29176 "end", 29177 "aria-hidden", 29178 "true", 29179 3, 29180 "kind" 29181 ], 29182 [ 29183 "slot", 29184 "start", 29185 "aria-hidden", 29186 "true" 29187 ], 29188 [ 29189 "id", 29190 "fav-tab", 29191 "ds-button", 29192 "", 29193 "size", 29194 "medium", 29195 "role", 29196 "tab", 29197 1, 29198 "rcp-widget-btn", 29199 3, 29200 "click", 29201 "kind", 29202 "inverse" 29203 ], 29204 [ 29205 "type", 29206 "button", 29207 "aria-label", 29208 "Close", 29209 1, 29210 "theme-close", 29211 3, 29212 "click" 29213 ] 29214 ], 29215 template: function(e, n) { 29216 e & 1 && (l(0, "div", 0), f(1, LN, 4, 8, "button", 1), f(2, EN, 4, 8, "button", 2), f(3, AN, 1, 2, "button", 3), d()), e & 2 && (a(), h(n.showRpTab() ? 1 : -1), a(), h(n.showFavTab() ? 2 : -1), a(), h(n.activeTab() ? 3 : -1)); 29217 }, 29218 dependencies: [ke, Rg], 29219 styles: ["@charset \"UTF-8\";.casino-rcp-buttons[_ngcontent-%COMP%]{display:flex;align-items:center;width:100%;gap:var(--%NS%semantic-spacing-inline-sm)}.theme-close[_ngcontent-%COMP%]{appearance:none;margin-left:auto;margin-right:.8rem;padding:0;border:0;background:none;cursor:pointer;font-size:1.25rem;line-height:1.25rem;color:var(--%NS%semantic-color-primary-base)}.theme-close[_ngcontent-%COMP%]:before{vertical-align:middle;font-weight:700}"] 29220 }); 29221 } 29222 return t; 29223 })(), Wi = 10, hb = "PROMOTED", qc = (() => { 29224 class t { 29225 userService = s(Ca); 29226 layoutService = s(nn); 29227 recentGamesService = s(at); 29228 unfinishedGamesService = s(_t); 29229 promotedGamesService = s(Ra); 29230 favouriteService = s(Re); 29231 gymlService = s(_a); 29232 configProvider = s(V); 29233 casinoManager = s(Ve); 29234 gameBuilderService = s(ft); 29235 destroyRef = s(q); 29236 _activeTab = O(null); 29237 activeTab = this._activeTab.asReadonly(); 29238 isExpanded = g(() => this._activeTab() != null); 29239 _isAuthenticated = O(!1); 29240 layout = Q(this.layoutService.layout$); 29241 widgetEnabled = g(() => { 29242 let e = this.layout()?.id; 29243 if (!e) return !1; 29244 let n = this.configProvider.provideWidgetConfig()?.isRpFavWidgetEnabled; 29245 return n ? this.casinoManager.IsFeatureEnabledForLobbyType(e, n) === !0 : !1; 29246 }); 29247 showFavTab = g(() => this.configProvider.provideWidgetConfig()?.displayFavInRPFavWidget ?? !0 ? this.favGames().length > 0 || this.gymlGames().length > 0 : !1); 29248 showRpTab = g(() => this.configProvider.provideWidgetConfig()?.displayRecentlyPlayedButton ? this.rpGames().length > 0 : !1); 29249 isStickyEnabled = g(() => { 29250 let e = this.layout()?.id; 29251 if (!e) return !1; 29252 let n = this.configProvider.provideWidgetConfig()?.isStickyEnabledForWidget; 29253 return n ? this.casinoManager.IsFeatureEnabledForLobbyType(e, n) === !0 : !1; 29254 }); 29255 recentGameIds = Q(this.recentGamesService.recentGamesFeedObservable, { initialValue: [] }); 29256 unfinishedGamesData = Q(this.unfinishedGamesService.unfinishedGamesData$, { initialValue: [] }); 29257 unfinishedGameIds = g(() => this.unfinishedGamesData().map((e) => e.gameId)); 29258 promotedGameIds = Q(this.promotedGamesService.promotedGames$, { initialValue: [] }); 29259 rpGames = g(() => { 29260 let e = this.recentGameIds(), n = this.unfinishedGameIds(), i = this.promotedGameIds(), r = (this.gymlData() ?? []).map((re) => re.gameId), u = [ 29261 ...n, 29262 ...e, 29263 ...i 29264 ], v = /* @__PURE__ */ new Set(), P = u.filter((re) => v.has(re) ? !1 : (v.add(re), !0)); 29265 if (P.length < Wi) { 29266 for (let re of r) if (v.has(re) || (P.push(re), v.add(re)), P.length >= Wi) break; 29267 } 29268 let N = new Map((this.gymlData() ?? []).map((re) => [re.gameId, re])), $ = new Map(this.unfinishedGamesData().map((re) => [re.gameId, re])), me = new Set(i), fe = this.configProvider.globalConfig?.messages?.WidgetRecommended ?? hb; 29269 return P.slice(0, Wi).map((re) => { 29270 let Nt = $.get(re), Rn = N.get(re); 29271 return { 29272 gameId: re, 29273 name: this.recentGamesService.getRecentGameName(re) ?? Nt?.name ?? Rn?.name, 29274 provider: Nt?.provider ?? this.recentGamesService.getRecentGameProvider(re) ?? this.promotedGamesService.getPromotedGameProvider(re) ?? Rn?.provider, 29275 gameSource: me.has(re) ? be.Promoted : void 0, 29276 promotedLabel: me.has(re) ? fe : void 0 29277 }; 29278 }); 29279 }); 29280 favGames = g(() => this.favouriteService.favourites().map((e) => ({ 29281 gameId: e.gameId, 29282 name: e.name, 29283 provider: e.provider 29284 }))); 29285 zeroRecentGames = g(() => { 29286 let e = this.recentGameIds(), n = this.unfinishedGameIds(), i = this.promotedGameIds(); 29287 return e.length === 0 && n.length === 0 && i.length === 0; 29288 }); 29289 zeroFavourites = g(() => this.favGames().length === 0); 29290 gymlData = Q(this.gymlService.gyml$, { initialValue: null }); 29291 gymlGames = g(() => { 29292 let e = this.gymlData(); 29293 return e ? e.slice(0, Wi).map((n) => ({ 29294 gameId: n.gameId, 29295 name: n.name, 29296 provider: n.provider 29297 })) : []; 29298 }); 29299 isVisible = g(() => this.widgetEnabled() && this._isAuthenticated() && (this.rpGames().length > 0 || this.favGames().length > 0)); 29300 rpGamesEnriched = g(() => this.gameBuilderService.buildGameList(this.rpGames())); 29301 favGamesEnriched = g(() => { 29302 let e = this.favGames(); 29303 return e.length === 0 ? this.gameBuilderService.buildGameList(this.gymlGames()) : this.gameBuilderService.buildGameList(e); 29304 }); 29305 displayedGames = g(() => { 29306 let e = this._activeTab();
29307 return e === Sn.FAV && this.showFavTab() ? this.favGamesEnriched() : e === Sn.RP ? this.rpGamesEnriched() : []; 29308 }); 29309 isGymlMode = g(() => this._activeTab() === Sn.FAV && this.showFavTab() && this.favGames().length === 0 && this.gymlGames().length > 0); 29310 labels = g(() => { 29311 let e = this.configProvider.globalConfig?.messages; 29312 return e ? { 29313 rpTabLabel: e.WidgetRecentlyPlayed || Hn.rpTabLabel, 29314 favTabLabel: e.WidgetFavourites || Hn.favTabLabel, 29315 emptyRpMessage: e.WidgetnoRecentGamesIcon || Hn.emptyRpMessage, 29316 emptyFavMessage: e.WidgetnoFavouritesIcon || Hn.emptyFavMessage 29317 } : Hn; 29318 }); 29319 emptyStateMessage = g(() => { 29320 let e = this._activeTab(), n = this.labels(); 29321 return e === Sn.RP && this.zeroRecentGames() ? n.emptyRpMessage : e === Sn.FAV && this.zeroFavourites() ? n.emptyFavMessage : ""; 29322 }); 29323 widgetStyles = g(() => { 29324 let e = this.configProvider.globalConfig?.messages; 29325 return e ? { 29326 backgroundColor: e.WidgetBackgroundColor || void 0, 29327 backgroundTransparent: e.rcpWidgetBackgroundTrans || void 0, 29328 activeToggleColor: e.WidgetActiveBtnBGColor || void 0, 29329 activeToggleTextColor: e.WidgetActiveTxtColor || void 0, 29330 inactiveToggleColor: e.WidgetInActiveBtnBGColor || void 0, 29331 inactiveToggleTextColor: e.WidgetInActiveTxtColor || void 0, 29332 frameColor: e.WidgetframeClr || void 0, 29333 defaultMsgTextColor: e.WidgetDefaultMsgTxtColor || e.rcpWidgetDefaultMsgTxtColor || void 0, 29334 rpWidgetIcon: e.rcpWidgeticon || void 0, 29335 favWidgetIcon: e.rcpFavWidgeticon || void 0 29336 } : {}; 29337 }); 29338 constructor() { 29339 this.syncAuthStateAndRefresh(), this.userService.authenticated$.pipe(z(this.destroyRef)).subscribe(() => this.syncAuthStateAndRefresh()); 29340 } 29341 syncAuthStateAndRefresh() { 29342 this._isAuthenticated.set(this.userService.isAuthenticated), this.userService.isAuthenticated && this.refreshData(); 29343 } 29344 setActiveTab(e) { 29345 if (this._activeTab() === e) { 29346 this._activeTab.set(null); 29347 return; 29348 } 29349 this._activeTab.set(e); 29350 } 29351 closeActiveTab() { 29352 this._activeTab.set(null); 29353 } 29354 refreshData() { 29355 this.recentGamesService.setRecentGames(), this.unfinishedGamesService.feedUnfinishedGamesData(), this.promotedGamesService.feedPromotedGamesData(), this.favouriteService.ensureFavouritesLoaded(), this.gymlService.feedGymlData(); 29356 } 29357 static ɵfac = function(e) { 29358 return new (e || t)(); 29359 }; 29360 static ɵprov = A({ 29361 token: t, 29362 factory: t.ɵfac, 29363 providedIn: "root" 29364 }); 29365 } 29366 return t; 29367 })(), fb = "casino widgets", Jc = { 29368 RP: "1", 29369 FAV: "2" 29370 }, Yc = { 29371 RP: "recently played", 29372 FAV: "favourites" 29373 }, yo = { 29374 EXPAND: "expand", 29375 COLLAPSE: "collapse", 29376 CLOSE: "close" 29377 }, Kc = { 29378 RP: "recently played widget", 29379 FAV: "favourite widget" 29380 }, Qc = { 29381 RP: { 29382 containerId: "rpcontainer", 29383 containerTitle: "recentlyplayed", 29384 containerType: "recentlyplayed | grid" 29385 }, 29386 FAV: { 29387 containerId: "favourites", 29388 containerTitle: "favourites", 29389 containerType: "favourites | grid" 29390 } 29391 }, vb = (() => { 29392 class t { 29393 widgetService = s(qc); 29394 layoutService = s(nn); 29395 lobbyRouteService = s(ir); 29396 trackingAdapter = s(we); 29397 layoutId = g(() => this.layoutService.currentLayout()?.id ?? ""); 29398 rpContainer = Qc.RP; 29399 favContainer = Qc.FAV; 29400 onTabChange(e) { 29401 let n = this.widgetService.activeTab(); 29402 this.widgetService.setActiveTab(e); 29403 let i = n === e ? yo.COLLAPSE : yo.EXPAND; 29404 this.trackTabEvent(e, i); 29405 } 29406 onClose() { 29407 let e = this.widgetService.activeTab(); 29408 this.widgetService.closeActiveTab(), this.trackTabEvent(e, yo.CLOSE); 29409 } 29410 trackTabEvent(e, n) { 29411 if (!e) return; 29412 let i = e === Sn.FAV, r = i ? Kc.FAV : Kc.RP, u = i ? Yc.FAV : Yc.RP, v = i ? Jc.FAV : Jc.RP, P = i ? se.FavouriteWidget : se.RecentlyPlayedWidget; 29413 this.trackWidgetEvent(P, n, r, u, v); 29414 } 29415 trackWidgetEvent(e, n, i, r, u) { 29416 this.trackingAdapter.trigger({ 29417 name: e, 29418 data: { 29419 [M.ComponentCategoryEvent]: fb, 29420 [M.ComponentLabelEvent]: i, 29421 [M.ComponentActionEvent]: n, 29422 [M.ComponentPositionEvent]: B.NOT_APPLICABLE, 29423 [M.ComponentLocationEvent]: this.lobbyRouteService.params().subnavId || this.layoutId(), 29424 [M.ComponentEventDetails]: r, 29425 [M.ComponentUrlClicked]: B.NOT_APPLICABLE, 29426 [M.ComponentContentPosition]: u, 29427 [M.ComponentCategoryType]: this.layoutId() 29428 } 29429 }); 29430 } 29431 static ɵfac = function(e) { 29432 return new (e || t)(); 29433 }; 29434 static ɵcmp = I({ 29435 type: t, 29436 selectors: [["cw-rp-fav-widget"]], 29437 decls: 1, 29438 vars: 1, 29439 consts: [ 29440 [ 29441 "id", 29442 "widgettoggle", 29443 1, 29444 "casino-rcp-widget" 29445 ], 29446 [ 29447 "id", 29448 "rpfavWidget", 29449 1, 29450 "rcp-btn" 29451 ], 29452 [ 29453 3, 29454 "tabChanged", 29455 "closed", 29456 "activeTab", 29457 "showRpTab", 29458 "showFavTab", 29459 "labels", 29460 "styles" 29461 ], 29462 [ 29463 "id", 29464 "rpfavWidget_rcp_gyml", 29465 "role", 29466 "tabpanel", 29467 "aria-labelledby", 29468 "rp-tab", 29469 1, 29470 "casino-rcp-container" 29471 ], 29472 [ 29473 3, 29474 "games", 29475 "emptyStateMessage", 29476 "widgetStyles", 29477 "layoutId", 29478 "containerId", 29479 "containerTitle", 29480 "containerType" 29481 ], 29482 [ 29483 "id", 29484 "rpfavWidget_fav_gyml", 29485 "role", 29486 "tabpanel", 29487 "aria-labelledby", 29488 "fav-tab", 29489 1, 29490 "casino-fav-container" 29491 ] 29492 ], 29493 template: function(e, n) { 29494 e & 1 && f(0, RN, 7, 33, "div", 0), e & 2 && h(n.widgetService.isVisible() ? 0 : -1); 29495 }, 29496 dependencies: [ub, pb], 29497 encapsulation: 2 29498 }); 29499 } 29500 return t; 29501 })(), Xc = (() => { 29502 class t { 29503 trackingAdapter = s(we); 29504 toTabLabel(e) { 29505 return e === B.RECENTGAMES ? B.RECENT : B.FAVOURITES; 29506 } 29507 trackToggle(e) { 29508 this.trackingAdapter.trigger({ 29509 name: se.CasinoWidgetInteractions, 29510 data: { 29511 [M.ComponentCategoryEvent]: it.CASINO_GAMES, 29512 [M.ComponentLabelEvent]: B.RECENTFAVOURITES_TOGGLE, 29513 [M.ComponentActionEvent]: ve.CLICK, 29514 [M.ComponentPositionEvent]: B.MY_GAMES, 29515 [M.ComponentLocationEvent]: B.HOME, 29516 [M.ComponentEventDetails]: this.toTabLabel(e) 29517 } 29518 }); 29519 } 29520 trackSeeAll(e) { 29521 this.trackingAdapter.trigger({ 29522 name: se.CasinoWidgetInteractions, 29523 data: { 29524 [M.ComponentCategoryEvent]: it.CASINO_GAMES, 29525 [M.ComponentLabelEvent]: it.SEE_ALL_LINK_CLICK, 29526 [M.ComponentActionEvent]: ve.CLICK, 29527 [M.ComponentPositionEvent]: B.MY_GAMES, 29528 [M.ComponentLocationEvent]: B.HOME, 29529 [M.ComponentEventDetails]: this.toTabLabel(e) 29530 } 29531 }); 29532 } 29533 static ɵfac = function(e) { 29534 return new (e || t)(); 29535 }; 29536 static ɵprov = A({ 29537 token: t, 29538 factory: t.ɵfac 29539 }); 29540 } 29541 return t; 29542 })(), En = { 29543 recent: "recentgames", 29544 favourites: "favouritegames" 29545 }, bb = { toggleAriaLabelMessage: "MyGamesToggleAriaLabel" }, An = { 29546 maxGames: 10, 29547 recentTabTitle: "Recent", 29548 favouriteTabTitle: "Favourites", 29549 toggleAriaLabel: "Select games view", 29550 seeAllTilePlaceholders: 6, 29551 emptyStateMessage: "No games to show yet." 29552 }, wo = { 29553 desktop: "25%", 29554 touchDefault: "55%", 29555 touchMgmDice: "40%" 29556 }, Cb = (() => { 29557 class t { 29558 containerService = s(ie); 29559 recentGamesService = s(at); 29560 unfinishedGamesService = s(_t); 29561 promotedGamesService = s(Ra); 29562 favouriteService = s(Re); 29563 gameBuilderService = s(ft); 29564 configProviderService = s(V); 29565 navigationService = s(he); 29566 casinoStyles = s(jt); 29567 deviceService = s(J); 29568 trackingService = s(Xc); 29569 user = s(Je); 29570 window = s(pe); 29571 page = s(zt); 29572 layoutId = m.required(); 29573 containerMetadata = m.required(); 29574 containerIndex = m.required(); 29575 container = Q(this.containerService.container$, { initialValue: null }); 29576 activeTab = O("recentgames"); 29577 featureGrid = De(dn); 29578 recentGameIds = Q(this.recentGamesService.recentGamesFeedObservable, { initialValue: [] }); 29579 unfinishedGameIds = Q(this.unfinishedGamesService.unfinishedGames$, { initialValue: [] }); 29580 promotedGameIds = Q(this.promotedGamesService.promotedGames$, { initialValue: [] }); 29581 recentGamesData = Q(this.recentGamesService.recentGamesDataObservable, { initialValue: [] }); 29582 unfinishedGamesData = Q(this.unfinishedGamesService.unfinishedGamesData$, { initialValue: [] }); 29583 rpGameIds = g(() => dP(lP(this.container()?.recentGamesOrder), {
29584 promoted: this.promotedGameIds(), 29585 unfinished: this.unfinishedGameIds(), 29586 recent: this.recentGameIds() 29587 })); 29588 favGameIds = g(() => this.favouriteService.favourites().map((e) => e.gameId)); 29589 activeGameIds = g(() => this.activeTab() === En.recent ? this.rpGameIds() : this.favGameIds()); 29590 maxGameCount = g(() => this.container()?.maxGameLength ?? this.configProviderService.provideCasinoConfig()?.recentGamesCountLimit ?? An.maxGames); 29591 mobileColOverride = g(() => this.deviceService.isMobile ? this.container()?.mobileGameColumnCount ?? null : null); 29592 backgroundImageUrl = g(() => { 29593 let e = this.container()?.backgroundImage?.src; 29594 return e ? `url('${e}')` : null; 29595 }); 29596 showParallax = g(() => this.hasParallaxImages() && !this.backgroundImageUrl()); 29597 rpLoaded = g(() => this.recentGamesService.loaded() && this.unfinishedGamesService.loaded() && this.promotedGamesService.loaded()); 29598 gameNameById = g(() => { 29599 let e = /* @__PURE__ */ new Map(), n = (i) => { 29600 for (let r of i) r.name && !e.has(r.gameId) && e.set(r.gameId, r.name); 29601 }; 29602 return n(this.recentGamesData()), n(this.unfinishedGamesData()), n(this.promotedGameIds().map((i) => ({ 29603 gameId: i, 29604 name: this.promotedGamesService.getPromotedGameName(i) 29605 }
29605))), n(this.favouriteService.favourites()), e; 29606 }); 29607 displayedGames = g(() => { 29608 let e = this.gameNameById(); 29609 return this.gameBuilderService.buildGameList(this.activeGameIds().slice(0, this.maxGameCount()).map((n) => ({ 29610 gameId: n, 29611 name: e.get(n) 29612 }))); 29613 }); 29614 gameContainer = g(() => { 29615 let e = this.container(), n = this.displayedGames(); 29616 return !e || n.length === 0 ? null : F(G({}, e), { games: n }); 29617 }); 29618 defaultViewType = U.SingleRow; 29619 seeAllBlocks = Array.from({ length: An.seeAllTilePlaceholders }, (e, n) => n); 29620 gameContainerType = g(() => Vt(this.container()?.type, this.container()?.viewType ?? this.defaultViewType)); 29621 visible = g(() => this.user.isAuthenticated ? this.rpGameIds().length > 0 || this.showToggle() && this.favGameIds().length > 0 : !1); 29622 showToggle = g(() => !!this.configProviderService.provideWidgetConfig()?.displayFavInRPFavWidget); 29623 activeViewAllTarget = g(() => this.activeTab() === En.recent ? this.container()?.recentlyPlayedViewAllTarget : this.container()?.favouritesViewAllTarget); 29624 showSeeAll = g(() => !!this.activeViewAllTarget() && this.activeGameIds().length > this.maxGameCount()); 29625 recentTabTitle = g(() => An.recentTabTitle); 29626 favouriteTabTitle = g(() => An.favouriteTabTitle); 29627 toggleAriaLabel = g(() => this.message(bb.toggleAriaLabelMessage) || An.toggleAriaLabel); 29628 emptyStateMessage = g(() => { 29629 let e = this.container(); 29630 return (this.activeTab() === En.recent ? e?.recentGamesEmptyMessage : e?.favouritesEmptyMessage) || An.emptyStateMessage; 29631 }); 29632 showEmptyState = g(() => this.displayedGames().length > 0 ? !1 : this.activeTab() === En.recent ? this.rpLoaded() && this.rpGameIds().length === 0 : this.favouriteService.loaded() && this.favGameIds().length === 0); 29633 headingTextColor = g(() => { 29634 let e = this.container(); 29635 return e ? this.casinoStyles.getContainerHeadingColor(e) : void 0; 29636 }); 29637 isTouch = this.deviceService.isTouch; 29638 containerClass = g(() => "scrollable-games"); 29639 isNonMgmDiceTheme = this.page.theme !== ae.MgmDice; 29640 toggleWidth = g(() => this.isTouch ? this.isNonMgmDiceTheme ? wo.touchDefault : wo.touchMgmDice : wo.desktop); 29641 hasParallaxImages = g(() => { 29642 let e = this.container(); 29643 return !!(e?.parallaxImage?.parallaxBackgroundImage1 || e?.parallaxImage?.parallaxBackgroundImage2 || e?.parallaxImage?.parallaxBackgroundImage3); 29644 }); 29645 ngOnInit() { 29646 this.containerService.fetchAndSetContainer(this.containerMetadata()), this.user.isAuthenticated && (this.recentGamesService.setRecentGames(), this.unfinishedGamesService.feedUnfinishedGamesData(), this.promotedGamesService.feedPromotedGamesData(), this.favouriteService.ensureFavouritesLoaded()); 29647 } 29648 onTabChange(e) { 29649 e !== En.recent && e !== En.favourites || (this.activeTab.set(e), this.featureGrid()?.resetScroll(), this.trackingService.trackToggle(e)); 29650 } 29651 message(e) { 29652 return this.configProviderService.globalConfig?.messages?.[e]; 29653 } 29654 onSeeAllClick() { 29655 let e = this.activeViewAllTarget(); 29656 if (e) { 29657 let n = this.navigationService.createUrlForSeeAll(e); 29658 n && (this.trackingService.trackSeeAll(this.activeTab()), this.featureGrid()?.resetScroll(), this.navigationService.goTo(n), this.window.scrollTo(0, 0)); 29659 } 29660 } 29661 static ɵfac = function(e) { 29662 return new (e || t)(); 29663 }; 29664 static ɵcmp = I({ 29665 type: t, 29666 selectors: [["cw-rp-favorite-toggle-widget-container"]], 29667 viewQuery: function(e, n) { 29668 e & 1 && He(n.featureGrid, dn, 5), e & 2 && Ue(); 29669 }, 29670 inputs: { 29671 layoutId: [1, "layoutId"], 29672 containerMetadata: [1, "containerMetadata"], 29673 containerIndex: [1, "containerIndex"] 29674 }, 29675 features: [ce([ie, Xc])], 29676 decls: 3, 29677 vars: 1, 29678 consts: [ 29679 ["seeAllTpl", ""], 29680 [ 29681 1, 29682 "rp-favorite-toggle-widget-container", 29683 3, 29684 "background-image" 29685 ], 29686 [1, "rp-favorite-toggle-widget-container"], 29687 [ 29688 3, 29689 "src1", 29690 "src2", 29691 "src3" 29692 ], 29693 [ 29694 1, 29695 "lobby-container", 29696 "casino-game-tile-wrapper", 29697 "casino-lobby-width-gametile" 29698 ], 29699 [ 29700 3, 29701 "iconName", 29702 "title", 29703 "subtitle", 29704 "showViewAllButton", 29705 "headingTextColor" 29706 ], 29707 [ 29708 "headerActions", 29709 "", 29710 1, 29711 "rp-favorite-toggle-widget-toggle", 29712 3, 29713 "width" 29714 ], 29715 [ 29716 3, 29717 "class", 29718 "overflow-x", 29719 "non-touch-scrollable-games" 29720 ], 29721 [ 29722 "headerActions", 29723 "", 29724 1, 29725 "rp-favorite-toggle-widget-toggle" 29726 ], 29727 [ 29728 3, 29729 "activeOptionChange", 29730 "fullWidth", 29731 "activeOption" 29732 ], 29733 [ 29734 "name", 29735 "recentgames", 29736 3, 29737 "title" 29738 ], 29739 [ 29740 "name", 29741 "favouritegames", 29742 3, 29743 "title" 29744 ], 29745 [ 29746 3, 29747 "layoutId", 29748 "viewType", 29749 "enableCarousel", 29750 "games", 29751 "containerIndex", 29752 "containerId", 29753 "containerTitle", 29754 "containerType", 29755 "colOverride", 29756 "trailingContent",
29757 "isBackgroundImageLayerPresent" 29758 ], 29759 [1, "rp-favorite-toggle-widget-empty-context"], 29760 [ 29761 "aria-live", 29762 "polite", 29763 1, 29764 "rp-favorite-toggle-widget-empty" 29765 ], 29766 [1, "rp-favorite-toggle-widget-see-all"], 29767 [1, "see-all-grid"], 29768 [1, "see-all-block"], 29769 [3, "seeAllClick"] 29770 ], 29771 template: function(e, n) { 29772 e & 1 && (f(0, jN, 8, 16, "section", 1), te(1, WN, 5, 1, "ng-template", null, 0, Ne)), e & 2 && h(n.visible() ? 0 : -1); 29773 }, 29774 dependencies: [ 29775 $t, 29776 dn, 29777 On, 29778 Hl, 29779 ql, 29780 Kl, 29781 Hr 29782 ], 29783 styles: ["[_nghost-%COMP%]{display:block;position:relative;width:100%}.rp-favorite-toggle-widget-container[_ngcontent-%COMP%]{position:relative;width:100%;max-width:1250px;margin-inline:auto;border-radius:var(--%NS%semantic-radius-semi-rounded-md);background-size:100% 100%;background-repeat:no-repeat;overflow:hidden;padding-block-end:var(--%NS%semantic-spacing-container-padding-lg)}.rp-favorite-toggle-widget-toggle[_ngcontent-%COMP%]{box-sizing:border-box;margin-inline-start:auto;margin-inline-end:var(--%NS%semantic-spacing-container-padding-lg)}[_nghost-%COMP%] .casino-lobby-width-gametile[_ngcontent-%COMP%] .rp-favorite-toggle-widget-grid[_ngcontent-%COMP%]{margin-block-start:var(--%NS%semantic-spacing-container-padding-lg)}.rp-favorite-toggle-widget-empty-context[_ngcontent-%COMP%]{width:100%;container-type:inline-size;container-name:grid}.rp-favorite-toggle-widget-empty[_ngcontent-%COMP%]{--%NS%rp-favorite-toggle-widget-empty-cols: 2;height:calc(100cqw / var(--%NS%lobby-col-override, var(--%NS%rp-favorite-toggle-widget-empty-cols)));margin:0;display:grid;place-items:center;padding-inline:var(--%NS%semantic-spacing-container-padding-lg);text-align:center;word-break:break-word;overflow-wrap:break-word;color:var(--%NS%semantic-color-on-surface-base);font-size:var(--%NS%semantic-typography-body-md-font-size);line-height:var(--%NS%semantic-typography-body-md-line-height)}@container grid (min-width: 375px){.rp-favorite-toggle-widget-empty[_ngcontent-%COMP%]{--%NS%rp-favorite-toggle-widget-empty-cols: 3}}@container grid (min-width: 568px){.rp-favorite-toggle-widget-empty[_ngcontent-%COMP%]{--%NS%rp-favorite-toggle-widget-empty-cols: 4}}@container grid (min-width: 768px){.rp-favorite-toggle-widget-empty[_ngcontent-%COMP%]{--%NS%rp-favorite-toggle-widget-empty-cols: 6}}.rp-favorite-toggle-widget-see-all[_ngcontent-%COMP%]{height:100%;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 var(--%NS%semantic-spacing-container-padding-lg);font-size:var(--%NS%semantic-typography-title-md-font-size);line-height:var(--%NS%semantic-typography-title-md-line-height);color:var(--%NS%semantic-color-utility-base-inverse)}.rp-favorite-toggle-widget-see-all[_ngcontent-%COMP%] .see-all-grid[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(3,1.375rem);grid-template-rows:repeat(2,1.375rem);gap:var(--%NS%semantic-spacing-inline-sm);margin-block-end:var(--%NS%semantic-spacing-container-padding-md)}.rp-favorite-toggle-widget-see-all[_ngcontent-%COMP%] .see-all-block[_ngcontent-%COMP%]{background-color:var(--%NS%semantic-color-supporting-gray-tint);border-radius:var(--%NS%semantic-radius-semi-rounded-md)}"] 29784 }); 29785 } 29786 return t; 29787 })(), yb = 6e4, bt = { 29788 morning: { 29789 start: 5, 29790 end: 11 29791 }, 29792 afternoon: { 29793 start: 12, 29794 end: 16 29795 }, 29796 evening: { 29797 start: 17, 29798 end: 4 29799 } 29800 }, Po = (() => { 29801 class t { 29802 timerService = s(de); 29803 destroyRef = s(q); 29804 currentTimeSlot = O(null); 29805 init() { 29806 this.currentTimeSlot.set(this.evaluate()); 29807 let e = this.timerService.setIntervalOutsideAngularZone(() => { 29808 let n = this.evaluate(); 29809 n !== this.currentTimeSlot() && this.currentTimeSlot.set(n); 29810 }, yb, { serverMode: "omit" }); 29811 this.destroyRef.onDestroy(() => this.timerService.clearInterval(e)); 29812 } 29813 evaluate() { 29814 let e = (/* @__PURE__ */ new Date()).getHours(); 29815 return this.determineTimeSlot(e); 29816 } 29817 determineTimeSlot(e) { 29818 if (bt.evening.start > bt.evening.end) { 29819 if (e >= bt.evening.start || e <= bt.evening.end) return "evening"; 29820 } else if (e >= bt.evening.start && e <= bt.evening.end) return "evening"; 29821 return e >= bt.morning.start && e <= bt.morning.end ? "morning" : e >= bt.afternoon.start && e <= bt.afternoon.end ? "afternoon" : "morning"; 29822 } 29823 static ɵfac = function(e) { 29824 return new (e || t)(); 29825 }; 29826 static ɵprov = A({ 29827 token: t, 29828 factory: t.ɵfac 29829 }); 29830 } 29831 return t; 29832 })(), Zc = { 29833 isBirthday: !1, 29834 isAnniversary: !1 29835 }, el = { 29836 birthdayTemplate: "", 29837 anniversaryTemplate: "", 29838 morningTemplate: "", 29839 afternoonTemplate: "", 29840 eveningTemplate: "", 29841 standardTemplate: "" 29842 }, tl = (() => { 29843 class t { 29844 timeOfDayService = s(Po); 29845 config = O(el); 29846 overrideFlags = O(Zc); 29847 username = O(""); 29848 resolvedGreeting = g(() => { 29849 let e = this.config(), n = this.overrideFlags(), i = this.timeOfDayService.currentTimeSlot(), r = this.username(); 29850 return this.resolve(e, n, i, r); 29851 }); 29852 resolve(e, n, i, r) { 29853 if (n.isBirthday && e.birthdayTemplate?.trim()) return { 29854 type: "birthday", 29855 message: this.interpolate(e.birthdayTemplate, { user: r }), 29856 styleClass: "greeting-birthday" 29857 }; 29858 if (n.isAnniversary && e.anniversaryTemplate?.trim()) return { 29859 type: "anniversary", 29860 message: this.interpolate(e.anniversaryTemplate, { 29861 user: r, 29862 year: n.anniversaryYear 29863 }), 29864 styleClass: "greeting-anniversary" 29865 }; 29866 if (i) { 29867 let u = this.getTimeOfDayTemplate(e, i); 29868 if (u?.trim()) return { 29869 type: "time-of-day", 29870 message: this.interpolate(u, { user: r }), 29871 styleClass: `greeting-${i}` 29872 }; 29873 } 29874 return e.standardTemplate?.trim() ? { 29875 type: "standard", 29876 message: this.interpolate(e.standardTemplate, { user: r }), 29877 styleClass: "greeting-standard" 29878 } : null; 29879 } 29880 getTimeOfDayTemplate(e, n) { 29881 switch (n) { 29882 case "morning": return e.morningTemplate ?? ""; 29883 case "afternoon": return e.afternoonTemplate ?? ""; 29884 case "evening": return e.eveningTemplate ?? ""; 29885 } 29886 } 29887 interpolate(e, n) { 29888 return e.replace(/\$?\{(\w+)\}/g, (i, r) => { 29889 let u = n[r]; 29890 return u != null ? String(u) : i; 29891 }); 29892 } 29893 static ɵfac = function(e) { 29894 return new (e || t)(); 29895 }; 29896 static ɵprov = A({ 29897 token: t, 29898 factory: t.ɵfac 29899 }); 29900 } 29901 return t; 29902 })(), wb = (() => { 29903 class t { 29904 greetingService = s(tl); 29905 timeOfDayService = s(Po); 29906 userService = s(Je); 29907 registrationInfoService = s(xC); 29908 containerService = s(ie); 29909 platform = s(X); 29910 containerMetadata = m.required(); 29911 containerIndex = m.required(); 29912 containerInfo = Q(this.containerService.container$); 29913 resolvedGreeting = this.greetingService.resolvedGreeting; 29914 containerClasses = g(() => [ 29915 "welcomebox-content", 29916 "casino-lobby-width-gametile", 29917 this.resolvedGreeting()?.styleClass
29918 ].filter(Boolean).join(" ")); 29919 userEvents = Q(this.userService.events); 29920 showWelcomeSlot = g(() => (this.userEvents(), this.userService.isAuthenticated)); 29921 config = g(() => { 29922 let e = this.containerInfo(); 29923 return e && this.platform.isBrowser ? this.extractConfig(e) : el; 29924 }); 29925 overrideFlags = g(() => (this.userEvents(), this.platform.isBrowser ? this.resolveOverridesFromClaims() : Zc)); 29926 username = g(() => (this.userEvents(), this.platform.isBrowser ? this.userService.firstName ?? "" : "")); 29927 constructor() { 29928 Z(() => { 29929 this.greetingService.config.set(this.config()), this.greetingService.overrideFlags.set(this.overrideFlags()), this.greetingService.username.set(this.username()); 29930 }), Se(() => { 29931 this.timeOfDayService.init(); 29932 }); 29933 } 29934 ngOnInit() { 29935 this.containerService.fetchAndSetContainer(this.containerMetadata()); 29936 } 29937 resolveOverridesFromClaims() { 29938 let e = /* @__PURE__ */ new Date(), n = e.getMonth(), i = e.getDate(), r = !1, u = this.userService.dateOfBirth; 29939 if (u) { 29940 let $ = new Date(u); 29941 isNaN($.getTime()) || (r = $.getMonth() === n && $.getDate() === i); 29942 } 29943 let v = !1, P, N = this.registrationInfoService.info; 29944 if (N?.date) { 29945 let $ = new Date(N.date); 29946 isNaN($.getTime()) || (v = $.getMonth() === n && $.getDate() === i, v && (P = e.getFullYear() - $.getFullYear())); 29947 } 29948 return { 29949 isBirthday: r, 29950 isAnniversary: v, 29951 anniversaryYear: P 29952 }; 29953 } 29954 extractConfig(e) { 29955 return { 29956 birthdayTemplate: Wn(e.birthdayGreeting), 29957 anniversaryTemplate: Wn(e.anniversaryGreeting), 29958 morningTemplate: Wn(e.morningMessage), 29959 afternoonTemplate: Wn(e.afternoonMessage), 29960 eveningTemplate: Wn(e.eveningMessage), 29961 standardTemplate: Wn(e.welcomeMessage) 29962 }; 29963 } 29964 static ɵfac = function(e) { 29965 return new (e || t)(); 29966 }; 29967 static ɵcmp = I({ 29968 type: t, 29969 selectors: [["cw-welcomebox"]], 29970 inputs: { 29971 containerMetadata: [1, "containerMetadata"], 29972 containerIndex: [1, "containerIndex"] 29973 }, 29974 features: [ce([ 29975 tl, 29976 Po, 29977 ie 29978 ])], 29979 decls: 1, 29980 vars: 1, 29981 consts: [[3, "class"], [1, "welcomebox-text"]], 29982 template: function(e, n) { 29983 e & 1 && f(0, HN, 2, 3, "div", 0), e & 2 && h(n.showWelcomeSlot() ? 0 : -1); 29984 }, 29985 styles: ["[_nghost-%COMP%]{display:block;--%NS%cw-reserve-h: var(--%NS%semantic-typography-display-sm-strong-line-height)}.welcomebox-content[_ngcontent-%COMP%]{min-height:var(--%NS%semantic-typography-display-sm-strong-line-height)}.welcomebox-content[_ngcontent-%COMP%] .welcomebox-text[_ngcontent-%COMP%]{width:100%;font-family:var(--%NS%semantic-typography-display-font-family);font-size:var(--%NS%semantic-typography-display-sm-strong-font-size);font-weight:var(--%NS%semantic-typography-display-sm-strong-font-weight);line-height:var(--%NS%semantic-typography-display-sm-strong-line-height);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 var(--%NS%semantic-spacing-container-padding-3xl)}@media(max-width:1024px){.welcomebox-content[_ngcontent-%COMP%] .welcomebox-text[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-5xl)}}@media(max-width:768px){.welcomebox-content[_ngcontent-%COMP%] .welcomebox-text[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-4xl)}}@media(max-width:480px){.welcomebox-content[_ngcontent-%COMP%] .welcomebox-text[_ngcontent-%COMP%]{padding:0 var(--%NS%semantic-spacing-container-padding-2xl)}}"] 29986 }); 29987 } 29988 return t; 29989 })(), Pb = /* @__PURE__ */ new Set(["teaser"]), So = "gamePremiereShown", Mo = (() => { 29990 class t { 29991 route = s(Dt); 29992 layoutService = s(nn); 29993 configProviderService = s(V); 29994 casinoManager = s(Ve); 29995 jackpotDataService = s(on); 29996 deviceService = s(J); 29997 user = s(Je); 29998 navigationService = s(he); 29999 gameThumbnailService = s(Da); 30000 liveDealerService = s(Tt); 30001 dedupService = s(Aa); 30002 favouriteService = s(Re); 30003 recentGamesService = s(at); 30004 lobbyRoute = s(ir); 30005 rpFavWidgetService = s(qc); 30006 gameCatalogService = s(Oe); 30007 teaserPlaceholder = s(Ts); 30008 rpFavWidgetExpanded = this.rpFavWidgetService.isExpanded; 30009 #e = s(X); 30010 #t = s(pe); 30011 cacheManagerService = s(sw); 30012 vanillaTrackingAdapter = s(we); 30013 title = s(cC); 30014 meta = s(rC); 30015 dialog = s(Bt); 30016 gamePremiereDialogOpened = !1; 30017 layoutId = Q(this.route.params.pipe(Me((e) => e.layout ?? ""), Lo()), { initialValue: "" }); 30018 subnavId = Q(this.route.params.pipe(Me((e) => e.subnav ?? ""), Lo()), { initialValue: "" }); 30019 effectiveLayoutId = g(() => this.layoutId() || this.layout()?.id || ""); 30020 layout = Q(this.layoutService.layout$); 30021 config = Q(this.configProviderService.casinoClientConfigObservable); 30022 isTouch = O(!1); 30023 isMobilePhone = O(!1); 30024 isLayoutLoaded = g(() => this.layout() && this.config()); 30025 activeNavItem = g(() => { 30026 let e = this.subnavId(), n = this.layout()?.subNavs; 30027 return e ? n?.find((i) => i.id === e) : n?.find((i) => i.isDefault); 30028 });
30029 resolvedRouteParams = this.lobbyRoute.params; 30030 pageNotFound = g(() => { 30031 if (this.layoutService.layoutError()) return !0; 30032 let e = this.layout(), { layoutId: n, subnavId: i } = this.resolvedRouteParams(); 30033 return !e || !i || !(n ? e.id === n : e.isDefault) ? !1 : !e.subNavs?.some((r) => r.id === i); 30034 }); 30035 isSignPosting = g(() => { 30036 let e = this.config(), n = this.layout(); 30037 if (!e || !n?.id) return !1; 30038 let i = this.configProviderService.provideFeaturesConfig(); 30039 return !!this.casinoManager.IsFeatureEnabledForLobbyType(n.id, i.enableSignpostingSticker); 30040 }); 30041 isThumbnailEnabled = g(() => !!this.configProviderService.provideThumbnailGamesConfig()?.enableGameThumbnail); 30042 containers = g(() => this.activeNavItem()?.page?.containers || []); 30043 virtualisationEnabled = g(() => !!this.configProviderService.provideFeaturesConfig()?.enableContainerLevelVirtualisation); 30044 skeletonEnabled = g(() => this.configProviderService.provideFeaturesConfig()?.enableLobbySkeleton === !0); 30045 isSeoContentBoxEnabled = g(() => { 30046 let e = this.deviceService.isRobot, n = this.configProviderService.provideFeaturesConfig()?.enableSeoContent ?? !1; 30047 return e || n; 30048 }); 30049 renderPlan = g(() => { 30050 let e = this.virtualisationEnabled(), n = this.isTouch(), i = this.isMobilePhone(); 30051 return this.containers().map((r) => this.toRenderEntry(r, n, e, !1)).filter((r) => r.kind !== "superbutton" || i); 30052 }); 30053 aboveSubnavContainers = g(() => { 30054 let e = this.subnavId(), n = this.layout(); 30055 return (e ? n?.subNavs?.find((i) => i.id === e) : n?.subNavs?.find((i) => i.isDefault))?.page?.containersAboveSubnav ?? []; 30056 }); 30057 aboveSubnavRenderPlan = g(() => { 30058 let e = this.virtualisationEnabled(), n = this.isTouch(); 30059 return this.aboveSubnavContainers().map((i) => this.toRenderEntry(i, n, e, !0)); 30060 }); 30061 toRenderEntry(e, n, i, r) { 30062 let u = m3(e), v = xi(u, e.viewType); 30063 return { 30064 container: e, 30065 id: e.id, 30066 kind: u, 30067 clsKind: g3(e, u), 30068 viewType: v, 30069 reservedRows: Mi(v), 30070 reservedLadder: Oi(v, n, e.enableCarousel ?? !1), 30071 reservedGames: Si(v, () => this.initialGameCountFor(v)), 30072 virtualise: i && !Pb.has(u), 30073 aboveSubnav: r 30074 }; 30075 } 30076 initialGameCountFor(e) { 30077 let { lobbyPagination: n } = this.configProviderService.provideFeaturesConfig(); 30078 return ((n?.gameCountByViewType ?? hi)[e] ?? hi[e] ?? 0) * (n?.initialRowFetchMultiplier || 1); 30079 } 30080 seoContent = g(() => this.activeNavItem()?.page?.seoContent); 30081 gamePremiere = g(() => this.activeNavItem()?.page?.gamePremiere); 30082 backgroundImage = g(() => this.activeNavItem()?.page?.backgroundImage ?? this.layout()?.backgroundImage); 30083 constructor() { 30084 s(yg); 30085 let e = s(Wo).register(this.route); 30086 Z(() => { 30087 let n = this.gamePremiere(); 30088 if (!(!n || !this.#e.isBrowser || this.gamePremiereDialogOpened)) { 30089 if (this.#t.sessionStorage.getItem(So)) { 30090 this.gamePremiereDialogOpened = !0; 30091 return; 30092 } 30093 this.gamePremiereDialogOpened = !0, this.#t.sessionStorage.setItem(So, "true"), import("./chunk-3byh5o7pu.js").then(({ GamePremiereContainerComponent: i }) => { 30094 this.dialog.open(i, { 30095 panelClass: "casino-gamePremiere-overlay", 30096 backdropClass: "casino-gamePremiere-backdrop", 30097 disableClose: !0, 30098 autoFocus: !1, 30099 width: "642px", 30100 maxWidth: "95vw", 30101 data: n 30102 }); 30103 }); 30104 } 30105 }), this.user.events.pipe(We((n) => n instanceof CC), z()).subscribe(() => { 30106 this.#e.isBrowser && this.#t.sessionStorage.removeItem(So); 30107 }), Z(() => { 30108 let n = this.subnavId(), i = this.layout(); 30109 i && this.applySeoMeta(n, i); 30110 }), e.attached$.pipe(z()).subscribe(() => { 30111 let n = this.subnavId(), i = this.layout(); 30112 i && this.applySeoMeta(n, i), this.user.isAuthenticated && this.recentGamesService.refreshForLobbyType(this.effectiveLayoutId()); 30113 }), Z(() => { 30114 let n = new Set((this.configProviderService.provideLobbyDedupConfig()?.excludedContainerTypes ?? []).map((r) => r.toLowerCase())), i = this.containers().filter((r) => !n.has(r.type.toLowerCase())).map((r) => r.id); 30115 i.length > 0 && this.dedupService.registerContainerOrder(i); 30116 }), Z(() => { 30117 this.config() && (this.layoutService.fetchAndSetLayouts(this.layoutId()), this.gameCatalogService.fetchGames(), this.jackpotDataService.startFeed(), this.liveDealerService.startFeed(), this.favouriteService.ensureFavouritesLoaded(), this.isTouch.set(this.deviceService.isTouch), this.isMobilePhone.set(this.deviceService.isMobilePhone)); 30118 }), Z(() => { 30119 let n = this.effectiveLayoutId(); 30120 n && this.recentGamesService.markFetchedForLobbyType(n); 30121 }), Z(() => { 30122 let n = this.layout();
30123 n?.id && (this.isSignPosting() ? this.navigationService.fetchSignPostingCountsIfNeeded(n.id) : this.navigationService.clearSignPostingCounts()); 30124 }), Z(() => { 30125 let n = this.layout(); 30126 n?.id && (this.isThumbnailEnabled() ? this.gameThumbnailService.fetchThumbnailDataIfNeeded(n.id) : this.gameThumbnailService.clearThumbnailData()); 30127 }), Z(() => { 30128 let n = this.layout(); 30129 if (n && this.#e.isBrowser && !this.layoutService.isLayoutLoadTracked(n.id)) { 30130 this.layoutService.markLayoutLoadTracked(n.id); 30131 let i = this.activeNavItem(); 30132 this.vanillaTrackingAdapter.trigger({ 30133 name: se.CasinoLobbyLoad, 30134 data: { 30135 [M.ComponentCategoryEvent]: "layout", 30136 [M.ComponentLabelEvent]: "standard lobby", 30137 [M.ComponentActionEvent]: "load", 30138 [M.ComponentPositionEvent]: "not applicable", 30139 [M.ComponentLocationEvent]: i?.id || "home", 30140 [M.ComponentEventDetails]: n.id || "not applicable", 30141 [M.ComponentUrlClicked]: "not applicable" 30142 } 30143 }); 30144 } 30145 }), Z(() => { 30146 if (this.#e.isBrowser) { 30147 if (this.layoutService.layoutError() || this.pageNotFound()) { 30148 this.teaserPlaceholder.remove(); 30149 return; 30150 } 30151 this.isLayoutLoaded() && (this.renderPlan().some((n) => n.kind === "teaser") || this.aboveSubnavRenderPlan().some((n) => n.kind === "teaser") || this.teaserPlaceholder.remove()); 30152 } 30153 }); 30154 } 30155 ngOnInit() { 30156 !this.user.isAuthenticated && this.#e.isBrowser && this.cacheManagerService.remove(dw.CasinoCoreForceGameObj); 30157 } 30158 applySeoMeta(e, n) { 30159 let i = (e ? n.subNavs?.find((r) => r.id === e) : n.subNavs?.find((r) => r.isDefault))?.page?.seoContent; 30160 this.title.setTitle(i?.metaTitle ?? ""), this.meta.updateTag({ 30161 name: "description", 30162 content: i?.metaDescription ?? "" 30163 }); 30164 } 30165 static ɵfac = function(e) { 30166 return new (e || t)(); 30167 }; 30168 static ɵcmp = I({ 30169 type: t, 30170 selectors: [["cw-home-lobby-mod"]], 30171 features: [Fb([RC])], 30172 decls: 4, 30173 vars: 1, 30174 consts: [ 30175 ["containerTpl", ""], 30176 [ 30177 1, 30178 "casino-lobby-container", 30179 "casino-lobby-container-main", 30180 3, 30181 "cls-skeleton-off" 30182 ], 30183 [ 30184 1, 30185 "casino-lobby-container", 30186 "casino-lobby-container-main" 30187 ], 30188 [3, "image"], 30189 [ 30190 3, 30191 "entries", 30192 "itemTemplate" 30193 ], 30194 [3, "widgetExpanded"], 30195 [ 30196 1, 30197 "casino-lobby-width-gametile", 30198 3, 30199 "heading", 30200 "body" 30201 ], 30202 [ 30203 3, 30204 "containerMetadata", 30205 "containerIndex", 30206 "layoutId", 30207 "subNavId" 30208 ], 30209 [ 30210 3, 30211 "lobbyType", 30212 "containerMetadata", 30213 "containerIndex" 30214 ], 30215 [ 30216 3, 30217 "layoutId", 30218 "containerMetadata", 30219 "containerIndex" 30220 ], 30221 [ 30222 3, 30223 "containerMetadata", 30224 "containerIndex" 30225 ], 30226 [ 30227 3, 30228 "containerMetadata", 30229 "layoutId", 30230 "containerIndex" 30231 ], 30232 [ 30233 3, 30234 "containerMetadata", 30235 "lobbyType", 30236 "isTouch", 30237 "changeCarouselView", 30238 "containerIndex" 30239 ], 30240 [ 30241 3, 30242 "containerMetadata", 30243 "containerIndex", 30244 "layoutId" 30245 ], 30246 [ 30247 3, 30248 "layoutId", 30249 "containerMetadata", 30250 "containerIndex", 30251 "isVirtualisationEnabled" 30252 ], 30253 [ 30254 3, 30255 "subnav", 30256 "containerMetadata", 30257 "containerIndex", 30258 "layoutId" 30259 ] 30260 ], 30261 template: function(e, n) { 30262 e & 1 && (f(0, qN, 1, 0, "vn-not-found")(1, YN, 11, 9, "div", 1), te(2, d3, 13, 1, "ng-template", null, 0, Ne)), e & 2 && h(n.pageNotFound() ? 0 : n.isLayoutLoaded() ? 1 : -1); 30263 }, 30264 dependencies: [ 30265 Tm, 30266 Nh, 30267 If, 30268 Th, 30269 Ru, 30270 xr, 30271 qr, 30272 nb, 30273 gb, 30274 Vp, 30275 Cb, 30276 fw, 30277 vb, 30278 Zm, 30279 eb, 30280 Jm, 30281 bm, 30282 ru, 30283 Ag, 30284 Tf, 30285 Dg, 30286 Bg, 30287 wb 30288 ], 30289 encapsulation: 2, 30290 changeDetection: 1 30291 }); 30292 } 30293 return t; 30294 })(), Sb = { [Ma.RecentWinners]: "minimal-recent-winners" }, Oo = (t, o) => { 30295 let e = s(Rt), n = s(nn), i = t.paramMap.get("layout") ?? "", r = t.firstChild?.paramMap.get("subnav") ?? t.paramMap.get("subnav"); 30296 return n.loadLayout(i).pipe(et(1), Me((u) => { 30297 if (!u) return !0; 30298 if (u?.isDefault && i && !r) { 30299 let v = o.url.substring(0, o.url.lastIndexOf("/")); 30300 return e.parseUrl(v || "/"); 30301 } 30302 return !0; 30303 })); 30304 }, Mb = (() => { 30305 class t { 30306 pageMatrixService = s(_C); 30307 canActivate() { 30308 return this.pageMatrixService.whenReady.pipe(Me(() => !0)); 30309 } 30310 static ɵfac = function(e) { 30311 return new (e || t)(); 30312 }; 30313 static ɵprov = A({ 30314 token: t, 30315 factory: t.ɵfac, 30316 providedIn: "root" 30317 }); 30318 } 30319 return t; 30320 })(), Ob = MC([ 30321 { 30322 path: "p", 30323 children: [{ 30324 path: "", 30325 loadChildren: () => import("./chunk-kx4l9g3l.js").then((t) => t.ROUTES), 30326 data: { 30327 waitForPageViewData: !0, 30328 publicPageRoot: "MobilePortal-v1.0/PublicPages/", 30329 product: en.CASINO 30330 } 30331 }, { 30332 path: "**", 30333 loadComponent: () => import("./chunk-vikz3sff1.js").then((t) => t.PlaceholderComponent), 30334 data: { publicPageRoot: "MobileCasino-v1.0/PublicPages/" }, 30335 canActivate: [Mb] 30336 }] 30337 }, 30338 {
30339 path: "comppoints", 30340 loadChildren: () => import("./chunk-oe714kak.js").then((t) => (t.n(), t.t)).then((t) => t.compPointsRoutes) 30341 }, 30342 { 30343 path: "launchng/:gameId", 30344 loadComponent: () => import("./chunk-Dg7j2lycv.js").then((t) => t.PlayRedirectComponent), 30345 data: { authorized: !0 } 30346 }, 30347 { 30348 path: "game-launch", 30349 loadChildren: () => import("./chunk-ks32vapo.js").then((t) => t.CASINO2_GAME_LAUNCH_ROUTES), 30350 data: { authorized: !0 } 30351 }, 30352 { 30353 path: ":layout/:subnav", 30354 component: Mo, 30355 canActivate: [Oo], 30356 data: { routeReuseKey: "casino:subnav" } 30357 }, 30358 { 30359 path: ":layout", 30360 component: Mo, 30361 canActivate: [Oo], 30362 data: { routeReuseKey: "casino:home-lobby" } 30363 }, 30364 { 30365 path: "", 30366 component: Mo, 30367 canActivate: [Oo], 30368 data: { routeReuseKey: "casino:home-lobby" } 30369 } 30370 ]), nl = { 30371 PRODUCT_SWITCH_ACTIVATE: "vnapp:productswitch:activate", 30372 PRODUCT_SWITCH_DEACTIVATE: "vnapp:productswitch:deactivate" 30373 }, il = (() => { 30374 class t { 30375 productService = s(ea); 30376 #e = s(SC); 30377 #t = s(pe); 30378 #n = s(gt); 30379 activateCasino() { 30380 this.productService.setActive(en.CASINO), Se(() => { 30381 this.#t.dispatchEvent(new CustomEvent("gs:showHeaderEntry")), this.#t.dispatchEvent(new CustomEvent("gs:showFloatingEntry")), this.#t.dispatchEvent(new CustomEvent(nl.PRODUCT_SWITCH_ACTIVATE, { detail: { product: en.CASINO } })); 30382 }, { injector: this.#n }); 30383 } 30384 deactivateCasino() { 30385 this.#e.deferCallbackUntilTransitionReady(() => { 30386 this.#t.dispatchEvent(new CustomEvent("gs:hideHeaderEntry")), this.#t.dispatchEvent(new CustomEvent("gs:hideFloatingEntry")), this.#t.dispatchEvent(new CustomEvent(nl.PRODUCT_SWITCH_DEACTIVATE, { detail: { product: en.CASINO } })); 30387 }); 30388 } 30389 static ɵfac = function(e) { 30390 return new (e || t)(); 30391 }; 30392 static ɵprov = A({ 30393 token: t, 30394 factory: t.ɵfac, 30395 providedIn: "root" 30396 }); 30397 } 30398 return t; 30399 })(), xb = () => { 30400 Ml(s(Rt)) || s(il).deactivateCasino(); 30401 }, _b = () => Ml(s(Rt)) ? !0 : (s(il).activateCasino(), s(Xr).onCasinoAppInit()), kb = [{ 30402 path: "", 30403 canMatch: [_b], 30404 canDeactivate: [xb], 30405 providers: [ 30406 VP(), 30407 pw(), 30408 EP(), 30409 { 30410 provide: Ye, 30411 useValue: {} 30412 }, 30413 { 30414 provide: Ke, 30415 useValue: {} 30416 }, 30417 Go(() => { 30418 let t = s(gt); 30419 t.get(ea).register(en.CASINO, t); 30420 }) 30421 ], 30422 children: [...Ob] 30423 }]; 30424 })))(); 30425} 30426export { _r as a, Te as c, he as d, mr as f, $n as i, vr as l, Ib as n, xr as o, kr as r, an as s, aP as t, pr as u }; 30427 30428//# sourceMappingURL=chunk-fv1r28ws.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.