1try{let e=typeof window<`u`?window:typeof global<`u`?global:typeof globalThis<`u`?globalThis:typeof self<`u`?self:{},t=new e.Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]=`f0fe306c-4792-4d81-bcc1-a4e6a9e3e055`,e._sentryDebugIdIdentifier=`sentry-dbid-f0fe306c-4792-4d81-bcc1-a4e6a9e3e055`)}catch{}import{d as e}from"./url-YwbN0bAJ.js";import{t}from"./dayjs-wv8OrnsA.js";import{t as n}from"./packageMode-BWlwvDbF.js";var r=`YYYY-MM-DD`,i=`HH:mm`,a=/^\d{4}-\d{2}-\d{2}$/,o=/^\d{2}:\d{2}$/,s=(e=t())=>{let n=e.minute()%15;return(n===0?e:e.add(15-n,`minute`)).second(0).format(i)},c=e=>typeof e==`string`?e.trim():void 0,l=e=>!!(e&&a.test(e)&&t(e,r,!0).isValid()),u=e=>!e||!o.test(e)||!t(e,i,!0).isValid()?!1:Number(e.slice(3,5))%15==0,d=e=>{let t=c(e);if(!t||!/^\d+$/.test(t))return;let n=Number(t);return n>=2&&n<=30?n:void 0},f=e=>{let t=c(e.date),n=c(e.time),r=d(e.guest);return{...l(t)?{date:t}:{},...u(n)?{time:n}:{},...r?{guest:r}:{}}},p=({search:e,storeNow:t})=>{let n=t.format(r);return{date:e.date&&l(e.date)&&e.date>=n?e.date:n,people:e.guest&&e.guest>=2&&e.guest<=30?e.guest:4,time:e.time&&u(e.time)?e.time:s(t)}};function m(t){let n=e.includes(t.marketGroupUrl??``);return t.marketGroupUrl&&!n?`/${t.marketGroupUrl}/${t.marketUrl}`:`/${t.marketUrl}`}function h(e,t){return`${m(e)}/${t}`}var g=[[`experience`,`experienceDescription`],[`time`,`timeDescription`],[`food`,`foodDescription`],[`beverage`,`beverageDescription`],[`discount`,`discountDescription`]],_=e=>g.flatMap(([t,n])=>{let r=e[n];return r&&typeof r==`object`&&`json`in r?[{description:r.json,kind:t}]:[]}),v=/^\d{4}-\d{2}-\d{2}$/,y=/^[a-zA-Z0-9_-]+$/,b=/^\d{2}:\d{2}-\d{2}:\d{2}$/,x=e=>typeof e==`string`?e.trim():``,S=e=>typeof e==`number`&&Number.isInteger(e)&&e>0,C=e=>typeof e==`string`&&v.test(e),w=e=>typeof e==`string`&&b.test(e),T=e=>{let t=e?.date?.from,n=e?.date?.to,r=Array.isArray(e?.day)?e.day.filter(e=>Number.isInteger(e)&&e>=0&&e<=6):[],i=Array.isArray(e?.timeRange)?e.timeRange.filter(w):[];return!C(t)||!C(n)||t>n||r.length===0||i.length===0||typeof e?.price!=`number`||!Number.isFinite(e.price)||e.price<=0?null:{dateFrom:t,dateTo:n,days:r,price:e.price,timeRanges:i}},E=e=>Array.isArray(e)?e.flatMap(e=>{let t=x(e?.sku);return!t||!S(e?.quantity)?[]:[{sku:t,quantity:e.quantity}]}):[],D=e=>Array.isArray(e)?e.map(x).filter(e=>!!e):[],O=e=>(e.purchasableStoresCollection?.items||[]).flatMap(e=>{let t=x(e?.storeCode),n=x(e?.storeUrl),r=x(e?.market?.marketUrl),i=x(e?.market?.newMarketUrl);return t?[{marketUrl:r,newMarketUrl:i,storeCode:t,storeUrl:n}]:[]}),k=(e,t)=>e.toLowerCase()===t.toLowerCase(),A=e=>{let t=x(e?.url);if(!t)return;let n=x(e?.title);return{...n?{title:n}:{},url:t}},j=e=>{let t=x(e);return t&&y.test(t)?t:void 0},M=e=>{let t=x(e);if(!/^\d+$/.test(t))return;let n=Number(t);return Number.isSafeInteger(n)?n:void 0},N=e=>{let t=f(e),n=j(e.package),r=M(e.option);return{...t,...n?{package:n}:{},...r===void 0?{}:{option:r}}},P=e=>{let{purchasableItems:t}=e;if(!t||!S(t.guest)||!Array.isArray(t.booking))return null;let r=x(t.sku);if(!r)return null;let i=t.booking.flatMap(e=>{let t=T(e);return t?[t]:[]});if(i.length===0)return null;let a=t.isBackToBack===!0||e.isBackToBack===!0;if(t.tickets!==void 0&&t.tickets!==null&&!S(t.tickets))return null;let o=S(t.tickets)?t.tickets:null,s;if(o){let e=o/t.guest;if(!Number.isInteger(e)||e<1||a&&e<2)return null;s=a?{allowedGapMinutes:n,mode:`consecutive`,ticketCount:o,timeslotCount:e}:{mode:`independent`,ticketCount:o,timeslotCount:e}}else if(a)return null;let c=x(e.shortSummary),l=x(e.detailSlug),u=O(e).map(({storeCode:e})=>e);return{kind:`privateEventPackage`,allowedExperienceIds:D(t.experience),bookingRules:i,dealId:e.sys.id,dealImage:A(e.image),dealKey:e.key,dealName:e.name,features:_(e),experiencePosterHorizontal:A(e.experiencePosterHorizontal),experiencePosterVertical:A(e.experiencePosterVertical),guest:t.guest,includedAddOns:E(t.addOns),packageSkuTemplate:r,...l?{packageSlug:l}:{},...u.length>0?{purchasableStoreCodes:u}:{},...c?{shortSummary:c}:{},...s?{sessionSelection:s}:{}}},F=({deal:e,marketGroupUrl:t,marketUrl:n,newMarketUrl:r,storeUrl:i})=>{let a=x(e.detailSlug),o=x(e.purchasableButtonText),s=x(n),c=x(r),l=c||s,u=c?x(i):``,d=P(e),f=O(e).some(e=>
1{let t=[e.marketUrl,e.newMarketUrl].filter(Boolean).some(e=>[s,c].filter(Boolean).some(t=>k(e,t))),n=!u||k(e.storeUrl,u);return t&&n});if(!a||!o||!l||!d||!f)return;let p={marketGroupUrl:x(t),marketUrl:l};return{href:`${u?h(p,u):m(p)}/private-events/booking?package=${encodeURIComponent(a)}`,text:o}},I=(e,t,n,r)=>{if(!t)return null;let i=e.find(e=>e&&x(e.detailSlug)===t);if(!i)return null;let a=P(i);if(!a)return null;let o=O(i).filter(e=>r?k(e.storeCode,r):!n||[e.marketUrl,e.newMarketUrl].some(e=>k(e,n)));return(n||r)&&o.length===0?null:n||r?{...a,purchasableStoreCodes:o.map(e=>e.storeCode)}:a};export{_ as a,I as i,N as n,p as o,P as r,s,F as t};
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.