1"use strict"; 2 3(self.webpackChunkrunforcharity = self.webpackChunkrunforcharity || []).push([[8634], { 4 9783: (R, u, n) => { 5 n.d(u, { 6 K: () => e 7 }); 8 var s = n(4438), 9 g = n(177); 10 const P = [[["", "banner_content", ""]]], 11 l = ["[banner_content]"], 12 p = d => ({ 13 "background-image": d 14 }), 15 h = () => ({ 16 "min-height": "inherit" 17 }); 18 let e = (() => { 19 var d; 20 class O { 21 constructor() { 22 this.allowMaxHeight = !0; 23 } 24 ngOnInit() { 25 var m, i, f, C; 26 this.mobileImage = null !== (m = null === (i = this.responsiveBannerImages) || void 0 === i ? void 0 : i.mobile) && void 0 !== m ? m : this.bannerImage; 27 const j = window.innerWidth; 28 var b, M; 29 if (this.backgroundImage = "url(".concat(null !== (f = null === (C = this.responsiveBannerImages) || void 0 === C ? void 0 : C.desktop) && void 0 !== f ? f : this.bannerImage, ")"), j < 768) this.backgroundImage = "url(".concat(null !== (b = null === (M = this.responsiveBannerImages) || void 0 === M ? void 0 : M.mobile) && void 0 !== b ? b : this.bannerImage, ")");else if (j < 1024) { 30 var x, S; 31 this.backgroundImage = "url(".concat(null !== (x = null === (S = this.responsiveBannerImages) || void 0 === S ? void 0 : S.tablet) && void 0 !== x ? x : this.bannerImage, ")"); 32 } 33 } 34 getBannerImage() { 35 return "url(".concat(this.bannerImage, ")"); 36 } 37 } 38 return (d = O).ɵfac = function (m) { 39 return new (m || d)(); 40 }, d.ɵcmp = s.VBU({ 41 type: d, 42 selectors: [["component-banner"]], 43 inputs: { 44 bannerImage: "bannerImage", 45 bannerHeight: "bannerHeight", 46 responsiveBannerImages: "responsiveBannerImages", 47 allowMaxHeight: "allowMaxHeight" 48 }, 49 standalone: !1, 50 ngContentSelectors: l, 51 decls: 5, 52 vars: 10, 53 consts: [[1, "parallax", 3, "ngStyle"], [1, "mobile__image"], ["fetchpriority", "high", "decoding", "async", "alt", "banner-image", 3, "src"], [1, "parallax__content", 3, "ngStyle"]], 54 template: function (m, i) { 55 1 & m && (s.NAR(P), s.j41(0, "div", 0)(1, "div", 1), s.nrm(2, "img", 2), s.k0s(), s.j41(3, "div", 3), s.SdG(4), s.k0s()()), 2 & m && (s.xc7("max-height", i.allowMaxHeight ? i.bannerHeight : "unset")("min-height", i.allowMaxHeight ? "unset" : i.bannerHeight), s.Y8G("ngStyle", s.eq3(7, p, i.backgroundImage)), s.R7$(2), s.FS9("src", i.mobileImage, s.B4B), s.R7$(), s.Y8G("ngStyle", s.lJ4(9, h))); 56 }, 57 dependencies: [g.B3], 58 styles: ['@charset "UTF-8";.parallax[_ngcontent-%COMP%]{background-attachment:fixed;background-repeat:no-repeat;background-size:cover;animation-duration:.2s;animation-timing-function:linear;background-position:center;position:relative;aspect-ratio:3/2;width:100%}@supports not (aspect-ratio: 3/2){.parallax[_ngcontent-%COMP%]{padding-top:66.666%;height:0}}@media only screen and (max-width: 768px){.parallax[_ngcontent-%COMP%]{background-attachment:scroll}}.parallax__content[_ngcontent-%COMP%]{background-color:#00000090;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center}.mobile__image[_ngcontent-%COMP%]{position:absolute;display:none;width:100%;height:100%}.mobile__image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover;object-position:center}@media only screen and (max-width: 1024px){.parallax[_ngcontent-%COMP%]{background-position:center}}@media only screen and (max-width: 768px){.parallax[_ngcontent-%COMP%]{background-image:none!important}.parallax__content[_ngcontent-%COMP%]{position:absolute;width:100%}.mobile__image[_ngcontent-%COMP%]{display:block;height:100%}}'] 59 }), O; 60 })(); 61 }, 62 1942: (R, u, n) => { 63 n.d(u, { 64 H: () => P 65 }); 66 var s = n(177), 67 g = n(4438); 68 let P = (() => { 69 var l; 70 class p {} 71 return (l = p).ɵfac = function (e) { 72 return new (e || l)(); 73 }, l.ɵmod = g.$C({ 74 type: l 75 }), l.ɵinj = g.G2t({ 76 imports: [s.MD] 77 }), p; 78 })(); 79 }, 80 8634: (R, u, n) => { 81 n.r(u), n.d(u, { 82 SeasonalPassesModule: () => w 83 }); 84 var s = n(177), 85 g = n(8018), 86 P = n(8606), 87 l = n(803), 88 p = n(2072), 89 h = n(5312), 90 e = n(4438), 91 d = n(9640), 92 O = n(7345), 93 I = n(2251), 94 m = n(1895), 95 i = n(6845), 96 f = n(3062), 97 C = n(897), 98 j = n(1434), 99 b = n(9193), 100 M = n(3063), 101 x = n(7959), 102 S = n(9783); 103 function D(o, c) { 104 if (1 & o && (e.j41(0, "div"), e.EFF(1), e.k0s()), 2 & o) {
105 const r = e.XpG().$implicit; 106 e.R7$(), e.SpI(" ", r.discount, " "); 107 } 108 } 109 function F(o, c) { 110 if (1 & o) { 111 const r = e.RV6(); 112 e.j41(0, "component-card7", 14), e.mxI("selectedChange", function (a) { 113 const v = e.eBV(r).$implicit; 114 return e.DH7(v.selected, a) || (v.selected = a), e.Njj(a); 115 }), e.j41(1, "div", 15), e.DNE(2, D, 2, 1, "div", 16), e.k0s(), e.j41(3, "div", 17)(4, "div", 18), e.EFF(5), e.k0s()()(); 116 } 117 if (2 & o) { 118 const r = c.$implicit; 119 e.Y8G("cardData", r), e.R50("selected", r.selected), e.Y8G("isSelectable", !1)("hasPrice", !0)("link", "/seasonal-passes/" + r.title)("hasControl", r.discount), e.R7$(2), e.Y8G("ngIf", r.discount), e.R7$(3), e.SpI(" ", r.description, " "); 120 } 121 } 122 const T = [{ 123 path: "", 124 component: (() => { 125 var o; 126 class c { 127 constructor(t, a, v, y, A, J, k) { 128 this.store = t, this.generalService = a, this.seoService = v, this.renderer = y, this.jsonLdService = A, this.coreService = J, this.dateService = k, this.seasonalPasses = [], this.searchTerm = "", this.isLoadingMore = !1, this._page$ = this.store.select("seasonalPassesPage"); 129 } 130 ngOnInit() { 131 this.jsonLdService.removeJsonLd(this.renderer), this.coreService.isServer && (this.jsonLdService.addJsonLdWebSite(this.renderer, h.c.domain), this.jsonLdService.addJsonLdBreadcrumbs(this.renderer, [{ 132 name: "Home", 133 url: "".concat(h.c.domain) 134 }, { 135 name: "Seasonal Passes", 136 url: "".concat(h.c.domain, "/seasonal-passes") 137 }])), this.currentYear = new Date().getFullYear(), this.seasonalPasses = this.getSeasonalPasses(), this.fetchPageByUrl(); 138 } 139 setDetails(t) { 140 const a = null == t ? void 0 : t.meta; 141 this.seoService.pageTitle = null == a ? void 0 : a.title, this.seoService.description = null == a ? void 0 : a.description, this.seoService.keywords = null == a ? void 0 : a.formatted_keywords, this.seoService.robots = null == a ? void 0 : a.formatted_robots, this.seoService.url = null == a ? void 0 : a.canonical_url, this.seoService.setMetaTags(), this.seoService.updatedAt = this.dateService.getMostRecentDate(null == t ? void 0 : t.updated_at, null == a ? void 0 : a.updated_at), null != t && t.faqs && this.jsonLdService.addJsonLdFaqs(this.renderer, null == t ? void 0 : t.faqs); 142 } 143 fetchPageByUrl() { 144 this.generalService.fetchPageByUrl().then(t => this.store.dispatch(p.c.setSeasonalPassesClientPage({ 145 page: t.data 146 }))); 147 } 148 getSeasonalPasses() { 149 return [{ 150 img: "assets/images/RTAnnualPass2022.jpg", 151 title: "Run For Charity Annual Season Pass", 152 description: "Covering all events from January to December 2022.", 153 price: "\xa3270", 154 discount: "40% Mid Year Discount Applied" 155 }, { 156 img: "assets/images/LondonPass2022-1.jpg", 157 title: "Run For Charity London Events Pass", 158 description: "Covering all London races between January to December 2022.", 159 price: "\xa3180" 160 }, { 161 img: "assets/images/NorthernPass2022.jpg", 162 title: " Run For Charity Northern Events Pass", 163 description: "Covering all events in the North of England from January to December 2022.", 164 price: "\xa3180", 165 discount: "40% Mid Year Discount Applied" 166 }, { 167 img: "assets/images/MidlandsPass2022.jpg", 168 title: "Run For Charity Midlands Events Pass", 169 description: "Covering all events across the Midlands from January to December 2022.", 170 price: "\xa3120", 171 discount: "40% Mid Year Discount Applied" 172 }, { 173 img: "assets/images/MoonPass2021.jpg", 174 title: "Run For Charity Chase The Moon Series Pass", 175 description: "Covering all midweek evening races from January to March and October to December in 2022.", 176 price: "\xa3180" 177 }, { 178 img: "assets/images/SunSeriesPass2022.jpg", 179 title: "Run For Charity Chase The Sun Series Pass", 180 description: "Covering all Chase The Sun midweek evening events in London from April to September 2022.", 181 price: "\xa3180", 182 discount: "40% Mid Year Discount Applied" 183 }]; 184 }
185 loadMore() { 186 this.isLoadingMore = !0, setTimeout(() => { 187 this.isLoadingMore = !1, this.seasonalPasses = [...this.seasonalPasses, ...this.getSeasonalPasses()]; 188 }, 1500); 189 } 190 } 191 return (o = c).ɵfac = function (t) { 192 return new (t || o)(e.rXU(d.il), e.rXU(O.O), e.rXU(I.B), e.rXU(e.sFG), e.rXU(m.K), e.rXU(i.P), e.rXU(f.k)); 193 }, o.ɵcmp = e.VBU({ 194 type: o, 195 selectors: [["page-seasonal-passes"]], 196 standalone: !1, 197 decls: 21, 198 vars: 17, 199 consts: [[3, "setMargins"], ["bannerHeight", "65vh", "bannerImage", "'assets/images/runthrough/Seasonal Passes.jpg'"], [1, "content", "container"], [1, "pt-5"], [1, "section__head", "text-center", "pb-5"], [1, "header__title"], [1, "header__info"], [1, "search__wrapper"], [1, "search__input"], [3, "valueChange", "value", "placeholder"], [1, "cards", "pt-5"], ["class", "card-component", 3, "cardData", "selected", "isSelectable", "hasPrice", "link", "hasControl", "selectedChange", 4, "ngFor", "ngForOf"], [1, "d-flex", "justify-content-center", "pt-5"], ["className", "button button-loading", 3, "onClick", "label", "isLoading"], [1, "card-component", 3, "selectedChange", "cardData", "selected", "isSelectable", "hasPrice", "link", "hasControl"], ["card-control", "", 1, "card__control"], [4, "ngIf"], ["card-footer", ""], [1, "card__description"]], 200 template: function (t, a) { 201 1 & t && (e.j41(0, "component-flat-layout", 0), e.nrm(1, "component-banner", 1), e.j41(2, "div", 2)(3, "div", 3)(4, "div", 4)(5, "div", 5), e.EFF(6), e.nI1(7, "translate"), e.k0s(), e.j41(8, "div", 6), e.EFF(9), e.nI1(10, "translate"), e.k0s()(), e.j41(11, "component-section")(12, "div", 7)(13, "div", 8)(14, "component-search", 9), e.nI1(15, "translate"), e.mxI("valueChange", function (y) { 202 return e.DH7(a.searchTerm, y) || (a.searchTerm = y), y; 203 }), e.k0s()()()()(), e.j41(16, "div", 10), e.DNE(17, F, 6, 8, "component-card7", 11), e.k0s(), e.j41(18, "div", 12)(19, "component-button", 13), e.nI1(20, "translate"), e.bIt("onClick", function () { 204 return a.loadMore(); 205 }), e.k0s()()()()), 2 & t && (e.Y8G("setMargins", !1), e.R7$(6), e.JRh(e.bMT(7, 9, "pages.seasonalPasses.text1")), e.R7$(3), e.Lme("", e.bMT(10, 11, "pages.seasonalPasses.text2"), " ", a.currentYear, ""), e.R7$(5), e.R50("value", a.searchTerm), e.Y8G("placeholder", e.bMT(15, 13, "pages.seasonalPasses.text3")), e.R7$(3), e.Y8G("ngForOf", a.seasonalPasses), e.R7$(2), e.Y8G("label", e.bMT(20, 15, "pages.seasonalPasses.text4"))("isLoading", a.isLoadingMore)); 206 }, 207 dependencies: [s.Sq, s.bT, C.n, j.z, b.x, M.S, x.Q, S.K, g.D9], 208 styles: [".cards[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;margin:-32px -12px 0}.card-component[_ngcontent-%COMP%]{flex:0 0 calc(33.333% - 24px);width:calc(33.333% - 24px);margin:32px 12px 0}.card__button_label[_ngcontent-%COMP%]{background:none;width:initial}.card__button_label[_ngcontent-%COMP%] a[_ngcontent-%COMP%]{color:var(--neutral-01)}.card__button_label[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{fill:var(--neutral-01);margin-top:-5px}.card__button_label[_ngcontent-%COMP%]:hover a[_ngcontent-%COMP%]{color:var(--primary-01)}.card__button_label[_ngcontent-%COMP%]:hover svg[_ngcontent-%COMP%]{fill:var(--primary-01)}.card__registration-closed-banner[_ngcontent-%COMP%]{position:absolute;top:0;left:0;z-index:4;padding:3px 10px;font-size:8px;font-weight:700;color:#fff;background:#e4002b;transform-origin:0 0;box-shadow:0 1px 3px #0003;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;max-width:110px;box-sizing:border-box;border-top-left-radius:5px}.card__sold-out-banner[_ngcontent-%COMP%]{position:absolute;top:0;right:0;left:auto;z-index:4;padding:3px 10px;font-size:8px;font-weight:700;color:#fff;background:#e4002b;transform-origin:100% 0;box-shadow:0 1px 3px #0003;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap;max-width:110px;box-sizing:border-box;border-top-right-radius:5px} .card__control .button-primary{background:var(--primary-01)!important;color:var(--neutral-11)!important} .card__control .button-primary span, .card__control .button-primary .label{color:var(--neutral-11)!important}
208 .card__control .button-primary svg{fill:var(--neutral-11)!important} .card__control .button-primary[disabled], .card__control .button-primary.disabled{background:var(--primary-01)!important;opacity:.85;cursor:not-allowed}.card__control_btn[_ngcontent-%COMP%]:not(:last-child){margin-right:10px}.custom__date[_ngcontent-%COMP%]{margin-left:auto}@media only screen and (max-width: 1199px){.card-component[_ngcontent-%COMP%]{flex:0 0 calc(50% - 24px);width:calc(50% - 24px)}}@media only screen and (max-width: 767px){.cards[_ngcontent-%COMP%]{display:block;margin:0}.card-component[_ngcontent-%COMP%]{width:100%;margin:24px 0 0}}", ".card__description[_ngcontent-%COMP%]{margin-top:5px;font-size:14px;line-height:1.71429;color:var(--neutral-04);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.card__control[_ngcontent-%COMP%]{color:#fff}"] 209 }), c; 210 })() 211 }, { 212 path: ":seasonalPass", 213 loadChildren: () => Promise.all([n.e(193), n.e(5101), n.e(6346), n.e(389), n.e(2724), n.e(3209), n.e(6804)]).then(n.bind(n, 6804)).then(o => o.SeasonalPassModule) 214 }]; 215 let B = (() => { 216 var o; 217 class c {} 218 return (o = c).ɵfac = function (t) { 219 return new (t || o)(); 220 }, o.ɵmod = e.$C({ 221 type: o 222 }), o.ɵinj = e.G2t({ 223 imports: [l.iI.forChild(T), l.iI] 224 }), c; 225 })(); 226 var L = n(1316), 227 E = n(132), 228 _ = n(5415), 229 U = n(5188), 230 G = n(4879), 231 Y = n(1846), 232 H = n(2323), 233 $ = n(1942); 234 let w = (() => { 235 var o; 236 class c {} 237 return (o = c).ɵfac = function (t) { 238 return new (t || o)(); 239 }, o.ɵmod = e.$C({ 240 type: o 241 }), o.ɵinj = e.G2t({ 242 imports: [s.MD, B, L.s, E.L, g.h, _.R, U.G, P.iu, G.J, Y.t, $.H, d.md.forFeature("seasonalPassesPage", H.k.page(p.c.setSeasonalPassesClientPage))] 243 }), c; 244 })(); 245 } 246}]);
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.