1import { b as Se, d as Y, f as Wt, g as T, p as Ft } from "./chunk-i2pl4wu9.js"; 2import { $i as Te, Aa as jt, At as A, Bi as qt, Bn as Kt, Bt as Jt, Ci as se, Co as _, Ct as Yt, Dn as Qt, E as U, Ei as b, Et as L, Fo as u, Ga as z, Gi as ye, Kt as ae, Ma as Ie, Na as re, Nr as v, Pi as Zt, Ro as M, Ti as we, Tr as Q, Ui as Xt, W as o, Wa as y, Xt as ei, _r as k, ao as c, b as le, bn as h, do as ti, et as g, fi as x, fr as d, ht as p, in as ii, j as ni, jn as m, jo as oi, jt as si, kn as Pe, kt as ai, n as V, na as E, oi as Ae, q as D, qi as _e, qr as ri, ro as l, rt as s, ti as I, tn as li, tt as $, u as ci, ui as ce, vr as hi, wi as gi, xa as W, xn as ui, xr as di, yn as w, za as F, zi as a } from "./chunk-ql746sly.js"; 3import { I as pi, T as fi, j as xe, l as vi } from "./chunk-hcheit1f.js"; 4import { a as mi, p as De } from "./chunk-b11o3szq.js"; 5import { D as bi, Dt as O, d as j, j as S, ut as Le } from "./chunk-fz42rx6r.js"; 6import { r as Oe, t as he } from "./chunk-icjzvqcx.js"; 7import { t as Ci } from "./chunk-jbaamz4y.js"; 8import { a as ki, i as He, s as Si } from "./chunk-bc0fsc6d.js"; 9import { $ as Ti, Y as Re, ft as yi, gt as Ii, rt as wi, z as Me } from "./chunk-ot109np3.js"; 10import { o as Ee, t as Be } from "./chunk-jaxwt8s1.js"; 11import { M as Ge, T as Pi, y as q } from "./chunk-hxqgo4lj.js"; 12import { o as Ai } from "./chunk-br9ckdzm.js"; 13import { C as _i, n as xi } from "./chunk-l43lwjlr.js"; 14import { a as Di, d as R, h as B, l as Li, n as Oi, o as Hi, p as Ne, r as Ri, s as Mi, u as Ei } from "./chunk-bl09vhvv.js"; 15import { ot as Bi } from "./chunk-f0xko016.js"; 16import { a as Gi, c as Ue, r as Ni, t as Ui } from "./chunk-oats8yse.js"; 17import { L as zi, Mr as ze, Sn as Ve, bt as Vi, fn as $i, gn as Wi, jr as $e, jt as Fi, nr as We, pr as ji } from "./chunk-ozbfhgko.js"; 18import { a as qi } from "./chunk-lt7tziae.js"; 19import { n as Fe, r as G } from "./chunk-fla2anea.js"; 20import { t as Ki } from "./chunk-lf77xnpz.js"; 21import { i as Ji, p as Yi } from "./chunk-bnt36dw9.js"; 22import { n as Qi } from "./chunk-d6iooz3w.js"; 23import { n as Zi } from "./chunk-c8btpjog.js"; 24import { C as K, M as Xi, P as en, Y as J, dt as je, m as tn, tt as qe, z as Z } from "./chunk-dkzazc5t.js"; 25import { a as nn, s as on } from "./chunk-bh8ut9ee.js"; 26import { c as sn } from "./chunk-oqfdwkhk.js"; 27import { r as an } from "./chunk-ngak4zlf.js"; 28import { t as rn } from "./chunk-ggzcwtgt.js"; 29import { n as X, t as Ke } from "./chunk-i471vw4l.js"; 30import { n as ln } from "./chunk-gd9lkrcj.js"; 31import { i as cn } from "./chunk-d0ckdczq.js"; 32import { N as Je, O as hn, T as gn, W as un, b as dn, z as pn } from "./chunk-f74tx1a3.js"; 33import { n as fn, t as Ye } from "./chunk-nhq7wupa.js"; 34import { n as vn } from "./chunk-hh163lda.js"; 35import { $t as Qe, A as mn, At as bn, C as Ze, Dt as Xe, En as Cn, Ft as kn, Kt as Sn, L as Tn, Ot as yn, Pn as In, Sn as wn, T as Pn, _g as et, _t as tt, ct as An, gg as it, gt as _n, jn as xn, lt as Dn, nn as Ln, on as On, pt as Hn, q as Rn, wt as Mn, xt as En, yt as Bn } from "./chunk-cqx9un6o.js"; 36import { Pr as Gn, Yn as nt, ht as Nn, kn as Un, nn as zn } from "./chunk-oq098d7b.js"; 37import { i as ot, n as st, r as ee, t as Vn } from "./chunk-njfowjug.js"; 38import { n as $n, t as at } from "./chunk-o4f8w5yc.js"; 39function Wn(t, i) { 40 return t.createForProduct(N, { 41 product: S.HORSERACING, 42 area: "horseracing", 43 forwardProductApiRequestHeader: i.getMetadata(S.HORSERACING).isEnabled 44 }); 45} 46function Fn(t, i) { 47 if (t & 1) { 48 let e = A(); 49 a(0, "div", 1)(1, "div", 7), u("click", function() { 50 return m(e), v(c(2).close()); 51 }), g(2, "i", 8), l()(); 52 } 53} 54function jn(t, i) { 55 if (t & 1) { 56 let e = A(); 57 a(0, "div", 4)(1, "input", 9, 0), u("click", function(n) { 58 m(e); 59 let r = _e(2); 60 return v(c(2).DoNotShowMessage(n, r)); 61 }), l(), a(3, "label", 10), k(4), l()(); 62 } 63 if (t & 2) { 64 let e = c(2); 65 s(4), D(e.loginBanner?.CheckBoxText); 66 } 67} 68function qn(t, i) { 69 if (t & 1) { 70 let e = A(); 71 a(0, "div"), d(1, Fn, 3, 0, "div", 1), a(2, "div", 2)(3, "h2"), k(4), l(), a(5, "p", 3), k(6), l(), d(7, jn, 5, 1, "div", 4), a(8, "button", 5), u("click", function() { 72 return m(e), v(c().login()); 73 }), k(9), l(), a(10, "a", 6), u("click", function() { 74 return m(e), v(c().signUpNavigation()); 75 }), k(11), l()()(); 76 } 77 if (t & 2) { 78 let e = c(); 79 s(), p(e.isPopUp ? 1 : -1), s(3), D(e.loginBanner?.Title), s(2), D(e.loginBanner?.Description), s(), p(e.isPopUp ? 7 : -1), s(2), D(e.loginBanner?.ButtonText), s(2), D(e.loginBanner?.SignUpText); 80 } 81} 82function Kn(t, i) { 83 if (t & 1 && (I(0, "li", 5), k(1), x()), t & 2) { 84 let e = i.$implicit; 85 s(), ye(" ", e, " "); 86 } 87} 88function Jn(t, i) { 89 if (t & 1 && (I(0, "ol", 4), V(1, Kn, 2, 1, "li", 5, $().trackByBetTypeItems, !0), x()), t & 2) { 90 let e = c(); 91 s(), z(e.data.info); 92 } 93} 94function Yn(t, i) { 95 if (t & 1 && (I(0, "li", 5)(1, "h3"), k(2), x(), E(3, "p", 6), I(4, "div", 7), E(5, "span", 8)(6, "span", 9), x(), I(7, "div", 7), E(8, "span", 8), I(9, "div"), E(10, "span", 10)(11, "span", 11)(12, "span", 11)(13, "span", 11)(14, "span", 11), x()()()), t & 2) { 96 let e = i.$implicit; 97 s(2), D(e.title), s(), y("innerHTML", e.description, w), s(2), y("innerHTML", e.info.DifficultyLevelText, w), s(), y("innerHTML", e.info.DifficultyLevelValue, w), s(2), y("innerHTML", e.info.PotentialPayOutText, w), s(2), y("innerHTML", e.info.PotentialPayOutValue, w), s(), y("innerHTML", e.info.PotentialPayOutValue, w), s(), y("innerHTML", e.info.PotentialPayOutValue, w), s(), y("innerHTML", e.info.PotentialPayOutValue, w), s(), y("innerHTML", e.info.PotentialPayOutValue, w); 98 } 99} 100function Qn(t, i) { 101 if (t & 1 && (I(0, "ol", 4), V(1, Yn, 15, 10, "li", 5, $().trackByBetTypeItems, !0), x()), t & 2) { 102 let e = c(); 103 s(), z(e.data.betTypeItems); 104 } 105} 106function Zn(t, i) { 107 if (t & 1) { 108 let e = A(); 109 a(0, "div")(1, "div", 2), u("click", function() { 110 let n = m(e).$implicit; 111 return v(c(3).open(n.header)); 112 }), a(2, "span"), k(3), l(), g(4, "span", 3), l()(); 113 } 114 if (t & 2) { 115 let e = i.$implicit; 116 s(3), D(e.header); 117 } 118} 119function Xn(t, i) { 120 if (t & 1 && (a(0, "div", 0), V(1, Zn, 5, 1, "div", null, $().trackByMenuItems, !0), l()), t & 2) { 121 let e = c(2); 122 s(), z(e.helpPopup.menuItems); 123 } 124} 125function eo(t, i) { 126 if (t & 1) { 127 let e = A(); 128 a(0, "div")(1, "div", 4), u("click", function() { 129 let n = m(e).$implicit; 130 return v(c(3).open(n.header)); 131 }), a(2, "div", 5)(3, "span", 6), k(4), l(), a(5, "span", 7), k(6), l()(), g(7, "span", 8), l()(); 132 } 133 if (t & 2) { 134 let e = i.$implicit; 135 s(4), D(e.header), s(2), D(e.description); 136 } 137} 138function to(t, i) { 139 if (t & 1 && (a(0, "div", 1), V(1, eo, 8, 2, "div", null, $().trackByMenuItems, !0), l()), t & 2) { 140 let e = c(2); 141 s(), z(e.helpPopup.menuItems); 142 } 143} 144function io(t, i) { 145 if (t & 1 && (a(0, "div"), d(1, Xn, 3, 0, "div", 0), d(2, to, 3, 0, "div", 1), l()), t & 2) { 146 let e = c(); 147 s(), p(e.isMobile ? 1 : -1), s(), p(e.isMobile ? -1 : 2); 148 } 149} 150function no(t, i) { 151 if (t & 1) { 152 let e = A(); 153 a(0, "div", 2)(1, "div", 5), g(2, "h1", 6), a(3, "span", 7), u("click", function() { 154 return m(e), v(c().close()); 155 }), l()(), g(4, "div", 8), a(5, "div", 9)(6, "button", 10), u("click", function() { 156 return m(e), v(c().download()); 157 }), l(), a(7, "button", 11), u("click", function() { 158 return m(e), v(c().continue()); 159 }), l()()(); 160 } 161 if (t & 2) { 162 let e = c(); 163 s(2), h("textContent", e.geocomplyTitle), s(2), h("vnDynamicHtml", e.geoComplyMessage), s(2), h("textContent", e.downloadButtonText), s(), h("textContent", e.continueButtonText); 164 } 165} 166function oo(t, i) { 167 if (t & 1) { 168 let e = A(); 169 a(0, "div", 3)(1, "div", 12), g(2, "h1", 13), a(3, "span", 7), u("click", function() { 170 return m(e), v(c().close()); 171 }), l()(), a(4, "div", 14), g(5, "div", 15), a(6, "div", 16), g(7, "h2", 17)(8, "p", 17), l(), g(9, "p", 18), a(10, "div", 19)(11, "a", 20), u("click", function() { 172 return m(e), v(c().appDownloaderClicked()); 173 }), l()(), g(12, "br"), a(13, "div", 21), g(14, "hr")(15, "div", 22), l(), g(16, "p", 23), a(17, "div", 24)(18, "div", 25), g(19, "p", 26), a(20, "a", 27), u("click", function() { 174 return m(e), v(c().download()); 175 }), l()(), a(21, "div", 28), g(22, "p", 29), a(23, "a", 30), u("click", function() { 176 return m(e), v(c().continue()); 177 }), l()()(), a(24, "div", 31)(25, "div", 32)(26, "i", 33), u("click", function() { 178 return m(e), v(c().info()); 179 }), l(), a(27, "span", 34), u("click", function() { 180 return m(e), v(c().info()); 181 }), l()()(), a(28, "div")(29, "vn-popper-content", 35, 0), k(31), l()()()(); 182 } 183 if (t & 2) { 184 let e = _e(30), n = c(); 185 s(2), h("textContent", n.geolocationMobileInstallerTitle), s(5), h("textContent", n.oobeeInstallerHeadingText), s(), h("textContent", n.oobeeInstallerHeadingInstruction), s(), h("textContent", n.continuePlayOnAppInstructionText), s(2), h("href", n.appDownloadLink, ae)("textContent", n.continuePlayOnAppUserActionText), s(4), h("textContent", n.playOnAppOrWebPlayerOptionsSeparatorText), s(), h("textContent", n.continuePlayOnWebInstructionText), s(3), h("textContent", n.oobeeInstallerDownloadStepText), s(), h("textContent", n.oobeeInstallerDownloadUserActionText), s(2), h("textContent", n.oobeeInstallerContinueStepText), s(), h("textContent", n.oobeeInstallerContinueUserActionText), s(3), h("floatUi", e.content), s(), h("floatUi", e.content)("textContent", n.geoguardEnquiryUserActionText), s(4), ye(" ", n.geoGuardDescriptionText, " "); 186 } 187} 188function so(t, i) { 189 t & 1 && (a(0, "div", 4), g(1, "span"), l()); 190} 191function ao(t, i) { 192 if (t & 1 && (a(0, "div", 0)(1, "div", 1)(2, "div", 2), g(3, "vn-page-matrix", 3), l()()()), t & 2) { 193 let e = c(); 194 s(3), h("path", e.seoBoxesConfig == null ? null : e.seoBoxesConfig.seoBoxesPathMapper); 195 } 196} 197function ro(t, i) { 198 if (t & 1 && (g(0, "div", 3), F(1, "sitecore_image_resize")), t & 2) { 199 let e = c();
200 re("background-position", e.teaserBackgroundPosition), h("ngStyle", Ie(5, ve, "url(" + W(1, 3, e.teaser.backgroundImage.src) + ")")); 201 } 202} 203function lo(t, i) { 204 if (t & 1 && (g(0, "div", 3), F(1, "sitecore_image_resize")), t & 2) { 205 let e = c(); 206 h("ngStyle", Ie(3, ve, "url(" + W(1, 1, e.teaser.desktopImage.src || e.teaser.backgroundImage.src) + ")")); 207 } 208} 209function co(t, i) { 210 if (t & 1 && (a(0, "div", 7), g(1, "a", 8), F(2, "trustAsHtml"), l()), t & 2) { 211 let e = c(); 212 s(), h("href", Q(e.teaser.cta.url), ae)("target", Q(e.teaser.cta.attributes.target))("innerHtml", W(2, 5, e.teaser.cta.text), w); 213 } 214} 215function ho(t, i) { 216 if (t & 1 && (a(0, "div", 3), g(1, "hrl-teaser-item", 4), l()), t & 2) { 217 let e = i.$implicit; 218 s(), h("teaser", e); 219 } 220} 221function go(t, i) { 222 if (t & 1 && (a(0, "div", 1)(1, "vn-swiper", 2, 0), V(3, ho, 2, 1, "div", 3, $().trackByTeaser, !0), l()()), t & 2) { 223 let e = c(); 224 s(), h("swiperOptions", e.swiperOptions), s(2), z(e.filteredteasers); 225 } 226} 227function uo(t, i) { 228 if (t & 1) { 229 let e = A(); 230 a(0, "button", 1), u("click", function() { 231 return m(e), v(c(2).loginRequest()); 232 }), k(1, "Login Request"), l(); 233 } 234} 235function po(t, i) { 236 if (t & 1) { 237 let e = A(); 238 a(0, "button", 1), u("click", function() {
239 return m(e), v(c(2).logoutRequest()); 240 }), k(1, "Logout Request"), l(); 241 } 242} 243function fo(t, i) { 244 if (t & 1) { 245 let e = A(); 246 ti(0), d(1, uo, 2, 0, "button"), a(2, "input", 0), ri("ngModelChange", function(n) { 247 m(e); 248 let r = c(); 249 return ci(r.height, n) || (r.height = n), v(n); 250 }), l(), Jt(), d(3, po, 2, 0, "button"), a(4, "button", 1), u("click", function() { 251 return m(e), v(c().updateHeight()); 252 }), k(5, "Update Height"), l(), di(); 253 } 254 if (t & 2) { 255 let e = c(); 256 s(), p(e.isAuthenticated ? -1 : 1), s(), ni("ngModel", e.height), ui(), s(), p(e.isAuthenticated ? 3 : -1); 257 } 258} 259function vo(t, i) { 260 t & 1 && g(0, "hrl-horse-racing-login"); 261} 262var N, ge, te, ie, ne, oe, rt, lt, ct, ht, P, ue, gt, ut, dt, pt, ft, vt, mt, de, pe, fe, bt, Ct, kt, St, Tt, yt, It, wt, Pt, At, ve, _t, xt, Dt, Lt; 263function me() { 264 return (me = at((() => { 265 Se(), Te(), xe(), De(), Le(), Oe(), He(), Ee(), Ge(), Ne(), Re(), Ue(), $e(), Fe(), qe(), Ve(), it(), Ke(), Je(), Ye(), Qe(), Xe(), tt(), Ze(), nt(), ot(), N = (() => { 266 let t = class extends Si {}; 267 return t.ɵfac = (() => { 268 let i; 269 return function(e) { 270 return (i || (i = Xt(t)))(e || t); 271 }; 272 })(), t.ɵprov = b({ 273 token: t, 274 factory: function(i) { 275 let e = null; 276 return i ? e = new i() : e = Wn(Ae(ki), Ae(he)), e; 277 }, 278 providedIn: "root" 279 }), t; 280 })(), ge = (() => { 281 let t = class { 282 constructor() { 283 this.api = o(N), this.loginBannerSubject = new U(null), this.LoginBannerData = this.loginBannerSubject.asObservable(), this.helpPopupSubject = new U(null), this.HelpPopupData = this.helpPopupSubject.asObservable(), this.setLoginBannerData(), this.setHelpPopupData(); 284 } 285 setLoginBannerData() { 286 this.api.get("nyra/getLoginBannerData").subscribe((e) => { 287 this.LoginBanner = e, this.loginBannerSubject.next(this.LoginBanner); 288 }); 289 } 290 setHelpPopupData() { 291 this.api.get("nyra/getHelpPopupData").subscribe((e) => { 292 this.HelpPopup = e, this.helpPopupSubject.next(this.HelpPopup); 293 }); 294 } 295 getLoginBannerData() { 296 return this.LoginBanner; 297 } 298 getHelpPopupData() { 299 return this.HelpPopup; 300 } 301 }; 302 return t.ɵfac = function(i) { 303 return new (i || t)(); 304 }, t.ɵprov = b({ 305 token: t, 306 factory: t.ɵfac, 307 providedIn: "root" 308 }), t; 309 })(), qt(), te = (() => { 310 let t = class {}; 311 return t = L([O({ 312 key: "hrIframeUrlsConfig", 313 product: S.HORSERACING 314 })], t), t; 315 })(), ie = (() => { 316 let t = class {}; 317 return t = L([O({ 318 key: "hrPartnerTokenConfig", 319 product: S.HORSERACING 320 })], t), t; 321 })(), ne = (() => { 322 let t = class {}; 323 return t = L([O({ 324 key: "hrGlobal", 325 product: S.HORSERACING 326 })], t), t; 327 })(), oe = (() => { 328 let t = class {}; 329 return t = L([O({ 330 key: "hrSeoBoxesConfig", 331 product: S.HORSERACING 332 })], t), t; 333 })(), rt = (() => { 334 let t = class {}; 335 return t = L([O({ 336 key: "hrOptimizedTeaser", 337 product: S.HORSERACING 338 })], t), t; 339 })(), lt = (() => { 340 let t = class {}; 341 return t = L([O({ 342 key: "hrImageLoadOptimizationConfig", 343 product: S.HORSERACING 344 })], t), t; 345 })(), ct = (() => { 346 let t = class {}; 347 return t = L([O({ 348 key: "hrLoginBannerConfig", 349 product: S.HORSERACING 350 })], t), t; 351 })(), ht = (() => { 352 let t = class {}; 353 return t = L([O({ 354 key: "hrHelpPopUpConfig", 355 product: S.HORSERACING 356 })], t), t; 357 })(), P = (() => { 358 let t = class { 359 constructor() { 360 this.clientConfigService = o(j); 361 } 362 fillClientConfig() { 363 this.iframeClientConfig = this.clientConfigService.get(te), this.partnerTokenClientConfig = this.clientConfigService.get(ie), this.globalClientConfig = this.clientConfigService.get(ne), this.seoboxesClientConfig = this.clientConfigService.get(oe), this.optimizedTeaserConfig = this.clientConfigService.get(rt), this.imageLoadOptimizationConfig = this.clientConfigService.get(lt), this.loginBannerClientConfig = this.clientConfigService.get(ct), this.helpPopUpClientConfig = this.clientConfigService.get(ht); 364 } 365 provideIframeClientConfig() { 366 return this.iframeClientConfig; 367 } 368 providePartnerTokenClientConfig() { 369 return this.partnerTokenClientConfig; 370 } 371 provideGlobalClientConfig() { 372 return this.globalClientConfig; 373 } 374 provideSeoboxesClientConfig() { 375 return this.seoboxesClientConfig; 376 } 377 provideOptimizedTeaserConfig() { 378 return this.optimizedTeaserConfig; 379 } 380 provideImageLoadOptimizationClientConfig() { 381 return this.imageLoadOptimizationConfig; 382 } 383 provideLoginClientConfig() { 384 return this.loginBannerClientConfig; 385 } 386 provideHelpClientConfig() { 387 return this.helpPopUpClientConfig; 388 } 389 }; 390 return t.ɵfac = function(i) { 391 return new (i || t)(); 392 }, t.ɵprov = b({ 393 token: t, 394 factory: t.ɵfac, 395 providedIn: "root" 396 }), t; 397 })(), ue = (() => { 398 let t = class { 399 constructor() { 400 this.configProvider = o(P), this.loginService = o(ge), this.loginNavigationService = o(Fi), this.loginDialogService = o(We), this.user = o(R), this.dialogRef = o(K), this.data = o(J), this.activeRoute = o(q), this.deviceService = o(G), this.isPopUp = !1, this.showHelpConfig = !1; 401 let e = this.data; 402 this.isAuthenticated = this.user.isAuthenticated, this.user.events.pipe(M((n) => n instanceof B)).subscribe(() => { 403 this.isAuthenticated = this.user.isAuthenticated, this.close(); 404 }), this.user.events.pipe(M((n) => n instanceof Oi)).subscribe(() => { 405 this.isAuthenticated = this.user.isAuthenticated; 406 }), this.isPopUp = e?.isPopUp; 407 } 408 ngOnInit() { 409 this.loginConfig = this.configProvider.provideLoginClientConfig(), this.loginService.LoginBannerData.subscribe((e) => { 410 e && (this.loginBanner = e); 411 }, (e) => { 412 console.log(e); 413 }), this.activeRoute.queryParams.subscribe((e) => { 414 let n = (e.hrNavPage || "").trim(); 415 this.isMobile = this.deviceService.isMobile || this.deviceService.isMobilePhone || this.deviceService.isTablet, n == "" || n == null || n == null ? this.showHelpConfig = !1 : n == "todaysRacing" ? this.showHelpConfig = !1 : this.showHelpConfig = !0; 416 }); 417 } 418 signUpNavigation() { 419 this.loginNavigationService.goToRegistration({ appendReferrer: !0 }), this.close(); 420 } 421 login() { 422 this.loginDialogService.open({ loginMessageKey: "horseracing" }); 423 } 424 close() { 425 this.dialogRef.close?.(); 426 } 427 DoNotShowMessage(e, n) { 428 console.log(n), console.log(e), localStorage.setItem("IsLoginS
428how", n?.value?.toString()); 429 } 430 IsMobileOrDesktop() { 431 this.isMobile = this.deviceService.isMobile || this.deviceService.isMobilePhone || this.deviceService.isTablet; 432 } 433 }; 434 return t.ɵfac = function(i) { 435 return new (i || t)(); 436 }, t.ɵcmp = _({ 437 type: t, 438 selectors: [["hrl-horse-racing-login"]], 439 hostBindings: function(i, e) { 440 i & 1 && u("orientationchange", function() { 441 return e.IsMobileOrDesktop(); 442 }, le); 443 }, 444 features: [we([{ 445 provide: J, 446 useValue: {} 447 }, { 448 provide: K, 449 useValue: {} 450 }])], 451 decls: 1, 452 vars: 1, 453 consts: [ 454 ["IsChecked", ""], 455 [1, "LoginClose"], 456 [1, "center"], 457 [1, "Description"], 458 [1, "form-element"], 459 [ 460 "type", 461 "button", 462 "id", 463 "login", 464 1, 465 "btn-login", 466 3, 467 "click" 468 ], 469 [ 470 "id", 471 "signup", 472 1, 473 "btn", 474 "btn-link", 475 3, 476 "click" 477 ], 478 [ 479 1, 480 "btn-close", 481 3, 482 "click" 483 ], 484 [1, "theme-ex"], 485 [ 486 "type", 487 "checkbox", 488 "name", 489 "MessageAgain", 490 "id", 491 "MessageAgain", 492 1, 493 "custom-control-input", 494 "custom-control-checkbox", 495 3, 496 "click" 497 ], 498 ["for", "MessageAgain"] 499 ], 500 template: function(i, e) { 501 i & 1 && d(0, qn, 12, 6, "div"), i & 2 && p(!e.isAuthenticated && (e.showHelpConfig || !e.isMobile) && e.loginConfig?.enableLogin && e.loginBanner ? 0 : -1); 502 }, 503 dependencies: [Z], 504 encapsulation: 2, 505 changeDetection: 1 506 }), t; 507 })(), gt = (() => { 508 let t = class { 509 constructor() { 510 this.dialogRef = o(K), this.data = o(J), this.trackByBetTypeItems = (e, n) => e; 511 } 512 ngOnInit() { 513 console.log(this.data); 514 } 515 close() { 516 this.dialogRef.close(); 517 } 518 }; 519 return t.ɵfac = function(i) { 520 return new (i || t)(); 521 }, t.ɵcmp = _({ 522 type: t, 523 selectors: [["hrl-horse-racing-understand"]], 524 decls: 8, 525 vars: 3, 526 consts: [ 527 [1, "PopupBtnAlign"], 528 [ 529 1, 530 "PopupHeader", 531 3, 532 "innerHtml" 533 ], 534 [ 535 1, 536 "btn-close", 537 3, 538 "click" 539 ], 540 [1, "theme-ex"], 541 [1, "HorseInfo"], 542 [1, "HorseListInfo"], 543 [3, "innerHtml"], 544 [1, "BetTypeLabel"], 545 [ 546 1, 547 "BetTypeLabel", 548 3, 549 "innerHtml" 550 ], 551 [ 552 1, 553 "BackgroundSet", 554 3, 555 "innerHtml" 556 ], 557 [ 558 1, 559 "BackgroundSet", 560 "space", 561 3, 562 "innerHtml" 563 ], 564 [ 565 1, 566 "BackgroundDisabled", 567 "space", 568 3, 569 "innerHtml" 570 ] 571 ], 572 template: function(i, e) { 573 i & 1 && (I(0, "div", 0), E(1, "div")(2, "h1", 1), I(3, "div", 2), Pe("click", function() { 574 return e.close(); 575 }), E(4, "i", 3), x()(), I(5, "div"), d(6, Jn, 3, 0, "ol", 4), d(7, Qn, 3, 0, "ol", 4), x()), i & 2 && (s(2), y("innerHTML", e.data.header, w), s(4), p(e.data.isBetType ? -1 : 6), s(), p(e.data.isBetType ? 7 : -1)); 576 }, 577 encapsulation: 2, 578 changeDetection: 1 579 }), t; 580 })(), ut = (() => { 581 let t = class { 582 constructor() { 583 this.dialog = o(je), this.activeRoute = o(q), this.configProvider = o(P), this.loginService = o(ge), this.user = o(R), this.deviceService = o(G), this.trackByMenuItems = (e, n) => e, this.helpPopup = null, this.popupData = null, this.showHelpConfig = !1, this.isTracks = !1, this.topPosition = "10%", this.isAuthenticated = this.user.isAuthenticated, this.user.events.pipe(M((e) => e instanceof B)).subscribe(() => { 584 this.isAuthenticated = this.user.isAuthenticated; 585 }); 586 } 587 ngOnInit() { 588 this.isMobile = this.deviceService.isMobile || this.deviceService.isMobilePhone || this.deviceService.isTablet, this.handleLoginPopup(), this.handleNavigationPage(), this.setTopPosition(), this.setHelpPopupData(); 589 } 590 handleLoginPopup() { 591 let e = this.configProvider.provideLoginClientConfig(), n = localStorage.getItem("IsLoginShow") ?? ""; 592 !this.isAuthenticated && e?.enableLogin && !this.isMobile && !n && this.dialog.open(ue, { 593 width: "400px", 594 data: { isPopUp: !0 } 595 }); 596 } 597 handleNavigationPage() { 598 this.activeRoute.queryParams.subscribe((e) => { 599 let n = (e.hrNavPage || "").trim(); 600 this.showHelpConfig = !(n && n !== "todaysRacing"); 601 }); 602 } 603 setTopPosition() { 604 this.topPosition = this.isMobile ? "10%" : "1%"; 605 } 606 setHelpPopupData() { 607 this.helpConfig = this.configProvider.provideHelpClientConfig(), this.loginService.HelpPopupData.subscribe((e) => { 608 e && (this.helpPopup = e); 609 }, (e) => { 610 console.log(e); 611 }); 612 } 613 open(e) { 614 this.popupData = null; 615 let n = Object.keys(this.helpPopup); 616 for (let r of n) this.helpPopup[r].menuTitle == e && (this.popupData = this.helpPopup[r]); 617 this.dialog.open(gt, { 618 width: "600px", 619 position: { top: this.topPosition }, 620 data: this.popupData, 621 panelClass: "helppopup" 622 }); 623 } 624 close() { 625 this.dialog && this.dialog.closeAll(); 626 } 627 }; 628 return t.ɵfac = function(i) { 629 return new (i || t)(); 630 }, t.ɵcmp = _({ 631 type: t, 632 selectors: [["hrl-horse-racing-help"]], 633 features: [we([{ 634 provide: J, 635 useValue: {} 636 }, { 637 provide: K, 638 useValue: {} 639 }])], 640 decls: 1, 641 vars: 1, 642 consts: [ 643 [ 644 2, 645 "margin-bottom", 646 "2%" 647 ], 648 [1, "understand"], 649 [ 650 1, 651 "border", 652 3, 653 "click" 654 ], 655 [1, "theme-right"], 656 [ 657 1, 658 "border", 659 "DesktopBorder", 660 3, 661 "click" 662 ], 663 [1, "understandText"], 664 [1, "HeaderText"], 665 [1, "OverFlowText"], 666 [ 667 1, 668 "theme-right", 669 "arrow" 670 ] 671 ], 672 template: function(i, e) { 673 i & 1 && d(0, io, 3, 2, "div"), i & 2 && p((!e.isAuthenticated && e.showHelpConfig && e.isMobile || !e.isMobile) && e.helpConfig?.enableHelpPopUp && e.helpPopup !== null ? 0 : -1); 674 }, 675 dependencies: [Z], 676 encapsulation: 2, 677 changeDetection: 1 678 }), t; 679 })(), dt = "racingextension:vnapp:clientconfig:read", pt = "racingextension:vnapp:geolocation:currentposition:available", ft = "racingextension:vnapp:geolocation:currentposition:read", vt = "racingextension:vnapp:balance:refresh", mt = (() => { 680 let t = class { 681 setGeolocationCoordinates(e = null, n = null) { 682 try { 683 localStorage.setItem("Latitude", e?.toString() ?? ""), localStorage.setItem("Longitude", n?.toString() ?? ""); 684 } catch {} 685 } 686 }; 687 return t.ɵfac = function(i) { 688 return new (i || t)(); 689 }, t.ɵprov = b({ 690 token: t, 691 factory: t.ɵfac, 692 providedIn: "root" 693 }), t; 694 })(), de = (() => { 695 let t = class { 696 constructor() { 697 this.geolocationService = o(Ui), this.cachemanager = o(mt), this.locationAvailableSubject = new U(!1), this.locationAvailable = this.locationAvailableSubject.asObservable(), this.geolocationConfig = o(ee), this.geoCoordinatorConfig = o(X), this.geoCoordinatorConfig.whenReady.subscribe(() => { 698 this.geoCoordinatorConfig.switchOnLegacy ? this.geolocationConfig.whenReady.subscribe(() => { 699 this.geolocationConfig.useVanilla && this.checkAndBroadcastLocationAvailaibility(); 700 }) : (this.geoCoordinatorConfig.additionalSettings.useVanillaGeolocation ?? !1) && this.checkAndBroadcastLocationAvailaibility(); 701 }); 702 } 703 registerHandler() { 704 addEventListener(ft, (e) => { 705 e.detail && e.detail.currentLocation && (e.detail.currentLocation = this.geolocationService.currentPosition); 706 }); 707 } 708 getLocation() { 709 return this.userLocation; 710 } 711 setLocation(e) { 712 this.userLocation = { 713 latitude: e.latitude, 714 longitude: e.longitude, 715 accuracy: e.accuracy 716 }; 717 } 718 checkAndBroadcastLocationAvailaibility() { 719 this.geolocationService.whenReady.subscribe(() => { 720 this.geolocationService.watchBrowserPositionChanges(), this.geolocationService.positionChanges.subscribe({ 721 next: (e) => { 722 this.setLocation(e.coords), this.cachemanager.setGeolocationCoordinates(e?.coords?.latitude, e.coords.longitude), this.locationAvailableSubject.next(!0), dispatchEvent(new CustomEvent(pt, { detail: { location: e } })); 723 }, 724 error: (e) => { 725 console.error("[RacingExtension]", "[Geolocation]", "[Error]", e); 726 } 727 }); 728 }); 729 } 730 }; 731 return t.ɵfac = function(i) { 732 return new (i || t)(); 733 }, t.ɵprov = b({ 734 token: t, 735 factory: t.ɵfac, 736 providedIn: "root" 737 }), t; 738 })(), pe = (() => { 739 let t = class { 740 constructor() { 741 this.api = o(N); 742 } 743 getPlayerSessionToken() { 744 return this.sessionInfo?.sessionToken ?? ""; 745 } 746 getUserToken() { 747 return new Kt((e) => { 748 this.api.get("GetUserToken").subscribe((n) => { 749 this.setPlayerSessionInfo(n), e.next(n); 750 }, (n) => { 751 console.log(n); 752 }); 753 }); 754 } 755 resetUserToken() { 756 this.sessionInfo = null; 757 } 758 setPlayerSessionInfo(e) { 759 this.sessionInfo = e; 760 } 761 }; 762 return t.ɵfac = function(i) { 763 return new (i || t)(); 764 }, t.ɵprov = b({ 765 token: t, 766 factory: t.ɵfac, 767 providedIn: "root" 768 }), t; 769 })(), fe = (() => { 770 let t = class { 771 constructor() { 772 this.configProvider = o(P), this.claimsService = o(Di), this.geolocationHandlerService = o(de), this.appInfoConfig = o($i), this.api = o(N), this.playerSessionService = o(pe), this.http = o(mi), this.partnerTokenAvailable = !1, this.sessionInfoPlaceholder = "b={0}|c={1}|gt={2}|p={3}|psi={4}", this.tokenBuiltSubject = new U(null), this.tokenAvailable = this.tokenBuiltSubject.asObservable(), this.geolocationConfig = o(ee), this.geoCoordinatorConfig = o(X); 773 } 774 buildTokenwithVanilla() { 775 this.locationSubscription = this.geolocationHandlerService.locationAvailable.subscribe((e) => T(this, null, function* () { 776 if (e) { 777 let n = this.configProvider.providePartnerTokenClientConfig(); 778 this.partnerToken = { 779 integrationPartnerId: n.integrationPartnerId,
780 currency: this.claimsService.get("currency") ?? "", 781 partnerUsername: this.claimsService.get("http://api.bwin.com/v3/user/pg/nameidentifier") ?? "", 782 state: this.claimsService.get("stateorprovince") ?? "", 783 zipcode: this.claimsService.get("postalcode") ?? "", 784 location: this.geolocationHandlerService.getLocation(), 785 issuedAt: /* @__PURE__ */ new Date(), 786 signature: "", 787 arbitrarySessionInformation: this.getSessionInfo(n.gameType) 788 }, this.getTokenSignature().subscribe((r) => { 789 this.updateSignatureInToken(r.signature), this.setTokenAvailability(!0), this.tokenBuiltSubject.next(this.partnerToken); 790 }); 791 } 792 }), (e) => { 793 console.log("Unable to retrieve Location, " + e?.error?.message), this.buildToken(0, 0, 0); 794 }); 795 } 796 buildTokenwithPOS() { 797 let e = this.getPosApiEndpoint(); 798 this.http.get(e).subscribe((n) => { 799 if (n) { 800 let r = n.latitude, f = n.longitude; 801 this.buildToken(500, r, f); 802 } 803 }, (n) => { 804 console.log("Unable to retrieve Location, " + n?.error?.message), this.buildToken(0, 0, 0); 805 }); 806 } 807 buildTokenWithoutLocation() { 808 this.api.post("partnertoken/build", { 809 accuracy: 0, 810 latitude: 0, 811 longitude: 0 812 }).subscribe((e) => { 813 this.partnerToken = e, this.setTokenAvailability(!0), this.tokenBuiltSubject.next(this.partnerToken); 814 }); 815 } 816 buildTokenOnServer() { 817 T(this, null, function* () { 818 try { 819 let e = this.getPosApiEndpoint(), n = yield (yield fetch(new URL(decodeURIComponent(e || ""), location.origin).href, { method: "GET" })).text(), r = new DOMParser().parseFromString(n, "application/xml"); 820 if (r.documentElement.hasAttribute("latitude") && r.documentElement.hasAttribute("longitude")) { 821 let f = +(r.documentElement.getAttribute("latitude") || ""), C = +(r.documentElement.getAttribute("longitude") || ""); 822 if (!isNaN(f) && !isNaN(C)) { 823 let H = { 824 accuracy: 500, 825 latitude: f, 826 longitude: C 827 }; 828 this.api.post("partnertoken/build", H).subscribe(($t) => { 829 this.partnerToken = $t, this.setTokenAvailability(!0), this.tokenBuiltSubject.next(this.partnerToken); 830 }); 831 } 832 } else console.log("[RacingExtension]", "[TokenBuilder]", "[LocationFetcher]", "Building partner token with no location as necessary location paramaters unavailable"), this.buildTokenWithoutLocation(); 833 } catch (e) { 834 console.log("Unable to retrieve Location, " + e?.error?.message), this.buildTokenWithoutLocation(); 835 } 836 }); 837 } 838 buildTokenServerSide() { 839 this.buildTokenOnServer(); 840 } 841 buildToken(e, n, r) { 842 let f = this.configProvider.providePartnerTokenClientConfig(); 843 this.partnerToken = { 844 integrationPartnerId: f.integrationPartnerId, 845 currency: this.claimsService.get("currency") ?? "", 846 partnerUsername: this.claimsService.get("https://api.bwin.com/v3/user/pg/nameidentifier") ?? "", 847 state: this.claimsService.get("stateorprovince") ?? "", 848 zipcode: this.claimsService.get("postalcode") ?? "", 849 location: { 850 accuracy: e, 851 latitude: n, 852 longitude: r 853 }, 854 issuedAt: /* @__PURE__ */ new Date(), 855 signature: "", 856 arbitrarySessionInformation: this.getSessionInfo(f.gameType) 857 }, this.getTokenSignature().subscribe((C) => { 858 this.updateSignatureInToken(C.signature), this.setTokenAvailability(!0), this.tokenBuiltSubject.next(this.partnerToken); 859 }); 860 } 861 getSessionInfo(e) { 862 return this.sessionInfoPlaceholder = this.sessionInfoPlaceholder.replace("{0}", this.appInfoConfig.brand), this.sessionInfoPlaceholder = this.sessionInfoPlaceholder.replace("{1}", this.appInfoConfig.channel), this.sessionInfoPlaceholder = this.sessionInfoPlaceholder.replace("{2}", e), this.sessionInfoPlaceholder = this.sessionInfoPlaceholder.replace("{3}", this.appInfoConfig.product), this.sessionInfoPlaceholder = this.sessionInfoPlaceholder.replace("{4}", this.playerSessionService.getPlayerSessionToken()), this.sessionInfoPlaceholder; 863 } 864 getTokenSignature() { 865 return this.api.post("sign/digital", { content: JSON.stringify(this.partnerToken) }, { prefix: "/signature" }); 866 } 867 updateSignatureInToken(e) { 868 this.partnerToken.signature = e; 869 } 870 setTokenAvailability(e) { 871 this.partnerTokenAvailable = e; 872 } 873 getTokenAvailability() { 874 return this.partnerTokenAvailable; 875 } 876 getToken() { 877 if (this.getTokenAvailability()) return this.partnerToken; 878 this.geoCoordinatorConfig.whenReady.subscribe(() => { 879 this.geoCoordinatorConfig.switchOnLegacy ?? !0 ? this.geolocationConfig.useVanilla ? this.buildTokenwithVanilla() : this.configProvider.partnerTokenClientConfig.serverSide ? this.buildTokenServerSide() : this.buildTokenwithPOS() : this.geoCoordinatorConfig.additionalSettings.useVanillaGeolocation ? this.buildTokenwithVanilla() : this.configProvider.partnerTokenClientConfig.serverSide ? this.buildTokenServerSide() : this.buildTokenwithPOS(); 880 }); 881 } 882 ngOnDestroy() { 883 this.locationSubscription && this.locationSubscription.unsubscribe(); 884 } 885 getPosApiEndpoint() { 886 return this.geoCoordinatorConfig.switchOnLegacy ?? !0 ? this.geolocationConfig.posAPIEndpoint : (this.geoCoordinatorConfig.additionalSettings.posApiEndpoint ?? "").replace("{accessId}", this.geoCoordinatorConfig.apiToken); 887 } 888 }; 889 return t.ɵfac = function(i) { 890 return new (i || t)(); 891 }, t.ɵprov = b({ 892 token: t, 893 factory: t.ɵfac, 894 providedIn: "root" 895 }), t; 896 })(), bt = (() => { 897 let t = class { 898 constructor() { 899 this.nativeAppService = o(Me), this.deviceService = o(G); 900 } 901 checkForTouchDevice() { 902 try { 903 this.isTouchDevice = !this.nativeAppService.isDownloadClient && this.deviceService.isTouch && !window.matchMedia("(pointer: fine)").matches && !navigator.userAgent.match(/Win64|WOW64/); 904 } catch { 905 this.isTouchDevice = "ontouchstart" in window || navigator.maxTouchPoints > 0; 906 } 907 } 908 isTouch() { 909 return this.checkForTouchDevice(), this.isTouchDevice; 910 } 911 }; 912 return t.ɵfac = function(i) { 913 return new (i || t)(); 914 }, t.ɵprov = b({ 915 token: t, 916 factory: t.ɵfac, 917 providedIn: "root" 918 }), t; 919 })(), Ct = (() => { 920 let t = class { 921 constructor() { 922 this.trackingService = o(Gi); 923 } 924 trackPosition(e, n, r) { 925 this.trackingService.triggerEvent("Event.Tracking", { 926 "component.CategoryEvent": "US_NJ_GEOAPP", 927 "component.LabelEvent": e, 928 "component.ActionEvent": n, 929 "component.PositionEvent": r, 930 "component.LocationEvent": "not_applicable", 931 "component.EventDetails": "not_applicable", 932 "component.URLClicked": "not_applicable" 933 }); 934 } 935 track(e, n, r) { 936 r ? this.trackingService.triggerEvent("Event.Tracking", { 937 "component.CategoryEvent": "US_NJ_GEOAPP", 938 "component.LabelEvent": e, 939 "component.ActionEvent": n, 940 "component.PositionEvent": "not_applicable", 941 "component.LocationEvent": r, 942 "component.EventDetails": "not_applicable", 943 "component.URLClicked": "not_applicable" 944 }) : this.trackingService.triggerEvent("Event.Tracking", { 945 "component.CategoryEvent": "US_NJ_GEOAPP", 946 "component.LabelEvent": e, 947 "component.ActionEvent": n, 948 "component.PositionEvent": "not_applicable", 949 "component.LocationEvent": "not_applicable", 950 "component.EventDetails": "not_applicable", 951 "component.URLClicked": "not_applicable" 952 }); 953 } 954 }; 955 return t.ɵfac = function(i) { 956 return new (i || t)(); 957 }, t.ɵprov = b({ 958 token: t, 959 factory: t.ɵfac, 960 providedIn: "root" 961 }), t; 962 })(), kt = (() => { 963 let t = class { 964 constructor() { 965 this.dialogRef = o(K), this.geolocationCoordinatorService = o(st), this._domSanitizer = o(Be), this.additionalInfo = o(J), this._geolocationTrackingService = o(Ct), this.configProviderService = o(P), this.navigationService = o(Ti), this.showLoader = !1, this.geolocationConfig = o(ee); 966 } 967 get geoComplyMessage() { 968 return this.geolocationConfig.geoComplyMessage; 969 } 970 appDownloadLink() { 971 let e = navigator.userAgent, n = /(iPad|iPhone|iPod)/g.test(e), r = /(Android)/g.test(e); 972 return n ? this._domSanitizer.bypassSecurityTrustUrl("javascript:void(0)") : r ? this.getGlobalConfig().messages.AndroidAppDownloadLink : ""; 973 } 974 get continueButtonText() { 975 return this.getGlobalConfig().messages.GeoComplyContinueButtonText; 976 } 977 get continuePlayOnAppInstructionText() { 978 return this.getGlobalConfig().messages.ContinuePlayOnAppInstructionText || "Continue play on our app, with automatic geolocation"; 979 } 980 get continuePlayOnAppUserActionText() { 981 return this.getGlobalConfig().messages.ContinuePlayOnAppUserActionText || "CONTINUE PLAY ON PLAYMGM APP"; 982 } 983 get continuePlayOnWebInstructionText() { 984 return this.getGlobalConfig().messages.ContinuePlayOnWebInstructionText || "To play on web, Geoguard needs to be installed and running on your device"; 985 } 986 get oobeeInstallerDownloadUserActionText() { 987 return this.getGlobalConfig().messages.OobeeInstallerDownloadUserActionText || "INSTALL OR OPEN GEOGUARD"; 988 } 989 get oobeeInstallerContinueUserActionText() { 990 return this.getGlobalConfig().messages.OobeeInstallerContinueUserActionText || "GEOGUARD IS INSTALLED AND RUNNING"; 991 } 992 get downloadButtonText() { 993 return this.getGlobalConfig().messages.GeoComplyDownloadButtonText; 994 } 995 get geocomplyText() { 996 return this.getGlobalConfig().messages.GeoComplyText; 997 } 998 get geocomplyTitle() { 999 return this.getGlobalConfig().messages.GeoComplyTitle; 1000 } 1001 get geoguardEnquiryUserActionText() { 1002 return this.getGlobalConfig().messages.GeoguardEnquiryUserActionText || "WHAT IS GEOGUARD?"; 1003 } 1004 get oobeeInstallerDownloadStepText() { 1005 return this.getGlobalConfig().messages.OobeeInstallerDownloadStepText || "Step 1"; 1006 } 1007 get oobeeInstallerContinueStepText() { 1008 return this.getGlobalConfig().messages.OobeeInstallerContinueStepText || "Step 2"; 1009 } 1010 get geolocationMobileInstallerTitle() { 1011 return this.getGlobalConfig().messages.GeolocationMobileInstallerTitle || "LOCATION"; 1012 } 1013 get isMobileInstaller() { 1014 return this.data && this.data.isMobileInstaller ? this.data && this.data.isMobileInstaller : this.additionalInfo && this.additionalInfo.isMobileInstaller; 1015 } 1016 get oobeeInstallerHeadingText() { 1017 return this.getGlobalConfig().messages.OobeeInstallerHeadingText || "Want to continue playing?"; 1018 } 1019 get oobeeInstallerHeadingInstruction() { 1020 return this.getGlobalConfig().messages.OobeeInstallerHeadingInstruction || "Before you lau
1020nch a game we are required by law to confirm your location."; 1021 } 1022 get playOnAppOrWebPlayerOptionsSeparatorText() { 1023 return this.getGlobalConfig().messages.PlayOnAppOrWebPlayerOptionsSeparatorText || "OR"; 1024 } 1025 get geoGuardDescriptionText() { 1026 return this.getGlobalConfig().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"; 1027 } 1028 continue() { 1029 this.showLoader = !0, this.isMobileInstaller && this._geolocationTrackingService.track("GeoLoc_Pop-up how to", "Step 2 - Geoguard is Intalled and running - CTA Clicked"), this.geolocationCoordinatorService.initialize({ showPLCPopup: !0 }); 1030 } 1031 download() { 1032 this._geolocationTrackingService.track("GeoLoc_Pop-up how to", "Step 1 - install or Open GeoGuard - CTA Clicked"); 1033 let e = this.data?.downloadUrl || this.additionalInfo?.downloadUrl; 1034 window.open(e || "", this.isMobileInstaller ? "_blank" : "_self"); 1035 } 1036 close() { 1037 if (this.isMobileInstaller && this._geolocationTrackingService.track("GeoLoc_Pop-up how to", "Pop-up_Close"), this.dialogRef && this.dialogRef.close(), this.navigationService.location.search.has("specialproduct") && this.navigationService.location.search.get("specialproduct") === "globalsearch") { 1038 let e = this.navigationService.location.search.has("returnurl") ? this.navigationService.location.search.get("returnurl") : this.navigationService.goToLastKnownProduct(); 1039 e && this.navigationService.goTo(e); 1040 } 1041 } 1042 appDownloaderClicked() { 1043 let e = "", n = this.getGlobalConfig().messages.AndroidAppID ? this.getGlobalConfig().messages.AndroidAppID : ""; 1044 /(iPad|iPhone|iPod)/g.test(navigator.userAgent) && (e = this.getGlobalConfig().messages.iOSAppDownloadLink, n = this.getGlobalConfig().messages.iOSAppID ? this.getGlobalConfig().messages.iOSAppID : ""), this._geolocationTrackingService.trackPosition("GeoLoc_Pop-up how to", "Continue to play on an APP_ CTA Clicked", n), e && window.open(e, "_blank"); 1045 } 1046 hideLoader() { 1047 this.showLoader = !1; 1048 } 1049 info() { 1050 this.isMobileInstaller && this._geolocationTrackingService.track("GeoLoc_Pop-up how to", "InfoTool - What is Geoguard - CTA Clicked"); 1051 } 1052 ngAfterViewInit() { 1053 this._geolocationTrackingService.track("GeoLoc_Pop-up how to", "Pop-up_Loaded"); 1054 } 1055 getGlobalConfig() { 1056 let e = this.configProviderService.provideGlobalClientConfig(); 1057 return typeof e == "object" ? e : {}; 1058 } 1059 }; 1060 return t.ɵfac = function(i) { 1061 return new (i || t)(); 1062 }, t.ɵcmp = _({ 1063 type: t, 1064 selectors: [["hr-geolocation-installer"]], 1065 inputs: { data: "data" }, 1066 decls: 4, 1067 vars: 3, 1068 consts: [ 1069 ["popper", ""], 1070 ["id", "casino-geolocation-installer-container"], 1071 [ 1072 "id", 1073 "geolocation-desktop-installer", 1074 1, 1075 "geo-location-popup-container" 1076 ], 1077 [ 1078 "id", 1079 "geolocation-mobile-installer", 1080 1, 1081 "casino-modal" 1082 ], 1083 [1, "loading"], 1084 [1, "geo-title-heading"], 1085 [ 1086 "mat-dialog-title", 1087 "", 1088 1, 1089 "geo-title", 1090 3, 1091 "textContent" 1092 ], 1093 [ 1094 "id", 1095 "dialogclosebutton", 1096 1, 1097 "theme-ex", 1098 3, 1099 "click" 1100 ], 1101 [ 1102 "mat-dialog-content", 1103 "", 1104 1, 1105 "geo-content", 1106 3, 1107 "vnDynamicHtml" 1108 ], 1109 [ 1110 "mat-dialog-actions", 1111 "", 1112 1, 1113 "geo-buttons" 1114 ], 1115 [ 1116 "mat-button", 1117 "", 1118 1, 1119 "geo-left-button", 1120 3, 1121 "click", 1122 "textContent" 1123 ], 1124 [ 1125 "mat-button", 1126 "", 1127 "cdkFocusInitial", 1128 "", 1129 1, 1130 "geo-right-button", 1131 3, 1132 "click", 1133 "textContent" 1134 ], 1135 [1, "geolocation-mobile-installer-title-heading"], 1136 [ 1137 "mat-dialog-title", 1138 "", 1139 1, 1140 "geolocation-mobile-installer-title", 1141 3, 1142 "textContent" 1143 ], 1144 [1, "container-overlay"], 1145 [1, "theme-location-pin"], 1146 [1, "container-overlay-header"], 1147 [3, "textContent"], 1148 [ 1149 1, 1150 "header-text", 1151 3, 1152 "textContent" 1153 ], 1154 [1, "clearfix"], 1155 [ 1156 "id", 1157 "appDownloaderLink", 1158 "target", 1159 "_blank", 1160 1, 1161 "btn", 1162 "btn-primary", 1163 3, 1164 "click", 1165 "href", 1166 "textContent" 1167 ], 1168 [1, "container-overlay-break"], 1169 [ 1170 1, 1171 "or-container", 1172 3, 1173 "textContent" 1174 ], 1175 [ 1176 1, 1177 "p-text-middle", 1178 3, 1179 "textContent" 1180 ], 1181 [1, "oobeeInstallerUserActionsContainer"], 1182 ["id", "oobeeInstallerDownloadContainer"], 1183 [ 1184 "id", 1185 "oobeeInstallerDownloadStepText", 1186 3, 1187 "textContent" 1188 ], 1189 [ 1190 "id", 1191 "btn-download", 1192 1, 1193 "oobeeInstallerDownloadUserActionButton", 1194 "btn", 1195 "btn-secondary", 1196 3, 1197 "click", 1198 "textContent" 1199 ], 1200 ["id", "oobeeInstallerContinueContainer"], 1201 [ 1202 "id", 1203 "oobeeInstallerContinueStepText", 1204 3, 1205 "textContent" 1206 ], 1207 [ 1208 "id", 1209 "btn-continue", 1210 1, 1211 "oobeeInstallerContinueUserActionButton", 1212 "btn", 1213 "btn-primary", 1214 3, 1215 "click", 1216 "textContent" 1217 ], 1218 [1, "container-overlay-footer"], 1219 [1, "geoGuardEnquiryUserActionContainer"], 1220 [ 1221 1, 1222 "ui-icon", 1223 "theme-info-i", 1224 3, 1225 "click", 1226 "floatUi" 1227 ], 1228 [ 1229 1, 1230 "geoGuardEnquiryUserActionText", 1231 3, 1232 "click", 1233 "floatUi", 1234 "textContent" 1235 ], 1236 ["cssClass", "tooltip-info"] 1237 ], 1238 template: function(i, e) { 1239 i & 1 && (a(0, "div", 1), d(1, no, 8, 4, "div", 2), d(2, oo, 32, 16, "div", 3), l(), d(3, so, 2, 0, "div", 4)), i & 2 && (s(), p(e.isMobileInstaller ? -1 : 1), s(), p(e.isMobileInstaller ? 2 : -1), s(), p(e.showLoader ? 3 : -1)); 1240 }, 1241 dependencies: [ 1242 Z, 1243 tn, 1244 Xi, 1245 en, 1246 ze, 1247 Wi, 1248 ji, 1249 _n 1250 ], 1251 encapsulation: 2, 1252 changeDetection: 1 1253 }), t; 1254 })(), St = (() => { 1255 let t = class { 1256 constructor() { 1257 this.dialog = o(je), this._isDialogOpen = !1; 1258 } 1259 openDialog(e, n) { 1260 this.dialogRef = this.dialog.open(kt, { 1261 width: "250px", 1262 data: { 1263 downloadUrl: e, 1264 isMobileInstaller: n 1265 }, 1266 panelClass: "geo-location-installer" 1267 }), this._isDialogOpen = !0, this.dialogRef.afterClosed().subscribe((r) => { 1268 console.info("The dialog was closed:", r), this._isDialogOpen = !1, this.onDialogClosed && this.onDialogClosed(); 1269 }); 1270 } 1271 closeDialog() { 1272 this.dialogRef && this.dialogRef.close(); 1273 } 1274 get isDialogOpen() { 1275 return this._isDialogOpen; 1276 } 1277 hideLoader() { 1278 this.dialogRef && this.dialogRef.componentInstance && this.dialogRef.componentInstance.hideLoader(); 1279 } 1280 }; 1281 return t.ɵfac = function(i) { 1282 return new (i || t)(); 1283 }, t.ɵprov = b({ 1284 token: t, 1285 factory: t.ɵfac, 1286 providedIn: "root" 1287 }), t; 1288 })(), Tt = (() => { 1289 let t = class { 1290 constructor() { 1291 this.geolocationCoordinatorService = o(st), this.geolocationInstallerService = o(St), this.deviceManager = o(bt), this.geoCoordinatorClientConfig = o(X), this.geoCoordinationCheckService = o(zn), this.geolocationInstallerService.onDialogClosed = this.onInstallerServiceDialogClosed.bind(this); 1292 } 1293 startGeolocation() { 1294 this.geoCoordinatorClientConfig.whenReady.subscribe(() => { 1295 this.geoCoordinatorClientConfig.switchOnLegacy ?? !0 ? this.startLegacyGeolocation() : this.geoCoordinationCheckService.checkGeolocation(); 1296 }); 1297 } 1298 closeGeolocationDialog() { 1299 this.geolocationInstallerService.closeDialog(), console.log("GeolocationInstaller popup closed"); 1300 } 1301 showGeolocationInstallerPopup(e, n) { 1302 this.geolocationInstallerService.hideLoader(), this.geolocationInstallerService.isDialogOpen || this.geolocationInstallerService.openDialog(e, n); 1303 } 1304 isMobileInstaller() { 1305 return this.deviceManager.isTouch(); 1306 } 1307 onInstallerServiceDialogClosed() { 1308 this.onCheckClosed && this.onCheckClosed(); 1309 } 1310 startLegacyGeolocation() { 1311 this.geolocationCoordinatorService.onInitialized = (e) => { 1312 console.info("[GeolocationCheckService]", "GeolocationCoordinatorService::", "onInitialized::", e), e === "INITIALIZED" && this.closeGeolocationDialog(); 1313 }, this.geolocationCoordinatorService.onError = (e) => { 1314 if (console.error("[GeolocationCheckService]", "GeolocationCoordinatorService::", "onError::", e), e && e.errorCode == -1111) { 1315 this.showGeolocationInstallerPopup(e && e.additionalInfo && e.additionalInfo.app
1315DownloadUrl || this.geolocationCoordinatorService.appDownloadUrl, this.isMobileInstaller()); 1316 return; 1317 } 1318 if (console.error("[GeolocationCheckService]", "GeolocationCoordinatorService::", "onError::", e), e && e.errorCode == -1111) { 1319 let n = e.additionalInfo?.appDownloadUrl; 1320 this.showGeolocationInstallerPopup(n || "", !0); 1321 } 1322 this.closeGeolocationDialog(); 1323 }, this.geolocationCoordinatorService.onUninitialized = () => { 1324 console.info("[GeolocationCheckService]", "GeolocationCoordinatorService::", "onUninitialized::"); 1325 }, this.geolocationCoordinatorService.initialize({ showPLCPopup: !1 }); 1326 } 1327 }; 1328 return t.ɵfac = function(i) { 1329 return new (i || t)(); 1330 }, t.ɵprov = b({ 1331 token: t, 1332 factory: t.ɵfac, 1333 providedIn: "root" 1334 }), t; 1335 })(), yt = (() => { 1336 let t = class { 1337 constructor() { 1338 this.sanitizer = o(Be), this.configProvider = o(P), this.tokenBuilderService = o(fe), this.user = o(R), this.activeRoute = o(q), this.loginDialogService = o(We), this.authService = o(Ni), this.geolocationCheckService = o(Tt), this.geolocationActivator = o(Vn), this.balanceService = o(et), this.nativeAppService = o(Me), this.deviceService = o(G), this.logger = o(yi), this.isFrameLoaded = !1; 1339 } 1340 ngOnInit() { 1341 this.iframeClientConfig = this.configProvider.provideIframeClientConfig(), this.isMobile = this.deviceService.isMobile || this.deviceService.isMobilePhone || this.deviceService.isTablet, this.iframeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.iframeClientConfig.url), this.user.events.pipe(M((e) => e instanceof B)).subscribe(() => T(this, null, function* () { 1342 this.isFrameLoaded && (yield this.communicateLoginAndKickOffGeoCoordinator()); 1343 })); 1344 } 1345 processMessages(e) { 1346 if ((e.data.messageName || "").trim()) switch (this.logger.info("[HorseRacingPortal]", "[HorseRacingIframeComponent]", "[processMessages]", "[Received Message]", `[${e.data && (e.data.messageName || "").trim()}]`), e.data.messageName) { 1347 case "requestLogin": 1348 this.user.isAuthenticated || this.loginDialogService.opened || this.loginDialogService.open({ loginMessageKey: "horseracing" }); 1349 break; 1350 case "updateBalance": 1351 this.user.isAuthenticated && this.balanceService.refresh(); 1352 break; 1353 case "updateHeight": 1354 this.isFrameLoaded && this.iframe && (!isNaN(parseInt(this.iframe.height)) && !isNaN(parseInt(e.data.newHeight)) ? (e.data.newHeight > this.iframe.height ? e.data.newHeight - parseInt(this.iframe.height) : parseInt(this.iframe.height) - e.data.newHeight) > 100 && (this.iframe.height = e.data.newHeight) : this.iframe.height = e.data.newHeight); 1355 break; 1356 case "requestLogout": 1357 let n = e.data.reason; 1358 this.logout(n); 1359 break; 1360 case "notifyEvent": 1361 let r = (e.data.eventName || "").trim(), f = e.data.parameters.isSuccessful, C = e.data.parameters.numberOfBets; 1362 this.nativeAppService.sendToNative({ 1363 eventName: r, 1364 parameters: { 1365 isSuccessful: f, 1366 numberOfBets: C 1367 } 1368 }); 1369 break; 1370 case "loginFailed": this.logout("loginFailed"); 1371 } 1372 } 1373 hrLoaded(e) { 1374 return T(this, null, function* () { 1375 e.target.src && !this.isFrameLoaded && (this.isFrameLoaded = !0, this.logger.info("[HorseRacingPortal]", "[HorseRacingIframeComponent]", "[hrLoaded]", "[IFrame Loaded]", e), this.iframe = e.target, this.sendInit(), this.handleHrNavigation(), this.user.isAuthenticated && (yield this.communicateLoginAndKickOffGeoCoordinator())); 1376 }); 1377 } 1378 communicateLoginAndKickOffGeoCoordinator() { 1379 return T(this, null, function* () { 1380 this.sendPartnerLoginEvent(), yield this.initGeolocation(); 1381 }); 1382 } 1383 sendInit() { 1384 !this.user.isAuthenticated && this.iframe && setTimeout(() => { 1385 this.iframe?.contentWindow?.postMessage({ messageName: "init" }, new URL(this.iframeClientConfig.url).origin); 1386 }, this.iframeClientConfig?.messageDelay > 5 ? this.iframeClientConfig.messageDelay : 5); 1387 } 1388 handleHrNavigation() { 1389 this.isFrameLoaded && this.activeRoute.queryParams.subscribe((e) => { 1390 if (this.logger.info("[HorseRacingPortal]", "[IntegrationFrame]", "[handleHrNavigation]", "[Query Parameter Change Detected]"), e && e.hrNavPage) { 1391 let n = (e.hrNavPage || "").trim(); 1392 if (n && this.iframe) { 1393 let r = this.iframe.contentWindow; 1394 setTimeout(() => { 1395 this.logger.info("[HorseRacingPortal]", "[IntegrationFrame]", "[handleHrNavigation]", n, "[Sending Message to Integration Frame]"), r?.postMessage({ 1396 messageName: "changePage", 1397 toPage: n 1398 }, new URL(this.iframeClientConfig.url).origin); 1399 }, this.iframeClientConfig?.navigationDelay > 5 ? this.iframeClientConfig.navigationDelay : 5); 1400 } 1401 } else if (this.isMobile) { 1402 let n = this.iframe.contentWindow; 1403 setTimeout(() => { 1404 this.logger.info("[HorseRacingPortal]", "[IntegrationFrame]", "[handleHrNavigation]", "todaysRacing", "[Sending Message to Integration Frame]"), n?.postMessage({ 1405 messageName: "changePage", 1406 toPage: "todaysRacing" 1407 }, new URL(this.iframeClientConfig.url).origin); 1408 }, this.iframeClientConfig?.navigationDelay > 5 ? this.iframeClientConfig.navigationDelay : 5); 1409 } 1410 }); 1411 } 1412 sendPartnerLoginEvent() { 1413 this.tokenObservable = this.tokenBuilderService.tokenAvailable.subscribe((e) => { 1414 if (e) { 1415 this.token = e; 1416 let n = window.btoa(JSON.stringify(this.token)); 1417 setTimeout(() => { 1418 this.logger.info("[HorseRacingPortal]", "[IntegrationFrame]", "[PARTNER_TOKEN]", JSON.stringify(this.token)), this.iframe?.contentWindow?.postMessage({ 1419 messageName: "login", 1420 partnerToken: n 1421 }, new URL(this.iframeClientConfig.url).origin); 1422 }, this.iframeClientConfig?.messageDelay > 5 ? this.iframeClientConfig.messageDelay : 5); 1423 } 1424 }, (e) => { 1425 this.logger.info(e); 1426 }); 1427 } 1428 ngOnDestroy() { 1429 this.tokenObservable && this.tokenObservable.unsubscribe(), this.isFrameLoaded = !1; 1430 } 1431 initGeolocation() { 1432 return T(this, null, function* () { 1433 (yield this.geolocationActivator.isActive()) && this.geolocationCheckService.startGeolocation(); 1434 }); 1435 } 1436 logout(e) { 1437 this.logger.info("[HorseRacingPortal]", "[HorseRacingIframeComponent]", "[logout]", e), this.authService.logout({ 1438 redirectAfterLogout: !1, 1439 isAutoLogout: !1 1440 }).then(() => { 1441 setTimeout(() => { 1442 this.iframe.contentWindow?.postMessage({ messageName: "logout" }, new URL(this.iframeClientConfig.url).origin); 1443 }, this.iframeClientConfig?.messageDelay > 5 ? this.iframeClientConfig.messageDelay : 5); 1444 }); 1445 } 1446 }; 1447 return t.ɵfac = function(i) { 1448 return new (i || t)(); 1449 }, t.ɵcmp = _({ 1450 type: t, 1451 selectors: [["hrl-horse-racing-iframe"]], 1452 hostBindings: function(i, e) { 1453 i & 1 && u("message", function(n) { 1454 return e.processMessages(n); 1455 }, le); 1456 }, 1457 decls: 2, 1458 vars: 5, 1459 consts: [["ifrm", ""], [ 1460 "id", 1461 "ifrm", 1462 "allowfullscreen", 1463 "true", 1464 3, 1465 "load", 1466 "src" 1467 ]], 1468 template: function(i, e) { 1469 i & 1 && (I(0, "iframe", 1, 0), Pe("load", function(n) { 1470 return e.hrLoaded(n); 1471 }), x()), i & 2 && (re("width", "100%")("min-height", "1024px"), y("src", e.iframeUrl, Qt)); 1472 }, 1473 encapsulation: 2, 1474 changeDetection: 1 1475 }), t; 1476 })(), It = (() => { 1477 let t = class { 1478 constructor() { 1479 this.configProvider = o(P); 1480 } 1481 ngOnInit() { 1482 this.seoBoxesConfig = this.configProvider.provideSeoboxesClientConfig(); 1483 } 1484 }; 1485 return t.ɵfac = function(i) { 1486 return new (i || t)(); 1487 }, t.ɵcmp = _({ 1488 type: t, 1489 selectors: [["hrl-seoboxes"]], 1490 decls: 1, 1491 vars: 1, 1492 consts: [ 1493 [1, "seo-main-header"], 1494 [1, "toggle-element"], 1495 [ 1496 1, 1497 "content", 1498 "seo-blocks" 1499 ], 1500 [3, "path"] 1501 ], 1502 template: function(i, e) { 1503 i & 1 && d(0, ao, 4, 1, "div", 0), i & 2 && p(e.seoBoxesConfig?.enableSeoBox ? 0 : -1); 1504 }, 1505 dependencies: [Pn], 1506 encapsulation: 2, 1507 changeDetection: 1 1508 }), t; 1509 })(), wt = (() => { 1510 let t = class { 1511 constructor() {
1512 this.api = o(N), this.teasersSubject = new U(null), this.teasersData = this.teasersSubject.asObservable(), this.setTeasers(); 1513 } 1514 setTeasers() { 1515 this.api.get("nyra/getTeaserdata").subscribe((e) => { 1516 this.teasers = e, this.teasersSubject.next(this.teasers); 1517 }); 1518 } 1519 getTeasers() { 1520 return this.teasers; 1521 } 1522 }; 1523 return t.ɵfac = function(i) { 1524 return new (i || t)(); 1525 }, t.ɵprov = b({ 1526 token: t, 1527 factory: t.ɵfac, 1528 providedIn: "root" 1529 }), t; 1530 })(), Pt = (() => { 1531 let t = class { 1532 constructor() { 1533 this.configProvider = o(P); 1534 } 1535 transform(e) { 1536 let n = this.configProvider.provideImageLoadOptimizationClientConfig(); 1537 if (n && n.isDynamicResizingEnabled && n.dynamicResizingQueryString && n.dynamicResizingQueryString.length > 0 && !this.isImageRezied(e)) { 1538 let r = (e.indexOf("?") !== -1 ? "&" : "?") + n.dynamicResizingQueryString; 1539 e = e + r; 1540 } 1541 return e; 1542 } 1543 isImageRezied(e) { 1544 return e.indexOf("resized=true") !== -1; 1545 } 1546 }; 1547 return t.ɵfac = function(i) { 1548 return new (i || t)(); 1549 }, t.ɵpipe = ei({ 1550 name: "sitecore_image_resize", 1551 type: t, 1552 pure: !0 1553 }), t; 1554 })(), At = (() => { 1555 let t = class {}; 1556 return t.ɵfac = function(i) { 1557 return new (i || t)(); 1558 }, t.ɵcmp = _({ 1559 type: t, 1560 selectors: [["hr-teaser-text-position"]], 1561 inputs: { 1562 teaserVerticalPosition: "teaserVerticalPosition", 1563 teaserTitle: "teaserTitle", 1564 teaserSubTitle: "teaserSubTitle", 1565 teaser: "teaser" 1566 }, 1567 decls: 2, 1568 vars: 2, 1569 consts: [[ 1570 1, 1571 "title", 1572 3, 1573 "vnDynamicHtml" 1574 ], [ 1575 1, 1576 "subtitle", 1577 3, 1578 "vnDynamicHtml" 1579 ]], 1580 template: function(i, e) { 1581 i & 1 && g(0, "div", 0)(1, "div", 1), i & 2 && (h("vnDynamicHtml", e.teaserTitle), s(), h("vnDynamicHtml", e.teaserSubTitle)); 1582 }, 1583 dependencies: [ze], 1584 encapsulation: 2, 1585 changeDetection: 1 1586 }), t; 1587 })(), ve = (t) => ({ "background-image": t }), _t = (() => { 1588 let t = class { 1589 constructor() { 1590 this.configProviderService = o(P), this.teaserBackgroundImageAlignment = ""; 1591 } 1592 ngOnInit() { 1593 this.isMobileImage = window.innerWidth <= 767 || document.body.offsetWidth <= 767, this.isTabletView = (window.innerWidth >= 768 || document.body.offsetWidth >= 768) && (window.innerWidth <= 1024 || document.body.offsetWidth <= 1024); 1594 } 1595 ngOnChanges() { 1596 this.teaser.optimizedTeaserAttributes && (this.teaserBackgroundImageAlignment = this.teaser.optimizedTeaserAttributes.teaserBackgroundImageAlignment, this.teaserBackgroundPosition = this.teaser.optimizedTeaserAttributes.teaserBackgroundPosition), this.optimizedTeaserClientConfig = this.configProviderService.provideOptimizedTeaserConfig(), this.desktopViewTeaserHeight = this.optimizedTeaserClientConfig.desktopViewTeaserHeight ? this.optimizedTeaserClientConfig.desktopViewTeaserHeight : 350, this.mobileViewTeaserHeight = this.optimizedTeaserClientConfig.mobileViewTeaserHeight ? this.optimizedTeaserClientConfig.mobileViewTeaserHeight : 200, this.tabletViewTeaserHeight = this.optimizedTeaserClientConfig.tabletViewTeaserHeight ? this.optimizedTeaserClientConfig.tabletViewTeaserHeight : 350, this.horizontalAlignment = this.optimizedTeaserClientConfig.teaserDefaultHorizontalTextAlignment ? this.optimizedTeaserClientConfig.teaserDefaultHorizontalTextAlignment : "center"; 1597 } 1598 }; 1599 return t.ɵfac = function(i) { 1600 return new (i || t)(); 1601 }, t.ɵcmp = _({ 1602 type: t, 1603 selectors: [["hrl-teaser-item"]], 1604 inputs: { teaser: "teaser" }, 1605 features: [si], 1606 decls: 10, 1607 vars: 19, 1608 consts: [ 1609 [ 1610 3, 1611 "href", 1612 "target" 1613 ], 1614 [1, "opt-teaser-body"], 1615 [ 1616 1, 1617 "opt-teaser-bg-image", 1618 3, 1619 "background-position", 1620 "ngStyle" 1621 ], 1622 [ 1623 1, 1624 "opt-teaser-bg-image", 1625 3, 1626 "ngStyle" 1627 ], 1628 [3, "ngClass"], 1629 [ 1630 1, 1631 "opt-teaser-info", 1632 3, 1633 "ngClass" 1634 ], 1635 [ 1636 3, 1637 "teaserVerticalPosition", 1638 "teaserTitle", 1639 "teaserSubTitle", 1640 "teaser" 1641 ], 1642 [1, "opt-teaser-cta"], 1643 [ 1644 1, 1645 "btn", 1646 "btn-primary", 1647 3, 1648 "href", 1649 "innerHtml", 1650 "target" 1651 ] 1652 ], 1653 template: function(i, e) { 1654 i & 1 && (a(0, "a", 0)(1, "div", 1), d(2, ro, 2, 7, "div", 2), d(3, lo, 2, 5, "div", 3), a(4, "div", 4), F(5, "lowercase"), a(6, "div", 5), F(7, "lowercase"), g(8, "hr-teaser-text-position", 6), d(9, co, 3, 7, "div", 7), l()()()()), i & 2 && (h("href", Q(e.teaser?.teaserLink?.url), ae)("target", Q(e.teaser?.teaserLink?.attributes?.target)), s(), re("height", e.isMobileImage ? e.mobileViewTeaserHe
1654ight : e.isTabletView ? e.tabletViewTeaserHeight : e.desktopViewTeaserHeight, "px"), s(), p(e.teaser.backgroundImage && e.isMobileImage && !e.teaser.isVideoUrl ? 2 : -1), s(), p(e.teaser.desktopImage && !e.isMobileImage && !e.teaser.isVideoUrl ? 3 : -1), s(), h("ngClass", "opt-teaser-text-" + W(5, 15, e.teaser.textHorizontalPosition)), s(2), h("ngClass", "text-align-" + W(7, 17, e.horizontalAlignment)), s(2), h("teaserVerticalPosition", e.teaser.textVerticalPosition)("teaserTitle", e.teaser.teaserTitle)("teaserSubTitle", e.teaser.subTitle)("teaser", e.teaser), s(), p(e.teaser?.cta ? 9 : -1)); 1655 }, 1656 dependencies: [ 1657 pi, 1658 vi, 1659 At, 1660 Pt, 1661 fn, 1662 fi 1663 ], 1664 encapsulation: 2, 1665 changeDetection: 1 1666 }), t; 1667 })(), xt = ["carouselRef"], Dt = (() => { 1668 let t = class { 1669 constructor() { 1670 this.activeRoute = o(q), this.user = o(R), this.teaserService = o(wt), this.deviceService = o(G), this.configProviderService = o(P), this.trackByTeaser = (e, n) => e, this.filteredteasers = [], this.arrows = !0, this.showTeaser = !0, this.isTracks = !1, this.loop = !0, this.swiperOptions = { 1671 modules: [ 1672 Sn, 1673 Ln, 1674 kn 1675 ], 1676 loop: !0, 1677 autoHeight: !0, 1678 allowTouchMove: !0, 1679 spaceBetween: 1, 1680 autoplay: { 1681 delay: 1e3, 1682 disableOnInteraction: !1 1683 }, 1684 pagination: { 1685 type: "bullets", 1686 clickable: !0, 1687 el: ".swiper-pagination" 1688 }, 1689 navigation: { 1690 nextEl: ".swiper-button-next", 1691 prevEl: ".swiper-button-prev" 1692 } 1693 }, this.isAuthenticated = this.user.isAuthenticated, this.user.events.pipe(M((e) => e instanceof B)).subscribe(() => { 1694 this.isAuthenticated = this.user.isAuthenticated; 1695 }); 1696 } 1697 ngOnInit() { 1698 this.isMobile = this.deviceService.isMobile || this.deviceService.isMobilePhone || this.deviceService.isTablet, this.activeRoute.queryParams.subscribe((e) => { 1699 let n = (e.hrNavPage || "").trim(); 1700 n ? n == "todaysRacing" ? this.showTeaser = !0 : this.showTeaser = !1 : this.showTeaser = !0; 1701 }), this.optimizedTeaser = this.configProviderService.provideOptimizedTeaserConfig(), this.swiperOptions.autoplay = { 1702 delay: this.optimizedTeaser.teaserDelay, 1703 disableOnInteraction: !1 1704 }, this.teaserService.teasersData.subscribe((e) => { 1705 e && (this.teasers = e, this.teasers?.teaserSettings?.data?.fields?.teasers?.forEach((n) => { 1706 let r = this.teasers?.teaserItems.find((f) => f?.data?.metadata?.id?.itemName == n?.itemName); 1707 r && (this.filteredteasers.push(r), setTimeout(() => { 1708 this.carouselRef?.swiper && (this.carouselRef.swiper.update(), this.carouselRef.swiper.slideTo(0)); 1709 }, 100)); 1710 })); 1711 }, (e) => { 1712 console.log(e); 1713 }); 1714 } 1715 }; 1716 return t.ɵfac = function(i) { 1717 return new (i || t)(); 1718 }, t.ɵcmp = _({ 1719 type: t, 1720 selectors: [["hrl-teaser"]], 1721 viewQuery: function(i, e) { 1722 if (i & 1 && ai(xt, 5), i & 2) { 1723 let n; 1724 gi(n = Zt()) && (e.carouselRef = n.first); 1725 } 1726 }, 1727 decls: 1, 1728 vars: 1, 1729 consts: [ 1730 ["carouselRef", ""], 1731 [1, "hr-teasers"], 1732 [3, "swiperOptions"], 1733 [1, "swiper-slide"], 1734 [3, "teaser"] 1735 ], 1736 template: function(i, e) { 1737 i & 1 && d(0, go, 5, 1, "div", 1), i & 2 && p(e.filteredteasers?.length && e.optimizedTeaser?.teaserOptimization && (e.showTeaser && e.isAuthenticated || !e.isAuthenticated && e.isMobile || !e.isMobile) ? 0 : -1); 1738 }, 1739 dependencies: [yn, _t], 1740 encapsulation: 2, 1741 changeDetection: 1 1742 }), t; 1743 })(), Lt = (() => { 1744 var t; 1745 let i = class { 1746 constructor() { 1747 Wt(this, t), this.route = o(q), this.user = o(R), this.deviceService = o(G), this.showButtons = !1, this.isMobile = !1, this.showHelpConfig = !1, Ft(this, t, o(bi)), this.isAuthenticated = this.user.isAuthenticated; 1748 } 1749 ngOnInit() { 1750 console.log("[HorseRacingPortal]", "[HomeComponent]", "[OnInit]"), this.IsMobileOrDesktop(), this.isMobile = this.deviceService.isMobile || this.deviceService.isMobilePhone || this.deviceService.isTablet, this.showButtons = this.route.
1750snapshot.queryParamMap.get("_showButtons") === "1"; 1751 } 1752 loginRequest() { 1753 this.postMessage({ messageName: "requestLogin" }); 1754 } 1755 logoutRequest() { 1756 this.postMessage({ messageName: "requestLogout" }); 1757 } 1758 updateHeight() { 1759 let n = Y(this, t).parent.origin || "*"; 1760 Y(this, t).postMessage({ 1761 messageName: "updateHeight", 1762 newHeight: this.height + "px" 1763 }, n); 1764 } 1765 postMessage(n) { 1766 let r = Y(this, t).location.origin; 1767 Y(this, t).postMessage(n, r); 1768 } 1769 IsMobileOrDesktop() { 1770 this.isMobile = this.deviceService.isMobile || this.deviceService.isMobilePhone || this.deviceService.isTablet; 1771 } 1772 }; 1773 return t = /* @__PURE__ */ new WeakMap(), i.ɵfac = function(e) { 1774 return new (e || i)(); 1775 }, i.ɵcmp = _({ 1776 type: i, 1777 selectors: [["hra-home"]], 1778 hostBindings: function(e, n) { 1779 e & 1 && u("orientationchange", function() { 1780 return n.IsMobileOrDesktop(); 1781 }, le); 1782 }, 1783 decls: 6, 1784 vars: 2, 1785 consts: [[ 1786 "type", 1787 "number", 1788 "placeholder", 1789 "Height", 1790 3, 1791 "ngModelChange", 1792 "ngModel" 1793 ], [3, "click"]], 1794 template: function(e, n) { 1795 e & 1 && (d(0, fo, 6, 3, "ng-container"), g(1, "hrl-teaser"), d(2, vo, 1, 0, "hrl-horse-racing-login"), g(3, "hrl-horse-racing-help")(4, "hrl-horse-racing-iframe")(5, "hrl-seoboxes")), e & 2 && (p(n.showButtons ? 0 : -1), s(2), p(n.isMobile ? 2 : -1)); 1796 }, 1797 dependencies: [ 1798 yt, 1799 It, 1800 Dt, 1801 ue, 1802 ut, 1803 pn, 1804 hn, 1805 gn, 1806 un, 1807 dn, 1808 Z 1809 ], 1810 encapsulation: 2, 1811 changeDetection: 1 1812 }), i; 1813 })(); 1814 })))(); 1815} 1816var mo = $n({ HorseracingRoutesModule: () => Nt }); 1817function bo(t) { 1818 return t.get(te); 1819} 1820function Co(t) { 1821 return t.get(ie); 1822} 1823function ko(t) { 1824 return t.get(ne); 1825} 1826function So(t) { 1827 return t.get(oe); 1828} 1829function Ot(t) { 1830 return [zi(t), { 1831 provide: be, 1832 multi: !0, 1833 useExisting: t 1834 }]; 1835} 1836function To() { 1837 return [ 1838 Ce, 1839 Ot(Et),
1840 Ot(Bt) 1841 ]; 1842} 1843var Ht, Rt, Mt, Et, Bt, be, Ce, Gt, ke, Nt; 1844function Ut() { 1845 return (Ut = at((() => { 1846 Se(), Te(), xe(), De(), Le(), Oe(), Ci(), He(), Ii(), Ee(), Ge(), Ai(), _i(), Ne(), Bi(), Re(), Ue(), $e(), qi(), Fe(), Ki(), Yi(), Ji(), Qi(), xi(), Zi(), qe(), Ve(), it(), on(), nn(), sn(), an(), rn(), Ke(), In(), xn(), Cn(), wn(), ln(), cn(), Je(), Ye(), vn(), On(), Qe(), bn(), Xe(), Mn(), En(), Bn(), tt(), Hn(), Dn(), An(), Rn(), Tn(), mn(), Ze(), nt(), ot(), me(), Ht = (() => { 1847 let t = class { 1848 constructor() { 1849 this.balanceService = o(et); 1850 } 1851 register() { 1852 addEventListener(vt, () => { 1853 this.balanceService.refresh(); 1854 }); 1855 } 1856 }; 1857 return t.ɵfac = function(i) { 1858 return new (i || t)(); 1859 }, t.ɵprov = b({ 1860 token: t, 1861 factory: t.ɵfac, 1862 providedIn: "root" 1863 }), t; 1864 })(), Rt = (() => { 1865 let t = class { 1866 constructor() { 1867 this._ngZone = o(hi), this.readClientConfighandler = (e) => { 1868 e.detail && e.detail.clientConfig && (e.detail.clientConfig = window.clientConfig); 1869 }; 1870 } 1871 registerHandlers() { 1872 this._ngZone.runOutsideAngular(() => { 1873 addEventListener(dt, this.readClientConfighandler, !1); 1874 }); 1875 } 1876 }; 1877 return t.ɵfac = function(i) { 1878 return new (i || t)(); 1879 }, t.ɵprov = b({ 1880 token: t, 1881 factory: t.ɵfac, 1882 providedIn: "root" 1883 }), t; 1884 })(), (() => { 1885 let t = class zt { 1886 static forRoot() { 1887 return { ngModule: zt }; 1888 } 1889 }; 1890 return t.ɵfac = function(i) { 1891 return new (i || t)(); 1892 }, t.ɵmod = ce({ type: t }), t.ɵinj = se({}), t; 1893 })(), (() => { 1894 let t = class Vt { 1895 static forRoot() { 1896 return { 1897 ngModule: Vt, 1898 providers: [ 1899 { 1900 provide: te, 1901 deps: [j], 1902 useFactory: bo 1903 }, 1904 { 1905 provide: ie, 1906 deps: [j], 1907 useFactory: Co 1908 }, 1909 { 1910 provide: ne, 1911 deps: [j], 1912 useFactory: ko 1913 }, 1914 { 1915 provide: oe, 1916 deps: [j], 1917 useFactory: So 1918 } 1919 ] 1920 }; 1921 } 1922 }; 1923 return t.ɵfac = function(i) { 1924 return new (i || t)(); 1925 }, t.ɵmod = ce({ type: t }), t.ɵinj = se({}), t; 1926 })(), Mt = (() => { 1927 let t = class { 1928 constructor() { 1929 this.userService = o(R), this.playerSessionService = o(pe), this.tokenBuilderService = o(fe); 1930 } 1931 register() { 1932 this.userService.isAuthenticated && this.initPartnerTokenCreation(), this.userService.events.subscribe((e) => { 1933 e instanceof B && (this.initPartnerTokenCreation(), dispatchEvent(new CustomEvent("racingextension:vnapp:userevent", { detail: { 1934 userevent: e, 1935 eventType: "UserLoginEvent" 1936 } }))), e instanceof Hi && dispatchEvent(new CustomEvent("racingextension:vnapp:userevent", { detail: { 1937 userevent: e, 1938 eventType: "UserLoggingOutEvent" 1939 } })), e instanceof Ri && (this.playerSessionService.resetUserToken(), dispatchEvent(new CustomEvent("racingextension:vnapp:userevent", { detail: { 1940 userevent: e, 1941 eventType: "UserLogoutEvent" 1942 } }))), e instanceof Ei && dispatchEvent(new CustomEvent("racingextension:vnapp:userevent", { detail: { 1943 userevent: e, 1944 eventType: "UserAutologoutEvent" 1945 } })), e instanceof Li && dispatchEvent(new CustomEvent("racingextension:vnapp:userevent", { detail: { 1946 userevent: e, 1947 eventType: "UserUpdateEvent" 1948 } })), e instanceof Mi && dispatchEvent(new CustomEvent("racingextension:vnapp:userevent", { detail: { 1949 userevent: e, 1950 eventType: "UserLoggingInEvent" 1951 } })); 1952 }); 1953 } 1954 initPartnerTokenCreation() { 1955 this.tokenBuilderService.getToken(); 1956 } 1957 }; 1958 return t.ɵfac = function(i) { 1959 return new (i || t)(); 1960 }, t.ɵprov = b({ 1961 token: t, 1962 factory: t.ɵfac, 1963 providedIn: "root" 1964 }), t; 1965 })(), Et = (() => { 1966 let t = class { 1967 constructor() { 1968 this.configProvider = o(P), this.eventsHandlerService = o(Rt), this.userEventsBroadcasterService = o(Mt), this.geolocationHandlerService = o(de), this.balanceHandlerService = o(Ht), this.headerService = o(wi), this.menuService = o(Vi); 1969 } 1970 onAppInit() { 1971 return T(this, null, function* () { 1972 this.configProvider.fillClientConfig(), this.eventsHandlerService.registerHandlers(), this.userEventsBroadcasterService.register(), this.geolocationHandlerService.registerHandler(), this.balanceHandlerService.register(); 1973 }); 1974 } 1975 myBetsHandler() { 1976 this.headerService.whenReady.subscribe(() => { 1977 this.menuService.register("navigate-hrbets-page", (e, n, r, f) => { 1978 let C = document.querySelector("#ifrm"); 1979 if (C) { 1980 let H = C.contentWindow; 1981 H && f && f.hrNavPage && H.postMessage({ 1982 messageName: "changePage", 1983 toPage: f.hrNavPage 1984 }, new URL(C.src).origin); 1985 } 1986 }); 1987 }); 1988 } 1989 myTracksHandler() { 1990 this.headerService.whenReady.subscribe(() => { 1991 this.menuService.register("navigate-hrtracks-page", (e, n, r, f) => { 1992 let C = document.querySelector("#ifrm"); 1993 if (C) { 1994 let H = C.contentWindow; 1995 H && f && f.hrNavPage && H.postMessage({ 1996 messageName: "changePage", 1997 toPage: f.hrNavPage 1998 }, new URL(C.src).origin); 1999 } 2000 }); 2001 }); 2002 } 2003 }; 2004 return t.ɵfac = function(i) { 2005 return new (i || t)(); 2006 }, t.ɵprov = b({ 2007 token: t, 2008 factory: t.ɵfac 2009 }), t; 2010 })(), Bt = (() => { 2011 let t = class { 2012 constructor() { 2013 this.geoCoordinatorConfig = o(X), this.geoCoordinatorBootstrapService = o(Nn), this.geolocationClientConfig = o(ee), this.documentRef = o(li), this.user = o(R); 2014 } 2015 onAppInit() { 2016 this.geoCoordinatorConfig.whenReady.subscribe(() => T(this, null, function* () { 2017 this.geoCoordinatorConfig.switchOnLegacy ?? !0 ? this.bootstrapLegacy() : this.bootstrapContemporary(); 2018 })), this.user.events.pipe(M((e) => e instanceof B)).subscribe(() => T(this, null, function* () { 2019 this.geoCoordinatorConfig.whenReady.subscribe(() => { 2020 this.bootstrapContemporary(); 2021 }); 2022 })); 2023 } 2024 bootstrapLegacy() { 2025 this.geolocationClientConfig?.isEnabled && this.geolocationClientConfig.bootstrapAssetPaths.forEach((e) => { 2026 let n = this.documentRef.createElement("script"); 2027 n.src = e, this.documentRef.body.appendChild(n); 2028 }); 2029 } 2030 bootstrapContemporary() { 2031 return T(this, null, function* () { 2032 this.geoCoordinatorConfig.switchOnLegacy || (yield this.geoCoordinatorBootstrapService.bootstrap()); 2033 }); 2034 } 2035 }; 2036 return t.ɵfac = function(i) { 2037 return new (i || t)(); 2038 }, t.ɵprov = b({ 2039 token: t, 2040 factory: t.ɵfac, 2041 providedIn: "root" 2042 }), t; 2043 })(), be = new ii("ON_HR_APP_INIT"), Ce = (() => { 2044 let t = class { 2045 constructor() {
2046 this.initializers = o(be), this.isAlreadyBootstrapped = !1; 2047 } 2048 onHorseracingAppInit() { 2049 return T(this, null, function* () { 2050 this.isAlreadyBootstrapped || (Yt(this.initializers.map((e) => e.onAppInit()).filter((e) => e instanceof Promise).map((e) => jt(e))).subscribe(), this.isAlreadyBootstrapped = !0); 2051 }); 2052 } 2053 }; 2054 return t.ɵfac = function(i) { 2055 return new (i || t)(); 2056 }, t.ɵprov = b({ 2057 token: t, 2058 factory: t.ɵfac 2059 }), t; 2060 })(), Gt = () => (o(he).setActive(S.HORSERACING), o(Ce).onHorseracingAppInit()), ke = [{ 2061 path: "", 2062 canMatch: [Gt], 2063 loadComponent: () => import("./chunk-fe6yt1bg.js").then((t) => t.HomeComponent) 2064 }], Nt = (() => { 2065 let t = class { 2066 constructor() { 2067 let e = o(oi); 2068 e.get(he).register(S.HORSERACING, e); 2069 } 2070 }; 2071 return t.ɵfac = function(i) { 2072 return new (i || t)(); 2073 }, t.ɵmod = ce({ type: t }), t.ɵinj = se({ 2074 providers: [To()], 2075 imports: [Pi.forChild(ke)] 2076 }), t; 2077 })(), [[...Un, ...ke], ...Gn]; 2078 })))(); 2079} 2080export { me as i, Ut as n, Lt as r, mo as t }; 2081 2082//# sourceMappingURL=chunk-czfrwm0h.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.