1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5100],{39743:(e,t,a)=>{a.d(t,{PH:()=>n,hO:()=>d,H4:()=>s,bP:()=>h,u3:()=>p,a_:()=>c,Xj:()=>m});var r=a(95293),n=function(e){return e[e.ExperienceDay=1]="ExperienceDay",e[e.Collection=2]="Collection",e}({}),i=a(89034);let o=(null==i||null==i.env?void 0:"https://www.virginexperiencedays.co.uk")||"",l=(()=>{let e=o.replace(/\/$/,"");return"1"===i.env.NEXT_PUBLIC_DEV_MOCK_BASKET_API?"".concat(e,"/api/mock"):e})(),s=async(e,t,a,n,i)=>{if(!l)throw Error("Failed to update basket: missing NEXT_PUBLIC_HOME_LINK variable");let o=((e,t,a)=>{let n=new URLSearchParams;n.append("productId",e.toString()),n.append("qty",t.toString());let i=(0,r.k)(a);return i&&n.append("flags",i),n.toString()})(e,t,null!=a?a:[]);return await u("".concat(l,"/basket/items/addJson"),{method:"POST",credentials:"include",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},body:o},n,i)},d=async e=>{if(!l)throw Error("Failed to update basket: missing NEXT_PUBLIC_HOME_LINK variable");return await u("".concat(l,"/basket/addsubscription"),{method:"POST",credentials:"include",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"}},null==e?void 0:e.actionEvents,null==e?void 0:e.dispatch)},c=async e=>{if(!l)throw Error("Failed to update basket: missing NEXT_PUBLIC_HOME_LINK variable");return await u("".concat(l,"/basket/removesubscription"),{method:"POST",credentials:"include",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},body:"applySubscription=false"},null==e?void 0:e.actionEvents,null==e?void 0:e.dispatch)},u=async(e,t,a,r)=>{try{let n=await fetch(e,t),{Status:{Success:i,Alert:o},Basket:l}=await n.json();if(i&&l)return null==r||r({type:"UPDATE_BASKET_SUCCESS",payload:l}),(e=>{if("function"==typeof CustomEvent){let t=new CustomEvent("DynamicContentLoaded",{detail:e});document.dispatchEvent&&document.dispatchEvent(t)}})("Update Basket Item"),((e,t)=>{if("function"==typeof CustomEvent){let a=new CustomEvent(e,{detail:t});document.dispatchEvent&&document.dispatchEvent(a)}})("BasketUpdated",l),null==a||a(),l;!i&&(null==o?void 0:o.AlertMessage)&&console.error("updateBasketItem error: ".concat(o.AlertMessage))}catch(e){console.error("updateBasketItem error: ".concat(e))}},m=async(e,t,a)=>{var r;if(!l)throw Error("Failed to update basket: missing NEXT_PUBLIC_HOME_LINK variable");let n=await u("".concat(l,"/basket/items/").concat(e,"/setquantity"),{method:"POST",credentials:"include",mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/x-www-form-urlencoded; charset=UTF-8"},body:"qty=".concat(t)},null==a?void 0:a.actionEvents,null==a?void 0:a.dispatch);return(null==a?void 0:a.shouldReturnFullBasket)?n:null!=(r=null==n?void 0:n.Items)?r:[]},p=async(e,t)=>{try{var a,r,n;if(!e)throw Error("Failed to fetch basket: missing endpoint variable");if(!t)throw Error("Failed to fetch basket: missing discount code");let i="".concat(e.replace(/\/$/,""),"/basket/setpromocode"),o=await fetch(i,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:"promoCode=".concat(t)}),l=await o.json();if(!(null==l||null==(a=l.Status)?void 0:a.Success))throw Error(null==l||null==(n=l.Status)||null==(r=n.Alert)?void 0:r.AlertMessage);if(!l.Basket)throw Error("Failed to fetch basket: missing basket data");return{success:!0,message:"Discount code applied successfully",data:l.Basket}}catch(e){return{success:!1,message:e instanceof Error?e.message:"Unknown error",data:null}}},h=async e=>{try{var t,a,r;if(!e)throw Error("Failed to fetch basket: missing endpoint variable");let n="".concat(e.replace(/\/$/,""),"/basket/clearpromocode"),i=await fetch(n,{method:"POST"}),o=await i.json();if(!(null==o||null==(t=o.Status)?void 0:t.Success))throw Error(null==o||null==(r=o.Status)||null==(a=r.Alert)?void 0:a.AlertMessage);if(!(null==o?void 0:o.Basket))throw Error("Failed to fetch basket: missing basket data");return{success:!0,message:"Discount code cleared successfully",data:o.Basket}}catch(e){return{success:!1,message:e instanceof Error?e.message:"Unknown error",data:null}}}},95100:(e,t,a)=>{a.r(t),a.d(t,{default:()=>m});var r=a(37876),n=a(39743),i=a(57993),o=a(37537),l=a(81634);let s=e=>{let{displayPrice:t,className:a,onClick:n}=e;return(0,r.jsxs)(l.$,{className:(0,o.cn)("bg-background-primary hover:bg-background-primary flex aspect-[5/3] w-full items-center justify-center rounded-2xl border-0 focus:border-0","rotate-0 transform transition-transform duration-[0.15s]","[@media(min-width:1024px)]:rotate-0 [@media(min-width:1024px)]:hover:rotate-[-2deg] [@media(min-width:1024px)]:hover:scale-x-[1.1] [@media(min-width:1024px)]:hover:scale-y-[1.1]","[@media(min-width:1024px)]:[&:hover>span]:opacity-100","rebrand:rounded-lg",a),onClick:n,"aria-label":"Add to basket",role:"link",children:[(0,r.jsxs)("p",{className:"absolute left-1/2 top-1/2 m-0 -translate-x-1/2 -translate-y-1/2 transform text-2xl font-bold leading-normal text-white rebrand:tracking-wider",children:["\xa3",t]}),(0,r.jsx)("span",{className:(0,o.cn)("leading-base absolute bottom-0 block rounded bg-white px-4 py-2 text-center text-sm font-semibold text-black opacity-100 shadow-md","scale-x-1 scale-y-1 translate-y-4 rotate-0 transform transition-opacity duration-[0.15s]","[@media(min-width:1024px)]:scale-x-1 [@media(min-width:1024px)]:scale-y-1 md:p-4 [@media(min-width:1024px)]:translate-x-0 [@media(min-width:1024px)]:translate-y-[1rem] [@media(min-width:1024px)]:rotate-[2deg] [@media(min-width:1024px)]:opacity-0","rebrand:rounded-md"),children:"Add to basket"})]})};var d=a(83568),c=a(20109),u=a(14232);let m=e=>{var t;let{slice:a,context:l,className:m}=e,{primary:{title:h,description:w,introTitle:f="Buy a Gift Card",card_count:y},items:b,slice_type:x}=a,v=null!=y?y:"4",{isFaceted:g,trackSlice:k,pageType:E,lastSlug:C,onAddToLotusCart:S}=l,[_,T]=(0,u.useState)(!1);if(g||!Array.isArray(b))return null;let P=b.filter(e=>{var t;return null==e||null==(t=e.price)?void 0:t.displayPrice}).sort((e,t)=>
1e.price.displayPrice-t.price.displayPrice).slice(0,Number(v));if(!P)return null;let B=async e=>{var t,a,r;let{productId:i,qty:o}=e,l=P.find(e=>(null==e?void 0:e.id)===i);null==k||k({...C&&{slug:C},label:String(null!=(a=null==l||null==(t=l.price)?void 0:t.displayPrice)?a:""),sliceType:x,...E&&{pageType:E}});try{if(S){if(!(null==l?void 0:l.sku))throw Error("failed to add item to cart: missing SKU");await S({sku:l.sku,promocode:l.promocode,quantity:o});return}let e=await (0,n.H4)(i,o);if(!(null==e||null==(r=e.Items)?void 0:r.length))throw Error("failed to add item(s) to basket");window.location.href="/basket"}catch(e){console.error("Error thrown in Gift Card Price Selector while adding to basket",e),T(!0)}},N="8"===v?"4":v;return(0,r.jsxs)(i.m,{className:m,children:[(0,r.jsxs)("div",{className:"flex flex-col gap-2 text-center",children:[(0,r.jsx)(d.a,{className:"text-brand font-bold",children:f}),(0,r.jsx)(c.t,{size:"2",leading:"none",className:"text-neutral-strong m-0 tracking-tight",children:h}),(0,r.jsx)(d.a,{className:"text-black",children:w})]}),(0,r.jsx)("div",{className:(0,o.cn)("mt-12 grid grid-cols-2 gap-x-6 gap-y-14",(null==(t=p.wrapperByCardCount)?void 0:t[N])||p.wrapperByCardCount["4"],"6"===N?"[@media(min-width:1024px)]:mx-0":"[@media(min-width:1024px)]:mx-20","6"===N?"xl:!mx-[72px]":"xl:!mx-[120px]"),children:P.map(e=>{var t;return(0,r.jsx)(s,{displayPrice:null==e||null==(t=e.price)?void 0:t.displayPrice,onClick:()=>B({productId:e.id,qty:1})},e.id)})}),_&&(0,r.jsx)(d.a,{className:"text-tones-critical-500 mt-4 text-center",children:"Something went wrong, please try again"})]})},p={wrapperByCardCount:{1:"md:grid-cols-1",2:"md:grid-cols-2",3:"md:grid-cols-3",4:"md:grid-cols-4",5:"md:grid-cols-5",6:"md:grid-cols-6",7:"md:grid-cols-7",8:"md:grid-cols-8"}}},95293:(e,t,a)=>{a.d(t,{F:()=>r,k:()=>n});var r=function(e){return e.REPORT_AS_B2B="reportAsB2b",e}({});let n=e=>{if(!(null==e?void 0:e.length))return null;let t=[];for(let a of e)t.includes(a)||t.push(a);return t.join(",")}}}]);
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.