1import{a as Dt,b as Rt,c as Vt}from"./chunk-M7NZFYZM.js";import{b as Bt}from"./chunk-WXFPIYRC.js";import{a as Et}from"./chunk-VR7SF7UL.js";import"./chunk-IVMOCPUQ.js";import{a as Tt}from"./chunk-ADJBRHIU.js";import{a as Lt}from"./chunk-ZTU74S2J.js";import"./chunk-UDNVDVF4.js";import{a as wt}from"./chunk-G7ZXIPDY.js";import{a as _t}from"./chunk-HRL4YBIA.js";import"./chunk-XHI5GPUW.js";import{a as te}from"./chunk-W2DETQQY.js";import{c as St}from"./chunk-NU2EI2QH.js";import{b as Ct}from"./chunk-AGWWLIPP.js";import"./chunk-2CZG27MG.js";import{a as Ot,d as Pt}from"./chunk-K6JHATUW.js";import{a as Re,b as Mt,d as It}from"./chunk-IR63RTPR.js";import"./chunk-FDOBXTGL.js";import{a as he}from"./chunk-I3EBXWE4.js";import"./chunk-A7ZB4RAW.js";import"./chunk-IZYMZH34.js";import"./chunk-WU63M6ZT.js";import"./chunk-ZORQU5HR.js";import"./chunk-SYHQX2AD.js";import"./chunk-N4GUASZB.js";import"./chunk-24L4YP6V.js";import{a as me}from"./chunk-G52B6OH2.js";import{a as gt,b as Oe,c as De}from"./chunk-Z6KKTYYV.js";import{a as pe}from"./chunk-KQTVXPPL.js";import"./chunk-NVRLIFTB.js";import{a as D,c as ee}from"./chunk-YLUYGBUX.js";import{b as kt}from"./chunk-SU4447JQ.js";import"./chunk-4IN5U6CQ.js";import"./chunk-EKITRDNI.js";import"./chunk-4UM2KBEW.js";import"./chunk-C6JF3XVL.js";import"./chunk-2GXP2TLN.js";import{b as vt,e as bt,k as xt,y as yt}from"./chunk-WLX2V4Y4.js";import{a as Ie,b as ft,c as Te}from"./chunk-FQYCAPH3.js";import{b as we,c as le}from"./chunk-YG2LPD5X.js";import"./chunk-NBJDOE7Y.js";import{a as Q,h as z}from"./chunk-G3GNO263.js";import{b as ze,d as X}from"./chunk-GHTO5RS5.js";import{a as J}from"./chunk-UV3JVARH.js";import{c as ue}from"./chunk-IAH3QUCP.js";import{g as Me,h as ht}from"./chunk-IWD2VGYG.js";import{D as se,E as ut,F as Y,G as mt,T as Ne,U as pt,V as E,_a as Pe,ba as y,ea as de,f as st,g as lt,j as dt}from"./chunk-TYJIMTOU.js";import{Ac as tt,B as oe,Bc as ot,Ca as Le,Cc as Fe,Ec as We,Fb as He,Hb as v,Hc as rt,I as _e,Ib as b,Ic as nt,Kc as A,Lb as Ce,Lc as re,Mb as Se,Mc as be,Nb as S,Nc as it,Ob as i,Oc as j,Pb as a,Qb as P,T as Ve,Tc as U,U as C,Wa as Ae,Wc as at,Xa as ne,Xc as T,Zb as k,_a as l,bc as f,cd as ct,dc as s,ea as Be,hb as m,hc as ae,ic as B,ja as h,jc as L,ka as g,n as Ee,nb as W,nc as ce,oc as Ye,pa as Ge,pc as V,q as Qe,qb as Ze,qc as fe,rb as N,rc as u,sa as Ke,sb as ie,sc as M,tc as $,uc as ve,va as ye,xc as Je,ya as ke,yc as Xe,zc as et}from"./chunk-BYXESBPT.js";import{a as K,b as Z,f as O}from"./chunk-EQDQRRRY.js";function ro(r,d){if(r&1){let e=k();i(0,"img",6),f("load",function(){h(e);let o=s(3);return g(o.onImageLoadComplete())})("error",function(){h(e);let o=s(3);return g(o.onImageLoadError())}),a()}if(r&2){let e,t=s(3);S("draggable",!1)("alt",(e=t.menuItem())==null?null:e.name)("loading",t.index()<9?"eager":"lazy"),He("src",t.delayedImageSrc,ne)}}function no(r,d){if(r&1&&(i(0,"div",2),v(1,ro,1,4,"img",5),a()),r&2){let e,t=s(2);l(),b((e=t.menuItem())!=null&&e.imageBase?1:-1)}}function io(r,d){if(r&1&&(i(0,"span",3),u(1),a()),r&2){let e=s(2);l(),M(e.savingsBadgeText())}}function ao(r,d){if(r&1&&(i(0,"span",11),u(1),a()),r&2){let e,t=s(3);l(),M((e=t.menuItem())==null?null:e.nutritionSummary)}}function co(r,d){if(r&1&&(i(0,"p"),u(1),a()),r&2){let e,t=s(3);l(),M((e=t.menuItem())==null?null:e.defaultVariantSummary)}}function so(r,d){if(r&1&&(i(0,"span"),u(1),A(2,"date"),a()),r&2){let e,t=s(4);l(),$("Available from ",be(2,1,(e=t.menuItem())==null?null:e.availableFrom,t.availableFromDateFormat()))}}function lo(r,d){r&1&&(i(0,"span"),u(1,"Currently Unavailable"),a())}function uo(r,d){if(r&1&&(i(0,"div",12),v(1,so,3,4,"span")(2,lo,2,0,"span"),a()),r&2){let e=s(3);l(),b(e.availableFromDateFormat()?1:2)}}function mo(r,d){if(r&1&&(i(0,"p"),u(1),a()),r&2){let e,t=s(5);l(),M((e=t.menuItem())==null?null:e.defaultVariantSummary)}}function po(r,d){if(r&1&&(i(0,"div",13),v(1,mo,2,1,"p"),i(2,"div",14)(3,"div",15)(4,"span"),u(5),a()()()(),i(6,"div",12)(7,"span"),u(8,"Store closed"),a()()),r&2){let e,t,o=s(4);
1l(),b(!o.isMobile&&((e=o.menuItem())!=null&&e.defaultVariantSummary)?1:-1),l(),fe(o.menuCardClasses),l(3),M((t=o.menuItem())==null?null:t.priceSummary)}}function ho(r,d){if(r&1&&(i(0,"p"),u(1),a()),r&2){let e,t=s(5);l(),M((e=t.menuItem())==null?null:e.defaultVariantSummary)}}function go(r,d){if(r&1&&(i(0,"div",16),P(1,"app-icon-renderer",22),i(2,"span"),u(3),a()()),r&2){let e,t=s(5);l(3),ve("Earn Bonus ",(e=t.menuItem())==null?null:e.loyaltyBonusPoints," ",t.getLoyaltySchemePointsName("loyaltyPointsLower"))}}function _o(r,d){if(r&1){let e=k();i(0,"div",13),v(1,ho,2,1,"p"),i(2,"div",14),v(3,go,4,2,"div",16),i(4,"div",15)(5,"span"),u(6),a(),i(7,"button",17),f("click",function(o){h(e);let n=s(4);return g(n.share(o))}),i(8,"div",18),P(9,"app-icon-renderer",19),a()(),i(10,"a",20),f("click",function(o){h(e);let n=s(4);return g(n.addItemToBasket(o))}),i(11,"div",18),P(12,"app-icon-renderer",21),a()()()()()}if(r&2){let e,t,o;s(3);let n=Fe(0),c=s();l(),b(!c.isMobile&&((e=c.menuItem())!=null&&e.defaultVariantSummary)?1:-1),l(),fe(c.menuCardClasses),l(),b((t=c.menuItem())!=null&&t.loyaltyBonusPoints?3:-1),l(3),M((o=c.menuItem())==null?null:o.priceSummary),l(4),V("notify",n),S("href",c.routePath,ne),l(2),S("name",n?"check":"add")}}function fo(r,d){if(r&1&&v(0,po,9,4)(1,_o,13,9,"div",13),r&2){let e=s(3);b(e.isMenuReadOnly()?0:1)}}function vo(r,d){if(r&1&&(i(0,"div",7)(1,"div",8)(2,"h3",9),u(3),a(),i(4,"p",10),u(5),a(),v(6,ao,2,1,"span",11),a(),v(7,co,2,1,"p"),v(8,uo,3,1,"div",12),v(9,fo,2,1),a()),r&2){let e,t,o,n,c,_,p=s(2);V("_menu-card-imageless",!p.showImages),l(3),M((e=p.menuItem())==null?null:e.name),l(2),M((t=p.menuItem())==null?null:t.description),l(),b((o=p.menuItem(
1))!=null&&o.nutritionSummary?6:-1),l(),b(p.isMobile&&((n=p.menuItem())!=null&&n.defaultVariantSummary)?7:-1),l(),b(!((c=p.menuItem())!=null&&c.available)||(c=p.menuItem())!=null&&c.outOfStock?8:-1),l(),b((_=p.menuItem())!=null&&_.available&&!((_=p.menuItem())!=null&&_.outOfStock)?9:-1)}}function bo(r,d){r&1&&(i(0,"div",23)(1,"div",18)(2,"span"),u(3,"Store closed"),a()()())}function xo(r,d){if(r&1&&(i(0,"span"),u(1),A(2,"date"),a()),r&2){let e,t=s(4);l(),$("Available from ",be(2,1,(e=t.menuItem())==null?null:e.availableFrom,t.availableFromDateFormat()))}}function yo(r,d){if(r&1&&(i(0,"span"),u(1),a(),P(2,"app-icon-renderer",21)),r&2){let e;s(3);let t=Fe(0),o=s();l(),M((e=o.menuItem())==null?null:e.priceSummary),l(),S("name",t?"check":"add")}}function ko(r,d){if(r&1&&(i(0,"button",24)(1,"div",18),v(2,xo,3,4,"span")(3,yo,3,2),a()()),r&2){let e=s(3);l(2),b(e.availableFromDateFormat()?2:3)}}function Co(r,d){if(r&1&&v(0,bo,4,0,"div",23)(1,ko,4,1,"button",24),r&2){let e=s(2);b(e.isMenuReadOnly()?0:1)}}function So(r,d){if(r&1){let e=k();tt(0),A(1,"async"),i(2,"div",1),f("click",function(){h(e);let o=s();return g(o.onCardClick())}),v(3,no,2,1,"div",2),v(4,io,2,1,"span",3),v(5,vo,10,8,"div",4)(6,Co,2,1),a()}if(r&2){let e,t,o=s();ot(re(1,16,o._notification())),l(2),Ye("background-image",o.isBanner?"url("+((e=o.menuItem(
1))==null?null:e.imageBase)+")":"unset"),V("_category-item-unavailable",((t=o.menuItem())==null?null:t.outOfStock)||!((t=o.menuItem())!=null&&t.available))("_category-item-order-unavailable",o.isMenuReadOnly())("_category-item-read-only",o.isMenuReadOnly())("isBanner",o.isBanner)("isTwoThirdsCard",o.isTwoThirdsCard),He("data-testid","menu-product-card-"+o.index()),l(),b(o.showImages&&!o.isBanner?3:-1),l(),b(o.savingsBadgeText()?4:-1),l(),b(o.isBanner?6:5)}}var Nt=(()=>{class r extends z{static{this._maxConcurrentImageRequests=5}static{this._maxImageRetryCount=2}static{this._imageRetryDelayMs=800}static{this._imageQueue=[]}static{this._nextImageQueueId=1}static{this._activeImageRequests=0}constructor(e,t,o,n,c,_,p,R,x,I,H){super(),this._router=e,this._siteService=t,this._menuService=o,this._basketService=n,this._analyticsService=c,this._navigatorService=_,this._menuDealHelperService=p,this._menuVariantHelperService=R,this._productShareService=x,this._changeDetectorRef=I,this._whereAndWhen=H,this.menuItem=T(void 0),this.sectionItems=T([]),this.index=T.required(),this._occasion=T(void 0,{alias:"occasion"}),this._siteId=T(void 0,{alias:"siteId"}),this._isStoreOpen=T(void 0,{alias:"isStoreOpen"}),this._allowsFutureOrders=T(void 0,{alias:"allowsFutureOrders"}),this._menuReadOnly=T(void 0,{alias:"isMenuReadOnly"}),this._customerGroupName=T(void 0,{alias:"customerGroupName"}),this._notification=T(void 0,{alias:"notification"}),this._wantedTime=T(void 0,{alias:"wantedTime"}),this.activeTouchKey=T(void 0),this.isTouchActive=U(()=>this.activeTouchKey()===`${this._customerGroupName()}-${this.index()}`),this.savingsBadgeText=U(()=>{let w=this.menuItem();return!w||w.type!=="deal"?null:this._menuDealHelperService.getDealSavingsBadgeText(w.maxSavingAmount,w.maxSavingPercent)}),this.availableFromDateFormat=U(()=>{let w=this.menuItem();return!w||w.available||w.outOfStock||!w.availableFrom?void 0:w.availableFrom.toDateString()===new Date().toDateString()?"h:mm a":"EEEE h:mm a"}),this._queuedImageRequestId=null,this._hasActiveImageRequest=!1,this._imageRetryCount=0,this.canPlaceOrders=U(()=>{let w=this._allowsFutureOrders();return w!==void 0?w:this._isStoreOpen()!==!1}),this.isMenuReadOnly=U(()=>this._whereAndWhen.isModernHome&&!this._whereAndWhen.resolved?!1:this._menuReadOnly()===!0?!0:!this.canPlaceOrders()),this.showImages=!this.tenant.SuppressProductImages;let q,F=!1;ke(()=>{let w=this.menuItem();this.routePath=w?this.getRoutePath():"",this.isBanner=w?.visualProminence===Q.Noticeable||w?.visualProminence===Q.Dominant,this.isTwoThirdsCard=w?.visualProminence===Q.Prominent;let ge=w?.imageBase;(ge!==q||this.isBanner!==F)&&(q=ge,F=this.isBanner,this.scheduleImageSource())})}ngOnDestroy(){this.clearPendingImageWork(),super.ngOnDestroy()}onCardClick(){this.isMenuReadOnly()||this.goToItemPage()}goToItemPage(){return O(this,null,function*(){let e=this.menuItem();if(!(!e.available||e.outOfStock)&&(yield this._whereAndWhen.ensureCommitted(this._siteId(),this._occasion()))&&!this.isMenuReadOnly()){if(e.type==="deal"){this.trackClickMenuItem(),this._router.navigateByUrl(this.routePath);return}this.goToProductPage()}})}goToProductPage(){this.trackClickMenuItem(),this._router.navigateByUrl(this.routePath)}addItemToBasket(e){return O(this,null,function*(){if(e&&(e.preventDefault(),e.stopPropagation()),this.isMenuReadOnly()||!(yield this._whereAndWhen.ensureCommitted(this._siteId(),this._occasion())))return;let t=this.menuItem();if(t.type==="deal"||!this._menuVariantHelperService.isProductSimple(t.variants)||this.hasMealUpgradeDeals(t)||t.allergenDetails?.Contains.length||t.allergenDetails?.MayContain.length){yield this.goToItemPage();return}let o={Modifiers:[],Product:{Item:t.variants[0].Id,Quantity:1}},n=t.variants[0].Prices.find(c=>c.Occasion===this._occasion())?.Amount;yield this._basketService.addProductToBasket(o,t.name,this._customerGroupName(),n)})}hasMealUpgradeDeals(e){return(e.upselling?.Deals?.Ids?.length??0)>0}share(e){return O(this,null,function*(){e&&(e.preventDefault(),e.stopPropagation());let t=this.menuItem();if(!t)return;let o=t.type==="deal"?this.buildDealShareLink(t):this.buildProductShareLink(t);yield this._productShareService.share(t.name,o)})}buildProductShareLink(e){let t=this.sectionItems().filter(o=>o.type!=="deal").map(o=>({id:o.id,name:o.name}));return this._productShareService.buildShareLink(this._customerGroupName(),e.name,e.id,t)}buildDealShareLink(e){let t=(this._menuService.menuValue?.Deals??[]).filter(o=>!o.OutOfStock).map(o=>({id:o.Id,name:o.Name}));return this._productShareService.buildDealShareLink(e.name,e.id,t)}
1getRoutePath(){let e=this.menuItem();return e.type==="deal"?this.getDealRoutePath(e.id):this.getProductRoutePath(e.id)}getDealRoutePath(e){let t=this._navigatorService.getLocationBySiteId(this._siteId()??this._siteService.currentSite.Id);return this._navigatorService.generateRoutePath(t,this._occasion(),D.Menu,this._customerGroupName(),this.menuItem().name,null,e)}getProductRoutePath(e){let t=this._navigatorService.getLocationBySiteId(this._siteId()??this._siteService.currentSite.Id);return this._navigatorService.generateRoutePath(t,this._occasion(),D.Menu,this._customerGroupName(),this._navigatorService.clean(this.menuItem().name?.split(" ").join("-")),e)}trackClickMenuItem(){this._analyticsService.trackClickProduct(this.menuItem().name,this.menuItem().id,this._customerGroupName(),this.menuItem().price,"GBP")}get menuCardClasses(){return this.isBanner||this.isTwoThirdsCard?"lg:!flex-row lg:!space-between lg:!items-center":"xl:!flex-row xl:!space-between xl:!items-center"}getWantedTimeOrLeadTime(){return de(this._occasion(),this._siteService.currentSite,this._basketService.basket)}onImageLoadComplete(){this.releaseImageRequestSlot(),this._scheduledImageSrc=null}onImageLoadError(){if(this.releaseImageRequestSlot(),!this._scheduledImageSrc||this._imageRetryCount>=r._maxImageRetryCount)return;this._imageRetryCount+=1,this.delayedImageSrc=null,this._changeDetectorRef.markForCheck();let e=r._imageRetryDelayMs*this._imageRetryCount;this._imageLoadTimeoutId=setTimeout(()=>{this.menuItem()?.imageBase===this._scheduledImageSrc&&this.scheduleImageSource(!0)},e)}scheduleImageSource(e=!1){this.clearPendingImageWork();let t=this.menuItem();if(!t?.imageBase||!this.showImages||this.isBanner){this.delayedImageSrc=null,this._changeDetectorRef.markForCheck();return}e||(this._imageRetryCount=0);let o=t.imageBase;this._scheduledImageSrc=o,this.delayedImageSrc=null,this._changeDetectorRef.markForCheck(),this._queuedImageRequestId=r.enqueueImageRequest(()=>{this._queuedImageRequestId=null;let n=this.menuItem();if(n?.imageBase!==o){r.releaseImageRequestSlot();return}this._hasActiveImageRequest=!0,n?.imageBase===o&&(this.delayedImageSrc=o,this._changeDetectorRef.markForCheck())})}clearPendingImageWork(){this.clearImageDelay(),this.cancelQueuedImageRequest(),this.releaseImageRequestSlot(),this._scheduledImageSrc=null}clearImageDelay(){this._imageLoadTimeoutId&&(clearTimeout(this._imageLoadTimeoutId),this._imageLoadTimeoutId=null)}cancelQueuedImageRequest(){this._queuedImageRequestId&&(r.cancelQueuedImageRequest(this._queuedImageRequestId),this._queuedImageRequestId=null)}releaseImageRequestSlot(){this._hasActiveImageRequest&&(this._hasActiveImageRequest=!1,r.releaseImageRequestSlot())}static enqueueImageRequest(e){let t=this._nextImageQueueId++;return this._imageQueue.push({id:t,start:e}),this.flushImageQueue(),t}static cancelQueuedImageRequest(e){this._imageQueue=this._imageQueue.filter(t=>t.id!==e)}static releaseImageRequestSlot(){this._activeImageRequests>0&&(this._activeImageRequests-=1),this.flushImageQueue()}static flushImageQueue(){for(;this._activeImageRequests<this._maxConcurrentImageRequests&&this._imageQueue.length>0;){let e=this._imageQueue.shift();if(!e)return;this._activeImageRequests+=1,e.start()}}static{this.\u0275fac=function(t){return new(t||r)(m(Y),m(ue),m(J),m(X),m(Me),m(ee),m(he),m(me),m(Re),m(ct),m(te))}}static{this.\u0275cmp=W({type:r,selectors:[["app-menu-card"]],hostVars:2,hostBindings:function(t,o){t&2&&V("touch-feedback-active",o.isTouchActive())},inputs:{menuItem:[1,"menuItem"],sectionItems:[1,"sectionItems"],index:[1,"index"],_occasion:[1,"occasion","_occasion"],_siteId:[1,"siteId","_siteId"],_isStoreOpen:[1,"isStoreOpen","_isStoreOpen"],_allowsFutureOrders:[1,"allowsFutureOrders","_allowsFutureOrders"],_menuReadOnly:[1,"isMenuReadOnly","_menuReadOnly"],_customerGroupName:[1,"customerGroupName","_customerGroupName"],_notification:[1,"notification","_notification"],_wantedTime:[1,"wantedTime","_wantedTime"],activeTouchKey:[1,"activeTouchKey"]},features:[N],decls:1,vars:1,consts:[[1,"_menu-card","_category-item","flex-column",3,"background-image","_category-item-unavailable","_category-item-order-unavailable","_category-item-read-only","isBanner","isTwoThirdsCard"],[1,"_menu-card","_category-item","flex-column",3,"click"],[1,"_menu-card-image","disable-select"],["role","note",1,"_menu-card-savings-badge"],[1,"_menu-card-body",3,"_menu-card-imageless"],[3,"draggable","alt","loading"],[3,"load","error","draggable","alt","loading"],[1,"_menu-card-body"],[1,"_menu-card-content"],[1,"_menu-card-content-title"],[1,"_menu-card-content-description"],[1,"_menu-card-content-nutrition"],[1,"button-action-disabled","_menu-card-add-button","disable-select"],[1,"footer-wrapper","flex-row","no-wrap"],[1,"w-full","flex","flex-col-reverse","items-end"],[1,"_category-item-footer","flex-row","no-wrap"],[1,"_menu-card-loyalty","flex-1"],["type","button","aria-label","Share","mat-icon-button","",1,"_menu-card-share-button",3,"click"],[1,"flex-row","flex-center"],["name","share"],["mat-icon-button","",1,"button-action-1","_menu-card-add-button",3,"click","href"],[3,"name"],["name","award_star"],[1,"button-action-disabled","_menu-card-add-button","isBanner"],["mat-flat-button","",1,"_menu-card-add-button"]],template:function(t,o){t&1&&v(0,So,7,19,"div",0),t&2&&b(o.menuItem(
1)?0:-1)},dependencies:[le,Te,ft,Ie,Pe,De,st,lt],styles:["[_ngcontent-%COMP%]:root{--footer-background-colour: var(--secondary-color);--footer-font-colour: var(--on-secondary-color);--product-content-padding: 0 10px;--tablet-width-portrait: 1023px;--mobile-width-portrait: 479px;--desktop-width-large: 1280px;--tablet-width-landscape: 768px;--primary-color: #3f4858;--on-primary-color: #fff;--secondary-color: #fff;--on-secondary-color: #3f4858;--background-color: #fff;--on-background-color: #3f4858;--surface-color: #f5f5f5;--on-surface-color: #000045;--success-color: #4caf50;--on-success-color: #fff;--error-color: #f44336;--on-error-color: #fffffff0;--warning-color: #ff9800;--on-warning-color: #fff;--input-border-color: #7a7a7a40;--product-page-popup-ring-color: color-mix(in srgb, var(--primary-color) 70%, transparent);--nav-bar-background-colour: var(--site-header-color, var(--secondary-color));--nav-bar-font-colour: var(--on-site-header-color, var(--on-secondary-color));--nav-bar-desktop-background-colour: var(--site-header-color, var(--secondary-color));--nav-bar-desktop-font-colour: var(--on-site-header-color, var(--on-secondary-color));--nav-bar-desktop-info-colour: var(--primary-color);--quantity-toggle-icon-color: var(--primary-color);
1--card-box-shadow-color: rgba(53, 53, 53, .25);--card-box-shadow: 0 0 25px 1px var(--card-box-shadow-color);--nav-sections-header-background: var(--nav-bar-background-colour);--nav-bar-user-menu-background-colour: var(--primary-color);--nav-bar-user-menu-font-colour: var(--on-primary-color);--nav-sections-item-background: var(--surface-color);--nav-sections-item-font-colour: var(--on-surface-color);--nav-sections-item-background-selected: var(--secondary-color);--nav-sections-item-font-colour-selected: var(--on-secondary-color);--nav-bar-user-menu-dropdown-background: var(--background-color);--nav-bar-user-menu-dropdown-font-colour: var(--on-background-color);--checkout-background: var(--background-color);--menu-item-image-zoom-overlay-background: rgba(0, 0, 0, .5);--menu-item-image-zoom-overlay-color: white;--menu-item-card-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .14), 0 0 5px 0 rgba(0, 0, 0, .12);--menu-item-image-wrapper-background: var(--surface-color);--custom-scrollbar-width: 10px;--custom-scrollbar-thumb-color: #bbbab9;--custom-scrollbar-thumb-box-shadow: inset 0 0 3px rgba(0, 0, 0, .2);--custom-scrollbar-thumb-border-radius: 0px;--custom-scrollbar-thumb-border-color: #fff;--custom-scrollbar-thumb-border: 0px solid var(--custom-scrollbar-thumb-border-color);--modal-header-box-shadow: rgba(0, 0, 0, .18) 0px 2px 4px;--modal-footer-box-shadow: rgba(60, 64, 67, .3) 0px 1px 2px 0px, rgba(60, 64, 67, .15) 0px 1px 3px 1px;--mat-option-selected-state-layer-color: var(--primary-color);--mat-option-selected-state-label-text-color: var(--on-primary-color);--mat-form-field-filled-focus-label-text-color: var(--primary-color);--menu-page-store-mismatch-banner-background: color-mix(in srgb, var(--warning-color) 14%, var(--surface-color));--menu-page-store-mismatch-banner-border-color: var(--warning-color);--menu-page-store-mismatch-banner-font-color: var(--on-surface-color);--menu-page-store-mismatch-primary-cta-background: var(--primary-color);--menu-page-store-mismatch-primary-cta-font-color: var(--on-primary-color);--menu-page-store-mismatch-secondary-cta-border-color: var(--primary-color);--menu-page-store-mismatch-secondary-cta-font-color: var(--on-surface-color);--menu-page-load-error-primary-cta-background: var(--primary-color);--menu-page-load-error-primary-cta-font-color: var(--on-primary-color);--menu-page-load-error-secondary-cta-border-color: var(--primary-color);--menu-page-load-error-secondary-cta-font-color: var(--on-background-color);--upsell-button-action-border-color: var(--primary-color);--upsell-button-action-1-color: var(--on-primary-color);--upsell-button-action-1-background-color: var(--primary-color);--upsell-button-action-2-color: var(--on-background-color);--upsell-button-action-2-background-color: var(--background-color);--basket-sticky-offset: 280px;--basket-panel-width: 408px;--basket-panel-top: 164px;--basket-item-font-color: var(--on-surface-color)}._menu[_ngcontent-%COMP%]{--menu-nav-bar-background-color: var(--background-color);--menu-nav-bar-font-color: var(--on-background-color);--menu-nav-bar-search-background: var(--on-background-color);--menu-nav-bar-search-font-color: var(--background-color);--menu-nav-bar-search-expanded-background-color: var(--background-color);--menu-nav-bar-search-expanded-font-color: var(--on-background-color);--menu-nav-bar-search-expanded-close-icon-color: var(--on-background-color);--menu-nav-bar-search-expanded-search-icon-background-color: var(--on-background-color);--menu-nav-bar-search-expanded-search-icon-color: var(--background-color);--menu-nav-bar-font-color-active: var(--primary-color);--menu-wanted-for-background: var(--secondary-color);--menu-wanted-for-font-color: var(--on-secondary-color);--menu-wanted-for-change-background: var(--surface-color);--menu-wanted-for-change-font-colour: var(--on-surface-color);--menu-wanted-for-cta-font-color: var(--primary-color);--menu-wanted-for-cta-bg-color-hover: var(--on-primary-color);--menu-content-background: var(--background-color);--menu-content-font-color: var(--on-background-color);
1--menu-sections-details-header-background: var(--background-color);--menu-sections-details-header-font-color: var(--on-background-color);--menu-card-background: var(--surface-color);--menu-card-font-colour: var(--on-surface-color);--menu-card-action-button-background: var(--primary-color);--menu-card-action-button-font-colour: var(--on-primary-color);--menu-card-action-button-highlight-background: var(--secondary-color);--menu-card-action-button-highlight-font-colour: var(--on-secondary-color);--menu-card-border-colour: var(--surface-color);--menu-card-border: 1px solid var(--menu-card-border-colour);--menu-card-border-radius: 6px;--menu-card-box-shadow-color: rgba(53, 53, 53, .15);--menu-card-box-shadow: 0 0 4px 1px var(--menu-card-box-shadow-color);--menu-page-section-header-border-color: var(--primary-color);--menu-page-load-more-button-background: var(--primary-color);--menu-page-load-more-button-font-color: var(--on-primary-color);--menu-basket-footer-background: var(--menu-card-action-button-background);--menu-basket-footer-font-color: var(--menu-card-action-button-font-colour);--menu-basket-footer-border: thin solid var(--menu-basket-footer-background);--menu-basket-footer-height: 45px}._product-page-wrapper[_ngcontent-%COMP%]{--product-page-background: var(--background-color);--product-page-font-color: var(--on-background-color);--product-page-selected-option-background: var(--secondary-color);--product-page-selected-option-font-colour: var(--on-secondary-color);--product-page-allergen-icon-color: var(--error-color);--product-page-action-button-background: var(--primary-color);--product-page-action-button-font-color: var(--on-primary-color);--product-page-content-card-background: var(--surface-color);--product-page-content-card-font-color: var(--on-surface-color);--product-page-meal-choice-card-border-color: var(--product-page-action-button-background);--product-page-meal-choice-row-border-color: color-mix(in srgb, var(--product-page-content-card-font-color) 30%, transparent);--product-page-meal-choice-row-selected-border-color: var(--product-page-action-button-background);--product-page-modifier-chip-border-color: var(--product-page-content-card-font-color);--product-page-modifier-chip-background: transparent;--product-page-modifier-chip-color: var(--product-page-content-card-font-color);--product-page-modifier-chip-included-border-color: color-mix(in srgb, var(--product-page-selected-option-background) 55%, var(--product-page-content-card-font-color) 45%);--product-page-modifier-chip-included-background: color-mix(in srgb, var(--product-page-selected-option-background) 8%, var(--product-page-background) 92%);--product-page-modifier-chip-selected-border-color: var(--product-page-action-button-background);--product-page-modifier-chip-selected-background: var(--product-page-action-button-background);--product-page-modifier-chip-selected-color: var(--product-page-action-button-font-color);--product-page-modifier-chip-badge-background: color-mix(in srgb, var(--product-page-content-card-font-color) 12%, transparent);--product-page-modifier-chip-selected-badge-background: color-mix(in srgb, var(--product-page-action-button-font-color) 18%, transparent);--product-page-modifier-chip-check-background: color-mix(in srgb, var(--product-page-action-button-font-color) 22%, transparent);--product-page-hero-image-fade-color: var(--product-page-background);--product-page-hero-placeholder-background: color-mix(in srgb, var(--product-page-action-button-background) 10%, var(--product-page-background));--product-page-hero-placeholder-font-color: color-mix(in srgb, var(--product-page-action-button-background) 55%, var(--product-page-background));--product-page-price-flash-background: var(--product-page-action-button-background);--product-page-price-flash-font-color: var(--product-page-action-button-font-color);--product-page-price-flash-shadow-color: color-mix(in srgb, var(--product-page-action-button-background) 36%, transparent);--product-page-allergen-strip-accent-color: #b45309;--product-page-allergen-strip-background: color-mix(in srgb, var(--product-page-allergen-strip-accent-color) 9%, var(--product-page-background));--quantity-toggle-icon-color: var(--on-surface-color)}._product-page-wrapper[_ngcontent-%COMP%] ._selected-modifier-item[_ngcontent-%COMP%]{--quantity-toggle-icon-color: var(--on-secondary-color)}._product-page-wrapper[_ngcontent-%COMP%] ._product-page-footer[_ngcontent-%COMP%]{--quantity-toggle-icon-color: var(--on-background-color)}.basket-container[_ngcontent-%COMP%]{--basket-background: var(--background-color);--basket-font-color: var(--on-background-color);--basket-padding: 24px;--basket-body-background: var(--surface-color);--basket-body-font-color: var(--on-surface-color);--basket-occasion-tab-background: var(--surface-color);--basket-occasion-tab-font-color: var(--on-surface-color);--basket-occasion-tab-background-selected: var(--primary-color);--basket-occasion-tab-font-color-selected: var(--on-primary-color);--basket-call-to-action-background: var(--primary-color);--basket-call-to-action-font-color: var(--on-primary-color);--basket-return-to-home-color: var(--on-background-color);--basket-error-font-color: var(--error-color);--basket-action-button-background: var(--secondary-color);--basket-action-button-font-color: var(--on-secondary-color);--basket-button-border-radius: 12px;--basket-redeem-card-background: var(--surface-color);--basket-redeem-card-font-color: var(--on-surface-color);--basket-redeem-card-border-color: color-mix(in srgb, var(--basket-redeem-card-font-color) 12%, transparent);--basket-loyalty-icon-color: var(--on-surface-color);--basket-item-font-color: var(--on-surface-color);--basket-promo-chip-border-color: color-mix(in srgb, var(--basket-font-color) 20%, transparent);--basket-dock-border-color: color-mix(in srgb, var(--basket-font-color) 12%, transparent);--basket-identity-panel-border-color: var(--primary-color);--basket-loyalty-border-color: var(--primary-color);--basket-loyalty-background: var(--background-color);--basket-loyalty-points-summary-color: var(--on-surface-color);--basket-loyalty-points-discount-color: var(--on-surface-color);--basket-loyalty-earn-summary-color: var(--on-surface-color);--basket-voucher-input-border-radius: 8px;--basket-voucher-input-border-color: var(--on-surface-color);--basket-voucher-input-background: var(--surface-color);--basket-voucher-input-font-color: var(--on-surface-color);--basket-voucher-button-background: var(--primary-color);--basket-voucher-button-color: var(--on-primary-color);--basket-product-row-has-issues-background: #ffeeee;--basket-divider-color: var(--on-primary-color);--basket-voucher-deal-tag-background: #ff0;--basket-voucher-deal-tag-font-color: #000}.checkout-wrapper[_ngcontent-%COMP%]{--checkout-card-background: var(--surface-color);--checkout-card-font-colour: var(--on-surface-color);--checkout-card-instructions-font-colour: var(--secondary-color);--checkout-pay-type-highlight: var(--secondary-color);--checkout-action-button-background: var(--surface-color);--checkout-action-button-font-color: var(--primary-color);--checkout-action-button-background-selected: var(--primary-color);--checkout-action-button-font-color-selected: var(--on--primary-color);--checkout-border-colour: color-mix(in srgb, var(--on-surface-color) 10%, transparent);--checkout-item-count-font-color: #afb0c4;--checkout-payment-type-background: var(--surface-color);--checkout-border-radius: 20px;--checkout-info-card-background: var(--background-color);--checkout-info-card-font-colour: var(--on-background-color);
1--checkout-info-card-divider-colour: color-mix(in srgb, var(--on-background-color) 10%, transparent);--basket-item-font-color: var(--on-background-color)}.order-feedback-container[_ngcontent-%COMP%]{--order-feedback-header-background: var(--nav-bar-background-colour);--order-feedback-content-background: var(--background-color);--order-feedback-card-background: var(--surface-color);--order-feedback-card-font-color: var(--on-surface-color);--order-feedback-star-icon-color: var(--secondary-color);--order-feedback-divider-color: var(--on-surface-color);--order-feedback-textarea-background: var(--surface-color);--order-feedback-textarea-font-color: var(--on-surface-color);--order-feedback-primary-action-button-background: var(--primary-color);--order-feedback-primary-action-button-font-color: var(--on-primary-color);--order-feedback-secondary-action-button-background: var(--surface-color);--order-feedback-secondary-action-button-font-color: var(--on-surface-color);--order-feedback-thank-you-icon-color: var(--primary-color)}app-deals[_ngcontent-%COMP%]{--deal-background-color: var(--background-color);--deal-font-color: var(--on-background-color);--deal-page-action-button-background: var(--primary-color);--deal-page-action-button-font-color: var(--on-primary-color);--deal-line-background-color: var(--surface-color);--deal-line-font-color: var(--on-surface-color);--deal-wizard-hero-scrim: linear-gradient(transparent, rgb(0 0 0 / 65%));--deal-wizard-hero-font-color: #fff;--deal-wizard-hero-close-background: var(--surface-color);--deal-wizard-hero-close-font-color: var(--on-surface-color);--deal-wizard-hero-price-background: var(--surface-color);--deal-wizard-hero-price-font-color: var(--on-surface-color);--deal-wizard-step-active-color: var(--primary-color);--deal-wizard-step-completed-background: var(--primary-color);--deal-wizard-step-completed-font-color: var(--on-primary-color);--deal-wizard-step-future-color: color-mix(in srgb, var(--deal-font-color) 35%, transparent);--deal-wizard-step-count-font-color: color-mix(in srgb, var(--deal-font-color) 60%, transparent);--deal-wizard-trail-background: color-mix(in srgb, var(--deal-font-color) 6%, transparent);--deal-wizard-trail-border-color: color-mix(in srgb, var(--deal-font-color) 15%, transparent);--deal-wizard-trail-title-font-color: color-mix(in srgb, var(--deal-font-color) 60%, transparent);--deal-wizard-trail-chip-background: var(--surface-color);--deal-wizard-trail-chip-font-color: var(--on-surface-color);--deal-wizard-counter-background: color-mix(in srgb, var(--primary-color) 12%, transparent);--deal-wizard-counter-font-color: var(--primary-color);--deal-wizard-tile-border-color: color-mix(in srgb, var(--deal-font-color) 15%, transparent);--deal-wizard-tile-selected-border-color: var(--primary-color);--deal-wizard-tile-selected-background: color-mix(in srgb, var(--primary-color) 10%, var(--deal-line-background-color));--deal-wizard-tile-tick-font-color: var(--on-primary-color);--deal-wizard-stepper-background: color-mix(in srgb, var(--deal-font-color) 8%, transparent);--deal-wizard-stepper-button-background: var(--primary-color);--deal-wizard-stepper-button-font-color: var(--on-primary-color);--deal-wizard-tile-image-fallback-background: color-mix(in srgb, var(--deal-font-color) 8%, transparent);--deal-wizard-tile-image-fallback-font-color: color-mix(in srgb, var(--deal-font-color) 45%, transparent);--deal-wizard-summary-border-color: color-mix(in srgb, var(--deal-font-color) 15%, transparent);--deal-wizard-back-button-background: var(--surface-color);--deal-wizard-back-button-border-color: color-mix(in srgb, var(--deal-font-color) 25%, transparent);--deal-wizard-back-button-font-color: var(--on-surface-color);--deal-wizard-unavailable-font-color: var(--error-color)}.wanted-time-picker[_ngcontent-%COMP%], .wanted-time-slot-select-panel[_ngcontent-%COMP%]{--next-day-bg: color-mix(in srgb, var(--primary-color) 10%, transparent);--next-day-color: var(--primary-color);--next-day-border: color-mix(in srgb, var(--primary-color) 28%, transparent);--wanted-time-picker-dropdown-border: #d1d5db;--wanted-time-picker-icon-color: #6b7280}.wanted-time-picker[_ngcontent-%COMP%]{--wanted-time-picker-radio-selected-background: #f5f5f5;--wanted-time-picker-radio-label-color: #111827;--wanted-time-picker-dropdown-background: #fff;--wanted-time-picker-day-name-color: #111827;--wanted-time-picker-date-detail-color: #6b7280;--wanted-time-picker-continue-disabled-background: #9ca3af;--wanted-time-picker-content-padding: 0 16px 16px;--wanted-time-picker-text-field-padding: 0 8px;--wanted-time-picker-radio-option-padding: 6px;--wanted-time-picker-dropdown-container-padding: 12px 8px;--wanted-time-picker-form-field-wrapper-padding: 0;--wanted-time-picker-form-field-infix-padding: 0;--wanted-time-picker-continue-button-padding: 10px 16px;--wanted-time-picker-dropdown-border-radius: 8px !important;--wanted-time-picker-space-alignment: 25px;--wanted-time-picker-space-alignment-icon: -25px;--wanted-time-picker-continue-font-colour: var(--on-primary-color);--wanted-time-picker-continue-background-colour: var(--primary-color)}.home-page-wrapper[_ngcontent-%COMP%]{--home-page-selected-store-details-open: var(--success-color);--home-page-selected-store-details-closed: var(--error-color);--home-page-selected-store-phone-color: var(--on-surface-color);--home-page-occasion-selector-card-background: var(--surface-color);--home-page-occasion-selector-card-color: var(--on-surface-color);--home-page-occasion-selector-card-shadow-color: rgba(0, 0, 0, .6);
1--home-page-occasion-selector-card-box-shadow: -1px 2px 30px 0px var(--home-page-occasion-selector-card-shadow-color);--home-page-occasion-selector-card-border-radius: 20px;--home-page-occasion-selector-tab-color: var(--on-surface-color);--home-page-occasion-selector-tab-border-color: rgba(0, 0, 0, .12);--home-page-occasion-selector-tab-border: 1.5px solid var(--home-page-occasion-selector-tab-border-color);--home-page-occasion-selector-tab-border-radius: 8px;--home-page-occasion-selector-tab-background-selected: var(--primary-color);--home-page-occasion-selector-tab-color-selected: var(--on-primary-color);--home-page-occasion-input-box-border-color: rgba(0, 0, 0, .12);--home-page-occasion-input-box-border: thin solid var(--home-page-occasion-input-box-border-color);--home-page-occasion-order-now-button-border-radius: 7px;--home-page-occasion-order-now-button-background: var(--primary-color);--home-page-occasion-order-now-button-color: var(--on-primary-color);--home-page-occasion-error-message-color: var(--error-color);--home-page-delivery-multi-sites-header-color: var(--primary-color);--home-page-custom-html-color: black}app-profile[_ngcontent-%COMP%]{--profile-page-background: var(--background-color);--profile-page-font-color: var(--on-background-color);--profile-page-primary-action-button-background: var(--primary-color);--profile-page-primary-action-button-font-color: var(--on-primary-color);--profile-page-secondary-action-button-background: var(--background-color);--profile-page-secondary-action-button-font-color: var(--on-background-color);--profile-page-order-charge: var(--primary-color);--profile-page-order-total: var(--primary-color);--profile-page-selected-order-background: var(--surface-color);--profile-page-selected-order-font-color: var(--on-surface-color);--profile-page-default-address-color: var(--primary-color)}.delete-account-wrapper[_ngcontent-%COMP%]{--delete-account-primary-action-button-background: var(--primary-color);--delete-account-primary-action-button-font-color: var(--on-primary-color)}rewards-page[_ngcontent-%COMP%]{--badge-earn-bg: color-mix(in srgb, var(--primary-color) 12%, transparent);--badge-earn-color: var(--primary-color);--badge-spend-bg: color-mix(in srgb, var(--error-color) 12%, transparent);--badge-spend-color: var(--error-color);--badge-bonus-bg: color-mix(in srgb, var(--success-color) 12%, transparent);--badge-bonus-color: var(--success-color);--badge-signup-bonus-bg: color-mix(in srgb, var(--warning-color) 12%, transparent);--badge-signup-bonus-color: var(--warning-color);--rewards-points-positive: var(--success-color);--rewards-points-negative: var(--error-color);--rewards-activity-sub-row-border: rgba(0, 0, 0, .06)}._menu-card[_ngcontent-%COMP%]{flex:1 1 auto}._menu-card-content-description[_ngcontent-%COMP%]{font-size:14px;margin-bottom:0}._menu-card-content-title[_ngcontent-%COMP%]{font-weight:700;font-size:18px;margin:3px 0}._menu-card-image[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;margin-bottom:5px;aspect-ratio:16/9;overflow:hidden;position:relative}._menu-card-image[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:100%;height:100%;object-fit:cover}._menu-card-savings-badge[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px;background-color:var(--primary-color);color:var(--on-primary-color);font-weight:700;font-size:12px;padding:4px 10px;border-radius:50px;pointer-events:none;white-space:nowrap;animation:_ngcontent-%COMP%_savings-badge-pulse 2s ease-in-out infinite}@media(prefers-reduced-motion:reduce){._menu-card-savings-badge[_ngcontent-%COMP%]{animation:none}}._menu-card._category-item.isBanner[_ngcontent-%COMP%]{background-repeat:no-repeat;position:relative;background-size:cover;height:250px}._menu-card-price-amount[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{height:20px;width:20px;font-size:20px}._menu-card-add-button.mat-mdc-icon-button.mat-mdc-button-base[_ngcontent-%COMP%], ._menu-card-add-button[_ngcontent-%COMP%]{background-color:var(--menu-card-action-button-background);color:var(--menu-card-action-button-font-colour)}.button-action-disabled._menu-card-add-button[_ngcontent-%COMP%]{opacity:.7;border-radius:0;text-align:center}._menu-card-add-button.mat-mdc-icon-button.mat-mdc-button-base.notify[_ngcontent-%COMP%]{background-color:var(--menu-card-action-button-highlight-background);color:var(--menu-card-action-button-highlight-font-colour)}._menu-card-body[_ngcontent-%COMP%]{display:flex;flex:1;flex-direction:column}._menu-card-content[_ngcontent-%COMP%]{flex:1;margin-bottom:3px;padding:0 5px}._category[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column}._category-item[_ngcontent-%COMP%]{width:100%;background-color:var(--menu-card-background);color:var(--menu-card-font-colour);border:var(--menu-card-border);border-radius:var(--menu-card-border-radius);
1box-shadow:var(--menu-card-box-shadow);cursor:pointer;overflow:hidden}._category-item-unavailable[_ngcontent-%COMP%]{opacity:.75}._category-item-order-unavailable[_ngcontent-%COMP%]{opacity:.6}._category-item-read-only[_ngcontent-%COMP%]{cursor:default}._category-item-read-only[_ngcontent-%COMP%] ._menu-card-share-button[_ngcontent-%COMP%], ._category-item-read-only[_ngcontent-%COMP%] ._menu-card-add-button.button-action-1[_ngcontent-%COMP%]{pointer-events:none}._menu-card-content-nutrition[_ngcontent-%COMP%]{font-size:12px}._menu-card-loyalty[_ngcontent-%COMP%]{display:flex;align-items:center;padding:4px 0 0;gap:4px;font-size:12px;font-weight:400;color:var(--onsurface)}._menu-card-loyalty[_ngcontent-%COMP%] app-icon-renderer[_ngcontent-%COMP%] .icon-font{font-size:16px;width:16px;height:16px}.footer-wrapper[_ngcontent-%COMP%]{padding:10px;justify-content:space-between;align-items:center}._category-item-footer[_ngcontent-%COMP%]{align-items:center;justify-content:flex-end;gap:10px;font-weight:700;font-size:20px;margin-left:auto}._menu-card-add-button.mat-mdc-icon-button.mat-mdc-button-base[_ngcontent-%COMP%]{padding:7px;width:38px;height:38px;line-height:38px}.isBanner[_ngcontent-%COMP%] ._menu-card-add-button[_ngcontent-%COMP%]{position:absolute;bottom:10px;right:10px;background-color:var(--surface-color);color:var(--on-surface-color);border-radius:12px;text-transform:capitalize;font-weight:700;font-size:19px;height:40px;padding:0 10px}.isBanner[_ngcontent-%COMP%] ._menu-card-add-button[_ngcontent-%COMP%] span.material-symbols-outlined[_ngcontent-%COMP%]{background-color:var(--primary-color);color:var(--on-primary-color);border-radius:20px;margin-left:5px;font-size:21px;padding:4px}@media screen and (max-width:479px){.footer-wrapper[_ngcontent-%COMP%]{padding:5px}._category-item-footer[_ngcontent-%COMP%]{justify-content:space-between;font-size:16px;width:100%}h3._menu-card-content-title[_ngcontent-%COMP%]{margin:0;font-size:16px!important}p._menu-card-content-description[_ngcontent-%COMP%]{font-size:10px;padding:0 3px}._menu-card-price-amount[_ngcontent-%COMP%]{font-size:11px}._menu-card-price-amount[_ngcontent-%COMP%] .mat-icon[_ngcontent-%COMP%]{height:15px;width:15px;margin-top:0;font-size:15px}._menu-card-add-button.mat-mdc-icon-button.mat-mdc-button-base[_ngcontent-%COMP%]{padding:6px;width:30px;height:30px;line-height:30px;display:flex;align-items:center;justify-content:center}._menu-card-add-button.mat-mdc-icon-button.mat-mdc-button-base[_ngcontent-%COMP%] svg.icon-svg{margin-top:-4px;margin-left:-1px}.isBanner[_ngcontent-%COMP%] ._menu-card-add-button[_ngcontent-%COMP%] span.material-symbols-outlined[_ngcontent-%COMP%]{padding:0}.isBanner[_ngcontent-%COMP%] ._menu-card-add-button[_ngcontent-%COMP%] span.material-symbols-outlined[_ngcontent-%COMP%], ._menu-card-add-button[_ngcontent-%COMP%] .material-symbols-outlined[_ngcontent-%COMP%]{font-size:18px;height:18px;width:18px}}@media screen and (max-width:340px){._menu-card.category-item[_ngcontent-%COMP%]{width:300px}}@keyframes _ngcontent-%COMP%_savings-badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.04)}}"],changeDetection:0})}}return r})();var zt=(()=>{class r{transform(e,t){if(!e||!t||!t.trim())return e;let o=t.toLowerCase(),n=c=>c.name?.toLowerCase().includes(o)||c.description?.toLowerCase().includes(o);return e.filter(c=>c.menuItems.some(n)).map(c=>Z(K({},c),{menuItems:c.menuItems.filter(n)}))}static{this.\u0275fac=function(t){return new(t||r)}}static{this.\u0275pipe=Ze({name:"filterMenuItems",type:r,pure:!0})}}return r})();function Mo(r,d){r&1&&(i(0,"small",2),u(1,"Choose a time to order"),a())}var qt=(()=>{class r extends z{static{this._pulseDurationMs=500}constructor(){super(),this.open=at(),this.isPreOrderPending=T(!1),this.itemCount=U(()=>r.countItems(this._basket())),this.total=U(()=>r.totalAmount(this._basket())),this.countPulse=ye(!1),this._basketService=Be(X),this._basket=kt(this._basketService.currentBasket$,{initialValue:void 0}),Be(Ge).onDestroy(()=>clearTimeout(this._pulseTimeoutId)),ke(()=>{let e=this.itemCount();this._previousCount!==void 0&&e!==this._previousCount&&this.pulse(),this._previousCount=e})}onSpaceKeydown(e){e.preventDefault(),this.open.emit()}static countItems(e){if(!e)return 0;let t=e.Deals?.length??0;return(e.Items??[]).reduce((o,n)=>o+n.Product.Quantity,t)}static totalAmount(e){return e?.Charges?.find(t=>t.ChargeType===gt.Total)?.Price.Amount??0}pulse(){this.countPulse.set(!1),requestAnimationFrame(()=>{requestAnimationFrame(()=>{this.countPulse.set(!0),clearTimeout(this._pulseTimeoutId),this._pulseTimeoutId=setTimeout(()=>this.countPulse.set(!1),r._pulseDurationMs)})})}static{this.\u0275fac=function(t){return new(t||r)}}static{this.\u0275cmp=W({type:r,selectors:[["app-basket-footer"]],inputs:{isPreOrderPending:[1,"isPreOrderPending"]},outputs:{open:"open"},features:[N],decls:12,vars:7,consts:[["id","basket-footer","role","button","tabindex","0",1,"_basket-footer","button-action-1","sticky",3,"click","keydown.enter","keydown.space"],[1,"_basket-footer-label"],[1,"_basket-footer-sublabel"]],template:function(t,o){t&1&&(i(0,"div",0),f("click",function(){return o.open.emit()})("keydown.enter",function(){return o.open.emit()})("keydown.space",function(c){return o.onSpaceKeydown(c)}),i(1,"div")(2,"mat-icon"),u(3,"shopping_cart"),a(),i(4,"span"),u(5),a()(),i(6,"span",1),u(7," Basket "),v(8,Mo,2,0,"small",2),a(),i(9,"span"),u(10),A(11,"StringToMoneyFilter"),a()()),t&2&&(l(4),V("value-pulse",o.countPulse()),l(),M(o.itemCount()),l(3),b(o.isPreOrderPending()?8:-1),l(2),$("\xA3",re(11,5,o.total())))},dependencies:[le,we,wt],styles:["@keyframes _ngcontent-%COMP%_value-pulse{0%{font-size:22px}to{font-size:inherit}}.value-pulse[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_value-pulse .5s ease}._basket-footer.button-action-1.sticky[_ngcontent-%COMP%]{position:fixed;left:0;bottom:0;z-index:2;height:var(--menu-basket-footer-height);display:flex;align-items:center;padding:5px;border-radius:0;width:100%;border:none;border-top:var(--menu-basket-footer-border);background-color:var(--menu-basket-footer-background);color:var(--menu-basket-footer-font-color)}._basket-footer.button-action-1.sticky[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:1;text-transform:uppercase;text-align:center}._basket-footer.button-action-1.sticky[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;margin:0 10px}._basket-footer-label[_ngcontent-%COMP%]{display:flex;flex-direction:column;line-height:1.3}._basket-footer-sublabel[_ngcontent-%COMP%]{text-transform:none;font-size:11px;opacity:.85}"],changeDetection:0})}}return r})();var G=(function(r){return r.Collection="Collection",r.Delivery="Delivery",r.Dinein="DineIn",r.Takeaway="Takeaway",r})(G||{});var Po=["search"],Io=["basketModalContent"],To=["confirmRepeatOrderModal"],Do=["categoryElement"],Ro=["loyaltyBanner"],Eo=["menuHeaderEl"],Vo=()=>["/terms-and-conditions"],Bo=r=>({exit:r}),$t=(r,d)=>d.cleanName,Lo=(r,d)=>d.id;function Ao(r,d){if(r&1&&P(0,"img",13),r&2){let e=s(2);S("src",e.loadingLogo,ne)}}function Ho(r,d){if(r&1&&(i(0,"div",10),v(1,Ao,1,1,"img",13),i(2,"span"),u(3,"Menu loading..."),a()()),r&2){let e=s();l(),b(e.loadingLogo?1:-1)}}function Fo(r,d){if(r&1){let e=k();
1i(0,"span"),u(1,"We couldn't load this menu \u2014 please refresh or pick a different store."),a(),i(2,"div",14)(3,"button",15),f("click",function(){h(e);let o=s(2);return g(o.refreshPage())}),u(4,"Refresh"),a(),i(5,"button",16),f("click",function(){h(e);let o=s(2);return g(o.chooseAnotherStore())}),u(6,"Choose store"),a()()}}function Wo(r,d){r&1&&u(0," This store's menu is not available at the moment. Please check back later. ")}function No(r,d){if(r&1&&(i(0,"div",11),v(1,Fo,7,0)(2,Wo,1,0),a()),r&2){let e=s();l(),b(e.menuLoadTimedOut?1:2)}}function zo(r,d){r&1&&(i(0,"div",12)(1,"span"),u(2,"Sorry - no products are available at this time"),a()())}function qo(r,d){if(r&1){let e=k();i(0,"div",17)(1,"span",37),u(2," You're viewing the "),i(3,"strong"),u(4),a(),u(5," menu \u2014 your order is with "),i(6,"strong"),u(7),a(),u(8,". "),a(),i(9,"span",38)(10,"button",39),f("click",function(){h(e);let o=s(2);return g(o.returnToCommittedStore())}),u(11),a(),i(12,"button",40),f("click",function(){h(e);let o=s(2);return g(o.openSwitchStore())}),u(13,"Switch store\u2026"),a()(),i(14,"button",41),f("click",function(){h(e);let o=s(2);return g(o.dismissStoreMismatch())}),u(15,"\u2715"),a()()}if(r&2){let e=s(2);l(4),M(e.viewedStoreName),l(3),M(e.committedStoreName),l(4),$("Back to ",e.committedStoreName,"'s menu")}}function $o(r,d){if(r&1){let e=k();i(0,"app-store-status-banner",42),f("ctaClick",function(){h(e);let o=s(2);return g(o.openPreOrderSetup())})("switchOccasionClick",function(o){h(e);let n=s(2);return g(n.switchToAlternativeOccasion(o))}),a()}if(r&2){let e=s(2);S("banner",e.storeStatusBanner())}}function jo(r,d){if(r&1){let e=k();i(0,"li",43),f("click",function(){h(e);let o=s(2);return g(o.toggleSearchBar())}),i(1,"div",44),P(2,"app-icon-renderer",45),a()()}if(r&2){let e=s(2);l(),V("active",e.highlightedCategoryName==="search")}}function Uo(r,d){if(r&1){let e=k();i(0,"li",22)(1,"div",46)(2,"div",47)(3,"input",48,7),et("ngModelChange",function(o){h(e);let n=s(2);return Xe(n.searchText,o)||(n.searchText=o),g(o)}),f("ngModelChange",function(){h(e);let o=s(2);return g(o.onSearchTextChange())}),a(),i(5,"div",49)(6,"button",50),f("click",function(){h(e);let o=s(2);return g(o.toggleSearchBar())}),P(7,"app-icon-renderer",51),a()(),i(8,"div",49)(9,"button",52),P(10,"app-icon-renderer",53),a()()()()()}if(r&2){let e=s(2);l(),V("active",e.highlightedCategoryName==="search-expanded"),l(2),Je("ngModel",e.searchText)}}function Qo(r,d){if(r&1){let e=k();i(0,"li",23)(1,"a",54),f("click",function(o){let n=h(e).$implicit,c=s(2);return g(c.navigateToDisplayGroup(o,n))}),u(2),a()()}if(r&2){let e=d.$implicit,t=d.$index,o=s(2);S("id",We("li-",e.cleanName)),l(),V("active",!o.searchText&&(o.highlightedCategoryName===e.cleanName||!o.highlightedCategoryName&&t===0)),S("id",We("menu-",e.cleanName))("href",e.href,ne),l(),$(" ",e.name," ")}}function Go(r,d){if(r&1){let e=k();i(0,"span",56),f("click",function(){h(e);let o=s(3),n=ce(13);return g(o.changeStore(n))}),i(1,"span",57),u(2,"Tap any item to choose store and time"),a()()}}function Ko(r,d){if(r&1){let e=k();i(0,"span",55)(1,"span",58),f("click",function(){h(e);let o=s(3),n=ce(13);return g(o.changeStore(n))}),u(2),a(),i(3,"span",59)(4,"span"),u(5),a(),i(6,"span",60),u(7,"\xB7"),a(),i(8,"span",61),f("click",function(){h(e);let o=s(3),n=ce(7);return g(o.changeWantedTime(n))}),u(9,"Change \u203A"),a()()()}if(r&2){let e=s(3);l(2),ve("",e.basket.Occasion," \xB7 ",e.committedStoreDisplayName),l(3),M(e.basketWantedTime)}}function Zo(r,d){if(r&1){let e=k();i(0,"span",55)(1,"span"),u(2),a(),i(3,"span",59)(4,"span"),u(5),a(),i(6,"span",60),u(7,"\xB7"),a(),i(8,"span",61),f("click",function(){h(e);let o=s(3),n=ce(7);return g(o.changeWantedTime(n))}),u(9,"Change \u203A"),a()()()}if(r&2){let e=s(3);l(2),ve("",e.basket.Occasion," \xB7 ",e.committedStoreDisplayName),l(3),M(e.basketWantedTime)}}function Yo(r,d){if(r&1&&(i(0,"div",27),v(1,Go,3,0,"span",55)(2,Ko,10,3,"span",55)(3,Zo,10,3,"span",55),a()),r&2){let e=s(2);l(),b(e.showSetupPrompt()?1:e.isMultiStore()?2:3)}}function Jo(r,d){if(r&1&&(P(0,"div",29),A(1,"keepHtml")),r&2){let e=s(2);S("innerHTML",re(1,1,e.tenant==null?null:e.tenant.CustomerAnnouncement),Ae)}}function Xo(r,d){if(r&1&&(P(0,"div",30),A(1,"keepHtml")),r&2){let e=s(2);S("innerHTML",re(1,1,e.tenant==null?null:e.tenant.CustomerAllergensStatement),Ae)}}
1function er(r,d){if(r&1&&(i(0,"div",32)(1,"span",62),u(2),a()()),r&2){let e=s(2);l(2),$("Search: ",e.searchText)}}function tr(r,d){if(r&1){let e=k();i(0,"app-menu-card",68),f("touchstart",function(){let o=h(e).$index,n=s().$implicit,c=s(2);return g(c.onCardTouchStart(n.cleanName,o))})("touchmove",function(){h(e);let o=s(3);return g(o.onCardTouchMove())})("touchend",function(){h(e);let o=s(3);return g(o.onCardTouchEnd())})("touchcancel",function(){h(e);let o=s(3);return g(o.onCardTouchCancel())}),a()}if(r&2){let e=d.$implicit,t=d.$index,o=s().$implicit,n=s(2);fe(e.cardWidthClass),S("activeTouchKey",n.activeTouchCardKey)("occasion",n.occasion)("siteId",n.siteId)("customerGroupName",o.cleanName)("menuItem",e)("sectionItems",o.menuItems)("isStoreOpen",n.isStoreOpen)("isMenuReadOnly",n.isStoreClosedReadOnly())("allowsFutureOrders",n.menuCardAllowsFutureOrders())("wantedTime",n.basketWantedTime)("index",t)("notification",n.notifications[e.name])}}function or(r,d){if(r&1){let e=k();i(0,"div",67)(1,"button",69),f("click",function(){h(e);let o=s().$implicit,n=s(2);return g(n.revealAll(o.cleanName))}),i(2,"div",70)(3,"span"),u(4,"Load more"),a(),i(5,"span",71),u(6," arrow_downward "),a()()()()}}function rr(r,d){if(r&1&&(i(0,"div",33,8)(2,"div",63)(3,"div",64)(4,"div")(5,"h2"),u(6),a(),i(7,"span"),u(8),a()()(),i(9,"div",65),Ce(10,tr,1,14,"app-menu-card",66,Lo),A(12,"slice"),v(13,or,7,0,"div",67),a()()()),r&2){let e=d.$implicit,t=s(2);S("id",e.cleanName),l(6),M(e.name),l(2),M(e.description),l(2),Se(it(12,4,e.menuItems,0,e.displayLimit)),l(3),b(t.isMobile&&!t.searchText&&!t.showAll[e.cleanName]&&e.menuItems.length>4?13:-1)}}function nr(r,d){if(r&1&&(i(0,"div",34),P(1,"basket-component",72),a()),r&2){let e=s(2);l(),S("showCheckout",!0)("showCloseButton",!1)("canPlaceOrders",e.canPlaceOrders)("isPersistentBasketDisplay",e.isPersistentBasketDisplay)}}function ir(r,d){if(r&1){let e=k();i(0,"div",35)(1,"div",73)(2,"p",74),u(3," Terms and Conditions "),a(),i(4,"span"),u(5,"|"),a()(),i(6,"div",75),f("click",function(){h(e);let o=s(2);return g(o.navigateToAndromeda())}),i(7,"div",76),u(8,"Powered by"),a(),P(9,"img",77),a()()}if(r&2){let e=s(2);l(2),S("routerLink",rt(2,Vo))("queryParams",nt(3,Bo,e.router.url))}}function ar(r,d){if(r&1){let e=k();i(0,"app-basket-footer",78),f("open",function(){h(e);let o=s(2),n=ce(9);return g(o.openBasket(n))}),a()}if(r&2){let e=s(2);S("isPreOrderPending",e.isPreOrderPending)}}function cr(r,d){if(r&1&&(P(0,"app-loyalty-time-based-banner",null,4),v(2,qo,16,3,"div",17),v(3,$o,1,1,"app-store-status-banner",18),i(4,"div",19,5)(6,"ul",20),v(7,jo,3,2,"li",21)(8,Uo,11,3,"li",22),Ce(9,Qo,3,8,"li",23,$t),a()(),i(11,"div",24,6)(13,"div",25)(14,"div",26),v(15,Yo,4,1,"div",27),i(16,"div")(17,"div",28),v(18,Jo,2,3,"div",29),v(19,Xo,2,3,"div",30),i(20,"div",31),v(21,er,3,1,"div",32),Ce(22,rr,14,8,"div",33,$t),A(24,"filterMenuItems"),a()()()(),v(25,nr,2,4,"div",34),a(),v(26,ir,10,5,"div",35),a(),v(27,ar,1,1,"app-basket-footer",36)),r&2){let e=s();l(2),b(e.isViewingOtherStore&&!e.storeMismatchDismissed?2:-1),l(),b(e.showStoreStatusBanner()?3:-1),l(4),b(e.showSearchBarExpanded?8:7),l(2),Se(e.sections),l(4),V("_menu-layout--desktop",e.isPersistentBasketDisplay),l(2),b(e.isTablet&&e.basket&&e.basket.Occasion!==e.orderOccasion.DineIn?15:-1),l(3),b(e.tenant!=null&&e.tenant.CustomerAnnouncement?18:-1),l(),b(e.tenant!=null&&e.tenant.CustomerAllergensStatement?19:-1),l(2),b(e.searchText?21:-1),l(),Se(be(24,12,e.sections,e.searchText)),l(3),b(e.isPersistentBasketDisplay?25:-1),l(),b((e.basket==null?null:e.basket.Occasion)!==e.orderOccasion.DineIn?26:-1),l(),b(e.isTablet?27:-1)}}function sr(r,d){if(r&1&&P(0,"app-wanted-time-picker",79),r&2){let e=s();S("basket",e.basket)("site",e.currentSite)}}function lr(r,d){if(r&1){let e=k();i(0,"basket-component",80),f("allDone",function(){h(e);let o=s();return g(o.closeModalById("basket-modal"))}),a()}if(r&2){let e=s();S("showCheckout",!0)("canPlaceOrders",e.canPlaceOrders)}}function dr(r,d){if(r&1){let e=k();i(0,"div",81)(1,"h4",82),u(2,"Replace your basket?"),a(),i(3,"button",83),f("click",function(){h(e);let o=s();return g(o.cancelRepeatReplace())}),i(4,"mat-icon"),u(5,"close"),a()()(),i(6,"div",84)(7,"p"),u(8,"You've already got items in your basket. Re-ordering will replace them with your previous order."),a()(),i(9,"div",85)(10,"button",86),f("click",function(){h(e);let o=s();return g(o.cancelRepeatReplace())}),u(11,"Keep basket"),a(),i(12,"button",87),f("click",function(){h(e);let o=s();return g(o.confirmRepeatReplace())}),u(13,"Replace"),a()()}}
1function ur(r,d){if(r&1){let e=k();i(0,"div",81)(1,"h4",82),u(2,"Warning"),a(),i(3,"button",83),f("click",function(){h(e);let o=s();return g(o.closeModalById("confirmSwitchStore"))}),i(4,"mat-icon"),u(5,"close"),a()()(),i(6,"div",84)(7,"p"),u(8," You've currently got items in your basket. Please be aware that these items are tied to this store."),a()(),i(9,"div",85)(10,"button",86),f("click",function(){h(e);let o=s();return g(o.closeModalById("confirmSwitchStore"))}),u(11,"Cancel"),a(),i(12,"button",87),f("click",function(){h(e);let o=s();return g(o.switchStore())}),u(13,"Change"),a()()}}var Ut=(()=>{class r extends z{static{this._collapsedMobileSectionLimit=4}static{this._menuLoadWatchdogMs=8e3}static{this._menuLoadSlowResponseGraceMs=12e3}constructor(e,t,o,n,c,_,p,R,x,I,H,q,F,w,ge,Zt,Yt,Jt,Xt){super(),this.router=e,this._seoService=t,this._menuService=o,this._siteService=n,this._toastService=c,this._basketService=_,this._activatedRoute=p,this._checkoutService=R,this._navigatorService=x,this._menuHelperService=I,this._menuDealHelperService=H,this._structuredDataService=q,this._menuVariantHelperService=F,this._userService=w,this._analyticsService=ge,this._repeatOrderService=Zt,this._whereAndWhenState=Yt,this._ngZone=Jt,this._storeHelperService=Xt,this._bannerObserver=null,this._menuHeaderObserver=null,this._appHeaderObserver=null,this._menuHeaderHeight=0,this._appHeaderHeight=0,this.menuLoadTimedOut=!1,this.isLoading=!0,this.storeStatusBanner=ye({variant:"hidden"}),this.navigationSectionType=D,this.orderOccasion=y,this.showAll={},this.isViewingOtherStore=!1,this.storeMismatchDismissed=!1,this._scrollDelay=200,this._sectionRevealFallbackMs=2e3,this._storeOpenDerivedForKey=null,this._occasionMismatchTracedForKey=null,this._menuLoadWatchdog=null,this._menuLoadPending=!1,this._menuLoadWatchdogExtended=!1,this._menuUpdatesForContext=0,this._detailedSites=[],this._timeslotsResolved=!1,this._pendingRepeatOrderId=null,this._pendingRepeatBasketId=null,this._landingSetupDispatched=!1,this.showWebSectionImages=this.tenant.SuppressProductImages}ngOnInit(){this.trackCurrentSiteChanges(),this._activatedRoute.paramMap.pipe(C(this.destroy$)).subscribe(()=>this.bindToRoute()),this.trackDetailedSites(),this._whereAndWhenState.commitment$.pipe(C(this.destroy$)).subscribe(()=>this.updateStoreMismatch()),this.trackCurrentMenu(),this.trackCurrentBasket(),this.trackNotifications(),this._userService.currentUser$.pipe(C(this.destroy$)).subscribe(()=>{this.updateBasketStickyOffset()}),this._screenSizeService.screenSizeState$.pipe(C(this.destroy$)).subscribe(e=>{this.isPersistentBasketDisplay=this.tenant!=null&&this.tenant.PreferPersistentBasketDisplay!==!1&&e.isLargeDesktop,this.updateSectionDisplayLimits(),this.observeActiveSection(),this.observeSectionReveal()})}ngAfterViewInit(){this.setupBannerObserver(),this.setupMenuHeaderObserver(),this.attachAppHeaderObserver(),this.subscribeToOpenBasketQueryParam(),this.subscribeToRepeatOrderQueryParams(),this._categoryElements?.changes.pipe(C(this.destroy$)).subscribe(()=>{this.observeMenuSections(),this.observeActiveSection(),this.observeSectionReveal()}),this.observeMenuSections(),this.observeActiveSection(),this.observeSectionReveal()}ngOnDestroy(){super.ngOnDestroy(),this.cancelMenuLoadWatchdog(),this._bannerObserver?.disconnect(),document.documentElement.style.removeProperty("--loyalty-banner-height"),this._menuHeaderObserver?.disconnect(),this._appHeaderObserver?.disconnect(),document.documentElement.style.removeProperty("--basket-panel-top"),this._sectionObserver?.disconnect(),this._sectionObserver=void 0,this._activeSectionObserver?.disconnect(),this._activeSectionObserver=void 0,this._sectionRevealObserver?.disconnect(),this._sectionRevealObserver=void 0,this._seoSet&&this._seoService.restore()}observeActiveSection(){if(this._activeSectionObserver?.disconnect(),typeof window>"u"||!("IntersectionObserver"in window)||!this._categoryElements?.length)return;let e=this.isMobile?null:document.getElementById("menu-content"),t=new Set,o=new IntersectionObserver(n=>{n.forEach(_=>{let p=_.target.id;_.isIntersecting?t.add(p):t.delete(p)});let c=this.sections?.find(_=>t.has(_.cleanName))?.cleanName??"";this.setActiveSection(c)},{root:e,rootMargin:"0px 0px -70% 0px",threshold:0});
1this._activeSectionObserver=o,this._categoryElements.forEach(n=>o.observe(n.nativeElement))}observeSectionReveal(){if(this._sectionRevealObserver?.disconnect(),typeof window>"u"||!("IntersectionObserver"in window)||!this._categoryElements?.length)return;let e=this.isMobile?null:document.getElementById("menu-content"),t=new IntersectionObserver(o=>{o.forEach(n=>{n.target.classList.toggle("_category-near",n.isIntersecting)})},{root:e,rootMargin:"150% 0px 150% 0px",threshold:0});this._sectionRevealObserver=t,this._categoryElements.forEach(o=>t.observe(o.nativeElement))}setActiveSection(e){this.highlightedCategoryName!==e&&this._ngZone.run(()=>{this.highlightedCategoryName=e,this.scrollSectionButtonInToView(e)})}toggleSearchBar(){this.showSearchBarExpanded=!this.showSearchBarExpanded,this.showSearchBarExpanded?this.setSearchFieldFocus():(this.searchText="",this.updateSectionDisplayLimits())}navigateToDisplayGroup(e,t){e.preventDefault();let o=this._navigatorService.clean(t.name);this.router.navigate([this.getSectionUrl(o)]),this.scrollSectionButtonInToView(o),this.scrollToWebSection(o),this._seoService.updateSeoTitleAndDescription(this.currentSite,this.occasion,t)}navigateToAndromeda(){window.open("https://andromedapos.com/")}openWantedTimeModal(e){this.openDialog(e,"order-wanted-time-modal",{width:""})}openPreOrderSetup(){this.storeStatusBanner().variant==="pre-order"&&this.openWhereAndWhen()}switchToAlternativeOccasion(e){return O(this,null,function*(){if(!this.siteId)return;let t=e===y.Delivery?this.basket?.DeliveryLocation:void 0;yield this._basketService.setOccasionOfCurrentBasket(this.siteId,e,t).catch(n=>this.trackException(n,!1));let o=this._navigatorService.generateRoutePath(this._location,e,D.Menu,"all");this.router.navigate([o])})}confirmChangeStore(e){this.basket?.Items?.length>0?this.openDialog(e,"confirmSwitchStore",{maxWidth:"450px",panelClass:["no-padding","confirmSwitchStore"]}):this._navigatorService.goToHome()}switchStore(){this._navigatorService.goToHome(),this.closeModalById("confirmSwitchStore")}showSetupPrompt(){return this._whereAndWhenState.isModernHome&&!this._whereAndWhenState.resolved&&this.isMultiStore()}showStoreStatusBanner(){return this.showSetupPrompt()||!this.currentSite?!1:this.storeStatusBanner().variant!=="hidden"}isStoreClosedReadOnly(){if(this.isStoreSelectionPending())return!1;let e=this.storeOpeningTimeStatus;return!!e&&!e.isOpen&&!e.openLater}isStoreSelectionPending(){return this._whereAndWhenState.isModernHome&&!this._whereAndWhenState.resolved}isMenuReadOnly(){return this.isStoreSelectionPending()?!1:this.isStoreClosedReadOnly()?!0:this._timeslotsResolved&&!this.allowsFutureOrders}menuCardAllowsFutureOrders(){if(this.isStoreSelectionPending())return!0;if(this.isStoreClosedReadOnly())return!1;if(this._timeslotsResolved)return this.allowsFutureOrders}get canPlaceOrders(){return this.isStoreSelectionPending()?!0:this.isStoreClosedReadOnly()?!1:!this._timeslotsResolved||this.allowsFutureOrders}get isPreOrderPending(){return this.storeStatusBanner().variant==="pre-order"&&!this.basket?.WantedTimeUtc}get contextWantedTimeLabel(){return this.isPreOrderPending?"Pre-order":this.basketWantedTime}isMultiStore(){return(this._siteService.sites.value?.length??0)>1}changeStore(e){this._whereAndWhenState.isModernHome?this.openWhereAndWhen():this.confirmChangeStore(e)}changeWantedTime(e){this._whereAndWhenState.isModernHome||this.isPreOrderPending?this.openWhereAndWhen():this.openWantedTimeModal(e)}openWhereAndWhen(){let e=this.storeStatusBanner().variant==="pre-order"?this.storeStatusBanner():void 0;this._whereAndWhenState.openSetup(this.basket?.Occasion??y.Collection,e)}promptForSetupOnLanding(){this.showSetupPrompt()&&this.tenant?.PreferMenuAsLandingPage===!0&&this._whereAndWhenState.ensureResolved(this.occasion??y.Collection)}get committedStoreDisplayName(){let e=this._whereAndWhenState.committedSiteId();return(e?(this._siteService.sites.value??[]).find(o=>o.Id?.toLocaleLowerCase()===e.toLocaleLowerCase()):void 0)?.Name??this.currentSite?.Name??""}updateStoreMismatch(){let e=this._whereAndWhenState.committedSiteId();if(this.isViewingOtherStore=!!e&&!!this.siteId&&e.toLocaleLowerCase()!==this.siteId.toLocaleLowerCase(),!this.isViewingOtherStore)return;let t=this._siteService.sites.value??[];this.committedStoreName=t.find(o=>o.Id?.toLocaleLowerCase()===e.toLocaleLowerCase())?.Name??"your store",this.viewedStoreName=t.find(o=>o.Id?.toLocaleLowerCase()===this.siteId.toLocaleLowerCase())?.Name??"this store"}returnToCommittedStore(){let e=this._whereAndWhenState.committedSiteId(),t=e?this._navigatorService.getLocationBySiteId(e):null;if(t===null){this.goHome();return}let o=this._whereAndWhenState.committedOccasion()??y[this.occasion];this.router.navigateByUrl(`/${this._navigatorService.generateRoutePath(t,o,D.Menu,"all")}`)}openSwitchStore(){this._whereAndWhenState.openSwitchStore(y[this.occasion]??y.Collection)}dismissStoreMismatch(){this.storeMismatchDismissed=!0}promptForSetupOnLandingWhenReady(){if(this._landingSetupDispatched||!this.siteId)return;let e=this.siteId.toLocaleLowerCase(),t=this._whereAndWhenState.committedSiteId(),o=this.currentSite?.Id?.toLocaleLowerCase()===e,n=t===null||this.basket?.SiteId?.toLocaleLowerCase()===t.toLocaleLowerCase();!o||!n||(this._landingSetupDispatched=!0,this.promptForSetupOnLanding())}openBasket(e){let t={height:this.isTablet?"100%":"95%",panelClass:"basket-modal-window",position:{right:"0px",top:this.isTablet?"0":this.isShortDevice?"45px":"auto"},width:this.isTablet?"100%":"580px"};this.openDialog(e,"basket-modal",t)}resolveDisplayLimit(e,t){return!this.isMobile||this.searchText||this.showAll[e]?t:r._collapsedMobileSectionLimit}
1updateSectionDisplayLimits(){this.sections?.forEach(e=>{e.displayLimit=this.resolveDisplayLimit(e.cleanName,e.menuItems.length)})}onSearchTextChange(){this.updateSectionDisplayLimits()}revealAll(e){this.showAll[e]=!0,this.updateSectionDisplayLimits()}onCardTouchStart(e,t){this._didTouchMove=!1,this.activeTouchCardKey=`${e}-${t}`}onCardTouchMove(){this._didTouchMove=!0,this.clearTouchCardFeedback()}onCardTouchEnd(){if(this._didTouchMove){this.clearTouchCardFeedback();return}setTimeout(()=>this.clearTouchCardFeedback(),140)}onCardTouchCancel(){this.clearTouchCardFeedback()}trackCurrentMenu(){this.startMenuLoadWatchdog(),this._menuService.menu$.pipe(C(this.destroy$)).subscribe(e=>{if(this.noMenu=!e,this._menuUpdatesForContext++,this.noMenu){this._menuUpdatesForContext>1&&(this.cancelMenuLoadWatchdog(),this._menuLoadPending=!1,this.isLoading=!1,this.menuLoadTimedOut=this._menuService.hasMenuRequestFailed(this.siteId),this.menuLoadTimedOut&&this.trackTrace("Menu load failed: the menu request answered with an error",E.Error,{siteId:this.siteId,reason:"request-failed"}));return}this.cancelMenuLoadWatchdog(),this._menuLoadPending=!1,this.menuLoadTimedOut=!1,this.sections=this.getMenuSections(e),this._analyticsService.resetMenuTracking(),this.buildStructuredData(e),this.updatePageSEO(!0),this.isLoading=!1})}startMenuLoadWatchdog(){this.cancelMenuLoadWatchdog(),this._menuLoadPending=!0,this._menuLoadWatchdogExtended=!1,this._menuLoadWatchdog=this.scheduleWatchdogTimeout(()=>this._ngZone.run(()=>this.onMenuLoadTimedOut()),r._menuLoadWatchdogMs)}cancelMenuLoadWatchdog(){this._menuLoadWatchdog!==null&&(this.clearWatchdogTimeout(this._menuLoadWatchdog),this._menuLoadWatchdog=null)}scheduleWatchdogTimeout(e,t){let o=window;return o.__zone_symbol__setTimeout?o.__zone_symbol__setTimeout(e,t):window.setTimeout(e,t)}clearWatchdogTimeout(e){let t=window;t.__zone_symbol__clearTimeout?t.__zone_symbol__clearTimeout(e):window.clearTimeout(e)}onMenuLoadTimedOut(){if(!this.isLoading&&!this._menuLoadPending)return;if(this.shouldExtendMenuLoadWatchdog()){this._menuLoadWatchdogExtended=!0,this.trackTrace(`Menu load slow: the menu request was still in flight ${r._menuLoadWatchdogMs}ms after menu page init`,E.Warning,{siteId:this.siteId}),this._menuLoadWatchdog=this.scheduleWatchdogTimeout(()=>this._ngZone.run(()=>this.onMenuLoadTimedOut()),r._menuLoadSlowResponseGraceMs);return}let e=this._menuLoadWatchdogExtended?r._menuLoadWatchdogMs+r._menuLoadSlowResponseGraceMs:r._menuLoadWatchdogMs;this.isLoading=!1,this.noMenu=!0,this.menuLoadTimedOut=!0,this.trackTrace(`Menu did not load within ${e}ms of menu page init`,E.Error,{siteId:this.siteId,reason:this.resolveMenuLoadFailureReason()})}shouldExtendMenuLoadWatchdog(){return this._menuService.isMenuRequestInFlight(this.siteId)&&!this._menuService.hasMenuRequestFailed(this.siteId)&&!this._menuLoadWatchdogExtended}resolveMenuLoadFailureReason(){return this._menuService.hasMenuRequestFailed(this.siteId)?"request-failed":this._menuService.isMenuRequestInFlight(this.siteId)?"slow-response":"stalled-no-request"}refreshPage(){window.location.reload()}chooseAnotherStore(){this._whereAndWhenState.isModernHome?this.openWhereAndWhen():this._navigatorService.goToHome()}observeMenuSections(){this._sectionObserver?.disconnect(),!(typeof window>"u"||!("IntersectionObserver"in window)||!this._categoryElements?.length)&&(this._sectionObserver=new IntersectionObserver(e=>{e.forEach(t=>{t.isIntersecting&&this.fireViewItemList(t.target.id)})},{threshold:.1}),this._categoryElements.forEach(e=>this._sectionObserver.observe(e.nativeElement)))}fireViewItemList(e){let t=this.sections?.find(n=>n.cleanName===e);if(!t)return;let o=t.menuItems.filter(n=>n.type==="product").map(n=>this._analyticsService.mapMenuProductToItem({itemId:n.id,itemName:n.name,itemCategory:t.name,price:n.price,quantity:1}));this._analyticsService.trackViewItemList(t.cleanName,t.name,o)}clearTouchCardFeedback(){this.activeTouchCardKey=null}getMenuSections(e){return this._menuHelperService.getProductSections(e,this.occasion).map(t=>this.mapSectionToMenuSectionView(t,e))}
1mapSectionToMenuSectionView(e,t){let o=this._navigatorService.clean(e.Name),n=this.mapToMenuItemView(e,t);return{name:e.Name,cleanName:o,description:e.Description,id:e.Id,menuItems:n,href:this.getSectionUrl(o),displayLimit:this.resolveDisplayLimit(o,n.length)}}getSectionUrl(e){return this._navigatorService.generateRoutePath(this._location,this.occasion,D.Menu,e)}mapToMenuItemView(e,t){let o=de(this.occasion,this.currentSite,this.basket),n=this._menuHelperService.getProductsForSectionAndOccasion(e,y[this.occasion],t.Products).map(p=>this.mapProductToMenuItemView(p,o)),c=this._menuHelperService.getDealsForSectionAndOccasion(e,y[this.occasion],t.Deals).filter(p=>!p.RequiresUnlock).map(p=>this.mapDealToMenuItemView(p,o)),_;if(t&&e.HalfHalfProductId){let p=t.Products.find(R=>R.Id===e.HalfHalfProductId);if(p){let x=n.filter(F=>F.halfHalfGroupId).flatMap(F=>F.variants),I=this._menuVariantHelperService.getPriceAndSummaryForVariants(x,y[this.occasion]),H=this._menuVariantHelperService.areVariantsAvailableForOccasion(x,y[this.occasion],o),q=H?null:this._menuVariantHelperService.getNextAvailableTimeForVariants(x,y[this.occasion],o);_=Z(K({id:p.Id,outOfStock:x.every(F=>F.OutOfStock),imageBase:this.getMenuImageVisualAsset({data:p,useUltraWide:!0}),sequence:p.Sequence,name:p.Name,description:p.Description,nutritionSummary:this._menuVariantHelperService.getNutritionSummary(x,!1),available:H},q?{availableFrom:q}:{}),{priceSummary:I.summary,price:I.price,type:"product",defaultVariantSummary:this._menuHelperService.getVariantOptionsPathText(this._menuVariantHelperService.getDefaultVariant(x),this._menuService.productOptionsById),variants:x,upselling:p.Upselling,visualProminence:p.VisualProminence,cardWidthClass:this.toCardWidthClass(p.VisualProminence),allergenDetails:p.Allergens,loyaltyBonusPoints:p.LoyaltyBonus?.Points??null})}}return[...n,...c,_].filter(Boolean).filter(p=>p.available||!!p.availableFrom).sort((p,R)=>p.name.localeCompare(R.name)).sort((p,R)=>(p.sequence??0)-(R.sequence??0))}mapProductToMenuItemView(e,t){let o=this._menuVariantHelperService.getPriceAndSummaryForVariants(e.Variants,y[this.occasion]),n=this._menuVariantHelperService.areVariantsAvailableForOccasion(e.Variants,y[this.occasion],t),c=n?null:this._menuVariantHelperService.getNextAvailableTimeForVariants(e.Variants,y[this.occasion],t);return Z(K({id:e.Id,outOfStock:e.Variants.every(_=>_.OutOfStock),imageBase:this.getMenuImageVisualAsset({data:e,useUltraWide:!0}),sequence:e.Sequence,name:e.Name,description:e.Description,nutritionSummary:this._menuVariantHelperService.getNutritionSummary(e.Variants,!1),available:n},c?{availableFrom:c}:{}),{priceSummary:o.summary,price:o.price,type:"product",defaultVariantSummary:this._menuHelperService.getVariantOptionsPathText(this._menuVariantHelperService.getDefaultVariant(e.Variants),this._menuService.productOptionsById),variants:e.Variants,upselling:e.Upselling,visualProminence:e.VisualProminence,cardWidthClass:this.toCardWidthClass(e.VisualProminence),allergenDetails:e.Allergens,halfHalfGroupId:e.HalfHalfGroupId,loyaltyBonusPoints:e.LoyaltyBonus?.Points??null})}mapDealToMenuItemView(e,t){let o=this._menuDealHelperService.getMinPriceForDeal(e,y[this.occasion]),n=this._menuHelperService.availableForOccasion(e.Availability?.Values,y[this.occasion],t),c=n?null:this._menuHelperService.getNextAvailableTimeForOccasion(e.Availability?.Values,y[this.occasion],t);return Z(K({id:e.Id,outOfStock:e.OutOfStock,imageBase:this.getMenuImageVisualAsset({data:e,useUltraWide:!0}),sequence:e.Sequence,name:e.Name,description:e.Description,available:n},c?{availableFrom:c}:{}),{priceSummary:this._menuDealHelperService.getPricePrefixForDeal(e)+o.toFixed(2),price:o,type:"deal",visualProminence:e.VisualProminence,cardWidthClass:this.toCardWidthClass(e.VisualProminence),upselling:e.Upselling,loyaltyBonusPoints:null,maxSavingAmount:e.MaxSavingAmount??null,maxSavingPercent:e.MaxSavingPercent??null})}scrollSectionButtonInToView(e){let t=document.getElementById(`li-${e}`);t&&setTimeout(()=>{t.scrollIntoView({behavior:"smooth",block:"nearest",inline:"start"})},100)}
1handleRouteParams(){this._activatedRoute.snapshot.paramMap.get("occasion")&&(this.occasion=this.occasionFromRouteParam(this._activatedRoute.snapshot.paramMap.get("occasion")),this.occasion||(this.trackTrace("Unknown occasion type, user redirected to home",E.Warning),this.router.navigate([this._navigatorService.generateHomePath()]))),this._occasionFromQuery=this.resolveOccasionFromQuery(),this._occasionFromQuery&&(this.occasion=this._occasionFromQuery),this._activatedRoute.snapshot.paramMap.get("location")&&(this._location=this._activatedRoute.snapshot.paramMap.get("location"),this.siteId=this._navigatorService.getSiteIdByLocation(this._location)),(!this.siteId||this.siteId==="")&&this.router.navigate([this._navigatorService.generateHomePath()]),this.applyOccasionSupportGuard()}occasionFromRouteParam(e){if(!e)return;let t=this._navigatorService.changeTakeAwayToCollection(e),o=t.charAt(0).toUpperCase()+t.slice(1);return G[o]}applyOccasionSupportGuard(){if(!this.siteId||!this.occasion)return;let e=!1;this._occasionFromQuery&&!this.isOccasionSupportedBySite(this._occasionFromQuery)&&(this.trackTrace(`Ignoring unsupported ?occasion=${this._occasionFromQuery} deep-link for site ${this.siteId}`,E.Warning),this._occasionFromQuery=void 0,this.occasion=this.occasionFromRouteParam(this._activatedRoute.snapshot.paramMap.get("occasion"))??this.occasion,e=!0);let t=y[this.occasion];if(!t||this.isOccasionSupportedBySite(t)){e&&this.dropOccasionQueryParam();return}let o=this.firstSupportedOccasion();if(!o)return;this.trackTrace(`Occasion ${t} is not supported by site ${this.siteId}, redirected to ${o}`,E.Warning),this.occasion=o;let n=this._activatedRoute.snapshot.paramMap.get("displayGroup")??"all",c=this._navigatorService.generateRoutePath(this._location,o,D.Menu,n),_=e?{occasion:null}:null;this.router.navigate([c],{queryParams:_,queryParamsHandling:"merge",replaceUrl:!0})}dropOccasionQueryParam(){this.router.navigate([],{relativeTo:this._activatedRoute,queryParams:{occasion:null},queryParamsHandling:"merge",replaceUrl:!0})}isOccasionSupportedBySite(e){let t=this.routeSite()?.OccasionsSupported;return!t?.length||t.includes(e)}firstSupportedOccasion(){return this.routeSite()?.OccasionsSupported?.find(t=>t!==y.DineIn)}routeSite(){return this._siteService.sites.value?.find(e=>e.Id?.toLocaleLowerCase()===this.siteId?.toLocaleLowerCase())}resolveOccasionFromQuery(){let e=this._activatedRoute.snapshot.queryParamMap.get("occasion");if(!e)return;let t=this._navigatorService.changeTakeAwayToCollection(e),o=t.charAt(0).toUpperCase()+t.slice(1);return y[o]}recordOccasionSource(){this._occasionFromQuery&&this._analyticsService.trackOccasionSource(this._occasionFromQuery,"query_param")}buildStructuredData(e){let t=this._structuredDataService.buildMenuStructuredData(e,this.occasion,this.currentSite);if(!t)return;let o="menu-structured-data",n=document.getElementById(o),c=document.createElement("script");c.id=o,c.setAttribute("type","application/ld+json"),c.textContent=t,n?n.parentNode?.replaceChild(c,n):document.head.appendChild(c)}updatePageSEO(e){if(e){this._seoSet=!0,this.currentSite&&this.occasion?this._seoService.updateSeoTitleAndDescription(this.currentSite,this.occasion):this._seoService.updateTitle("{{TenantWebsiteName}} - menu");let t=this.currentSite?.Address,o=t?`${t.Town?`in ${t.Town} `:""} ${t.Town||!t.Postcode?t.Postcode:`in ${t.Postcode}`}`:"";this._seoService.updateDescription(this.replaceSEOStrings(`See our ${this._navigatorService.changeCollectionToTakeAway(this.occasion)} menu in ${o}. 2 Choose from our wide range of {{allMenuCategories}} from ${this.currentSite?.Name}.`))}else{let t=this.tenant?.PageSeos?.find(o=>o.PageName.toLowerCase()==="menu");t?(this._seoSet=!0,this._seoService.updateTitle(this.replaceSEOStrings(t.Title)),this._seoService.updateDescription(this.replaceSEOStrings(t.Description))):this.updatePageSEO(!0)}}replaceSEOStrings(e){return e.includes("{{allMenuCategories}}")&&this.sections?.length>0?e.replace("{{allMenuCategories}}",this.sections.map(t=>t.name).join(", ")):e}trackCurrentSiteChanges(){this._siteService.currentSite$.pipe(C(this.destroy$)).subscribe(e=>{this.currentSite=e,this.promptForSetupOnLandingWhenReady()})}bindToRoute(){let e=this.siteId,t=this.occasion;
2this.handleRouteParams();let o=e?.toLocaleLowerCase()!==this.siteId?.toLocaleLowerCase();(o||t!==this.occasion)&&(this.isStoreOpen=void 0,this._storeOpenDerivedForKey=null,this._occasionMismatchTracedForKey=null,this.deriveStoreOpenState()),o&&(this.menuLoadTimedOut=!1,this._menuUpdatesForContext=0,this.startMenuLoadWatchdog(),this._menuService.republishCachedMenu(this.siteId)),this.recordOccasionSource(),this.updatePageSEO(!1),this.storeMismatchDismissed=!1,this.syncCurrentSiteWithRoute(),this.bindBasketForCommitment(),this.updateStoreMismatch()}syncCurrentSiteWithRoute(){(!this.currentSite||this.currentSite.Id.toLocaleLowerCase()!==this.siteId?.toLocaleLowerCase())&&this._siteService.setCurrentSiteBySiteId(this.siteId)}trackDetailedSites(){this._siteService.detailedSites$.pipe(C(this.destroy$)).subscribe(e=>{this._detailedSites=e??[],this.updateStoreStatusBanner()})}updateStoreStatusBanner(){if(!this.currentSite){this.storeOpeningTimeStatus=void 0,this.storeStatusBanner.set({variant:"hidden"});return}let e=this._detailedSites.find(n=>n.id===this.currentSite.Id);if(!e){this.storeOpeningTimeStatus=void 0,this.storeStatusBanner.set({variant:"hidden"});return}let t=this._storeHelperService.getOccasionOpeningConfig(e);this.storeOpeningTimeStatus=this._storeHelperService.getStoreOpeningTimeStatus(e,t.showOccasionOpeningTimes,t.allOccasionsSet,t.supportsDelivery,t.supportsCollection,t.supportsDineIn,this.occasion);let o=this._timeslotsResolved?this.allowsFutureOrders:void 0;this.storeStatusBanner.set(this._storeHelperService.getStoreStatusBanner(e,t,this.occasion,o))}bindBasketForCommitment(){let e=this._whereAndWhenState.committedSiteId();if(!e){this.promptForSetupOnLandingWhenReady();return}let t=e.toLocaleLowerCase()===this.siteId?.toLocaleLowerCase(),o=t?y[this.occasion]:this._whereAndWhenState.committedOccasion()??y[this.occasion],n=()=>this._basketService.clearOldAndCreateNewBasket(e);this._basketService.getCurrentBasketBySiteId(e,o).pipe(C(this.destroy$)).subscribe({error:c=>{this.trackException(c,!0),this.goHome()},next:c=>O(this,null,function*(){if(!c){this.trackTrace("bindBasketForCommitment returned null on menu page",E.Error),this.goHome();return}if(t){if(c.IsModifiable){yield this.reconcileBasketOccasionWithQuery(c);return}if(!c.OrderId){yield n();return}this.basket=null,yield this.discardCheckedOutBasket(c.OrderId,n),this.bindBasketForCommitment()}})})}discardCheckedOutBasket(e,t){return O(this,null,function*(){let o;try{o=yield Ee(this._checkoutService.getOrderStatus(e))}catch(c){this.trackException(c,!1)}if(!(o!==void 0&&!o.RequiresPayment))try{yield this._checkoutService.deleteOrderById(e);return}catch(c){this.trackException(c,!1)}yield t()})}reconcileBasketOccasionWithQuery(e){return O(this,null,function*(){let t=this._occasionFromQuery;!t||e.Occasion===t||(this.trackTrace(`Re-scoping basket from ${e.Occasion} to ${t} per ?occasion= deep-link`,E.Information),yield this._basketService.setOccasionOfCurrentBasket(this.siteId,t,e.DeliveryLocation).catch(o=>this.trackException(o,!1)))})}updateBasketStickyOffset(){let t=this._appHeaderHeight+this._menuHeaderHeight+16;document.documentElement.style.setProperty("--basket-panel-top",`${t}px`)}attachAppHeaderObserver(){let e=document.querySelector("header.header");!e||typeof ResizeObserver>"u"||(this._appHeaderObserver=new ResizeObserver(t=>{this._appHeaderHeight=t[0].contentRect.height,this.updateBasketStickyOffset()}),this._appHeaderObserver.observe(e))}setupBannerObserver(){this._loyaltyBannerEls.first&&this.attachBannerObserver(this._loyaltyBannerEls.first),this._loyaltyBannerEls.changes.pipe(C(this.destroy$)).subscribe(e=>{e.first&&this.attachBannerObserver(e.first)})}attachBannerObserver(e){this._bannerObserver?.disconnect(),!(typeof ResizeObserver>"u")&&(this._bannerObserver=new ResizeObserver(t=>{let o=t[0].contentRect.height;document.documentElement.style.setProperty("--loyalty-banner-height",`${o}px`)}),this._bannerObserver.observe(e.nativeElement))}setupMenuHeaderObserver(){this._menuHeaderEls.first&&this.attachMenuHeaderObserver(this._menuHeaderEls.first),this._menuHeaderEls.changes.pipe(C(this.destroy$)).subscribe(e=>{e.first&&this.attachMenuHeaderObserver(e.first)})}attachMenuHeaderObserver(e){this._menuHeaderObserver?.disconnect(),!(typeof ResizeObserver>"u")&&(this._menuHeaderObserver=new ResizeObserver(t=>{this._menuHeaderHeight=t[0].contentRect.height,this.updateBasketStickyOffset()}),this._menuHeaderObserver.observe(e.nativeElement))}subscribeToOpenBasketQueryParam(){this._activatedRoute.queryParams.pipe(oe(e=>e.openBasket),Ve(()=>this._menuService.menu$.pipe(oe(e=>!!e),_e(1))),C(this.destroy$)).subscribe(()=>{this.openBasket(this.basketModalContent)})}subscribeToRepeatOrderQueryParams(){this._activatedRoute.queryParams.pipe(oe(e=>e.repeatOrderId||e.repeatBasketId),Ve(e=>this._menuService.menu$.pipe(oe(t=>!!t),_e(1),Qe(()=>e))),C(this.destroy$)).subscribe(e=>{this.handleRepeatOrderParams(e.repeatOrderId??null,e.repeatBasketId??null)})}handleRepeatOrderParams(e,t){this.router.navigate([],{queryParams:{repeatOrderId:null,repeatBasketId:null},queryParamsHandling:"merge",relativeTo:this._activatedRoute,replaceUrl:!0});let o=this._basketService.currentBasket.value;if((o?.Items?.length??0)>0||(o?.Deals?.length??0)>0){this._pendingRepeatOrderId=e,this._pendingRepeatBasketId=e?null:t,this.openDialog(this.confirmRepeatOrderModalContent,"confirmRepeatOrder",{maxWidth:"450px",panelClass:["no-padding","confirmRepeatOrder"]});return}this.executeRepeatOrder(e,t)}confirmRepeatReplace(){return O(this,null,function*(){let e=this._pe
2ndingRepeatOrderId,t=this._pendingRepeatBasketId;this._pendingRepeatOrderId=null,this._pendingRepeatBasketId=null,this.closeModalById("confirmRepeatOrder"),(e||t)&&(yield this.executeRepeatOrder(e,t))})}cancelRepeatReplace(){this._pendingRepeatOrderId=null,this._pendingRepeatBasketId=null,this.closeModalById("confirmRepeatOrder")}executeRepeatOrder(e,t){return O(this,null,function*(){if(!(e?yield this._repeatOrderService.repeatFromOrderId(e):t?yield this._repeatOrderService.repeatFromBasketId(t):null)){this._toastService.showToast(Ne.error,"Could not add order to basket","Sorry!");return}this.isPersistentBasketDisplay||this.openBasket(this.basketModalContent)})}trackCurrentBasket(){this._basketService.currentBasket$.pipe(C(this.destroy$)).subscribe(e=>{let t=!this.basket||!e||this.basket.Id!==e.Id,o=e?.WantedTimeUtc!==this._lastWantedTimeUtc,n=e?.Occasion!==this._lastBasketOccasion;this.basket=e,this._lastWantedTimeUtc=e?.WantedTimeUtc,this._lastBasketOccasion=e?.Occasion,this.updateBasketStickyOffset(),e&&(this.promptForSetupOnLandingWhenReady(),this.deriveStoreOpenState(),(t||n)&&(this._timeslotsResolved=!1),this.basketWantedTime=this._basketService.getWantedTime(),this.occasionText=e.Occasion===y.Delivery?"DELIVERY":"COLLECTION",(t||o||n)&&this._menuService.menuValue&&(this.sections=this.getMenuSections(this._menuService.menuValue)))})}trackNotifications(){this._toastService.activeNotifications$.pipe(C(this.destroy$)).subscribe(e=>{this.notifications=e})}goHome(){this.router.url.includes("/menu")&&(this._toastService.showToast(Ne.error,"Something's gone wrong"),this.router.navigate([this._navigatorService.generateHomePath()]))}scrollToWebSection(e){let t=document.getElementById(e);if(!t)return;let o=document.getElementById("menu-content-body");if(o?.classList.add("_sections-revealed"),this.isMobile){setTimeout(()=>{window.scrollTo({behavior:"smooth",top:t.offsetTop}),this.restoreSectionSkipping(window,o)},this._scrollDelay);return}let n=document.getElementById("menu-content"),c=document.getElementById("categories-bar");if(!n||!c){o?.classList.remove("_sections-revealed");return}n.scrollTo({behavior:"smooth",top:t.offsetTop-c.offsetHeight}),this.restoreSectionSkipping(n,o)}restoreSectionSkipping(e,t){if(!t)return;let o=0,n=()=>{window.clearTimeout(o),e.removeEventListener("scrollend",n),t.classList.remove("_sections-revealed")};o=window.setTimeout(n,this._sectionRevealFallbackMs),e.addEventListener("scrollend",n,{once:!0})}setSearchFieldFocus(){setTimeout(()=>this._searchElement.nativeElement.focus(),10)}deriveStoreOpenState(){return O(this,null,function*(){let e=this.basket;if(!e?.Id||this.siteId&&e.SiteId&&e.SiteId.toLocaleLowerCase()!==this.siteId.toLocaleLowerCase())return;let t=y[this.occasion];if(t&&e.Occasion&&e.Occasion!==t){this.traceOccasionMismatch(e,t);return}let o=`${e.Id}|${this.siteId??""}|${e.Occasion??""}`.toLocaleLowerCase();if(this._storeOpenDerivedForKey!==o){this._storeOpenDerivedForKey=o,this.isStoreOpen=void 0;try{let n=yield this.measureStoreOpenFromBasket(e.Id);this._storeOpenDerivedForKey===o&&(this.isStoreOpen=n,this.allowsFutureOrders=n,this._timeslotsResolved=!0,this.updateStoreStatusBanner())}catch(n){this._storeOpenDerivedForKey===o&&(this._storeOpenDerivedForKey=null),this.trackException(n,!1)}}})}traceOccasionMismatch(e,t){let o=`${e.Id}|${this.siteId??""}|${e.Occasion}|${t}`.toLocaleLowerCase();this._occasionMismatchTracedForKey!==o&&(this._occasionMismatchTracedForKey=o,this.trackTrace("Store-open derivation skipped: the basket occasion does not match the route",E.Warning,{siteId:this.siteId,basketOccasion:e.Occasion,routeOccasion:t}))}measureStoreOpenFromBasket(e){return O(this,null,function*(){let t=yield this._basketService.getTimeSlotsForBasket(e,!0);if(t.Dates?.length>0||t.AllowAsap)return!0;let o=new Date;return o.setDate(o.getDate()+1),(yield Ee(this._basketService.getBasketsAvailableTimes(e,o,!0))).flatMap(c=>c.Time).filter(c=>c<"06:00:00").length>0})}toCardWidthClass(e){switch(e){case Q.Noticeable:return"card-width-half";case Q.Prominent:return"card-width-two-thirds";case Q.Dominant:return"card-width-full";case Q.Normal:default:return"card-width-third"}}static{this.\u0275fac=function(t){return new(t||r)(m(Y),m(pe),m(J),m(ue),m(pt),m(X),m(se),m(Lt),m(ee),m(Oe),m(he),m(Vt),m(me),m(ht),m(Me),m(Bt),m(te),m(Ke),m(St))}}static{this.\u0275cmp=W({type:r,selectors:[["app-menu"]],viewQuery:function(t,o){if(t&1&&ae(Po,5)(Io,5)(To,5)(Do,5)(Ro,5,Le)(Eo,5,Le),t&2){let n;B(n=L())&&(o._searchElement=n.first),B(n=L())&&(o.basketModalContent=n.first),B(n=L())&&(o.confirmRepeatOrderModalContent=n.first),B(n=L())&&(o._categoryElements=n),B(n=L())&&(o._loyaltyBannerEls=n),B(n=L())&&(o._menuHeaderEls=n)}},features:[N],decls:14,vars:1,consts:[["confirmWantedTime",""],["basketModalContent",""],["confirmRepeatOrderModal",""],["switchStoreModal",""],["loyaltyBanner",""],["menuHeaderEl",""],["menuContentElement",""],["search",""],["categoryElement",""],["id","menu",1,"_menu"],[1,"menu-loading","text-info-label-bold","disable-select"],["aria-live","polite",1,"_menu-loading","text-info-label-bold","disable-select"],[1,"_menu-loading","text-info-label-bold","disable-select"],["draggable","false",3,"src"],[1,"_menu-load-error-actions"],["type","button",1,"_menu-load-error-primary",3,"click"],["type","button",1,"_menu-load-error-secondary",3,"click"],["role","status",1,"_store-mismatch-banner"],[3,"banner"],["id","categories-bar",1,"_menu-header","text-info-label-bold"],[1,"_menu-header-content"],["id","li-search",1,"_menu-header-content-item"],["id","li-search-expanded",1,"_menu-header-content-item"],[1,"_menu-header-content-item",3,"id"],["id","menu-content",1,"_menu-content"],[1,"_menu-layout"],[1,"_menu-col"],[1,"_order-context-bar"],[1,"_menu-content-products"],[1,"_menu-content-products-announcement",3,"innerHTML"],[1,"_menu-content-products-allergens",3,"innerHTML"],["
2id","menu-content-body"],["id","_search-results-target"],[1,"_category",3,"id"],[1,"_basket-panel-col"],[1,"_menu-page-footer"],[3,"isPreOrderPending"],[1,"_store-mismatch-banner-message"],[1,"_store-mismatch-banner-actions"],["type","button",1,"_store-mismatch-banner-primary",3,"click"],["type","button",1,"_store-mismatch-banner-secondary",3,"click"],["type","button","aria-label","Dismiss",1,"_store-mismatch-banner-dismiss",3,"click"],[3,"ctaClick","switchOccasionClick","banner"],["id","li-search",1,"_menu-header-content-item",3,"click"],[1,"_menu-header-content-item-link","search","_button-menu-cat","disable-select"],["name","search",1,"_menu-header-content-item-link","icon"],[1,"_menu-header-content-item-link","search","_button-menu-cat","disable-select","_expanded"],[1,"_input-group","_expanded-input"],["type","text","placeholder","Search...",1,"_menu-header-content-item-link","_search-input",3,"ngModelChange","ngModel"],[1,"_input-group-append"],["type","reset",1,"_input-group-text",3,"click"],["name","close",1,"_menu-header-content-item-link","icon","close"],["type","submit",1,"_input-group-text","search"],["name","search",1,"_menu-header-content-item-link","icon","search"],[1,"_menu-header-content-item-link","disable-select",3,"click","id","href"],[1,"_order-context-bar-segment"],[1,"_order-context-bar-segment",3,"click"],[1,"_order-context-bar-change"],[1,"text-primary",3,"click"],[1,"flex","gap-1.5"],[1,"_order-context-bar-separator"],[1,"_order-context-bar-change",3,"click"],[1,"category-name","user-input",2,"text-transform","capitalize"],[1,"_category-item-list"],[1,"_websection-header-group"],[1,"_category-item-list-items"],[1,"menu-item-card-component",3,"class","activeTouchKey","occasion","siteId","customerGroupName","menuItem","sectionItems","isStoreOpen","isMenuReadOnly","allowsFutureOrders","wantedTime","index","notification"],[1,"load-more-row"],[1,"menu-item-card-component",3,"touchstart","touchmove","touchend","touchcancel","activeTouchKey","occasion","siteId","customerGroupName","menuItem","sectionItems","isStoreOpen","isMenuReadOnly","allowsFutureOrders","wantedTime","index","notification"],["type","button",1,"load-more-btn",3,"click"],[1,"item","flex","justify-center","items-center","gap-2"],[1,"material-symbols-outlined"],[3,"showCheckout","showCloseButton","canPlaceOrders","isPersistentBasketDisplay"],[1,"_menu-page-footer-legal-links"],[1,"_menu-page-footer-legal-links-item",3,"routerLink","queryParams"],[1,"_menu-page-footer-branding",3,"click"],[1,"_menu-page-footer-branding-text"],["src","../../assets/Andromeda-Logo_Secondary_RGB.png","alt","",1,"_menu-page-footer-branding-img"],[3,"open","isPreOrderPending"],[3,"basket","site"],[2,"height","100%",3,"allDone","showCheckout","canPlaceOrders"],[1,"app-dialog-header","nav","disable-select"],[1,"app-dialog-title","nav"],["type","button","mat-icon-button","","aria-label","Close",3,"click"],[1,"app-dialog-body","nav","disable-select"],[1,"app-dialog-footer","nav","disable-select"],["type","button",1,"modal-button-light","nav","button-action-2",3,"click"],["type","button",1,"modal-button-light","nav","button-action-1",3,"click"]],template:function(t,o){t&1&&(P(0,"router-outlet"),i(1,"section",9),v(2,Ho,4,1,"div",10)(3,No,3,1,"div",11)(4,zo,3,0,"div",12)(5,cr,28,15),a(),ie(6,sr,1,2,"ng-template",null,0,j)(8,lr,1,2,"ng-template",null,1,j)(10,dr,14,0,"ng-template",null,2,j)(12,ur,14,0,"ng-template",null,3,j)),t&2&&(l(2),b(o.isLoading?2:o.noMenu?3:!o.sections||o.sections.length===0?4:5))},dependencies:[yt,vt,bt,xt,mt,ut,le,we,Te,Ie,Pe,Nt,Ct,Rt,Dt,De,Tt,qt,zt,Et,dt],styles:["[_ngcontent-%COMP%]:root{--footer-background-colour: var(--secondary-color);--footer-font-colour: var(--on-secondary-color);--product-content-padding: 0 10px;--tablet-width-portrait: 1023px;--mobile-width-portrait: 479px;--desktop-width-large: 1280px;--tablet-width-landscape: 768px;--primary-color: #3f4858;--on-primary-color: #fff;--secondary-color: #fff;--on-secondary-color: #3f4858;--background-color: #fff;--on-background-color: #3f4858;--surface-color: #f5f5f5;--on-surface-color: #000045;--success-color: #4caf50;--on-success-color: #fff;--error-color: #f44336;--on-error-color: #fffffff0;--warning-color: #ff9800;--on-warning-color: #fff;--input-border-color: #7a7a7a40;--product-page-popup-ring-color: color-mix(in srgb, var(--primary-color) 70%, transparent);--nav-bar-background-colour: var(--site-header-color, var(--secondary-color));--nav-bar-font-colour: var(--on-site-header-color, var(--on-secondary-color));--nav-bar-desktop-background-colour: var(--site-header-color, var(--secondary-color));--nav-bar-desktop-font-colour: var(--on-site-header-color, var(--on-secondary-color));--nav-bar-desktop-info-colour: var(--primary-color);--quantity-toggle-icon-color: var(--primary-color);
2--card-box-shadow-color: rgba(53, 53, 53, .25);--card-box-shadow: 0 0 25px 1px var(--card-box-shadow-color);--nav-sections-header-background: var(--nav-bar-background-colour);--nav-bar-user-menu-background-colour: var(--primary-color);--nav-bar-user-menu-font-colour: var(--on-primary-color);--nav-sections-item-background: var(--surface-color);--nav-sections-item-font-colour: var(--on-surface-color);--nav-sections-item-background-selected: var(--secondary-color);--nav-sections-item-font-colour-selected: var(--on-secondary-color);--nav-bar-user-menu-dropdown-background: var(--background-color);--nav-bar-user-menu-dropdown-font-colour: var(--on-background-color);--checkout-background: var(--background-color);--menu-item-image-zoom-overlay-background: rgba(0, 0, 0, .5);--menu-item-image-zoom-overlay-color: white;--menu-item-card-box-shadow: 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 2px 0 rgba(0, 0, 0, .14), 0 0 5px 0 rgba(0, 0, 0, .12);--menu-item-image-wrapper-background: var(--surface-color);--custom-scrollbar-width: 10px;--custom-scrollbar-thumb-color: #bbbab9;--custom-scrollbar-thumb-box-shadow: inset 0 0 3px rgba(0, 0, 0, .2);--custom-scrollbar-thumb-border-radius: 0px;--custom-scrollbar-thumb-border-color: #fff;--custom-scrollbar-thumb-border: 0px solid var(--custom-scrollbar-thumb-border-color);--modal-header-box-shadow: rgba(0, 0, 0, .18) 0px 2px 4px;--modal-footer-box-shadow: rgba(60, 64, 67, .3) 0px 1px 2px 0px, rgba(60, 64, 67, .15) 0px 1px 3px 1px;--mat-option-selected-state-layer-color: var(--primary-color);--mat-option-selected-state-label-text-color: var(--on-primary-color);--mat-form-field-filled-focus-label-text-color: var(--primary-color);--menu-page-store-mismatch-banner-background: color-mix(in srgb, var(--warning-color) 14%, var(--surface-color));--menu-page-store-mismatch-banner-border-color: var(--warning-color);--menu-page-store-mismatch-banner-font-color: var(--on-surface-color);--menu-page-store-mismatch-primary-cta-background: var(--primary-color);--menu-page-store-mismatch-primary-cta-font-color: var(--on-primary-color);--menu-page-store-mismatch-secondary-cta-border-color: var(--primary-color);--menu-page-store-mismatch-secondary-cta-font-color: var(--on-surface-color);--menu-page-load-error-primary-cta-background: var(--primary-color);--menu-page-load-error-primary-cta-font-color: var(--on-primary-color);--menu-page-load-error-secondary-cta-border-color: var(--primary-color);--menu-page-load-error-secondary-cta-font-color: var(--on-background-color);--upsell-button-action-border-color: var(--primary-color);--upsell-button-action-1-color: var(--on-primary-color);--upsell-button-action-1-background-color: var(--primary-color);--upsell-button-action-2-color: var(--on-background-color);--upsell-button-action-2-background-color: var(--background-color);--basket-sticky-offset: 280px;--basket-panel-width: 408px;--basket-panel-top: 164px;--basket-item-font-color: var(--on-surface-color)}._menu[_ngcontent-%COMP%]{--menu-nav-bar-background-color: var(--background-color);--menu-nav-bar-font-color: var(--on-background-color);--menu-nav-bar-search-background: var(--on-background-color);--menu-nav-bar-search-font-color: var(--background-color);--menu-nav-bar-search-expanded-background-color: var(--background-color);--menu-nav-bar-search-expanded-font-color: var(--on-background-color);--menu-nav-bar-search-expanded-close-icon-color: var(--on-background-color);--menu-nav-bar-search-expanded-search-icon-background-color: var(--on-background-color);--menu-nav-bar-search-expanded-search-icon-color: var(--background-color);--menu-nav-bar-font-color-active: var(--primary-color);--menu-wanted-for-background: var(--secondary-color);--menu-wanted-for-font-color: var(--on-secondary-color);--menu-wanted-for-change-background: var(--surface-color);--menu-wanted-for-change-font-colour: var(--on-surface-color);--menu-wanted-for-cta-font-color: var(--primary-color);--menu-wanted-for-cta-bg-color-hover: var(--on-primary-color);--menu-content-background: var(--background-color);--menu-content-font-color: var(--on-background-color);
2--menu-sections-details-header-background: var(--background-color);--menu-sections-details-header-font-color: var(--on-background-color);--menu-card-background: var(--surface-color);--menu-card-font-colour: var(--on-surface-color);--menu-card-action-button-background: var(--primary-color);--menu-card-action-button-font-colour: var(--on-primary-color);--menu-card-action-button-highlight-background: var(--secondary-color);--menu-card-action-button-highlight-font-colour: var(--on-secondary-color);--menu-card-border-colour: var(--surface-color);--menu-card-border: 1px solid var(--menu-card-border-colour);--menu-card-border-radius: 6px;--menu-card-box-shadow-color: rgba(53, 53, 53, .15);--menu-card-box-shadow: 0 0 4px 1px var(--menu-card-box-shadow-color);--menu-page-section-header-border-color: var(--primary-color);--menu-page-load-more-button-background: var(--primary-color);--menu-page-load-more-button-font-color: var(--on-primary-color);--menu-basket-footer-background: var(--menu-card-action-button-background);--menu-basket-footer-font-color: var(--menu-card-action-button-font-colour);--menu-basket-footer-border: thin solid var(--menu-basket-footer-background);--menu-basket-footer-height: 45px}._product-page-wrapper[_ngcontent-%COMP%]{--product-page-background: var(--background-color);--product-page-font-color: var(--on-background-color);--product-page-selected-option-background: var(--secondary-color);--product-page-selected-option-font-colour: var(--on-secondary-color);--product-page-allergen-icon-color: var(--error-color);--product-page-action-button-background: var(--primary-color);--product-page-action-button-font-color: var(--on-primary-color);--product-page-content-card-background: var(--surface-color);--product-page-content-card-font-color: var(--on-surface-color);--product-page-meal-choice-card-border-color: var(--product-page-action-button-background);--product-page-meal-choice-row-border-color: color-mix(in srgb, var(--product-page-content-card-font-color) 30%, transparent);--product-page-meal-choice-row-selected-border-color: var(--product-page-action-button-background);--product-page-modifier-chip-border-color: var(--product-page-content-card-font-color);--product-page-modifier-chip-background: transparent;--product-page-modifier-chip-color: var(--product-page-content-card-font-color);--product-page-modifier-chip-included-border-color: color-mix(in srgb, var(--product-page-selected-option-background) 55%, var(--product-page-content-card-font-color) 45%);--product-page-modifier-chip-included-background: color-mix(in srgb, var(--product-page-selected-option-background) 8%, var(--product-page-background) 92%);--product-page-modifier-chip-selected-border-color: var(--product-page-action-button-background);--product-page-modifier-chip-selected-background: var(--product-page-action-button-background);--product-page-modifier-chip-selected-color: var(--product-page-action-button-font-color);--product-page-modifier-chip-badge-background: color-mix(in srgb, var(--product-page-content-card-font-color) 12%, transparent);--product-page-modifier-chip-selected-badge-background: color-mix(in srgb, var(--product-page-action-button-font-color) 18%, transparent);--product-page-modifier-chip-check-background: color-mix(in srgb, var(--product-page-action-button-font-color) 22%, transparent);--product-page-hero-image-fade-color: var(--product-page-background);--product-page-hero-placeholder-background: color-mix(in srgb, var(--product-page-action-button-background) 10%, var(--product-page-background));--product-page-hero-placeholder-font-color: color-mix(in srgb, var(--product-page-action-button-background) 55%, var(--product-page-background));--product-page-price-flash-background: var(--product-page-action-button-background);--product-page-price-flash-font-color: var(--product-page-action-button-font-color);--product-page-price-flash-shadow-color: color-mix(in srgb, var(--product-page-action-button-background) 36%, transparent);--product-page-allergen-strip-accent-color: #b45309;--product-page-allergen-strip-background: color-mix(in srgb, var(--product-page-allergen-strip-accent-color) 9%, var(--product-page-background));--quantity-toggle-icon-color: var(--on-surface-color)}._product-page-wrapper[_ngcontent-%COMP%] ._selected-modifier-item[_ngcontent-%COMP%]{--quantity-toggle-icon-color: var(--on-secondary-color)}._product-page-wrapper[_ngcontent-%COMP%] ._product-page-footer[_ngcontent-%COMP%]{--quantity-toggle-icon-color: var(--on-background-color)}.basket-container[_ngcontent-%COMP%]{--basket-background: var(--background-color);--basket-font-color: var(--on-background-color);--basket-padding: 24px;--basket-body-background: var(--surface-color);--basket-body-font-color: var(--on-surface-color);--basket-occasion-tab-background: var(--surface-color);--basket-occasion-tab-font-color: var(--on-surface-color);--basket-occasion-tab-background-selected: var(--primary-color);--basket-occasion-tab-font-color-selected: var(--on-primary-color);--basket-call-to-action-background: var(--primary-color);--basket-call-to-action-font-color: var(--on-primary-color);--basket-return-to-home-color: var(--on-background-color);--basket-error-font-color: var(--error-color);--basket-action-button-background: var(--secondary-color);--basket-action-button-font-color: var(--on-secondary-color);--basket-button-border-radius: 12px;--basket-redeem-card-background: var(--surface-color);--basket-redeem-card-font-color: var(--on-surface-color);--basket-redeem-card-border-color: color-mix(in srgb, var(--basket-redeem-card-font-color) 12%, transparent);--basket-loyalty-icon-color: var(--on-surface-color);--basket-item-font-color: var(--on-surface-color);--basket-promo-chip-border-color: color-mix(in srgb, var(--basket-font-color) 20%, transparent);--basket-dock-border-color: color-mix(in srgb, var(--basket-font-color) 12%, transparent);--basket-identity-panel-border-color: var(--primary-color);--basket-loyalty-border-color: var(--primary-color);--basket-loyalty-background: var(--background-color);--basket-loyalty-points-summary-color: var(--on-surface-color);--basket-loyalty-points-discount-color: var(--on-surface-color);--basket-loyalty-earn-summary-color: var(--on-surface-color);--basket-voucher-input-border-radius: 8px;--basket-voucher-input-border-color: var(--on-surface-color);--basket-voucher-input-background: var(--surface-color);--basket-voucher-input-font-color: var(--on-surface-color);--basket-voucher-button-background: var(--primary-color);--basket-voucher-button-color: var(--on-primary-color);--basket-product-row-has-issues-background: #ffeeee;--basket-divider-color: var(--on-primary-color);--basket-voucher-deal-tag-background: #ff0;--basket-voucher-deal-tag-font-color: #000}.checkout-wrapper[_ngcontent-%COMP%]{--checkout-card-background: var(--surface-color);--checkout-card-font-colour: var(--on-surface-color);--checkout-card-instructions-font-colour: var(--secondary-color);--checkout-pay-type-highlight: var(--secondary-color);--checkout-action-button-background: var(--surface-color);--checkout-action-button-font-color: var(--primary-color);--checkout-action-button-background-selected: var(--primary-color);--checkout-action-button-font-color-selected: var(--on--primary-color);--checkout-border-colour: color-mix(in srgb, var(--on-surface-color) 10%, transparent);--checkout-item-count-font-color: #afb0c4;--checkout-payment-type-background: var(--surface-color);--checkout-border-radius: 20px;--checkout-info-card-background: var(--background-color);--checkout-info-card-font-colour: var(--on-background-color);
2--checkout-info-card-divider-colour: color-mix(in srgb, var(--on-background-color) 10%, transparent);--basket-item-font-color: var(--on-background-color)}.order-feedback-container[_ngcontent-%COMP%]{--order-feedback-header-background: var(--nav-bar-background-colour);--order-feedback-content-background: var(--background-color);--order-feedback-card-background: var(--surface-color);--order-feedback-card-font-color: var(--on-surface-color);--order-feedback-star-icon-color: var(--secondary-color);--order-feedback-divider-color: var(--on-surface-color);--order-feedback-textarea-background: var(--surface-color);--order-feedback-textarea-font-color: var(--on-surface-color);--order-feedback-primary-action-button-background: var(--primary-color);--order-feedback-primary-action-button-font-color: var(--on-primary-color);--order-feedback-secondary-action-button-background: var(--surface-color);--order-feedback-secondary-action-button-font-color: var(--on-surface-color);--order-feedback-thank-you-icon-color: var(--primary-color)}app-deals[_ngcontent-%COMP%]{--deal-background-color: var(--background-color);--deal-font-color: var(--on-background-color);--deal-page-action-button-background: var(--primary-color);--deal-page-action-button-font-color: var(--on-primary-color);--deal-line-background-color: var(--surface-color);--deal-line-font-color: var(--on-surface-color);--deal-wizard-hero-scrim: linear-gradient(transparent, rgb(0 0 0 / 65%));--deal-wizard-hero-font-color: #fff;--deal-wizard-hero-close-background: var(--surface-color);--deal-wizard-hero-close-font-color: var(--on-surface-color);--deal-wizard-hero-price-background: var(--surface-color);--deal-wizard-hero-price-font-color: var(--on-surface-color);--deal-wizard-step-active-color: var(--primary-color);--deal-wizard-step-completed-background: var(--primary-color);--deal-wizard-step-completed-font-color: var(--on-primary-color);--deal-wizard-step-future-color: color-mix(in srgb, var(--deal-font-color) 35%, transparent);--deal-wizard-step-count-font-color: color-mix(in srgb, var(--deal-font-color) 60%, transparent);--deal-wizard-trail-background: color-mix(in srgb, var(--deal-font-color) 6%, transparent);--deal-wizard-trail-border-color: color-mix(in srgb, var(--deal-font-color) 15%, transparent);--deal-wizard-trail-title-font-color: color-mix(in srgb, var(--deal-font-color) 60%, transparent);--deal-wizard-trail-chip-background: var(--surface-color);--deal-wizard-trail-chip-font-color: var(--on-surface-color);--deal-wizard-counter-background: color-mix(in srgb, var(--primary-color) 12%, transparent);--deal-wizard-counter-font-color: var(--primary-color);--deal-wizard-tile-border-color: color-mix(in srgb, var(--deal-font-color) 15%, transparent);--deal-wizard-tile-selected-border-color: var(--primary-color);--deal-wizard-tile-selected-background: color-mix(in srgb, var(--primary-color) 10%, var(--deal-line-background-color));--deal-wizard-tile-tick-font-color: var(--on-primary-color);--deal-wizard-stepper-background: color-mix(in srgb, var(--deal-font-color) 8%, transparent);--deal-wizard-stepper-button-background: var(--primary-color);--deal-wizard-stepper-button-font-color: var(--on-primary-color);--deal-wizard-tile-image-fallback-background: color-mix(in srgb, var(--deal-font-color) 8%, transparent);--deal-wizard-tile-image-fallback-font-color: color-mix(in srgb, var(--deal-font-color) 45%, transparent);--deal-wizard-summary-border-color: color-mix(in srgb, var(--deal-font-color) 15%, transparent);--deal-wizard-back-button-background: var(--surface-color);--deal-wizard-back-button-border-color: color-mix(in srgb, var(--deal-font-color) 25%, transparent);--deal-wizard-back-button-font-color: var(--on-surface-color);--deal-wizard-unavailable-font-color: var(--error-color)}.wanted-time-picker[_ngcontent-%COMP%], .wanted-time-slot-select-panel[_ngcontent-%COMP%]{--next-day-bg: color-mix(in srgb, var(--primary-color) 10%, transparent);--next-day-color: var(--primary-color);--next-day-border: color-mix(in srgb, var(--primary-color) 28%, transparent);--wanted-time-picker-dropdown-border: #d1d5db;--wanted-time-picker-icon-color: #6b7280}.wanted-time-picker[_ngcontent-%COMP%]{--wanted-time-picker-radio-selected-background: #f5f5f5;--wanted-time-picker-radio-label-color: #111827;--wanted-time-picker-dropdown-background: #fff;--wanted-time-picker-day-name-color: #111827;--wanted-time-picker-date-detail-color: #6b7280;--wanted-time-picker-continue-disabled-background: #9ca3af;--wanted-time-picker-content-padding: 0 16px 16px;--wanted-time-picker-text-field-padding: 0 8px;--wanted-time-picker-radio-option-padding: 6px;--wanted-time-picker-dropdown-container-padding: 12px 8px;--wanted-time-picker-form-field-wrapper-padding: 0;--wanted-time-picker-form-field-infix-padding: 0;--wanted-time-picker-continue-button-padding: 10px 16px;--wanted-time-picker-dropdown-border-radius: 8px !important;--wanted-time-picker-space-alignment: 25px;--wanted-time-picker-space-alignment-icon: -25px;--wanted-time-picker-continue-font-colour: var(--on-primary-color);--wanted-time-picker-continue-background-colour: var(--primary-color)}.home-page-wrapper[_ngcontent-%COMP%]{--home-page-selected-store-details-open: var(--success-color);--home-page-selected-store-details-closed: var(--error-color);--home-page-selected-store-phone-color: var(--on-surface-color);--home-page-occasion-selector-card-background: var(--surface-color);--home-page-occasion-selector-card-color: var(--on-surface-color);--home-page-occasion-selector-card-shadow-color: rgba(0, 0, 0, .6);
2--home-page-occasion-selector-card-box-shadow: -1px 2px 30px 0px var(--home-page-occasion-selector-card-shadow-color);--home-page-occasion-selector-card-border-radius: 20px;--home-page-occasion-selector-tab-color: var(--on-surface-color);--home-page-occasion-selector-tab-border-color: rgba(0, 0, 0, .12);--home-page-occasion-selector-tab-border: 1.5px solid var(--home-page-occasion-selector-tab-border-color);--home-page-occasion-selector-tab-border-radius: 8px;--home-page-occasion-selector-tab-background-selected: var(--primary-color);--home-page-occasion-selector-tab-color-selected: var(--on-primary-color);--home-page-occasion-input-box-border-color: rgba(0, 0, 0, .12);--home-page-occasion-input-box-border: thin solid var(--home-page-occasion-input-box-border-color);--home-page-occasion-order-now-button-border-radius: 7px;--home-page-occasion-order-now-button-background: var(--primary-color);--home-page-occasion-order-now-button-color: var(--on-primary-color);--home-page-occasion-error-message-color: var(--error-color);--home-page-delivery-multi-sites-header-color: var(--primary-color);--home-page-custom-html-color: black}app-profile[_ngcontent-%COMP%]{--profile-page-background: var(--background-color);--profile-page-font-color: var(--on-background-color);--profile-page-primary-action-button-background: var(--primary-color);--profile-page-primary-action-button-font-color: var(--on-primary-color);--profile-page-secondary-action-button-background: var(--background-color);--profile-page-secondary-action-button-font-color: var(--on-background-color);--profile-page-order-charge: var(--primary-color);--profile-page-order-total: var(--primary-color);--profile-page-selected-order-background: var(--surface-color);--profile-page-selected-order-font-color: var(--on-surface-color);--profile-page-default-address-color: var(--primary-color)}.delete-account-wrapper[_ngcontent-%COMP%]{--delete-account-primary-action-button-background: var(--primary-color);--delete-account-primary-action-button-font-color: var(--on-primary-color)}rewards-page[_ngcontent-%COMP%]{--badge-earn-bg: color-mix(in srgb, var(--primary-color) 12%, transparent);--badge-earn-color: var(--primary-color);--badge-spend-bg: color-mix(in srgb, var(--error-color) 12%, transparent);--badge-spend-color: var(--error-color);--badge-bonus-bg: color-mix(in srgb, var(--success-color) 12%, transparent);--badge-bonus-color: var(--success-color);--badge-signup-bonus-bg: color-mix(in srgb, var(--warning-color) 12%, transparent);--badge-signup-bonus-color: var(--warning-color);--rewards-points-positive: var(--success-color);--rewards-points-negative: var(--error-color);--rewards-activity-sub-row-border: rgba(0, 0, 0, .06)}[_nghost-%COMP%]{overflow:auto}._menu[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column;justify-content:center;height:100%}._menu-loading[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column;margin-top:-130px}.menu-item-card-component[_ngcontent-%COMP%]{display:flex;transform-origin:center;transition:transform .22s ease,border .22s ease;will-change:transform;position:relative;border-radius:var(--menu-card-border-radius);border:2px solid transparent}@media(hover:hover)and (pointer:fine){.menu-item-card-component[_ngcontent-%COMP%]:hover, .menu-item-card-component[_ngcontent-%COMP%]:focus-within{transform:scale(1.02);z-index:1;outline:2px solid var(--primary-color)}}@media(hover:none)and (pointer:coarse){.menu-item-card-component.touch-feedback-active[_ngcontent-%COMP%], .menu-item-card-component[_ngcontent-%COMP%]:active{transform:scale(1.02);z-index:1;outline:2px solid var(--primary-color)}}._menu-content[_ngcontent-%COMP%]{height:100%;overflow-y:auto;overflow-x:hidden;width:100%;background-color:var(--menu-content-background)}._menu-content-products[_ngcontent-%COMP%]{display:flex;flex-direction:column}._menu-content-products-announcement[_ngcontent-%COMP%]{max-width:100%;padding:15px;text-align:center}._menu-content-products-allergens[_ngcontent-%COMP%]{color:#e3000e;max-width:100%;padding:15px;text-align:center}._menu-content[_ngcontent-%COMP%] ._category[_ngcontent-%COMP%]{align-items:center;display:flex;flex-direction:column;scroll-margin-top:45px;content-visibility:auto;contain-intrinsic-size:auto 600px}._menu-content[_ngcontent-%COMP%] ._category-item-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:1140px}
2._menu-content[_ngcontent-%COMP%] ._category-name[_ngcontent-%COMP%]{font-weight:700;font-size:20px}._menu-content[_ngcontent-%COMP%] ._category._category-near[_ngcontent-%COMP%], ._menu-content[_ngcontent-%COMP%] ._sections-revealed[_ngcontent-%COMP%] ._category[_ngcontent-%COMP%]{content-visibility:visible}._menu-header[_ngcontent-%COMP%]{background-color:var(--menu-nav-bar-background-color);width:100%}._menu-header-content[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:center;list-style-type:none;margin:0;padding:10px 0;gap:1.2rem}._menu-header-content-item[_ngcontent-%COMP%]{display:flex;align-items:center;color:var(--menu-nav-bar-font-color)}._menu-header-content-item-link.search[_ngcontent-%COMP%]{padding:5px;border-radius:50%}._menu-header-content-item-link.search-input[_ngcontent-%COMP%]{border:none;height:36px;padding:0 0 0 10px;transition:.3s ease-in-out;background-color:var(--menu-nav-bar-search-expanded-background-color);color:var(--menu-nav-bar-search-expanded-font-color)}._menu-header-content-item-link.search-input[_ngcontent-%COMP%]::-ms-clear{display:none;width:0;height:0}a._menu-header-content-item-link[_ngcontent-%COMP%]{padding:10px;display:inline-block;transform-origin:center;transition:transform .18s ease}._menu-header-content-item-link.active[_ngcontent-%COMP%]{color:var(--menu-nav-bar-font-color-active);text-decoration:underline}a._menu-header-content-item-link[_ngcontent-%COMP%]:not(.active):hover{color:inherit}@media(hover:hover)and (pointer:fine){a._menu-header-content-item-link[_ngcontent-%COMP%]:hover, a._menu-header-content-item-link[_ngcontent-%COMP%]:focus-visible{transform:scale(1.06)}}._menu-header-content-item-link.icon[_ngcontent-%COMP%]{align-items:center;border:none;display:flex;height:22px;justify-content:center;width:22px}._menu-header-content-item-link.icon.search[_ngcontent-%COMP%]{border-radius:50%;background-color:var(--menu-nav-bar-search-expanded-search-icon-background-color);color:var(--menu-nav-bar-search-expanded-search-icon-color);font-size:20px;margin-top:0;height:30px;width:30px}._menu-header-content-item-link.icon.search[_ngcontent-%COMP%] .icon-svg{margin-left:-2px}._menu-header-content-item-link.icon.close[_ngcontent-%COMP%]{opacity:.5;font-size:18px}._menu-header-content-item-link.icon.close[_ngcontent-%COMP%]:hover{opacity:.8}._menu-header.sticky[_ngcontent-%COMP%]{top:0}._input-group[_ngcontent-%COMP%]{display:none;transition:.7s ease-in-out}._input-group-text[_ngcontent-%COMP%]{align-items:center;background-color:var(--menu-nav-bar-search-expanded-background-color);color:var(--menu-nav-bar-search-expanded-close-icon-color);border:none;cursor:pointer;display:flex;height:36px;padding-left:0;padding-right:4px}._expanded[_ngcontent-%COMP%]{align-items:center;border-radius:12px!important;display:flex;flex-direction:row;margin-top:0!important;padding:9px!important}._expanded-input[_ngcontent-%COMP%]{display:flex;flex-direction:row;flex-wrap:nowrap;transition:.7s ease-in-out;background-color:var(--menu-nav-bar-search-expanded-background-color);color:var(--menu-nav-bar-search-expanded-font-color);border-radius:10px;overflow:hidden}._expanded-input[_ngcontent-%COMP%] input[_ngcontent-%COMP%]{padding:0 5px;background-color:transparent}li#li-search-expanded[_ngcontent-%COMP%]{margin-left:5px}._search-input[_ngcontent-%COMP%]::placeholder{font-weight:700;opacity:.75;color:var(--menu-nav-bar-search-expanded-font-color)}._input-group._expanded-input[_ngcontent-%COMP%]{margin-bottom:0!important}div#_search-results-target[_ngcontent-%COMP%]{padding:10px}._menu-page-footer[_ngcontent-%COMP%]{height:35px;overflow:hidden;display:flex;align-items:center;justify-content:center;color:var(--menu-content-font-color)}._menu-page-footer-branding[_ngcontent-%COMP%]{display:flex;align-items:center;overflow:hidden;padding-left:4px;cursor:pointer}._menu-page-footer-branding-img[_ngcontent-%COMP%]{max-height:46px;margin-left:-13px;margin-bottom:3px}._menu-page-footer-branding-text[_ngcontent-%COMP%]{font-size:12px;font-weight:600}._menu-page-footer-legal-links[_ngcontent-%COMP%]{height:100%;display:flex;align-items:center}._menu-page-footer-legal-links-item[_ngcontent-%COMP%]{margin-bottom:0!important;font-size:13px;margin-top:-1px;cursor:pointer;padding:0 3px}._menu-page-footer-legal-links-item[_ngcontent-%COMP%]:hover{text-decoration:underline}._category-item-list-items[_ngcontent-%COMP%]{padding:16px;display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.card-width-third[_ngcontent-%COMP%]{grid-column:span 2}.card-width-half[_ngcontent-%COMP%]{grid-column:span 3}.card-width-two-thirds[_ngcontent-%COMP%]{grid-column:span 4}.card-width-full[_ngcontent-%COMP%]{grid-column:span 6}._websection-header-group[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{width:fit-content;padding:3px 0;border-top:5px solid;border-color:var(--menu-page-section-header-border-color);font-size:24px}@media screen and (min-width:1300px){._menu-content[_ngcontent-%COMP%] ._category-item-list[_ngcontent-%COMP%]{width:1240px}}@media screen and (max-width:1023px){._category-item-list-items[_ngcontent-%COMP%]{grid-template-columns:repeat(4,1fr)}.card-width-third[_ngcontent-%COMP%], .card-width-half[_ngcontent-%COMP%], .card-width-two-thirds[_ngcontent-%COMP%], .card-width-full[_ngcontent-%COMP%]{grid-column:span 2}}@media screen and (max-width:479px){._category-item-list-items[_ngcontent-%COMP%]{grid-template-columns:repeat(2,1fr)}.card-width-third[_ngcontent-%COMP%], .card-width-half[_ngcontent-%COMP%], .card-width-two-thirds[_ngcontent-%COMP%]{grid-column:span 1}.card-width-full[_ngcontent-%COMP%]{grid-column:span 2}}.load-more-row[_ngcontent-%COMP%]{grid-column:1/-1}button.load-more-btn[_ngcontent-%COMP%]{width:100%;background-color:var(--menu-page-load-more-button-background);color:var(--menu-page-load-more-button-font-color);padding:13px}._websection-header-group[_ngcontent-%COMP%]{margin:10px 16px 0;
2color:var(--menu-sections-details-header-font-color);background-color:var(--menu-sections-details-header-background);align-items:center;padding:10px 0}._websection-header-group[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;flex-direction:column}._websection-header-group[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:125px;margin-right:10px}._order-context-bar[_ngcontent-%COMP%]{display:flex;align-items:center;gap:6px;height:38px;padding:0 14px;background-color:var(--menu-wanted-for-background);color:var(--menu-wanted-for-font-color)}._order-context-bar-segment[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;flex:1;font-size:14px;overflow:hidden;white-space:nowrap;cursor:pointer}._order-context-bar-segment[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis}._order-context-bar-segment[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:last-child:not(:first-child){flex-shrink:0}._order-context-bar-separator[_ngcontent-%COMP%]{font-size:13.5px;opacity:.5;flex-shrink:0}._order-context-bar-change[_ngcontent-%COMP%]{font-size:13.5px;font-weight:600;color:var(--menu-wanted-for-cta-font-color);white-space:nowrap;flex-shrink:0}@media screen and (max-width:1023px){._menu-content[_ngcontent-%COMP%]{padding-bottom:var(--menu-basket-footer-height)}._menu-header[_ngcontent-%COMP%]{min-height:69px;overflow-x:auto;overflow-y:hidden;width:100%}._menu-header-content[_ngcontent-%COMP%]{white-space:nowrap;flex-wrap:nowrap;justify-content:unset;max-height:100%;padding:10px}}._button-menu-cat[_ngcontent-%COMP%]{font-size:16px;font-weight:700;padding:13px 30px;border:1px solid;border-radius:12px;cursor:Pointer;text-decoration:none;border:0;background-color:var(--menu-nav-bar-search-background);color:var(--menu-nav-bar-search-font-color)}@media screen and (max-width:479px){._menu-header[_ngcontent-%COMP%]{height:45px;min-height:45px}._menu-header-content-item[_ngcontent-%COMP%] ._button-menu-cat[_ngcontent-%COMP%]{padding:8px 30px}._menu-header-content-item-link.search._button-menu-cat[_ngcontent-%COMP%]{padding:6px}._menu-header-content-item-link.search._button-menu-cat.disable-select.expanded[_ngcontent-%COMP%]{padding:3px 5px!important}._menu-content[_ngcontent-%COMP%]{overflow-y:unset}._menu-content[_ngcontent-%COMP%] ._category-item-list[_ngcontent-%COMP%]{justify-content:center}._menu-content-products-allergens[_ngcontent-%COMP%]{padding-bottom:0;text-align:center}p[_ngcontent-%COMP%]:last-of-type{margin-bottom:0}._menu-page-footer[_ngcontent-%COMP%]{font-size:12px}._websection-header-group[_ngcontent-%COMP%]{margin:5px 10px 2px;padding:5px}._websection-header-group[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{width:85px;margin-right:5px}._websection-header-group[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{font-size:13px}}@media screen and (max-width:1140px){._menu-content[_ngcontent-%COMP%] ._category-item-list[_ngcontent-%COMP%]{width:760px}}@media screen and (max-width:760px){._menu-content[_ngcontent-%COMP%] ._category-item-list[_ngcontent-%COMP%]{justify-content:center;width:100%}}._menu-layout[_ngcontent-%COMP%]{width:100%}._menu-layout--desktop[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr var(--basket-panel-width);gap:8px;padding:0 16px 16px;align-items:start}._menu-col[_ngcontent-%COMP%]{min-width:0}._menu-layout--desktop[_ngcontent-%COMP%] ._category-item-list[_ngcontent-%COMP%]{width:100%}._basket-panel-col[_ngcontent-%COMP%]{position:sticky;top:8px;align-self:start}._basket-panel-col[_ngcontent-%COMP%] .basket-container{border-radius:16px;padding:8px;max-height:calc(100vh - var(--basket-panel-top) - var(--loyalty-banner-height))}._store-mismatch-banner[_ngcontent-%COMP%]{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:10px 38px 10px 16px;font-size:14px;background-color:var(--menu-page-store-mismatch-banner-background);border-left:4px solid var(--menu-page-store-mismatch-banner-border-color);color:var(--menu-page-store-mismatch-banner-font-color)}._store-mismatch-banner-message[_ngcontent-%COMP%]{flex:1 1 260px;
2min-width:200px}._store-mismatch-banner-actions[_ngcontent-%COMP%]{display:flex;gap:8px;flex-wrap:wrap}._store-mismatch-banner-primary[_ngcontent-%COMP%]{border:0;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;background-color:var(--menu-page-store-mismatch-primary-cta-background);color:var(--menu-page-store-mismatch-primary-cta-font-color)}._store-mismatch-banner-secondary[_ngcontent-%COMP%]{border:1px solid var(--menu-page-store-mismatch-secondary-cta-border-color);border-radius:6px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;background-color:transparent;color:var(--menu-page-store-mismatch-secondary-cta-font-color)}._store-mismatch-banner-dismiss[_ngcontent-%COMP%]{position:absolute;top:8px;right:8px;border:0;background:none;cursor:pointer;font-size:15px;line-height:1;padding:4px;color:var(--menu-page-store-mismatch-banner-font-color);opacity:.6}@media(max-width:767px){._store-mismatch-banner-actions[_ngcontent-%COMP%]{width:100%}._store-mismatch-banner-actions[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1}}._menu-load-error-actions[_ngcontent-%COMP%]{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:12px}._menu-load-error-primary[_ngcontent-%COMP%]{border:0;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:600;cursor:pointer;background-color:var(--menu-page-load-error-primary-cta-background);color:var(--menu-page-load-error-primary-cta-font-color)}._menu-load-error-secondary[_ngcontent-%COMP%]{border:1px solid var(--menu-page-load-error-secondary-cta-border-color);border-radius:6px;padding:7px 14px;font-size:13px;font-weight:600;cursor:pointer;background-color:transparent;color:var(--menu-page-load-error-secondary-cta-font-color)}"]})}}return r})();var mr="How would you like it?",pr="Would you like to add a little bit more?";function Qt(r){let d=r.upselling;if(!d)return{mealChoice:null,upsellSection:null};let e={menu:r.menu,occasion:r.occasion,wantedTime:r.wantedTime,baseProductId:r.baseProductId,menuHelperService:r.menuHelperService,menuDealHelperService:r.menuDealHelperService,resolveImage:r.resolveImage},t=(d.Deals?.Ids??[]).map(_=>Ot(_,e)).filter(_=>!!_),o=t.length?{title:d.Deals?.Prompt??mr,options:t}:null,n=Pt(d.Products?.Ids??[],r.menu,r.occasion,r.wantedTime,r.menuVariantHelperService,r.resolveImage),c=n.length?{prompt:d.Products?.Prompt??pr,items:n}:null;return{mealChoice:o,upsellSection:c}}var hr=["ProductModal"];function gr(r,d){if(r&1){let e=k();i(0,"app-product",1),f("onClose",function(){h(e);let o=s();return g(o.close())}),a()}if(r&2){let e=s();S("occasion",e.orderOccasion)("productView",e.productView)}}var Gt=(()=>{class r extends z{static{this.PRODUCT_MODAL_ID="productsModal"}constructor(e,t,o,n,c,_,p,R,x,I,H,q){super(),this._router=e,this._seoService=t,this._menuService=o,this._siteService=n,this._basketService=c,this._activatedRoute=_,this._navigatorService=p,this._menuHelperService=R,this._menuVariantHelperService=x,this._whereAndWhen=I,this._menuDealHelperService=H,this._productShareService=q}ngAfterViewInit(){this.openProductWhenStoreChosen()}openProductWhenStoreChosen(){return O(this,null,function*(){let e=this._activatedRoute.snapshot.paramMap.get("occasion");e&&(this.orderOccasion=G[this._navigatorService.toTitleCase(this._navigatorService.changeTakeAwayToCollection(e))],!(yield this._whereAndWhen.ensureStoreChosen(this.orderOccasion)))||this._menuService.menu$.pipe(C(this.destroy$)).subscribe(t=>this.onMenuLoaded(t))})}ngOnDestroy(){super.ngOnDestroy(),this._seoSet&&this._seoService.restore()}close(){this._dialogRef.close()}onMenuLoaded(e){if(!e)return;this._menu=e,this.setRouteData();let t=this.findProduct(e);t&&(this._product=t,this.productView=this.buildProductView(t,e),this.setSEO(),this.openProductDialog(),this.handleAutoAddQueryParam())}setRouteData(){let e=this._activatedRoute.snapshot.paramMap,t=this._navigatorService.changeTakeAwayToCollection(e.get("occasion"));this.orderOccasion=G[this._navigatorService.toTitleCase(t)],this._group=e.get("displayGroup")}findProduct(e){let t=this._activatedRoute.snapshot.paramMap,o=t.get("productId"),n=e.Products.find(_=>_.Id===o);if(n)return n;let c=t.get("productName");return this._navigatorService.findProductByCleanName(e.Products,c)}handleAutoAddQueryParam(){if(this._autoAddHandled)return;let e=this._activatedRoute.snapshot.queryParamMap.get("add");if(!e||(this._autoAddHandled=!0,!this.isDirectlyAddable(this._product)))return;let t=this.parseAddQuantity(e),o=this._product;this._basketService.currentBasket$.pipe(oe(n=>!!n),_e(1),C(this.destroy$)).subscribe(()=>{this.autoAddDefaultVariant(o,t).catch(n=>{this.trackTrace(`Auto-add from shared link failed: ${n?.message??n}`,E.Warning)})})}isDirectlyAddable(e){if(!e||this.productView?.isHalfHalf||this.productView?.mealChoice||!this._menuVariantHelperService.isProductSimple(e.Variants))return!1;let t=e.Allergens;return!(t?.Contains?.length||t?.MayContain?.length)}parseAddQuantity(e){let t=parseInt(e,10);return Number.isFinite(t)&&t>0?t:1}autoAddDefaultVariant(e,t){return O(this,null,function*(){let o=this._menuVariantHelperService.getDefaultVariant(e.Variants)??e.Variants[0];if(!o)return;let n=o.Prices.find(_=>_.Occasion===this.orderOccasion)?.Amount??0,c={Modifiers:[],Product:{Item:o.Id,Quantity:t}};yield this.onSave({item:c,itemPrice:n,totalPrice:n*t})})}buildProductView(e,t){let o=t.Sections.find(_=>_.HalfHalfProductId===e.Id),n=o?this.buildHalfHalfProductView(e,t,o):this.buildRegularProductView(e,t),c=this.buildUpsellContent(e,t);return n.upsellSection=c.upsellSection,c.mealChoice&&(n.mealChoice=Z(K({},c.mealChoice),{onDealUpgrade:(_,p)=>this.onUpsellDealUpgrade(_,e.Id,p)}),n.isSimple=!1),n}buildHalfHalfProductView(e,t,o){let n=/\|\|.*!HH.*\|\|/i,c=structuredClone(t.Products.filter(x=>o.Products.includes(x.Id)&&x.HalfHalfGroupId)),_=c.flatMap(x=>x.Variants),p=[...new Set(_.flatMap(x=>x.OptionsPath))],R=t.ProductOptions.flatMap(x=>x.Options.filter(I=>p.includes(I.Id)&&n.test(I.Description)).map(I=>I.Id));
2return c.forEach(x=>{x.Variants=x.Variants.filter(I=>I.OptionsPath.every(H=>!R.includes(H)))}),_=c.flatMap(x=>x.Variants),{name:e.Name,description:e.Description,href:this.getProductViewHref(),imageSource:this.getMenuImageVisualAsset({data:e}),isInDeal:!1,allergens:this._menuHelperService.getAllergenSummary(e.Allergens),variants:_,products:c,upselling:e.Upselling,save:x=>this.onSave(x),isSimple:!1,isHalfHalf:!0,loyaltyBonusPoints:e.LoyaltyBonus?.Points??null}}buildRegularProductView(e,t){return{name:e.Name,description:e.Description,href:this.getProductViewHref(),imageSource:this.getMenuImageVisualAsset({data:e}),isInDeal:!1,allergens:this._menuHelperService.getAllergenSummary(e.Allergens),variants:e.Variants,upselling:e.Upselling,save:o=>this.onSave(o),isSimple:this._menuVariantHelperService.isProductSimple(e.Variants),loyaltyBonusPoints:e.LoyaltyBonus?.Points??null}}buildUpsellContent(e,t){return Qt({upselling:e.Upselling,menu:t,occasion:this.orderOccasion,wantedTime:de(this.orderOccasion,this._siteService.currentSite,this._basketService.basket),baseProductId:e.Id,menuHelperService:this._menuHelperService,menuDealHelperService:this._menuDealHelperService,menuVariantHelperService:this._menuVariantHelperService,resolveImage:o=>this.getMenuImageVisualAsset({data:o})})}onUpsellDealUpgrade(e,t,o){this._skipAfterClosedRedirect=!0;let n=this._activatedRoute.snapshot.paramMap.get("location"),c=this._navigatorService.generateRoutePath(n,this.orderOccasion,D.Menu,this._group,e.Name,null,e.Id);this.close(),this._router.navigateByUrl(c,{state:{upsellProductId:t,upsellSelection:o}})}onSave(e){return O(this,null,function*(){if(!e)return;let t=yield this._basketService.addProductToBasket(e.item,this.productView.name,this._group,e.itemPrice);if(ze.isSuccessResponse(t)){for(let o of e.selectedUpsellProducts??[]){if(!o.isProductSimple)continue;let n=yield this._basketService.addProductToBasket({Modifiers:[],Product:{Item:o.id,Quantity:1}},o.name,this._group,o.price);ze.isSuccessResponse(n)||this.trackTrace(`Product upsell add failed for ${o.name}`,E.Warning)}this.close()}})}getProductViewHref(){let e=this._activatedRoute.snapshot.paramMap.get("location");return this._navigatorService.generateRoutePath(e,this.orderOccasion,D.Menu,this._group)}setSEO(){this._seoService.updateProductSeoTitleAndDescription(this._siteService.currentSite,this.orderOccasion,this._group,this.productView);let e=this.buildProductCanonicalUrl();e&&this._seoService.setCanonical(e),this._seoSet=!0}buildProductCanonicalUrl(){if(!this._product||!this._menu)return null;let e=this._menu.Sections.find(o=>o.Products?.includes(this._product.Id));if(!e)return null;let t=(e.Products??[]).map(o=>this._menu.Products.find(n=>n.Id===o)).filter(Boolean).map(o=>({id:o.Id,name:o.Name}));return this._productShareService.buildShareLink(e.Name,this._product.Name,this._product.Id,t)}openProductDialog(){let e={height:this.isMobile&&!this.productView.isSimple?"100%":"",panelClass:["custom-dialog-two-container","product-modal"],width:this.isTablet?"100%":"750px",ariaModal:!1};this.productView.isSimple&&(e.panelClass=[...e.panelClass,"is-simple"],e.width=this.isTablet?"100%":"430px"),this._dialogRef=this.openDialog(this._productModal,r.PRODUCT_MODAL_ID,e),this._dialogRef.afterClosed().pipe(C(this.destroy$)).subscribe(()=>{if(this._skipAfterClosedRedirect){this._skipAfterClosedRedirect=!1,this.resetSEO();return}let t=this._activatedRoute.snapshot.params;if(t&&(t.productId||t.productName)){let o=this._navigatorService.generateRoutePath(t.location,t.occasion,D.Menu,t.displayGroup);this._router.navigate([o])}this.resetSEO()})}resetSEO(){this._seoSet&&(this._seoService.restore(),this._seoSet=!1),this._seoSet=!1}static{this.\u0275fac=function(t){return new(t||r)(m(Y),m(pe),m(J),m(ue),m(X),m(se),m(ee),m(Oe),m(me),m(te),m(he),m(Re))}}static{this.\u0275cmp=W({type:r,selectors:[["ng-component"]],viewQuery:function(t,o){if(t&1&&ae(hr,5),t&2){let n;B(n=L())&&(o._productModal=n.first)}},features:[N],decls:2,vars:0,consts:[["ProductModal",""],[3,"onClose","occasion","productView"]],template:function(t,o){t&1&&ie(0,gr,1,2,"ng-template",null,0,j)},dependencies:[Mt],encapsulation:2})}}return r})();var _r=["ProductModal"];function fr(r,d){if(r&1){let e=k();
2i(0,"app-deals",1),f("close",function(){h(e);let o=s();return g(o.close())}),a()}if(r&2){let e=s();S("deal",e.deal)("occasion",e.orderOccasion)("group",e.group)("upsellProductId",e.upsellProductId)("upsellSelection",e.upsellSelection)}}var Kt=(()=>{class r extends z{static{this.DEALS_MODAL_ID="dealsModal"}constructor(e,t,o,n,c,_){super(),this._router=e,this._seoService=t,this._menuService=o,this._activatedRoute=n,this._navigatorService=c,this._whereAndWhen=_}ngAfterViewInit(){let e=this._router.lastSuccessfulNavigation()?.extras?.state;this.upsellProductId=e?.upsellProductId,this.upsellSelection=e?.upsellSelection,this.updatePageSEO(!0),this.openDealWhenStoreChosen()}openDealWhenStoreChosen(){return O(this,null,function*(){let e=this._activatedRoute.snapshot.paramMap.get("occasion");e&&(this.orderOccasion=G[this._navigatorService.toTitleCase(this._navigatorService.changeTakeAwayToCollection(e))],(yield this._whereAndWhen.ensureStoreChosen(this.orderOccasion))&&this._menuService.menu$.pipe(C(this.destroy$)).subscribe(t=>{if(!t)return;let o=this._navigatorService.changeTakeAwayToCollection(this._activatedRoute.snapshot.paramMap.get("occasion"));this.orderOccasion=G[this._navigatorService.toTitleCase(o)],this.group=this._activatedRoute.snapshot.paramMap.get("displayGroup"),this.deal=t.Deals.find(n=>n.Id===this._activatedRoute.snapshot.paramMap.get("dealId")),this.updatePageSEO(!1),this.openDealsModal()}))})}ngOnDestroy(){super.ngOnDestroy(),this._seoSet&&this._seoService.restore()}close(){this._dialogRef.close()}updatePageSEO(e){if(!e){let o=this.tenant.PageSeos.find(n=>n.PageName?.toLowerCase()==="deals");if(o){this._seoSet=!0,this._seoService.updateTitle(this.replaceSEOStrings(o.Title)),this._seoService.updateDescription(this.replaceSEOStrings(o.Description));return}}let t=this.replaceSEOStrings("{{dealName}} - {{TenantWebsiteName}}");this._seoService.updateTitle(t),this._seoService.updateDescription("{{TenantWebsiteName}} fresh food prepared daily"),this._seoSet=!0}replaceSEOStrings(e){let t="";return this.deal?.Name&&e.includes("{{dealName}}")&&(t=t?t.replace("{{dealName}}",this.deal.Name):e.replace("{{dealName}}",this.deal.Name)),t??e}openDealsModal(){let e={height:this.isMobile?"100%":"",panelClass:["custom-dialog-two-container","product-modal"],width:this.isTablet?"100%":"750px",ariaModal:!1};this._dialogRef=this.openDialog(this._productModal,r.DEALS_MODAL_ID,e),this._dialogRef.afterClosed().pipe(C(this.destroy$)).subscribe(()=>{let t=this._activatedRoute.snapshot.params;if(t&&(t.dealId||t.productName)){let o=this._navigatorService.generateRoutePath(t.location,t.occasion,D.Menu,t.displayGroup);this._router.navigate([o])}})}static{this.\u0275fac=function(t){return new(t||r)(m(Y),m(pe),m(J),m(se),m(ee),m(te))}}static{this.\u0275cmp=W({type:r,selectors:[["ng-component"]],viewQuery:function(t,o){if(t&1&&ae(_r,5),t&2){let n;B(n=L())&&(o._productModal=n.first)}},features:[N],decls:2,vars:0,consts:[["ProductModal",""],[3,"close","deal","occasion","group","upsellProductId","upsellSelection"]],template:function(t,o){t&1&&ie(0,fr,1,5,"ng-template",null,0,j)},dependencies:[It],encapsulation:2})}}return r})();var ci=[{path:":displayGroup",component:Ut,resolve:{siteResolver:_t},children:[{path:":productName/:productId",component:Gt},{path:"offers/:productName/:dealId",component:Kt}]},{path:"",redirectTo:"all",pathMatch:"full"}];export{ci as MENU_ROUTES};
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.