1"use strict";(self.webpackChunk_gp_web_frontend=self.webpackChunk_gp_web_frontend||[]).push([["src_ts_config_config_ts-src_ts_utils_inview_ts-src_ts_utils_recirc_ts-src_ts_utils_recirculation_ts"],{
1"./src/ts/config/config.ts":(e,t,r)=>{r.d(t,{u:()=>n,p:()=>i});let s={};const i=()=>{const e=(()=>{const e={};return document.querySelectorAll("meta").forEach((t=>{const r=t.name?t.name:t.getAttribute("property")||!1;r&&(e[r]=t.content?t.content:t.dataset)})),e})(),t=e.site||"uk-london",[r,i]=t.split("-"),n=e.locale||"en-GB",o=e.currency_symbol||"£",a=e.currency_code||"GBP",c=e.current_commit||null,l=e.graffiti||null,u=e.discover||null,d=e.auth||null,p=e.pageUID||null,g=e.tracker||null;return s={...s,site:t,city:i,country:r,locale:n,currencyCode:a,currencySymbol:o,currentCommit:c,graffiti:l,discover:u,auth:d,pageUid:p,tracker:g},s},n=e=>{var t;return null!==(t=s[e])&&void 0!==t?t:null}},
1"./src/ts/utils/inview.ts":(e,t,r)=>{function s({element:e,observerOptions:t={},isInViewportCallback:r,isNotInViewportCallback:s}){new IntersectionObserver(((e,t)=>{e.forEach((e=>{e.isIntersecting&&r&&(s||t.unobserve(e.target),r(e)),!e.isIntersecting&&s&&(r||t.unobserve(e.target),s(e))}))}),t).observe(e)}function i(e,t){return e?new Promise((r=>{s({element:e,observerOptions:t,isInViewportCallback:r})})):Promise.reject()}r.d(t,{W0:()=>i,oO:()=>s})},
1"./src/ts/utils/recirc.ts":(e,t,r)=>{r.d(t,{G4:()=>s,TG:()=>i,mO:()=>n});const s=(e="")=>window.sessionStorage&&window.sessionStorage.getItem(e)&&JSON.parse(window.sessionStorage.getItem(e))||[],i=(e="",t="")=>{if(!window.sessionStorage)return;const r=s(e);return r.includes(t)||(r.push(t),sessionStorage.setItem(e,JSON.stringify(r))),t},n=(e=0,t=[],r=[],s=void 0)=>{const i=r.filter((e=>!t.includes(e.uid))),n=s?s(i,e):i;return n.length>e?n.slice(0,e):n}},
1"./src/ts/utils/recirculation.ts":(e,t,r)=>{r.d(t,{Ao:()=>a,QI:()=>l,u1:()=>c,yr:()=>o});var s=r("./src/ts/utils/request.ts"),i=r("./src/ts/utils/responsive-image.ts"),n=r("../utils/dist/urls/index.js");const o=({url:e="",limit:t=16,recirculationUrl:r="",recirculationAuthToken:i="",collectionConceptName:n=""})=>{const o=`${r}/api/more_on_url/`,a={url:e.replace(/http[s]?:\/\//,""),limit:t,collection:n};return{url:(0,s.am)({urlPrefix:o,params:a}),headers:{Authorization:`Token ${i}`}}},a=({limit:e=16,recirculationUrl:t="",recirculationAuthToken:r="",venueType:i=""})=>{const n=`${t}/api/popular_venues/`,o={limit:e,venue_type:i};return{url:(0,s.am)({urlPrefix:n,params:o}),headers:{Authorization:`Token ${r}`}}},c=({data:e,template:t,widgetPosition:r,widgetType:s,responsiveImageFn:o=i.J})=>{const a=document.createElement("div");a.appendChild(t.cloneNode(!0));const c=a.innerHTML;return e.reduce(((t,i,a)=>{const{fields:u}=i,d=u.url,p=l(d);let g="https://media.timeout.com/images/105716137/{width}/{height}/image.jpg";u.thumbnail_url&&(g=/^(?:https?:)?\/\/[^/]*cloudfront\.net(?:[/?]|$)/i.test(u.thumbnail_url)?u.thumbnail_url.replace(/([?&])width=\d+/,"$1width={width}"):u.thumbnail_url.replace("/320/210/image.jpg","/image.jpg").replace("/image.jpg","/{width}/{height}/image.jpg").replace("?width=320",""));const h=o({pattern:g,aspectRatioKey:"4-3",title:u.title,alt:u.title}),m={triggerOn:0,payload:{event:"recirc_click",recirc_link_type:(0,n.p)(p)?"internal":"external",recirc_total_tiles:e.length,recirc_tile_index:a+1,recirc_widget_position:r,recirc_widget_type:s}};return t+c.replace(/\[cta_link\]/g,p).replace(/\[title\]/g,u.title).replace(/\[image\]/g,h).replace(/\[gtm_custom_event\]/g,JSON.stringify(m).replace(/"/g,"""))}),"")},l=e=>/checkout.timeout|timeoutdirectdeals.tixculture/.test(e)?e:`/${e.replace(/^(?:\/\/|[^/]+)*\//,"")}`},
1"./src/ts/utils/request.ts":(e,t,r)=>{r.d(t,{A_:()=>s,am:()=>a,fF:()=>d,j0:()=>i}),r("../../node_modules/event-source-polyfill/src/eventsource.js");const s=async({url:e="",headers:t={},cookies:r=!1,cors:s=!0,responseType:i="json",data:n})=>{const a=o({url:e,headers:t,cookies:r,cors:s,data:n}),l=await fetch(a);if(!l.ok)throw new Error(`${l.status}: ${l.statusText}`);return c(i)(l)},i=async({url:e="",headers:t={},cookies:r=!1,cors:s=!0,responseType:i="json",data:o,bodyType:a="json"})=>{const l=n({url:e,headers:t,cookies:r,cors:s,data:o,bodyType:a}),u=await fetch(l);if(!u.ok)throw new Error(`${u.status}: ${u.statusText}`);return c(i)(u)},n=({url:e="",headers:t={},cookies:r=!1,cors:s=!0,data:i={},bodyType:n="json"})=>{const o={method:"POST",headers:new Headers(t),credentials:r?"include":"same-origin",mode:s?"cors":"same-origin",body:l(n,i)};return new Request(e,o)},o=({url:e="",headers:t={},cookies:r=!1,cors:s=!0,data:i={}})=>{const n=i?a({urlPrefix:e,params:i}):e,o={method:"GET",headers:new Headers(t),mode:s?"cors":"same-origin",credentials:r?"include":"same-origin"};return new Request(n,o)},a=({urlPrefix:e="",params:t={},hash:r})=>{const s=new URL(e,window.location.href);if("string"==typeof t){const e=s.toString(),r=e.includes("?")?"&":"?";return`${e}${r}${t}`}return Object.entries(t).forEach((([e,t])=>{Array.isArray(t)?t.forEach((t=>{s.searchParams.append(e,t)})):s.searchParams.append(e,t)})),"string"==typeof r&&(s.hash=r),s.toString()},c=e=>{if(!(e=>["arrayBuffer","blob","formData","json","text"].includes(e))(e))throw new Error(`Invalid response type requested - ${e}`);return t=>{if(t.ok)return t[e]();throw new Error(`${t.status}: ${t.statusText}`)}},l=(e,t)=>{if(!(e=>["formData","json","queryString","text"].includes(e))(e))throw new Error(`Invalid request type provided - ${e}`);switch(e){case"json":return JSON.stringify(t);case"formData":case"queryString":return u(e,t);default:return""+t}},u=(e,t)=>{const r=new{formData:FormData,queryString:URLSearchParams}[e];return Object.entries(t).forEach((([e,t])=>{r.set(e,t)})),r},d=e=>e?Object.entries(e).map((([e,t])=>Array.isArray(t)?`${e}=${t.join(",")}`:("object"==typeof t&&(t=d(t)),`${e}=${t}`))).join("&"):""},
1"./src/ts/utils/responsive-image.ts":(e,t,r)=>{var s;r.d(t,{J:()=>n}),function(e){e["4-3"]="auto",e["16-9"]="auto"}(s||(s={}));const i={"4-3":[[380,285],[750,562],[1024,768],[1372,1029]],"16-9":[[400,225],[750,422],[1024,576],[1372,772]]},n=({pattern:e="{width}/{height}",aspectRatioKey:t="4-3",title:r="",alt:n="",imageClass:o=""})=>{const a=((e="{width}/{height}",t="4-3")=>i[t].map((t=>`${e.replace("{width}",t[0].toString()).replace("{height}",t[1].toString())} ${t[0]}w`)).join(","))(e,t),[,[c,l]]=i[t],u=[...o.length?[o]:[],`aspect-ratio-${t}`].join(" ");return`<picture><source type="image/webp" srcset="${a.replace(/\.jpe?g/gi,".webp")}" width="${c}" height="${l}"/><img\n src="${e.replace("{width}",`${c}`).replace("{height}",`${l}`)}"\n srcset="${a}"\n sizes="${s[t]}"\n class="${u}"\n title="${r}"\n alt="${n}"\n loading="lazy"\n /></picture>`}},
1"../utils/dist/urls/index.js":(e,t)=>{t.p=void 0,t.p=e=>!!/^\/[^/].*$/.test(e)||/^(?:https?:\/\/)?(?:(?:www|staging|dev\.v5|www-gp-web-\d{1,5})\.)?(?:timeout|miyagi)\.[a-z]+(?::\d+)?(?:[/?#].*)?$/.test(e)}
1}]);
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.