mealz-components 2.8.0 → 2.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{N as h}from"../assets/no-shadow-element-CXVMZH9n.js";import{m as e}from"../assets/mealz-sdk-CnvUgy3V.js";class c extends h{constructor(){super(),this.liked=null,this.likeId="",this.recipeId="",this.analyticsPath="",this.subscriptions=[],this.styleURL=new URL("./like-button/like-button.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.subscriptions.push(e.recipes.recipeLikeUpdated().subscribe(({id:t,isPast:i})=>{t===this.recipeId&&(this.liked=!i,this.updateDOM())}))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(t=>t.unsubscribe())}render(){this.button=this.querySelector(".mealz-like-button"),this.button&&(this.icon=this.button.querySelector(".mealz-like-button__icon"),this.hearts=Array.from(this.button.querySelectorAll(".mealz-like-button__icon img")),!(!this.icon||!this.hearts)&&(this.getInitialStatus(),this.button.addEventListener("click",t=>{t.stopPropagation(),this.toggle()})))}getInitialStatus(){var a;const t=(a=this.attributes["starting-data"])==null?void 0:a.value;if(!t)return;const{id:i,recipeId:l,liked:s,path:n,likeHidden:r}=JSON.parse(t);this.likeId=i,this.recipeId=l,this.liked=s!==void 0?s:!1,this.analyticsPath=n,r&&this.initHiddenLike(),this.removeAttribute("starting-data")}initHiddenLike(){this.subscriptions.push(e.recipes.getRecipeLike(this.recipeId).subscribe(t=>{this.likeId=t.id,this.liked=t.attributes["is-past"]===!1,this.updateDOM(),this.button.classList.remove("hidden")}))}toggle(){e.recipes.updateRecipeLike(this.likeId,this.recipeId,this.liked,this.analyticsPath)}updateDOM(){this.button&&(this.icon.classList.toggle("fill",this.liked),this.hearts[0].classList.toggle("active",!this.liked),this.hearts[1].classList.toggle("active",this.liked))}}customElements.get("mealz-like-button")||customElements.define("mealz-like-button",c);
1
+ import{N as c}from"../assets/no-shadow-element-CXVMZH9n.js";import{m as e}from"../assets/mealz-sdk-CnvUgy3V.js";class o extends c{constructor(){super(),this.liked=null,this.likeId="",this.recipeId="",this.analyticsPath="",this.categoryId="",this.subscriptions=[],this.styleURL=new URL("./like-button/like-button.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.subscriptions.push(e.recipes.recipeLikeUpdated().subscribe(({id:t,isPast:i})=>{t===this.recipeId&&(this.liked=!i,this.updateDOM())}))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(t=>t.unsubscribe())}render(){this.button=this.querySelector(".mealz-like-button"),this.button&&(this.icon=this.button.querySelector(".mealz-like-button__icon"),this.hearts=Array.from(this.button.querySelectorAll(".mealz-like-button__icon img")),!(!this.icon||!this.hearts)&&(this.getInitialStatus(),this.button.addEventListener("click",t=>{t.stopPropagation(),this.toggle()})))}getInitialStatus(){var a;const t=(a=this.attributes["starting-data"])==null?void 0:a.value;if(!t)return;const{id:i,recipeId:l,liked:s,path:n,likeHidden:r,categoryId:h}=JSON.parse(t);this.likeId=i,this.recipeId=l,this.liked=s!==void 0?s:!1,this.analyticsPath=n,this.categoryId=h||"",r&&this.initHiddenLike(),this.removeAttribute("starting-data")}initHiddenLike(){this.subscriptions.push(e.recipes.getRecipeLike(this.recipeId).subscribe(t=>{this.likeId=t.id,this.liked=t.attributes["is-past"]===!1,this.updateDOM(),this.button.classList.remove("hidden")}))}toggle(){e.recipes.updateRecipeLike(this.likeId,this.recipeId,this.liked,this.analyticsPath,this.categoryId)}updateDOM(){this.button&&(this.icon.classList.toggle("fill",this.liked),this.hearts[0].classList.toggle("active",!this.liked),this.hearts[1].classList.toggle("active",this.liked))}}customElements.get("mealz-like-button")||customElements.define("mealz-like-button",o);
@@ -1 +1 @@
1
- import"../planner-form/planner-form.min.js";import{M as p}from"../planner-abandon-modal/planner-abandon-modal.min.js";import{N as M,O as g}from"../../assets/no-shadow-element-CXVMZH9n.js";import{m as s}from"../../assets/mealz-sdk-CnvUgy3V.js";import{g as l,f}from"../helpers/menu-title.min.js";import{t as r}from"../../assets/take-BgFJXP4B.js";import{o as a}from"../../assets/of-D0UErknW.js";import{f as b}from"../../assets/from-uSPfq2sN.js";import{s as o}from"../../assets/switchMap-DC1sJvd8.js";import{m as C}from"../../assets/map-ND1NsJPC.js";import"../../assets/property-BXpY_hgs.js";import"../../assets/empty-Dy0Wgz_B.js";import"../../assets/OperatorSubscriber-CvNNPrIM.js";import"../../assets/innerFrom-BldbX_fT.js";import"../../assets/executeSchedule-CEDvgTzM.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-LLTnDXid.js";import"../../onboarding/events.min.js";import"../../assets/args-upHwW4Wh.js";import"../../assets/isScheduler-fbUJB_yC.js";class T extends M{constructor(){super(...arguments),this.menuId="",this.isCustomMenu=!1,this.guests=4,this.storeId="",this.recipeIds=[],this.hasCustomRecipes=!1,this.currentMenuPageUrl="",this.recipeImgs=[],this.analyticsPath="/meals-planner/dashboard",this.isRedirecting=!1,this.menuTitle="",this.shouldUpdateMenuTitleOnRedirect=!1}get selectors(){return{cancelMenuButton:".mealz-planner-menu-option__cancel",menuOption:".mealz-planner-menu-option__container",navigationArrow:".mealz-planner-menu-option__redirect"}}connectedCallback(){super.connectedCallback(),this.initStartingData(),this.initSelectors(),this.addEventListeners(),this.syncGuestsFromStorage(),this.listenToPlannerGuestsChanges()}disconnectedCallback(){this.plannerGuestsChangeHandler&&document.removeEventListener("plannerGuestsChanged",this.plannerGuestsChangeHandler),super.disconnectedCallback()}initStartingData(){const e=this.getAttribute("starting-data");if(e){try{const{isCustomMenu:t,guestsPreference:n,storeId:i,hasCustomRecipes:d,menuId:h,recipesId:u,currentMenuPageUrl:c,recipeImgs:m}=JSON.parse(e);this.isCustomMenu=!!t,this.storeId=i??this.storeId,this.hasCustomRecipes=!!d,this.menuId=h??this.menuId,this.currentMenuPageUrl=c??this.currentMenuPageUrl,this.recipeImgs=m||[],this.recipeIds=Array.isArray(u)?u:[],typeof n=="number"&&(this.guests=n)}catch(t){console.error("Failed to parse starting-data:",t)}this.removeAttribute("starting-data"),this.initMenuTitle(),this.syncGuestsFromStorage()}}initMenuTitle(){s.planner.fetchMenuTitle().pipe(r(1)).subscribe(e=>{this.menuTitle=e||""})}syncGuestsFromStorage(){const e=l();typeof e=="number"&&(this.guests=e)}listenToPlannerGuestsChanges(){this.plannerGuestsChangeHandler=e=>{var n;const t=e;(n=t.detail)!=null&&n.guests&&(this.guests=t.detail.guests)},document.addEventListener("plannerGuestsChanged",this.plannerGuestsChangeHandler)}addEventListeners(){this.addClickListener("cancelMenuButton",()=>this.cancelMenu()),this.addClickListener("menuOption",()=>this.handleMenuOptionClick())}handleMenuOptionClick(){const e=this.isCustomMenu?"custom":"from-featured";this.showLoader(),this.sendModeSelectEvent(e),localStorage.setItem("_miam/isCustomMenu",this.isCustomMenu.toString()),this.proceedAfterHookAndOptionalModal()}sendModeSelectEvent(e){s.analytics.sendEvent("planner.mode.select",this.analyticsPath,{mode:e,guests:this.guests},"meals-planner-home")}isFromPlannerEntry(){return!!document.querySelector("mealz-planner-entry")}proceedAfterHookAndOptionalModal(){if(this.isFromPlannerEntry()){localStorage.setItem("_mealz/planner/from-entry","true"),!this.isCustomMenu&&this.recipeIds.length>0&&(this.hasCustomRecipes||(this.shouldUpdateMenuTitleOnRedirect=!0,this.menuTitle="")),this.redirectToMenu();return}else localStorage.removeItem("_mealz/planner/from-entry");!this.isCustomMenu||this.recipeIds.length===0?this.displayPlannerForm():this.redirectToMenu()}displayPlannerForm(){const e=document.querySelector(".mealz-planner-dashboard");e&&(e.style.display="none");let t=document.querySelector("mealz-planner-form");t||(t=document.createElement("mealz-planner-form"),t.guests=this.guests,t.isCustomMenu=this.isCustomMenu,t.hideBudget=!this.isCustomMenu||!this.storeId,t.currentMenuModal=!this.isCustomMenu&&this.hasCustomRecipes,t.menuId=this.menuId,t.addEventListener("displayDashboard",()=>this.displayDashboard()),t.addEventListener("generateMenu",()=>{this.redirectToMenu()}),e?e.insertAdjacentElement("afterend",t):document.body.appendChild(t))}updateMenuTitle(){return this.menuTitle.length>0?a(null):b(f()).pipe(o(e=>(this.menuTitle=e,s.planner.updateMenu(this.menuId,{attributes:{title:e}}))))}ensureMenuForRedirect(){if(this.menuId)return a(null);const e=l()??this.guests??4;return s.planner.createMenu().pipe(r(1),o(t=>{const n=t==null?void 0:t.id;return n?(this.menuId=n,this.menuTitle="",this.shouldUpdateMenuTitleOnRedirect=!this.isCustomMenu&&this.recipeIds.length>0,s.planner.updateMenu(n,{attributes:{guests:e}}).pipe(r(1),C(()=>null))):new g(i=>{i.error(new Error("createMenu did not return a menu id"))})}))}redirectToMenu(){this.isRedirecting||(this.isRedirecting=!0,this.ensureMenuForRedirect().pipe(r(1)).subscribe({next:()=>{const e=this.shouldUpdateMenuTitleOnRedirect&&!this.isCustomMenu;this.shouldUpdateMenuTitleOnRedirect=!1,(e?this.updateMenuTitle():a(null)).pipe(r(1)).subscribe({next:()=>{this.sendRedirectToMenuEvent();const n=this.getCurrentMenuUrlWithInitialView();n&&n!==globalThis.location.href&&(globalThis.location.href=n)},error:n=>{console.error("Error updating menu title:",n),this.sendRedirectToMenuEvent();const i=this.getCurrentMenuUrlWithInitialView();i&&i!==globalThis.location.href&&(globalThis.location.href=i)}})},error:e=>{console.error("Error preparing planner menu before redirect:",e),this.isRedirecting=!1}}))}sendRedirectToMenuEvent(){const e=this.getCurrentMenuUrlWithInitialView(),t=new CustomEvent("redirectToMenu",{bubbles:!0,composed:!0,detail:{url:e}});this.dispatchEvent(t)}getCurrentMenuUrlWithInitialView(){const e=this.currentMenuPageUrl;if(!e)return e;const t=this.isFromPlannerEntry()&&!this.isCustomMenu&&this.recipeIds.length>0;try{const n=new URL(e,globalThis.location.origin);return t&&n.searchParams.set("fromFeatured","true"),n.toString()}catch{if(!t)return e;const n=e.includes("?")?"&":"?";return`${e}${n}fromFeatured=true`}}displayDashboard(){const e=document.querySelector(".mealz-planner-dashboard");e&&(e.style.display="block")}cancelMenu(){const e=new p;e.addEventListener("resetMenu",()=>this.resetMenu()),e.displayPlannerAbandonModal()}resetMenu(){const e=s.planner.deleteMenu(this.menuId);this.resetMenuEvent(),e.pipe(r(1)).subscribe(()=>{globalThis.location.reload()})}replaceMenu(){this.resetMenuEvent(),s.planner.deleteMenu(this.menuId).pipe(r(1),o(()=>s.planner.createMenu()),r(1)).subscribe(e=>{this.menuId=e.id,this.shouldUpdateMenuTitleOnRedirect=!0,this.menuTitle="",this.proceedAfterHookAndOptionalModal()})}keepMenu(){this.redirectToMenu()}showLoader(){const e=this.querySelector(this.selectors.navigationArrow);if(e){const t=document.createElement("div");t.className="mealz-ds-loader mealz-planner-menu-option__loader",e.replaceWith(t)}}resetMenuEvent(){s.analytics.sendEvent("planner.reset",this.analyticsPath,{})}}customElements.get("mealz-planner-menu-option")||customElements.define("mealz-planner-menu-option",T);
1
+ import"../planner-form/planner-form.min.js";import{M}from"../planner-abandon-modal/planner-abandon-modal.min.js";import{N as g,O as f}from"../../assets/no-shadow-element-CXVMZH9n.js";import{m as s}from"../../assets/mealz-sdk-CnvUgy3V.js";import{g as d,f as b}from"../helpers/menu-title.min.js";import{t as r}from"../../assets/take-BgFJXP4B.js";import{o}from"../../assets/of-D0UErknW.js";import{f as C}from"../../assets/from-uSPfq2sN.js";import{s as l}from"../../assets/switchMap-DC1sJvd8.js";import{m as y}from"../../assets/map-ND1NsJPC.js";import"../../assets/property-BXpY_hgs.js";import"../../assets/empty-Dy0Wgz_B.js";import"../../assets/OperatorSubscriber-CvNNPrIM.js";import"../../assets/innerFrom-BldbX_fT.js";import"../../assets/executeSchedule-CEDvgTzM.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-LLTnDXid.js";import"../../onboarding/events.min.js";import"../../assets/args-upHwW4Wh.js";import"../../assets/isScheduler-fbUJB_yC.js";class T extends g{constructor(){super(...arguments),this.menuId="",this.isCustomMenu=!1,this.guests=4,this.storeId="",this.recipeIds=[],this.hasCustomRecipes=!1,this.currentMenuPageUrl="",this.recipeImgs=[],this.analyticsPath="/meals-planner/dashboard",this.isRedirecting=!1,this.menuTitle="",this.shouldUpdateMenuTitleOnRedirect=!1}get selectors(){return{cancelMenuButton:".mealz-planner-menu-option__cancel",menuOption:".mealz-planner-menu-option__container",navigationArrow:".mealz-planner-menu-option__redirect"}}connectedCallback(){super.connectedCallback(),this.initStartingData(),this.initSelectors(),this.addEventListeners(),this.syncGuestsFromStorage(),this.listenToPlannerGuestsChanges()}disconnectedCallback(){this.plannerGuestsChangeHandler&&document.removeEventListener("plannerGuestsChanged",this.plannerGuestsChangeHandler),super.disconnectedCallback()}initStartingData(){const e=this.getAttribute("starting-data");if(e){try{const{isCustomMenu:t,guestsPreference:n,storeId:i,hasCustomRecipes:h,menuId:c,recipesId:u,currentMenuPageUrl:m,recipeImgs:p,plannerEntryVariant:a}=JSON.parse(e);this.isCustomMenu=!!t,this.storeId=i??this.storeId,this.hasCustomRecipes=!!h,this.menuId=c??this.menuId,this.currentMenuPageUrl=m??this.currentMenuPageUrl,this.recipeImgs=p||[],this.recipeIds=Array.isArray(u)?u:[],typeof n=="number"&&(this.guests=n),typeof a=="string"&&a.length>0&&(this.plannerEntryVariant=a)}catch(t){console.error("Failed to parse starting-data:",t)}this.removeAttribute("starting-data"),this.initMenuTitle(),this.syncGuestsFromStorage()}}initMenuTitle(){s.planner.fetchMenuTitle().pipe(r(1)).subscribe(e=>{this.menuTitle=e||""})}syncGuestsFromStorage(){const e=d();typeof e=="number"&&(this.guests=e)}listenToPlannerGuestsChanges(){this.plannerGuestsChangeHandler=e=>{var n;const t=e;(n=t.detail)!=null&&n.guests&&(this.guests=t.detail.guests)},document.addEventListener("plannerGuestsChanged",this.plannerGuestsChangeHandler)}addEventListeners(){this.addClickListener("cancelMenuButton",()=>this.cancelMenu()),this.addClickListener("menuOption",()=>this.handleMenuOptionClick())}handleMenuOptionClick(){const e=this.isCustomMenu?"custom":"from-featured";this.showLoader(),this.sendModeSelectEvent(e),localStorage.setItem("_miam/isCustomMenu",this.isCustomMenu.toString()),this.proceedAfterHookAndOptionalModal()}isFromPlannerEntry(){return!!document.querySelector("mealz-planner-entry")}proceedAfterHookAndOptionalModal(){if(this.isFromPlannerEntry()){localStorage.setItem("_mealz/planner/from-entry","true"),!this.isCustomMenu&&this.recipeIds.length>0&&(this.hasCustomRecipes||(this.shouldUpdateMenuTitleOnRedirect=!0,this.menuTitle="")),this.redirectToMenu();return}else localStorage.removeItem("_mealz/planner/from-entry");!this.isCustomMenu||this.recipeIds.length===0?this.displayPlannerForm():this.redirectToMenu()}displayPlannerForm(){const e=document.querySelector(".mealz-planner-dashboard");e&&(e.style.display="none");let t=document.querySelector("mealz-planner-form");t||(t=document.createElement("mealz-planner-form"),t.guests=this.guests,t.isCustomMenu=this.isCustomMenu,t.hideBudget=!this.isCustomMenu||!this.storeId,t.currentMenuModal=!this.isCustomMenu&&this.hasCustomRecipes,t.menuId=this.menuId,t.addEventListener("displayDashboard",()=>this.displayDashboard()),t.addEventListener("generateMenu",()=>{this.redirectToMenu()}),e?e.insertAdjacentElement("afterend",t):document.body.appendChild(t))}updateMenuTitle(){return this.menuTitle.length>0?o(null):C(b()).pipe(l(e=>(this.menuTitle=e,s.planner.updateMenu(this.menuId,{attributes:{title:e}}))))}ensureMenuForRedirect(){if(this.menuId)return o(null);const e=d()??this.guests??4;return s.planner.createMenu().pipe(r(1),l(t=>{const n=t==null?void 0:t.id;return n?(this.menuId=n,this.menuTitle="",this.shouldUpdateMenuTitleOnRedirect=!this.isCustomMenu&&this.recipeIds.length>0,s.planner.updateMenu(n,{attributes:{guests:e}}).pipe(r(1),y(()=>null))):new f(i=>{i.error(new Error("createMenu did not return a menu id"))})}))}redirectToMenu(){this.isRedirecting||(this.isRedirecting=!0,this.ensureMenuForRedirect().pipe(r(1)).subscribe({next:()=>{const e=this.shouldUpdateMenuTitleOnRedirect&&!this.isCustomMenu;this.shouldUpdateMenuTitleOnRedirect=!1,(e?this.updateMenuTitle():o(null)).pipe(r(1)).subscribe({next:()=>{this.sendRedirectToMenuEvent();const n=this.getCurrentMenuUrlWithInitialView();n&&n!==globalThis.location.href&&(globalThis.location.href=n)},error:n=>{console.error("Error updating menu title:",n),this.sendRedirectToMenuEvent();const i=this.getCurrentMenuUrlWithInitialView();i&&i!==globalThis.location.href&&(globalThis.location.href=i)}})},error:e=>{console.error("Error preparing planner menu before redirect:",e),this.isRedirecting=!1}}))}sendRedirectToMenuEvent(){const e=this.getCurrentMenuUrlWithInitialView(),t=new CustomEvent("redirectToMenu",{bubbles:!0,composed:!0,detail:{url:e}});this.dispatchEvent(t)}getCurrentMenuUrlWithInitialView(){const e=this.currentMenuPageUrl;if(!e)return e;const t=this.isFromPlannerEntry()&&!this.isCustomMenu&&this.recipeIds.length>0;try{const n=new URL(e,globalThis.location.origin);return t&&n.searchParams.set("fromFeatured","true"),n.toString()}catch{if(!t)return e;const n=e.includes("?")?"&":"?";return`${e}${n}fromFeatured=true`}}displayDashboard(){const e=document.querySelector(".mealz-planner-dashboard");e&&(e.style.display="block")}cancelMenu(){const e=new M;e.addEventListener("resetMenu",()=>this.resetMenu()),e.displayPlannerAbandonModal()}resetMenu(){const e=s.planner.deleteMenu(this.menuId);this.resetMenuEvent(),e.pipe(r(1)).subscribe(()=>{globalThis.location.reload()})}replaceMenu(){this.resetMenuEvent(),s.planner.deleteMenu(this.menuId).pipe(r(1),l(()=>s.planner.createMenu()),r(1)).subscribe(e=>{this.menuId=e.id,this.shouldUpdateMenuTitleOnRedirect=!0,this.menuTitle="",this.proceedAfterHookAndOptionalModal()})}keepMenu(){this.redirectToMenu()}showLoader(){const e=this.querySelector(this.selectors.navigationArrow);if(e){const t=document.createElement("div");t.className="mealz-ds-loader mealz-planner-menu-option__loader",e.replaceWith(t)}}resetMenuEvent(){s.analytics.sendEvent("planner.reset",this.analyticsPath,{})}sendModeSelectEvent(e){const t={mode:e,guests:this.guests};this.plannerEntryVariant!==void 0&&(t.variant=this.plannerEntryVariant),s.analytics.sendEvent("planner.mode.select",this.analyticsPath,t,"meals-planner-home")}}customElements.get("mealz-planner-menu-option")||customElements.define("mealz-planner-menu-option",T);
@@ -1 +1 @@
1
- .mealz-planner-entry__content{display:flex;flex-direction:column;width:100%;box-sizing:border-box;padding:24px 80px 0}@media (max-width: 1025px){.mealz-planner-entry__content{position:relative;padding:24px 24px 0}}@media (max-width: 700px){.mealz-planner-entry__content{padding:24px 16px 0}}.mealz-planner-entry__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;width:100%}.mealz-planner-entry__header-left{display:flex;align-items:center;gap:8px}.mealz-planner-entry__title{margin:0 12px 0 0}.mealz-planner-entry__stepper{display:flex;align-items:center;gap:4px}.mealz-planner-entry__stepper-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;border:1px solid var(--mealz-ds-color-primary, #24748f);border-radius:8px;background:transparent;cursor:pointer;color:var(--mealz-ds-color-neutral-black, #0f191f);transition:all .2s ease}.mealz-planner-entry__stepper-button:hover:not(:disabled){background:#24748f1a}.mealz-planner-entry__stepper-button:disabled{opacity:.5;cursor:not-allowed}.mealz-planner-entry__stepper-button--plus{background:var(--mealz-ds-color-primary, #24748f);border-color:var(--mealz-ds-color-primary, #24748f);color:#fff}.mealz-planner-entry__stepper-button--plus:hover:not(:disabled){background:var(--mealz-ds-color-primary-700, #1b596e);border-color:var(--mealz-ds-color-primary-700, #1b596e)}.mealz-planner-entry__stepper-value{display:flex;align-items:center;justify-content:center;gap:4px;padding:8px}.mealz-planner-entry__stepper-value picture,.mealz-planner-entry__stepper-value img{display:block;width:16px;height:16px}.mealz-planner-entry__help-link{white-space:nowrap}.mealz-planner-entry__hero{position:relative;overflow:hidden;border-radius:12px;background:#c8e5f0;box-shadow:0 4px 12px #0318201f;padding:24px;display:flex;justify-content:center}.mealz-planner-entry__hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background-v2.png);background-position:center;background-size:cover;pointer-events:none}.mealz-planner-entry__hero-overlays{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-1{position:absolute;bottom:0;right:0;filter:drop-shadow(-3px 6px 10px rgba(3,24,32,.18)) drop-shadow(0 14px 22px rgba(3,24,32,.08))}@media (max-width: 1300px){.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-1{display:none}}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-2{position:absolute;bottom:0;left:0;filter:drop-shadow(3px 6px 10px rgba(3,24,32,.18)) drop-shadow(0 14px 22px rgba(3,24,32,.08))}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-3{position:absolute;top:0;left:300px;filter:drop-shadow(0 8px 14px rgba(3,24,32,.16)) drop-shadow(0 18px 28px rgba(3,24,32,.07))}.mealz-planner-entry__hero-card{position:relative;display:flex;align-items:center;justify-content:center;min-height:220px;padding:0 24px;border-radius:12px;gap:32px;width:100%;max-width:900px;box-sizing:border-box;background:var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-entry__hero-left{display:flex;flex-shrink:0;flex-direction:column;align-items:center;gap:16px}.mealz-planner-entry__hero-badge img,.mealz-planner-entry__hero-title img{display:block;width:100%;height:auto}.mealz-planner-entry__hero-title{display:flex;flex-direction:column;align-items:flex-start}.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-desktop{display:block}.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-mobile{display:none}@media (max-width: 700px){.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-desktop{display:none}.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-mobile{display:block}}.mealz-planner-entry__hero-title-line,.mealz-planner-entry__hero-title-main,.mealz-planner-entry__hero-title-accent{display:block;color:var(--mealz-ds-color-neutral-black, #0f191f);text-transform:uppercase}.mealz-planner-entry__hero-title-line{font-family:Satoshi,sans-serif;font-size:24px;font-weight:700;line-height:24px}.mealz-planner-entry__hero-title-main{font-family:Satoshi,sans-serif;font-size:56px;font-weight:900;line-height:50px}.mealz-planner-entry__hero-title-accent{font-family:Fraiche,Satoshi,sans-serif;font-size:42px;font-weight:400;line-height:44px;color:var(--mealz-ds-color-primary, #24748f);text-transform:none}.mealz-planner-entry__hero-right{flex:1 1 0%;display:flex;flex-direction:column;min-width:0;gap:16px}.mealz-planner-entry__hero-description{text-align:center}.mealz-planner-entry__hero-description strong{font-weight:800}.mealz-planner-entry__hero-avatars-wrapper{display:flex;justify-content:center}.mealz-planner-entry__hero-avatars{justify-content:center}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar{width:80px;height:80px;border:2px solid var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar:not(:first-child){margin-left:-16px}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar-overflow{display:flex;align-items:center;justify-content:center;background:var(--miam-color-neutral-100, #f7f8f9)}.mealz-planner-entry__hero-actions{display:flex;align-items:center;justify-content:center}.mealz-planner-entry__hero-actions .mealz-planner-entry__stepper{margin-right:12px}.mealz-planner-entry__hero-option{display:block}.mealz-planner-entry__hero-cta{min-height:40px;white-space:nowrap}.mealz-planner-entry__banner{position:relative;background:#fff;border:1px solid var(--mealz-ds-color-border, #d9dde1);border-radius:12px;padding:16px;display:flex;gap:16px;overflow:hidden;box-shadow:0 4px 12px #0318201f}.mealz-planner-entry__banner:before{content:"";position:absolute;bottom:-176px;left:50%;transform:translate(-50%);width:1531px;height:282px;background:#e4edf1;border-radius:50%;z-index:0;pointer-events:none}.mealz-planner-entry__banner:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background.webp);background-size:cover;background-position:center;z-index:1;pointer-events:none}.mealz-planner-entry__options{position:relative;z-index:2;display:flex;gap:16px;width:100%}.mealz-planner-entry__options .mealz-planner-menu-option{height:100%}.mealz-planner-entry__options>*{flex:1 0 0}@media (max-width: 1025px){.mealz-planner-entry__hero{padding:16px}.mealz-planner-entry__hero:before{background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background-v2-mobile.png);background-position:left center}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-1,.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-2,.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-3{display:none}.mealz-planner-entry__hero-card{padding:20px}.mealz-planner-entry__hero-title-line{font-size:20px;line-height:20px}.mealz-planner-entry__hero-title-main{font-size:44px;line-height:40px}.mealz-planner-entry__hero-title-accent{font-size:34px;line-height:36px}.mealz-planner-entry__hero-right{margin-left:24px}.mealz-planner-entry__banner{padding:16px 0 48px;margin:0 -16px;border-radius:0}.mealz-planner-entry__banner:after{background-position:left center;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background-mobile.webp)}.mealz-planner-entry__help-link{position:absolute;bottom:16px;left:16px;z-index:2}.mealz-planner-entry__options{flex-wrap:nowrap;gap:8px;padding:0 16px;align-items:stretch;overflow-x:scroll;scrollbar-width:none;-ms-overflow-style:none;width:100%}.mealz-planner-menu-option .mealz-planner-menu-option__container{padding:12px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__redirect{position:static;width:40px;height:40px;padding:0 0 0 8px}.mealz-planner-entry__options::-webkit-scrollbar{display:none}}@media (max-width: 900px){.mealz-planner-entry__hero{padding:28px 24px 20px}.mealz-planner-entry__hero-card{flex-direction:column;align-items:center;gap:20px;max-width:560px;padding:44px 24px 24px}.mealz-planner-entry__hero-left{position:relative;width:100%;align-items:center;gap:0}.mealz-planner-entry__hero-badge{position:absolute;top:-56px}.mealz-planner-entry__hero-title{width:242px;align-items:center}.mealz-planner-entry__hero-right{display:flex;flex-direction:column;align-items:center;width:100%;margin-left:0}.mealz-planner-entry__hero-description{margin-bottom:16px;text-align:center}.mealz-planner-entry__hero-avatars-wrapper{margin-bottom:16px}.mealz-planner-entry__hero-actions{gap:12px}.mealz-planner-entry__hero-actions .mealz-planner-entry__stepper{margin-right:0}}@media (max-width: 607px){.mealz-planner-entry__content--variant-1{padding-top:0}.mealz-planner-entry__hero{margin:0 -20px;box-shadow:none;padding:24px 12px 12px;border-radius:0;box-sizing:border-box;align-items:flex-start}.mealz-planner-entry__hero-card{min-height:304px;max-width:352px;padding:30px 16px 24px;border-radius:5px;gap:0}.mealz-planner-entry__hero-left{width:100%;margin-bottom:0}.mealz-planner-entry__hero-right{max-width:none;margin-left:0}.mealz-planner-entry__hero-badge{top:-47px}.mealz-planner-entry__hero-title{width:241px}.mealz-planner-entry__hero-description{margin-bottom:12px;font-size:16px;line-height:24px;text-align:center}.mealz-planner-entry__hero-avatars-wrapper{width:100%;justify-content:center;overflow:visible;margin-bottom:18px;padding-bottom:0}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar{width:64px;height:64px}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar:not(:first-child){margin-left:-18px}.mealz-planner-entry__hero-actions{width:100%;flex-direction:row;justify-content:center;align-items:center;gap:12px}.mealz-planner-entry__hero-actions .mealz-planner-entry__stepper{margin-right:0;margin-bottom:0}.mealz-planner-entry__hero-option{flex:0 0 auto}.mealz-planner-entry__hero-cta{min-width:136px;padding:8px 20px}.mealz-planner-entry__header{flex-direction:column;align-items:flex-start;gap:16px}.mealz-planner-entry__header-left{width:100%;justify-content:space-between}.mealz-planner-entry__title{font-size:20px;line-height:24px}.mealz-planner-entry__options .mealz-planner-menu-option{width:280px}}
1
+ .mealz-planner-entry__content{display:flex;flex-direction:column;width:100%;box-sizing:border-box;padding:24px 80px 0}@media (max-width: 1025px){.mealz-planner-entry__content{position:relative;padding:24px 24px 0}}@media (max-width: 700px){.mealz-planner-entry__content{padding:24px 16px 0}}.mealz-planner-entry__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;width:100%}.mealz-planner-entry__header-left{display:flex;align-items:center;gap:8px}.mealz-planner-entry__title{margin:0 12px 0 0}.mealz-planner-entry__stepper{display:flex;align-items:center;gap:4px}.mealz-planner-entry__stepper-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;border:1px solid var(--mealz-ds-color-primary, #24748f);border-radius:8px;background:transparent;cursor:pointer;color:var(--mealz-ds-color-neutral-black, #0f191f);transition:all .2s ease}.mealz-planner-entry__stepper-button:hover:not(:disabled){background:#24748f1a}.mealz-planner-entry__stepper-button:disabled{opacity:.5;cursor:not-allowed}.mealz-planner-entry__stepper-button--plus{background:var(--mealz-ds-color-primary, #24748f);border-color:var(--mealz-ds-color-primary, #24748f);color:#fff}.mealz-planner-entry__stepper-button--plus:hover:not(:disabled){background:var(--mealz-ds-color-primary-700, #1b596e);border-color:var(--mealz-ds-color-primary-700, #1b596e)}.mealz-planner-entry__stepper-value{display:flex;align-items:center;justify-content:center;gap:4px;padding:8px}.mealz-planner-entry__stepper-value picture,.mealz-planner-entry__stepper-value img{display:block;width:16px;height:16px}.mealz-planner-entry__help-link{white-space:nowrap}.mealz-planner-entry__hero{position:relative;overflow:hidden;border-radius:12px;background:#c8e5f0;box-shadow:0 4px 12px #0318201f;padding:24px;display:flex;justify-content:center}.mealz-planner-entry__hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background-v2.png);background-position:center;background-size:cover;pointer-events:none}.mealz-planner-entry__hero-overlays{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-1{position:absolute;bottom:0;right:0;filter:drop-shadow(-3px 6px 10px rgba(3,24,32,.18)) drop-shadow(0 14px 22px rgba(3,24,32,.08))}@media (max-width: 1300px){.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-1{display:none}}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-2{position:absolute;bottom:0;left:0;filter:drop-shadow(3px 6px 10px rgba(3,24,32,.18)) drop-shadow(0 14px 22px rgba(3,24,32,.08))}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-3{position:absolute;top:0;left:300px;filter:drop-shadow(0 8px 14px rgba(3,24,32,.16)) drop-shadow(0 18px 28px rgba(3,24,32,.07))}.mealz-planner-entry__hero-card{position:relative;display:flex;align-items:center;justify-content:center;min-height:220px;padding:0 24px;border-radius:12px;gap:32px;width:100%;max-width:900px;box-sizing:border-box;background:var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-entry__hero-left{display:flex;flex-shrink:0;flex-direction:column;align-items:center;gap:16px}.mealz-planner-entry__hero-badge img,.mealz-planner-entry__hero-title img{display:block;width:100%;height:auto}.mealz-planner-entry__hero-title{display:flex;flex-direction:column;align-items:flex-start}.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-desktop{display:block}.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-mobile{display:none}@media (max-width: 700px){.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-desktop{display:none}.mealz-planner-entry__hero-title .mealz-planner-entry__hero-title-mobile{display:block}}.mealz-planner-entry__hero-title-line,.mealz-planner-entry__hero-title-main,.mealz-planner-entry__hero-title-accent{display:block;color:var(--mealz-ds-color-neutral-black, #0f191f);text-transform:uppercase}.mealz-planner-entry__hero-title-line{font-family:Satoshi,sans-serif;font-size:24px;font-weight:700;line-height:24px}.mealz-planner-entry__hero-title-main{font-family:Satoshi,sans-serif;font-size:56px;font-weight:900;line-height:50px}.mealz-planner-entry__hero-title-accent{font-family:Fraiche,Satoshi,sans-serif;font-size:42px;font-weight:400;line-height:44px;color:var(--mealz-ds-color-primary, #24748f);text-transform:none}.mealz-planner-entry__hero-right{flex:1 1 0%;display:flex;flex-direction:column;min-width:0;gap:16px}.mealz-planner-entry__hero-description{text-align:center}.mealz-planner-entry__hero-description strong{font-weight:800}.mealz-planner-entry__hero-avatars-wrapper{display:flex;justify-content:center}.mealz-planner-entry__hero-avatars{justify-content:center}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar{width:80px;height:80px;border:2px solid var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar:not(:first-child){margin-left:-16px}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar-overflow{display:flex;align-items:center;justify-content:center;background:var(--miam-color-neutral-100, #f7f8f9)}.mealz-planner-entry__hero-actions{display:flex;align-items:center;justify-content:center}.mealz-planner-entry__hero-actions .mealz-planner-entry__stepper{margin-right:12px}.mealz-planner-entry__hero-option{display:block}.mealz-planner-entry__hero-cta{min-height:40px;white-space:nowrap}.mealz-planner-entry__banner{position:relative;background:#fff;border:1px solid var(--mealz-ds-color-border, #d9dde1);border-radius:12px;padding:16px;display:flex;gap:16px;overflow:hidden;box-shadow:0 4px 12px #0318201f}.mealz-planner-entry__banner:before{content:"";position:absolute;bottom:-176px;left:50%;transform:translate(-50%);width:1531px;height:282px;background:#e4edf1;border-radius:50%;z-index:0;pointer-events:none}.mealz-planner-entry__banner:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background.webp);background-size:cover;background-position:center;z-index:1;pointer-events:none}.mealz-planner-entry__options{position:relative;z-index:2;display:flex;gap:16px;width:100%}.mealz-planner-entry__options .mealz-planner-menu-option{height:100%}.mealz-planner-entry__options>*{flex:1 0 0}@media (max-width: 1025px){.mealz-planner-entry__hero{padding:16px}.mealz-planner-entry__hero:before{background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background-v2-mobile.png);background-position:left center}.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-1,.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-2,.mealz-planner-entry__hero-overlays .mealz-planner-entry__hero-overlay-3{display:none}.mealz-planner-entry__hero-card{padding:20px}.mealz-planner-entry__hero-title-line{font-size:20px;line-height:20px}.mealz-planner-entry__hero-title-main{font-size:44px;line-height:40px}.mealz-planner-entry__hero-title-accent{font-size:34px;line-height:36px}.mealz-planner-entry__hero-right{margin-left:24px}.mealz-planner-entry__banner{padding:16px 0 48px;margin:0 -16px;border-radius:0}.mealz-planner-entry__banner:after{background-position:left center;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background-mobile.webp)}.mealz-planner-entry__help-link{position:absolute;bottom:16px;left:16px;z-index:2}.mealz-planner-entry__options{flex-wrap:nowrap;gap:8px;padding:0 16px;align-items:stretch;overflow-x:scroll;scrollbar-width:none;-ms-overflow-style:none;width:100%}.mealz-planner-menu-option .mealz-planner-menu-option__container{padding:12px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__redirect{position:static;width:40px;height:40px;padding:0 0 0 8px}.mealz-planner-entry__options::-webkit-scrollbar{display:none}}@media (max-width: 900px){.mealz-planner-entry__hero{padding:28px 24px 20px}.mealz-planner-entry__hero-card{flex-direction:column;align-items:center;gap:20px;max-width:560px;padding:44px 24px 24px}.mealz-planner-entry__hero-left{position:relative;width:100%;align-items:center;gap:0}.mealz-planner-entry__hero-badge{position:absolute;top:-56px}.mealz-planner-entry__hero-title{width:242px;align-items:center}.mealz-planner-entry__hero-right{display:flex;flex-direction:column;align-items:center;width:100%;margin-left:0}.mealz-planner-entry__hero-description{margin-bottom:16px;text-align:center}.mealz-planner-entry__hero-avatars-wrapper{margin-bottom:16px}.mealz-planner-entry__hero-actions{gap:12px}.mealz-planner-entry__hero-actions .mealz-planner-entry__stepper{margin-right:0}}@media (max-width: 607px){.mealz-planner-entry__content--variant-1{padding-top:0}.mealz-planner-entry__hero{margin:0 -20px;box-shadow:none;padding:24px 12px 12px;border-radius:0;box-sizing:border-box;align-items:flex-start}.mealz-planner-entry__hero-card{min-height:304px;max-width:352px;padding:30px 16px 24px;border-radius:5px;gap:0}.mealz-planner-entry__hero-left{width:100%;margin-bottom:0}.mealz-planner-entry__hero-right{max-width:none;margin-left:0}.mealz-planner-entry__hero-badge{position:absolute;top:-47px}.mealz-planner-entry__hero-title{width:241px}.mealz-planner-entry__hero-description{margin-bottom:12px;font-size:16px;line-height:24px;text-align:center}.mealz-planner-entry__hero-avatars-wrapper{width:100%;justify-content:center;overflow:visible;margin-bottom:18px;padding-bottom:0}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar{width:64px;height:64px}.mealz-planner-entry__hero-avatars .mealz-planner-menu-option__recipe-avatar:not(:first-child){margin-left:-18px}.mealz-planner-entry__hero-actions{width:100%;flex-direction:row;justify-content:center;align-items:center;gap:12px}.mealz-planner-entry__hero-actions .mealz-planner-entry__stepper{margin-right:0;margin-bottom:0}.mealz-planner-entry__hero-option{flex:0 0 auto}.mealz-planner-entry__hero-cta{min-width:136px;padding:8px 20px}.mealz-planner-entry__header{flex-direction:column;align-items:flex-start;gap:16px}.mealz-planner-entry__header-left{width:100%;justify-content:space-between}.mealz-planner-entry__title{font-size:20px;line-height:24px}.mealz-planner-entry__options .mealz-planner-menu-option{width:280px}}
@@ -1 +1 @@
1
- import{N as S}from"../assets/no-shadow-element-CXVMZH9n.js";import{V as g}from"../assets/viewport-listener-khw7cTjd.js";import{h as f}from"../assets/session-handler-D-8RsM2Q.js";import{w as I,m as c}from"../assets/mealz-sdk-CnvUgy3V.js";import{f as u}from"../assets/filter-aZV_N5pj.js";import{s as w}from"../assets/switchMap-DC1sJvd8.js";import{c as y}from"../assets/combineLatest-BB01Px-W.js";import{t as d}from"../assets/take-BgFJXP4B.js";import"../assets/debounceTime-BeLayHXh.js";import"../assets/async-M7ziFu3t.js";import"../assets/OperatorSubscriber-CvNNPrIM.js";import"../assets/innerFrom-BldbX_fT.js";import"../assets/from-uSPfq2sN.js";import"../assets/executeSchedule-CEDvgTzM.js";import"../assets/mapOneOrManyArgs-BPsgfFRx.js";import"../assets/map-ND1NsJPC.js";import"../assets/args-upHwW4Wh.js";import"../assets/isScheduler-fbUJB_yC.js";import"../assets/empty-Dy0Wgz_B.js";class n{constructor(){this.trackedRecipes=new Map,this.hasScrolled=!1,this.scrollListener=null,this.cleanupInterval=null,this.MAX_RECIPES=1e3,this.CLEANUP_INTERVAL=300*1e3,this.handlePageUnload=()=>{this.destroy()},this.setupScrollListener(),this.startAutoCleanup(),this.setupPageUnloadListener()}static getInstance(){return n.instance||(n.instance=new n),n.instance}trackRecipeShow(e,t,s){const i=Date.now(),r=!this.trackedRecipes.get(e),o=this.hasScrolled;!r&&!o||(this.trackedRecipes.size>=this.MAX_RECIPES&&this.cleanOldRecipes(),this.trackedRecipes.set(e,i),window.mealzInternal.analytics.sendEvent("recipe.show",t,{recipe_id:e,category_id:s}))}cleanOldRecipes(){const t=Date.now()-3600*1e3;for(const[s,i]of this.trackedRecipes.entries())i<t&&this.trackedRecipes.delete(s)}clearAllRecipes(){this.trackedRecipes.clear()}destroy(){this.scrollListener&&(window.removeEventListener("scroll",this.scrollListener),this.scrollListener=null),window.removeEventListener("beforeunload",this.handlePageUnload),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.trackedRecipes.clear(),this.hasScrolled=!1,n.instance=null}setupScrollListener(){let e;this.scrollListener=()=>{this.hasScrolled=!0,clearTimeout(e),e=window.setTimeout(()=>{this.hasScrolled=!1},2e3)},window.addEventListener("scroll",this.scrollListener)}startAutoCleanup(){this.cleanupInterval=window.setInterval(()=>{this.cleanOldRecipes()},this.CLEANUP_INTERVAL)}setupPageUnloadListener(){window.addEventListener("beforeunload",this.handlePageUnload)}}class b extends S{constructor(){super(...arguments),this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.getInitialStatus(),this.listenInView(),I().then(()=>{this.setupSubscriptions()}).catch(e=>{console.warn("Failed to initialize SDK subscriptions:",e)})}setupSubscriptions(){this.subscriptions.push(c.basket.recipePricesInBasket$().subscribe(e=>{if(!e)return;const t=e.find(s=>s.id===this.recipeId);e.length>0&&t&&parseFloat(t.price)>0?(this.guests=c.basket.guestsForRecipe(t.id),this.updatedRecipeId=t.id,this.updateDOM()):this.render()}),this.setupPlannerMenuSubscription(),this.setupGuestUpdatesSubscription())}setupPlannerMenuSubscription(){return c.planner.menuPrice$.pipe(u(()=>this.planner&&!!this.recipeId),w(()=>y([c.planner.isRecipeInMenu$(this.recipeId).pipe(d(1))])),u(([e,t])=>e&&typeof t=="number"&&t>0)).subscribe(([e,t])=>{this.guests=t,this.updateGuestDisplay()})}setupGuestUpdatesSubscription(){return c.recipes.guestsUpdated().subscribe(e=>{e.recipeId===this.recipeId&&(this.guests=e.guests,this.updatedRecipeId=this.recipeId,this.updateDOM())})}disconnectedCallback(){var t;super.disconnectedCallback(),this.subscriptions.forEach(s=>s.unsubscribe()),(t=this.analyticsViewportObserver)==null||t.disconnect(),n.getInstance().cleanOldRecipes()}render(){this.recipeCardTop=this.querySelector(".mealz-recipe-card__top"),this.recipeCardCta=this.querySelector(".mealz-recipe-card__cta"),this.recipeCardTop&&(this.getInitialStatus(),this.recipeCardTop.addEventListener("click",()=>this.openDetails()),this.recipeCardCta&&this.recipeCardCta.addEventListener("click",()=>this.recipeCardCtaClick()))}listenInView(){this.analyticsViewportObserver=new g(this,()=>{this.sendAnalyticsShow()},{threshold:.8,debounce:1e3})}getInitialStatus(){var p;const e=(p=this.attributes["starting-data"])==null?void 0:p.value;if(!e)return;const{id:t,guests:s,path:i,categoryId:a,initialTabIndex:r,planner:o,sessionId:l,recipe:m}=JSON.parse(e);if(this.recipeId=t,this.analyticsPath=i,this.categoryId=a,this.guests=s,this.initialTabIndex=r,this.planner=o,this.recipe=m,f(l),!this.guests){this.guests=this.getGuests();const h=this.querySelector(".mealz-recipe-card__counter p");h&&(h.innerHTML=this.guests.toString())}this.removeAttribute("starting-data"),this.updateDOM()}openDetails(){c.recipes.openDetails(this.recipeId,this.guests,this.initialTabIndex,this.analyticsPath,this.planner,this.categoryId)}recipeCardCtaClick(){this.planner?this.handleCTAClickForPlanner():this.openDetails()}getGuests(){const e=localStorage.getItem("_miam/preferences/guests");if(e){const t=+e;if(!isNaN(t)&&t>0&&t<=30)return t}return 4}handleCTAClickForPlanner(){const e=this.querySelector("mealz-recipe-card-cta");if(!e)return;const t=e.querySelector(".mealz-recipe-card-cta__loader");if(t&&!t.classList.contains("hidden"))return;const s=e.getStatus();s==="add"?(this.showAddingToMenuState(e),this.addRecipeToMenu()):s==="in-menu"&&(this.showRemovingFromMenuState(e),this.removeRecipeFromMenu())}addRecipeToMenu(){var i,a;const e=document.querySelector("mealz-planner-recipe-suggestion"),t=(e==null?void 0:e.guests)||this.guests;this.guests=t,e&&(e.recipeId=this.recipeId);const s=document.querySelector("mealz-planner-current-menu");if(!s){const r=(a=(i=c.recipes)==null?void 0:i.productsPlannerByCategory$)==null?void 0:a.value,o=(r==null?void 0:r.toPickProducts)||[];c.planner.addRecipeToMenu(this.recipeId,t,!!c.pos.currentPos().value,o).pipe(d(1)).subscribe(()=>{this.removeRecipeCardLoader("add");const l=document.querySelector("mealz-planner-recipe-list");l==null||l.addRecipeCardToList(this.recipeId)});return}s.addRecipe(this.recipeId,t).subscribe(()=>{this.removeRecipeCardLoader("add"),e==null||e.addAndSelectNewSuggestion(this.recipe)})}removeRecipeFromMenu(){const e=document.querySelector("mealz-planner-recipe-suggestion");if(!e){c.planner.removeRecipeFromMenu(this.recipeId).pipe(d(1)).subscribe(()=>this.removeRecipeCardLoader("remove"));return}e.removeRecipe(this.recipeId).subscribe(()=>this.removeRecipeCardLoader("remove"))}showRemovingFromMenuState(e){const t=this.querySelector(".mealz-recipe-card-cta__loader"),s=e.querySelector("img.in-menu");t==null||t.classList.remove("hidden"),s==null||s.classList.add("hidden")}removeRecipeCardLoader(e){const t=this.querySelector("mealz-recipe-card-cta");if(!t)return;const s=this.querySelector(".mealz-recipe-card-cta"),i=this.querySelector(".mealz-recipe-card-cta__loader"),a=t.querySelector("img.add"),r=t.querySelector("img.in-menu");e==="add"?(i==null||i.classList.add("hidden"),s==null||s.classList.replace("primary","secondary"),r==null||r.classList.remove("hidden"),t.updateStatus("in-menu")):(i==null||i.classList.add("hidden"),s==null||s.classList.replace("secondary","primary"),a==null||a.classList.remove("hidden"),t.updateStatus("add"))}showAddingToMenuState(e){const t=this.querySelector(".mealz-recipe-card-cta__loader"),s=e.querySelector("img.add"),i=e.querySelector("img.in-menu");t==null||t.classList.remove("hidden"),s==null||s.classList.add("hidden"),i==null||i.classList.add("hidden")}updateDOM(){if(this.recipeId!==this.updatedRecipeId)return;const e=this.querySelector(".mealz-recipe-card__counter p");e&&(e.innerHTML=this.guests.toString())}updateGuestDisplay(){const e=this.querySelector(".mealz-recipe-card__counter p");e&&this.guests&&(e.innerHTML=this.guests.toString())}sendAnalyticsShow(){n.getInstance().trackRecipeShow(this.recipeId,this.analyticsPath,this.categoryId)}}customElements.get("mealz-recipe-card")||customElements.define("mealz-recipe-card",b);
1
+ import{N as S}from"../assets/no-shadow-element-CXVMZH9n.js";import{V as g}from"../assets/viewport-listener-khw7cTjd.js";import{h as f}from"../assets/session-handler-D-8RsM2Q.js";import{w as C,m as c}from"../assets/mealz-sdk-CnvUgy3V.js";import{f as u}from"../assets/filter-aZV_N5pj.js";import{s as I}from"../assets/switchMap-DC1sJvd8.js";import{c as w}from"../assets/combineLatest-BB01Px-W.js";import{t as d}from"../assets/take-BgFJXP4B.js";import"../assets/debounceTime-BeLayHXh.js";import"../assets/async-M7ziFu3t.js";import"../assets/OperatorSubscriber-CvNNPrIM.js";import"../assets/innerFrom-BldbX_fT.js";import"../assets/from-uSPfq2sN.js";import"../assets/executeSchedule-CEDvgTzM.js";import"../assets/mapOneOrManyArgs-BPsgfFRx.js";import"../assets/map-ND1NsJPC.js";import"../assets/args-upHwW4Wh.js";import"../assets/isScheduler-fbUJB_yC.js";import"../assets/empty-Dy0Wgz_B.js";class n{constructor(){this.trackedRecipes=new Map,this.hasScrolled=!1,this.scrollListener=null,this.cleanupInterval=null,this.MAX_RECIPES=1e3,this.CLEANUP_INTERVAL=300*1e3,this.handlePageUnload=()=>{this.destroy()},this.setupScrollListener(),this.startAutoCleanup(),this.setupPageUnloadListener()}static getInstance(){return n.instance||(n.instance=new n),n.instance}trackRecipeShow(e,t,s){const i=Date.now(),r=!this.trackedRecipes.get(e),o=this.hasScrolled;!r&&!o||(this.trackedRecipes.size>=this.MAX_RECIPES&&this.cleanOldRecipes(),this.trackedRecipes.set(e,i),window.mealzInternal.analytics.sendEvent("recipe.show",t,{recipe_id:e,category_id:s}))}cleanOldRecipes(){const t=Date.now()-3600*1e3;for(const[s,i]of this.trackedRecipes.entries())i<t&&this.trackedRecipes.delete(s)}clearAllRecipes(){this.trackedRecipes.clear()}destroy(){this.scrollListener&&(window.removeEventListener("scroll",this.scrollListener),this.scrollListener=null),window.removeEventListener("beforeunload",this.handlePageUnload),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.trackedRecipes.clear(),this.hasScrolled=!1,n.instance=null}setupScrollListener(){let e;this.scrollListener=()=>{this.hasScrolled=!0,clearTimeout(e),e=window.setTimeout(()=>{this.hasScrolled=!1},2e3)},window.addEventListener("scroll",this.scrollListener)}startAutoCleanup(){this.cleanupInterval=window.setInterval(()=>{this.cleanOldRecipes()},this.CLEANUP_INTERVAL)}setupPageUnloadListener(){window.addEventListener("beforeunload",this.handlePageUnload)}}class y extends S{constructor(){super(...arguments),this.subscriptions=[],this.handleTopClick=()=>this.openDetails(),this.handleCtaClick=()=>this.recipeCardCtaClick()}connectedCallback(){super.connectedCallback(),this.getInitialStatus(),this.listenInView(),C().then(()=>{this.setupSubscriptions()}).catch(e=>{console.warn("Failed to initialize SDK subscriptions:",e)})}setupSubscriptions(){this.subscriptions.push(c.basket.recipePricesInBasket$().subscribe(e=>{if(!e)return;const t=e.find(s=>s.id===this.recipeId);e.length>0&&t&&parseFloat(t.price)>0?(this.guests=c.basket.guestsForRecipe(t.id),this.updatedRecipeId=t.id,this.updateDOM()):this.render()}),this.setupPlannerMenuSubscription(),this.setupGuestUpdatesSubscription())}setupPlannerMenuSubscription(){return c.planner.menuPrice$.pipe(u(()=>this.planner&&!!this.recipeId),I(()=>w([c.planner.isRecipeInMenu$(this.recipeId).pipe(d(1))])),u(([e,t])=>e&&typeof t=="number"&&t>0)).subscribe(([e,t])=>{this.guests=t,this.updateGuestDisplay()})}setupGuestUpdatesSubscription(){return c.recipes.guestsUpdated().subscribe(e=>{e.recipeId===this.recipeId&&(this.guests=e.guests,this.updatedRecipeId=this.recipeId,this.updateDOM())})}disconnectedCallback(){var t;super.disconnectedCallback(),this.subscriptions.forEach(s=>s.unsubscribe()),(t=this.analyticsViewportObserver)==null||t.disconnect(),n.getInstance().cleanOldRecipes()}render(){this.recipeCardTop=this.querySelector(".mealz-recipe-card__top"),this.recipeCardCta=this.querySelector(".mealz-recipe-card__cta"),this.recipeCardTop&&(this.getInitialStatus(),this.recipeCardTop.removeEventListener("click",this.handleTopClick),this.recipeCardTop.addEventListener("click",this.handleTopClick),this.recipeCardCta&&(this.recipeCardCta.removeEventListener("click",this.handleCtaClick),this.recipeCardCta.addEventListener("click",this.handleCtaClick)))}listenInView(){this.analyticsViewportObserver=new g(this,()=>{this.sendAnalyticsShow()},{threshold:.8,debounce:1e3})}getInitialStatus(){var p;const e=(p=this.attributes["starting-data"])==null?void 0:p.value;if(!e)return;const{id:t,guests:s,path:i,categoryId:a,initialTabIndex:r,planner:o,sessionId:l,recipe:m}=JSON.parse(e);if(this.recipeId=t,this.analyticsPath=i,this.categoryId=a,this.guests=s,this.initialTabIndex=r,this.planner=o,this.recipe=m,f(l),!this.guests){this.guests=this.getGuests();const h=this.querySelector(".mealz-recipe-card__counter p");h&&(h.innerHTML=this.guests.toString())}this.removeAttribute("starting-data"),this.updateDOM()}openDetails(){c.recipes.openDetails(this.recipeId,this.guests,this.initialTabIndex,this.analyticsPath,this.planner,this.categoryId)}recipeCardCtaClick(){this.planner?this.handleCTAClickForPlanner():this.openDetails()}getGuests(){const e=localStorage.getItem("_miam/preferences/guests");if(e){const t=+e;if(!isNaN(t)&&t>0&&t<=30)return t}return 4}handleCTAClickForPlanner(){const e=this.querySelector("mealz-recipe-card-cta");if(!e)return;const t=e.querySelector(".mealz-recipe-card-cta__loader");if(t&&!t.classList.contains("hidden"))return;const s=e.getStatus();s==="add"?(this.showAddingToMenuState(e),this.addRecipeToMenu()):s==="in-menu"&&(this.showRemovingFromMenuState(e),this.removeRecipeFromMenu())}addRecipeToMenu(){var i,a;const e=document.querySelector("mealz-planner-recipe-suggestion"),t=(e==null?void 0:e.guests)||this.guests;this.guests=t,e&&(e.recipeId=this.recipeId);const s=document.querySelector("mealz-planner-current-menu");if(!s){const r=(a=(i=c.recipes)==null?void 0:i.productsPlannerByCategory$)==null?void 0:a.value,o=(r==null?void 0:r.toPickProducts)||[];c.planner.addRecipeToMenu(this.recipeId,t,!!c.pos.currentPos().value,o).pipe(d(1)).subscribe(()=>{this.removeRecipeCardLoader("add");const l=document.querySelector("mealz-planner-recipe-list");l==null||l.addRecipeCardToList(this.recipeId)});return}s.addRecipe(this.recipeId,t).subscribe(()=>{this.removeRecipeCardLoader("add"),e==null||e.addAndSelectNewSuggestion(this.recipe)})}removeRecipeFromMenu(){const e=document.querySelector("mealz-planner-recipe-suggestion");if(!e){c.planner.removeRecipeFromMenu(this.recipeId).pipe(d(1)).subscribe(()=>this.removeRecipeCardLoader("remove"));return}e.removeRecipe(this.recipeId).subscribe(()=>this.removeRecipeCardLoader("remove"))}showRemovingFromMenuState(e){const t=this.querySelector(".mealz-recipe-card-cta__loader"),s=e.querySelector("img.in-menu");t==null||t.classList.remove("hidden"),s==null||s.classList.add("hidden")}removeRecipeCardLoader(e){const t=this.querySelector("mealz-recipe-card-cta");if(!t)return;const s=this.querySelector(".mealz-recipe-card-cta"),i=this.querySelector(".mealz-recipe-card-cta__loader"),a=t.querySelector("img.add"),r=t.querySelector("img.in-menu");e==="add"?(i==null||i.classList.add("hidden"),s==null||s.classList.replace("primary","secondary"),r==null||r.classList.remove("hidden"),t.updateStatus("in-menu")):(i==null||i.classList.add("hidden"),s==null||s.classList.replace("secondary","primary"),a==null||a.classList.remove("hidden"),t.updateStatus("add"))}showAddingToMenuState(e){const t=this.querySelector(".mealz-recipe-card-cta__loader"),s=e.querySelector("img.add"),i=e.querySelector("img.in-menu");t==null||t.classList.remove("hidden"),s==null||s.classList.add("hidden"),i==null||i.classList.add("hidden")}updateDOM(){if(this.recipeId!==this.updatedRecipeId)return;const e=this.querySelector(".mealz-recipe-card__counter p");e&&(e.innerHTML=this.guests.toString())}updateGuestDisplay(){const e=this.querySelector(".mealz-recipe-card__counter p");e&&this.guests&&(e.innerHTML=this.guests.toString())}sendAnalyticsShow(){n.getInstance().trackRecipeShow(this.recipeId,this.analyticsPath,this.categoryId)}}customElements.get("mealz-recipe-card")||customElements.define("mealz-recipe-card",y);
@@ -1,4 +1,4 @@
1
- import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";import{_ as J,n as O,p as F,b as X,c as Z,q as ee,N as k,D as d,k as i}from"../assets/no-shadow-element-CXVMZH9n.js";import{n as h}from"../assets/property-BXpY_hgs.js";import{P as te}from"../assets/price-CTfOOyf1.js";import{m as r}from"../assets/mealz-sdk-CnvUgy3V.js";import{m as V}from"../assets/merge-B0ddcNYl.js";import{m as y}from"../assets/map-ND1NsJPC.js";import{t as B}from"../assets/take-BgFJXP4B.js";import{c as H}from"../assets/capitalize-DUAqYmp4.js";import"../counter/counter.min.js";import"../assets/product-card-ryOzsvSF.js";import"../price/price.min.js";import"../assets/promotion-badge-D63kIgUZ.js";import{G as j}from"../assets/guestObserver-PPbBwlOO.js";import"../assets/accordion-tsgdqQeQ.js";import"../store-indicator/store-indicator.min.js";import"../last-order-badge/last-order-badge.min.js";import"../order-again/order-again.min.js";import"../like-button/like-button.min.js";import{L as se}from"../last-order-modal/last-order-modal.min.js";import{a as ie}from"../assets/unsafe-html-LLTnDXid.js";import{M as ae}from"../planner/planner-onboarding/planner-onboarding.min.js";import{o as W,c as re}from"../assets/OperatorSubscriber-CvNNPrIM.js";import{i as L}from"../assets/innerFrom-BldbX_fT.js";import{f as N}from"../assets/filter-aZV_N5pj.js";import{t as I}from"../assets/tap-DT80gG87.js";import{s as q}from"../assets/switchMap-DC1sJvd8.js";import{c as G}from"../assets/combineLatest-BB01Px-W.js";import{d as ne}from"../assets/async-M7ziFu3t.js";import"../assets/viewport-listener-khw7cTjd.js";import"../assets/debounceTime-BeLayHXh.js";import"../assets/skipWhile-DK5WsIpo.js";import"../assets/singleton-COF3iBbF.js";import"../assets/mergeAll-BvxRfNLo.js";import"../assets/mergeMap-C1wxIFhz.js";import"../assets/executeSchedule-CEDvgTzM.js";import"../assets/empty-Dy0Wgz_B.js";import"../assets/args-upHwW4Wh.js";import"../assets/isScheduler-fbUJB_yC.js";import"../assets/from-uSPfq2sN.js";import"../assets/delay-DJoNbXpK.js";import"../assets/timer-W1DT7NsX.js";import"../assets/isDate-BwHtzZM4.js";import"../store-locator/store-locator.min.js";import"../assets/state-BjFDUoQX.js";import"../assets/query-BApjzB0v.js";import"../onboarding/onboarding.min.js";import"../onboarding/events.min.js";import"../onboarding/analytics/onboarding-analytics.min.js";import"../assets/responsive-C7Qf71r3.js";import"../planner/helpers/planner-onboarding-storage.min.js";import"../assets/mapOneOrManyArgs-BPsgfFRx.js";var oe=function(o){J(e,o);function e(t,s,a){t===void 0&&(t=1/0),s===void 0&&(s=1/0),a===void 0&&(a=ne);var n=o.call(this)||this;return n._bufferSize=t,n._windowTime=s,n._timestampProvider=a,n._buffer=[],n._infiniteTimeWindow=!0,n._infiniteTimeWindow=s===1/0,n._bufferSize=Math.max(1,t),n._windowTime=Math.max(1,s),n}return e.prototype.next=function(t){var s=this,a=s.isStopped,n=s._buffer,l=s._infiniteTimeWindow,c=s._timestampProvider,p=s._windowTime;a||(n.push(t),!l&&n.push(c.now()+p)),this._trimBuffer(),o.prototype.next.call(this,t)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var s=this._innerSubscribe(t),a=this,n=a._infiniteTimeWindow,l=a._buffer,c=l.slice(),p=0;p<c.length&&!t.closed;p+=n?1:2)t.next(c[p]);return this._checkFinalizedStatuses(t),s},e.prototype._trimBuffer=function(){var t=this,s=t._bufferSize,a=t._timestampProvider,n=t._buffer,l=t._infiniteTimeWindow,c=(l?1:2)*s;if(s<1/0&&c<n.length&&n.splice(0,n.length-c),!l){for(var p=a.now(),g=0,u=1;u<n.length&&n[u]<=p;u+=2)g=u;g&&n.splice(0,g+1)}},e}(O);function le(o){o===void 0&&(o={});var e=o.connector,t=e===void 0?function(){return new O}:e,s=o.resetOnError,a=s===void 0?!0:s,n=o.resetOnComplete,l=n===void 0?!0:n,c=o.resetOnRefCountZero,p=c===void 0?!0:c;return function(g){var u,m,v,b=0,f=!1,_=!1,z=function(){m==null||m.unsubscribe(),m=void 0},$=function(){z(),u=v=void 0,f=_=!1},Y=function(){var S=u;$(),S==null||S.unsubscribe()};return W(function(S,M){b++,!_&&!f&&z();var C=v=v??t();M.add(function(){b--,b===0&&!_&&!f&&(m=A(Y,p))}),C.subscribe(M),!u&&b>0&&(u=new F({next:function(x){return C.next(x)},error:function(x){_=!0,z(),m=A($,a,x),C.error(x)},complete:function(){f=!0,z(),m=A($,l),C.complete()}}),L(S).subscribe(u))})(g)}}function A(o,e){for(var t=[],s=2;s<arguments.length;s++)t[s-2]=arguments[s];if(e===!0){o();return}if(e!==!1){var a=new F({next:function(){a.unsubscribe(),o()}});return L(e.apply(void 0,X([],Z(t)))).subscribe(a)}}function ce(o,e,t){var s,a=!1;return s=o,le({connector:function(){return new oe(s,e,t)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:a})}function w(o){return W(function(e,t){L(o).subscribe(re(t,function(){return t.complete()},ee)),!t.closed&&e.subscribe(t)})}var de=Object.defineProperty,P=(o,e,t,s)=>{for(var a=void 0,n=o.length-1,l;n>=0;n--)(l=o[n])&&(a=l(e,t,a)||a);return a&&de(e,t,a),a};class T extends k{constructor(){super(),this.noPosDisplay=!1,this.noSupplier=!1,this.recipeId="",this.plannerMode=!1,this.guests=0,this.recipe=null,this.analyticsPath="",this.subscriptions=[],this.remainingBasketEntries=[],this.recipePrice={remaining:0,inBasket:0,total:0,totalPerGuest:0},this.priceService=te.getInstance(),this.allIngredientsToBasketLoading=!1,this.ingredientToBasketLoading=!1,this.updateIngredientFromBasketLoading=!1,this.productsLoading=!1,this.inMenu=!1,this.menuUpdateLoading=!1,this.styleURL=new URL("./recipe-details/details-footer/details-footer.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.priceService.initFormatter(),this.analyticsPath=`/recipes/${this.recipeId}/shopping`,this.subscriptions.push(V(r.recipes.remainingBasketEntries$.pipe(y(e=>{this.remainingBasketEntries=e})),r.recipes.recipePrice$.pipe(y(e=>{const t=e.remaining+e.inBasket;this.recipePrice={...e,total:t,totalPerGuest:0}})),r.recipes.allIngredientsToBasketLoading$.pipe(y(e=>{this.allIngredientsToBasketLoading=e})),r.recipes.ingredientToBasketLoading$.pipe(y(e=>{this.ingredientToBasketLoading=e})),r.recipes.updateIngredientFromBasketLoading$.pipe(y(e=>{this.updateIngredientFromBasketLoading=e})),r.recipes.productsLoading$.pipe(y(e=>{this.productsLoading=e})),r.planner.plannerRecipePrice$.pipe(y(e=>{this.recipePrice.totalPerGuest=this.guests>0?e/this.guests:e}))).subscribe(()=>this.requestUpdate())),this.subscribeIsRecipeInMenu()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.isRecipeInMenuSub&&(this.isRecipeInMenuSub.unsubscribe(),this.isRecipeInMenuSub=void 0)}updated(e){super.updated(e),e.has("recipeId")&&this.subscribeIsRecipeInMenu()}subscribeIsRecipeInMenu(){this.recipeId&&(this.isRecipeInMenuSub&&this.isRecipeInMenuSub.unsubscribe(),this.isRecipeInMenuSub=r.planner.isRecipeInMenu$(this.recipeId).pipe(y(e=>{this.inMenu=e})).subscribe(()=>this.requestUpdate()))}closeRecipeDetails(e=!1){r.recipes.displayedRecipe$.next(null),e&&r.basket.basketPreviewState$.next({isOpen:!0,activeTabIndex:r.basket.basketPreviewState$.getValue().activeTabIndex})}continueShopping(){this.closeRecipeDetails(),this.sendContinueEvent()}addToMenu(){var a,n;this.menuUpdateLoading=!0,this.requestUpdate();const e=document.querySelector("mealz-planner-recipe-suggestion"),t=!!e&&!!e.recipeId&&e.recipeId===this.recipeId,s=document.querySelector("mealz-planner-current-menu");if(!s){const l=(n=(a=r.recipes)==null?void 0:a.productsPlannerByCategory$)==null?void 0:n.value,c=(l==null?void 0:l.toPickProducts)||[];r.planner.addRecipeToMenu(this.recipeId,this.guests,!!r.pos.currentPos().value,c).pipe(B(1)).subscribe(()=>{this.inMenu=!0;const p=document.querySelector("mealz-planner-recipe-list");p==null||p.addRecipeCardToList(this.recipeId),this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()});return}if(t){e.addRecipeFromDetails$(this.guests).subscribe({next:()=>{this.inMenu=!0,this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()},error:()=>{this.menuUpdateLoading=!1,this.requestUpdate()}});return}s.addRecipe(this.recipeId,this.guests).pipe(B(1)).subscribe({next:()=>{this.inMenu=!0,e==null||e.addAndSelectNewSuggestion(this.recipe||void 0),this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()},error:()=>{this.menuUpdateLoading=!1,this.requestUpdate()}})}removeFromMenu(){this.menuUpdateLoading=!0,this.requestUpdate();const e=document.querySelector("mealz-planner-recipe-suggestion");if(!e){r.planner.removeRecipeFromMenu(this.recipeId).pipe(B(1)).subscribe(()=>{this.inMenu=!1,this.menuUpdateLoading=!1,this.requestUpdate()});return}e.removeRecipe(this.recipeId).subscribe(()=>{this.inMenu=!1,this.menuUpdateLoading=!1,this.requestUpdate()})}addAllIngredients(){r.recipes.addAllIngredientsToBasket({originPath:this.analyticsPath,props:{}}),this.sendAddAllEvent(),this.recipePrice.inBasket===0&&this.sendAddRecipeEvent()}render(){if(this.noPosDisplay&&!this.plannerMode)return d;const e=this.remainingBasketEntries.length>0&&!this.plannerMode,t=this.plannerMode&&this.noPosDisplay,s=this.plannerMode&&!this.inMenu;return i`
1
+ import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";import{_ as J,n as O,p as F,b as X,c as Z,q as ee,N as k,D as d,k as i}from"../assets/no-shadow-element-CXVMZH9n.js";import{n as h}from"../assets/property-BXpY_hgs.js";import{P as te}from"../assets/price-CTfOOyf1.js";import{m as r}from"../assets/mealz-sdk-CnvUgy3V.js";import{m as V}from"../assets/merge-B0ddcNYl.js";import{m as y}from"../assets/map-ND1NsJPC.js";import{t as B}from"../assets/take-BgFJXP4B.js";import{c as H}from"../assets/capitalize-DUAqYmp4.js";import"../counter/counter.min.js";import"../assets/product-card-ryOzsvSF.js";import"../price/price.min.js";import"../assets/promotion-badge-D63kIgUZ.js";import{G as j}from"../assets/guestObserver-PPbBwlOO.js";import"../assets/accordion-tsgdqQeQ.js";import"../store-indicator/store-indicator.min.js";import"../last-order-badge/last-order-badge.min.js";import"../order-again/order-again.min.js";import"../like-button/like-button.min.js";import{L as se}from"../last-order-modal/last-order-modal.min.js";import{a as ie}from"../assets/unsafe-html-LLTnDXid.js";import{M as ae}from"../planner/planner-onboarding/planner-onboarding.min.js";import{o as W,c as re}from"../assets/OperatorSubscriber-CvNNPrIM.js";import{i as L}from"../assets/innerFrom-BldbX_fT.js";import{f as N}from"../assets/filter-aZV_N5pj.js";import{t as T}from"../assets/tap-DT80gG87.js";import{s as q}from"../assets/switchMap-DC1sJvd8.js";import{c as G}from"../assets/combineLatest-BB01Px-W.js";import{d as ne}from"../assets/async-M7ziFu3t.js";import"../assets/viewport-listener-khw7cTjd.js";import"../assets/debounceTime-BeLayHXh.js";import"../assets/skipWhile-DK5WsIpo.js";import"../assets/singleton-COF3iBbF.js";import"../assets/mergeAll-BvxRfNLo.js";import"../assets/mergeMap-C1wxIFhz.js";import"../assets/executeSchedule-CEDvgTzM.js";import"../assets/empty-Dy0Wgz_B.js";import"../assets/args-upHwW4Wh.js";import"../assets/isScheduler-fbUJB_yC.js";import"../assets/from-uSPfq2sN.js";import"../assets/delay-DJoNbXpK.js";import"../assets/timer-W1DT7NsX.js";import"../assets/isDate-BwHtzZM4.js";import"../store-locator/store-locator.min.js";import"../assets/state-BjFDUoQX.js";import"../assets/query-BApjzB0v.js";import"../onboarding/onboarding.min.js";import"../onboarding/events.min.js";import"../onboarding/analytics/onboarding-analytics.min.js";import"../assets/responsive-C7Qf71r3.js";import"../planner/helpers/planner-onboarding-storage.min.js";import"../assets/mapOneOrManyArgs-BPsgfFRx.js";var oe=function(o){J(e,o);function e(t,s,a){t===void 0&&(t=1/0),s===void 0&&(s=1/0),a===void 0&&(a=ne);var n=o.call(this)||this;return n._bufferSize=t,n._windowTime=s,n._timestampProvider=a,n._buffer=[],n._infiniteTimeWindow=!0,n._infiniteTimeWindow=s===1/0,n._bufferSize=Math.max(1,t),n._windowTime=Math.max(1,s),n}return e.prototype.next=function(t){var s=this,a=s.isStopped,n=s._buffer,l=s._infiniteTimeWindow,c=s._timestampProvider,p=s._windowTime;a||(n.push(t),!l&&n.push(c.now()+p)),this._trimBuffer(),o.prototype.next.call(this,t)},e.prototype._subscribe=function(t){this._throwIfClosed(),this._trimBuffer();for(var s=this._innerSubscribe(t),a=this,n=a._infiniteTimeWindow,l=a._buffer,c=l.slice(),p=0;p<c.length&&!t.closed;p+=n?1:2)t.next(c[p]);return this._checkFinalizedStatuses(t),s},e.prototype._trimBuffer=function(){var t=this,s=t._bufferSize,a=t._timestampProvider,n=t._buffer,l=t._infiniteTimeWindow,c=(l?1:2)*s;if(s<1/0&&c<n.length&&n.splice(0,n.length-c),!l){for(var p=a.now(),g=0,u=1;u<n.length&&n[u]<=p;u+=2)g=u;g&&n.splice(0,g+1)}},e}(O);function le(o){o===void 0&&(o={});var e=o.connector,t=e===void 0?function(){return new O}:e,s=o.resetOnError,a=s===void 0?!0:s,n=o.resetOnComplete,l=n===void 0?!0:n,c=o.resetOnRefCountZero,p=c===void 0?!0:c;return function(g){var u,m,v,b=0,f=!1,_=!1,z=function(){m==null||m.unsubscribe(),m=void 0},$=function(){z(),u=v=void 0,f=_=!1},Y=function(){var S=u;$(),S==null||S.unsubscribe()};return W(function(S,M){b++,!_&&!f&&z();var R=v=v??t();M.add(function(){b--,b===0&&!_&&!f&&(m=A(Y,p))}),R.subscribe(M),!u&&b>0&&(u=new F({next:function(x){return R.next(x)},error:function(x){_=!0,z(),m=A($,a,x),R.error(x)},complete:function(){f=!0,z(),m=A($,l),R.complete()}}),L(S).subscribe(u))})(g)}}function A(o,e){for(var t=[],s=2;s<arguments.length;s++)t[s-2]=arguments[s];if(e===!0){o();return}if(e!==!1){var a=new F({next:function(){a.unsubscribe(),o()}});return L(e.apply(void 0,X([],Z(t)))).subscribe(a)}}function ce(o,e,t){var s,a=!1;return s=o,le({connector:function(){return new oe(s,e,t)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:a})}function w(o){return W(function(e,t){L(o).subscribe(re(t,function(){return t.complete()},ee)),!t.closed&&e.subscribe(t)})}var de=Object.defineProperty,P=(o,e,t,s)=>{for(var a=void 0,n=o.length-1,l;n>=0;n--)(l=o[n])&&(a=l(e,t,a)||a);return a&&de(e,t,a),a};class I extends k{constructor(){super(),this.noPosDisplay=!1,this.noSupplier=!1,this.recipeId="",this.categoryId=null,this.plannerMode=!1,this.guests=0,this.recipe=null,this.analyticsPath="",this.subscriptions=[],this.remainingBasketEntries=[],this.recipePrice={remaining:0,inBasket:0,total:0,totalPerGuest:0},this.priceService=te.getInstance(),this.allIngredientsToBasketLoading=!1,this.ingredientToBasketLoading=!1,this.updateIngredientFromBasketLoading=!1,this.productsLoading=!1,this.inMenu=!1,this.menuUpdateLoading=!1,this.styleURL=new URL("./recipe-details/details-footer/details-footer.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.priceService.initFormatter(),this.analyticsPath=`/recipes/${this.recipeId}/shopping`,this.subscriptions.push(V(r.recipes.remainingBasketEntries$.pipe(y(e=>{this.remainingBasketEntries=e})),r.recipes.recipePrice$.pipe(y(e=>{const t=e.remaining+e.inBasket;this.recipePrice={...e,total:t,totalPerGuest:0}})),r.recipes.allIngredientsToBasketLoading$.pipe(y(e=>{this.allIngredientsToBasketLoading=e})),r.recipes.ingredientToBasketLoading$.pipe(y(e=>{this.ingredientToBasketLoading=e})),r.recipes.updateIngredientFromBasketLoading$.pipe(y(e=>{this.updateIngredientFromBasketLoading=e})),r.recipes.productsLoading$.pipe(y(e=>{this.productsLoading=e})),r.planner.plannerRecipePrice$.pipe(y(e=>{this.recipePrice.totalPerGuest=this.guests>0?e/this.guests:e}))).subscribe(()=>this.requestUpdate())),this.subscribeIsRecipeInMenu()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.isRecipeInMenuSub&&(this.isRecipeInMenuSub.unsubscribe(),this.isRecipeInMenuSub=void 0)}updated(e){super.updated(e),e.has("recipeId")&&this.subscribeIsRecipeInMenu()}subscribeIsRecipeInMenu(){this.recipeId&&(this.isRecipeInMenuSub&&this.isRecipeInMenuSub.unsubscribe(),this.isRecipeInMenuSub=r.planner.isRecipeInMenu$(this.recipeId).pipe(y(e=>{this.inMenu=e})).subscribe(()=>this.requestUpdate()))}closeRecipeDetails(e=!1){r.recipes.displayedRecipe$.next(null),e&&r.basket.basketPreviewState$.next({isOpen:!0,activeTabIndex:r.basket.basketPreviewState$.getValue().activeTabIndex})}continueShopping(){this.closeRecipeDetails(),this.sendContinueEvent()}addToMenu(){var a,n;this.menuUpdateLoading=!0,this.requestUpdate();const e=document.querySelector("mealz-planner-recipe-suggestion"),t=!!e&&!!e.recipeId&&e.recipeId===this.recipeId,s=document.querySelector("mealz-planner-current-menu");if(!s){const l=(n=(a=r.recipes)==null?void 0:a.productsPlannerByCategory$)==null?void 0:n.value,c=(l==null?void 0:l.toPickProducts)||[];r.planner.addRecipeToMenu(this.recipeId,this.guests,!!r.pos.currentPos().value,c).pipe(B(1)).subscribe(()=>{this.inMenu=!0;const p=document.querySelector("mealz-planner-recipe-list");p==null||p.addRecipeCardToList(this.recipeId),this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()});return}if(t){e.addRecipeFromDetails$(this.guests).subscribe({next:()=>{this.inMenu=!0,this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()},error:()=>{this.menuUpdateLoading=!1,this.requestUpdate()}});return}s.addRecipe(this.recipeId,this.guests).pipe(B(1)).subscribe({next:()=>{this.inMenu=!0,e==null||e.addAndSelectNewSuggestion(this.recipe||void 0),this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()},error:()=>{this.menuUpdateLoading=!1,this.requestUpdate()}})}removeFromMenu(){this.menuUpdateLoading=!0,this.requestUpdate();const e=document.querySelector("mealz-planner-recipe-suggestion");if(!e){r.planner.removeRecipeFromMenu(this.recipeId).pipe(B(1)).subscribe(()=>{this.inMenu=!1,this.menuUpdateLoading=!1,this.requestUpdate()});return}e.removeRecipe(this.recipeId).subscribe(()=>{this.inMenu=!1,this.menuUpdateLoading=!1,this.requestUpdate()})}addAllIngredients(){const e=this.getCategoryId();r.recipes.addAllIngredientsToBasket({originPath:this.analyticsPath,props:e?{category_id:e}:{}}),this.sendAddAllEvent(),this.recipePrice.inBasket===0&&this.sendAddRecipeEvent()}render(){if(this.noPosDisplay&&!this.plannerMode)return d;const e=this.remainingBasketEntries.length>0&&!this.plannerMode,t=this.plannerMode&&this.noPosDisplay,s=this.plannerMode&&!this.inMenu;return i`
2
2
  <div class="mealz-recipe-details__footer">
3
3
  ${this.productsLoading&&!this.plannerMode?d:i`
4
4
  <!-- ADD TO BASKET CTA -->
@@ -91,7 +91,7 @@ import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";
91
91
  ${this.plannerMode?"par personne":"dans votre panier"}
92
92
  </span>
93
93
  </div>
94
- `}sendAddAllEvent(){r.analytics.sendEvent("entry.add-all",this.analyticsPath,{recipe_id:this.recipeId,entry_count:this.remainingBasketEntries.length})}sendAddRecipeEvent(){r.analytics.sendEvent("recipe.add",this.analyticsPath,{recipe_id:this.recipeId})}sendContinueEvent(){r.analytics.sendEvent("recipe.continue",this.analyticsPath,{recipe_id:this.recipeId})}}P([h({type:Boolean})],T.prototype,"noPosDisplay");P([h({type:Boolean})],T.prototype,"noSupplier");P([h({type:String})],T.prototype,"recipeId");P([h({type:Boolean})],T.prototype,"plannerMode");P([h({type:Number})],T.prototype,"guests");P([h({attribute:!1})],T.prototype,"recipe");customElements.get("mealz-details-footer")||customElements.define("mealz-details-footer",T);class pe extends k{constructor(){super(),this.tags=[],this.displayTags=!1,this.subscriptions=[],this.styleURL=new URL("./recipe-details/details-infos/details-infos.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.subscriptions.push(r.recipes.displayedRecipe$.subscribe(e=>{e&&(this.recipe=e.recipe,this.tags=e.recipe.relationships.tags.data.map(t=>t.attributes.name),this.requestUpdate())}))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}toggleTags(){this.displayTags=!this.displayTags,this.requestUpdate()}noTimePlaceholder(){return i`<span class="mealz-recipe-details-infos__no-time-placeholder">0 min</span>`}noDataPlaceholder(){return i`<span class="mealz-recipe-details-infos__no-data-placeholder">-</span>`}getRecipeDifficultyIntoClassName(){switch(this.recipe.attributes.difficulty){case 1:return"easy";case 2:return"medium";case 3:return"hard";default:return"no-difficulty-defined"}}getRecipeDifficultyIntoText(){switch(this.recipe.attributes.difficulty){case 1:return i`<span class="mealz-ds-text">Facile</span>`;case 2:return i`<span class="mealz-ds-text">Moyen</span>`;case 3:return i`<span class="mealz-ds-text">Difficile</span>`;default:return d}}renderPreparationTime(){return i`
94
+ `}sendAddAllEvent(){r.analytics.sendEvent("entry.add-all",this.analyticsPath,{recipe_id:this.recipeId,entry_count:this.remainingBasketEntries.length})}sendAddRecipeEvent(){const e=this.getCategoryId();r.analytics.sendEvent("recipe.add",this.analyticsPath,{recipe_id:this.recipeId,...e?{category_id:e}:{}})}sendContinueEvent(){r.analytics.sendEvent("recipe.continue",this.analyticsPath,{recipe_id:this.recipeId})}getCategoryId(){return this.categoryId!=null&&this.categoryId.length>0?this.categoryId:null}}P([h({type:Boolean})],I.prototype,"noPosDisplay");P([h({type:Boolean})],I.prototype,"noSupplier");P([h({type:String})],I.prototype,"recipeId");P([h({attribute:!1})],I.prototype,"categoryId");P([h({type:Boolean})],I.prototype,"plannerMode");P([h({type:Number})],I.prototype,"guests");P([h({attribute:!1})],I.prototype,"recipe");customElements.get("mealz-details-footer")||customElements.define("mealz-details-footer",I);class pe extends k{constructor(){super(),this.tags=[],this.displayTags=!1,this.subscriptions=[],this.styleURL=new URL("./recipe-details/details-infos/details-infos.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.subscriptions.push(r.recipes.displayedRecipe$.subscribe(e=>{e&&(this.recipe=e.recipe,this.tags=e.recipe.relationships.tags.data.map(t=>t.attributes.name),this.requestUpdate())}))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}toggleTags(){this.displayTags=!this.displayTags,this.requestUpdate()}noTimePlaceholder(){return i`<span class="mealz-recipe-details-infos__no-time-placeholder">0 min</span>`}noDataPlaceholder(){return i`<span class="mealz-recipe-details-infos__no-data-placeholder">-</span>`}getRecipeDifficultyIntoClassName(){switch(this.recipe.attributes.difficulty){case 1:return"easy";case 2:return"medium";case 3:return"hard";default:return"no-difficulty-defined"}}getRecipeDifficultyIntoText(){switch(this.recipe.attributes.difficulty){case 1:return i`<span class="mealz-ds-text">Facile</span>`;case 2:return i`<span class="mealz-ds-text">Moyen</span>`;case 3:return i`<span class="mealz-ds-text">Difficile</span>`;default:return d}}renderPreparationTime(){return i`
95
95
  <!-- PREPARATION TIME -->
96
96
  <div
97
97
  class="
@@ -209,7 +209,7 @@ import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";
209
209
  `)}
210
210
  </div>
211
211
  </div>
212
- `}ingredientPicture(e){return e.picture||"https://storage.googleapis.com/assets.miam.tech/generic/images/default-ingredient-picture.svg"}}customElements.get("mealz-details-ingredients")||customElements.define("mealz-details-ingredients",he);var me=Object.defineProperty,R=(o,e,t,s)=>{for(var a=void 0,n=o.length-1,l;n>=0;n--)(l=o[n])&&(a=l(e,t,a)||a);return a&&me(e,t,a),a};const U=["unavailable"],ge=["ticked","unselected"];class E extends k{constructor(){super(),this.recipeId="",this.initialGuests=0,this.currentGuests=0,this.oftenIgnored=!1,this.subscriptions=[],this.guestObserverService=j.getInstance(),this.modifiedIngQty=0,this.analyticsPath="/meals-planner/current",this.styleURL=new URL("./product-card/product-card-planner.css",this.getBaseURL())}get status(){var e;return(e=this.product)==null?void 0:e.status}set status(e){this.product.status=e,this.requestUpdate()}get productImage(){var e;return((e=this.product.item)==null?void 0:e.attributes.image)||"https://storage.googleapis.com/assets.miam.tech/generic/images/default-ingredient-picture.svg"}get ingredientPicture(){return this.product.ingredient.picture||"https://storage.googleapis.com/assets.miam.tech/generic/images/default-ingredient-picture.svg"}get isSponsored(){var e,t,s;return((s=(t=(e=this.product)==null?void 0:e.item)==null?void 0:t.attributes)==null?void 0:s.sponsored)===!0}connectedCallback(){super.connectedCallback(),this.listenGuestsChange(),this.calculateQty()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}listenGuestsChange(){this.subscriptions.push(this.guestObserverService.guests$.subscribe(e=>{this.currentGuests=e,this.calculateQty()}))}calculateQty(){var t;if(!((t=this.product)!=null&&t.ingredient)||!this.initialGuests)return;const e=this.product.ingredient.attributes.quantity/this.initialGuests;this.modifiedIngQty=Number((e*(this.currentGuests??this.initialGuests)).toFixed(2)),this.requestUpdate()}openReplaceItemView(){r.planner.openReplaceItemView(this.product),this.replaceItemViewEvent()}onCheckboxChange(e){e.target.checked?(this.status="ticked",r.planner.selectProduct(+this.product.item.id,this.product.ingredient.relationships.definition.data.id),this.addItemEvent()):(this.status="unselected",r.planner.unselectProduct(+this.product.item.id,this.product.ingredient.relationships.definition.data.id),this.deleteItemEvent()),this.requestUpdate()}render(){var e;if((e=this.product)!=null&&e.ingredient)return i`
212
+ `}ingredientPicture(e){return e.picture||"https://storage.googleapis.com/assets.miam.tech/generic/images/default-ingredient-picture.svg"}}customElements.get("mealz-details-ingredients")||customElements.define("mealz-details-ingredients",he);var me=Object.defineProperty,C=(o,e,t,s)=>{for(var a=void 0,n=o.length-1,l;n>=0;n--)(l=o[n])&&(a=l(e,t,a)||a);return a&&me(e,t,a),a};const U=["unavailable"],ge=["ticked","unselected"];class E extends k{constructor(){super(),this.recipeId="",this.initialGuests=0,this.currentGuests=0,this.oftenIgnored=!1,this.subscriptions=[],this.guestObserverService=j.getInstance(),this.modifiedIngQty=0,this.analyticsPath="/meals-planner/current",this.styleURL=new URL("./product-card/product-card-planner.css",this.getBaseURL())}get status(){var e;return(e=this.product)==null?void 0:e.status}set status(e){this.product.status=e,this.requestUpdate()}get productImage(){var e;return((e=this.product.item)==null?void 0:e.attributes.image)||"https://storage.googleapis.com/assets.miam.tech/generic/images/default-ingredient-picture.svg"}get ingredientPicture(){return this.product.ingredient.picture||"https://storage.googleapis.com/assets.miam.tech/generic/images/default-ingredient-picture.svg"}get isSponsored(){var e,t,s;return((s=(t=(e=this.product)==null?void 0:e.item)==null?void 0:t.attributes)==null?void 0:s.sponsored)===!0}connectedCallback(){super.connectedCallback(),this.listenGuestsChange(),this.calculateQty()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}listenGuestsChange(){this.subscriptions.push(this.guestObserverService.guests$.subscribe(e=>{this.currentGuests=e,this.calculateQty()}))}calculateQty(){var t;if(!((t=this.product)!=null&&t.ingredient)||!this.initialGuests)return;const e=this.product.ingredient.attributes.quantity/this.initialGuests;this.modifiedIngQty=Number((e*(this.currentGuests??this.initialGuests)).toFixed(2)),this.requestUpdate()}openReplaceItemView(){r.planner.openReplaceItemView(this.product),this.replaceItemViewEvent()}onCheckboxChange(e){e.target.checked?(this.status="ticked",r.planner.selectProduct(+this.product.item.id,this.product.ingredient.relationships.definition.data.id),this.addItemEvent()):(this.status="unselected",r.planner.unselectProduct(+this.product.item.id,this.product.ingredient.relationships.definition.data.id),this.deleteItemEvent()),this.requestUpdate()}render(){var e;if((e=this.product)!=null&&e.ingredient)return i`
213
213
  <div class="mealz-product-card-planner
214
214
  ${this.status==="ticked"?"added":""}
215
215
  ${U.includes(this.status)||this.oftenIgnored?"disabled":""}
@@ -318,7 +318,7 @@ import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";
318
318
  <span>Remplacer</span>
319
319
  </button>
320
320
  `:""}
321
- `}addItemEvent(){r.analytics.sendEvent("planner.item.add",this.analyticsPath,{recipe_id:this.recipeId,item_id:this.product.item.id})}deleteItemEvent(){r.analytics.sendEvent("planner.item.delete",this.analyticsPath,{recipe_id:this.recipeId,item_id:this.product.item.id})}replaceItemViewEvent(){r.analytics.sendEvent("planner.item.replace",this.analyticsPath,{recipe_id:this.recipeId,item_id:this.product.item.id})}}R([h({type:Object})],E.prototype,"product");R([h({type:String})],E.prototype,"recipeId");R([h({type:Number})],E.prototype,"initialGuests");R([h({type:Number})],E.prototype,"currentGuests");R([h({type:Boolean})],E.prototype,"oftenIgnored");customElements.get("mealz-product-card-planner")||customElements.define("mealz-product-card-planner",E);var ve=Object.defineProperty,be=(o,e,t,s)=>{for(var a=void 0,n=o.length-1,l;n>=0;n--)(l=o[n])&&(a=l(e,t,a)||a);return a&&ve(e,t,a),a};class K extends k{constructor(){super(),this.styleURL=new URL("./legal-notice/legal-notice.css",this.getBaseURL())}get containsAlcohol(){var t;return(((t=this.tags)==null?void 0:t.data)||[]).some(s=>s.id==="ingredient_category_alcool")}render(){return this.containsAlcohol?i`
321
+ `}addItemEvent(){r.analytics.sendEvent("planner.item.add",this.analyticsPath,{recipe_id:this.recipeId,item_id:this.product.item.id})}deleteItemEvent(){r.analytics.sendEvent("planner.item.delete",this.analyticsPath,{recipe_id:this.recipeId,item_id:this.product.item.id})}replaceItemViewEvent(){r.analytics.sendEvent("planner.item.replace",this.analyticsPath,{recipe_id:this.recipeId,item_id:this.product.item.id})}}C([h({type:Object})],E.prototype,"product");C([h({type:String})],E.prototype,"recipeId");C([h({type:Number})],E.prototype,"initialGuests");C([h({type:Number})],E.prototype,"currentGuests");C([h({type:Boolean})],E.prototype,"oftenIgnored");customElements.get("mealz-product-card-planner")||customElements.define("mealz-product-card-planner",E);var ve=Object.defineProperty,be=(o,e,t,s)=>{for(var a=void 0,n=o.length-1,l;n>=0;n--)(l=o[n])&&(a=l(e,t,a)||a);return a&&ve(e,t,a),a};class K extends k{constructor(){super(),this.styleURL=new URL("./legal-notice/legal-notice.css",this.getBaseURL())}get containsAlcohol(){var t;return(((t=this.tags)==null?void 0:t.data)||[]).some(s=>s.id==="ingredient_category_alcool")}render(){return this.containsAlcohol?i`
322
322
  <div class="mealz-products-picker__legal-notices">
323
323
  <span class="mealz-ds-text weight-xxl mealz-products-picker__legal-notices-header">Mentions légales</span>
324
324
  <div class="mealz-products-picker__legal-notices-content">
@@ -534,7 +534,7 @@ import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";
534
534
  Sélectionner un magasin
535
535
  </button>
536
536
  </div>
537
- `}}customElements.get("mealz-no-pos-selected")||customElements.define("mealz-no-pos-selected",ze);class ye extends k{constructor(){super(),this.activeTabIndex=0,this.destroy$=new O,this.remainingBasketEntries=[],this.guestObserverService=j.getInstance(),this.isSticky=!1,this.hasBackNavigation=!1,this.drawerViewSwapper=null,this.styleURL=new URL("./recipe-details/recipe-details.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.destroy$=new O,this.handleNoSupplierMode(),V(r.recipes.displayedRecipe$.pipe(w(this.destroy$),N(e=>!!e),I(e=>{e.recipe!==null&&(this.recipe=e.recipe,this.sponsor=e.recipe.relationships.sponsors.data[0],this.analyticsPath=`/recipes/${this.recipe.id}/shopping`,this.plannerMode=!!e.planner,this.getLikeButton(),this.checkSponsorStorytelling(),this.pageview(),this.listenToCloseEvent(),this.setStickyObserver())}),q(e=>e.recipe===null?[]:this.listenToRecipeInBasket())),this.listenPosStatus(),this.listenRemainingBasketEntries(),this.listenLastOrderDate(),this.listenToLoadingStates(),this.listenToAddAllToBasket()).pipe(w(this.destroy$)).subscribe({next:()=>this.requestUpdate(),error:e=>console.error("Recipe details error:",e)}),this.addEventListener("products-picker-ready",()=>this.startRecipeDetailsOnboardingIfNeeded()),this.setupDrawerBackNavigationIndicator()}disconnectedCallback(){super.disconnectedCallback(),this.destroy$.next(),this.destroy$.complete(),this.topObserver&&this.topObserver.disconnect(),this.stickyTimeout&&clearTimeout(this.stickyTimeout),this.drawerViewSwapper&&this.onActiveViewsChanged&&this.drawerViewSwapper.removeEventListener("mealz-active-views-changed",this.onActiveViewsChanged)}setupDrawerBackNavigationIndicator(){const e=this.closest("mealz-drawer-view-swapper");this.drawerViewSwapper=e??document.querySelector("mealz-drawer-view-swapper"),this.drawerViewSwapper&&(this.updateBackNavigationFromActiveViews(this.drawerViewSwapper.getActiveViewNames()),this.onActiveViewsChanged=t=>{const s=t==null?void 0:t.detail;s!=null&&s.activeViews&&this.updateBackNavigationFromActiveViews(s.activeViews)},this.drawerViewSwapper.addEventListener("mealz-active-views-changed",this.onActiveViewsChanged))}updateBackNavigationFromActiveViews(e){const t=Array.isArray(e)&&e.length>1;this.hasBackNavigation!==t&&(this.hasBackNavigation=t,this.requestUpdate())}getRecipeDetailsCloseIcon(){return this.hasBackNavigation?{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg",alt:"back button",className:"mealz-recipe-details__close-icon is-back"}:{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/Cross_primary.svg",alt:"modal close button",className:"mealz-recipe-details__close-icon"}}getRecipeDetailsStickyCloseIcon(){return this.hasBackNavigation?{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/ArrowLeft_dark.svg",alt:"back button",className:"mealz-recipe-details__close-icon before-title is-back"}:{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/Cross_Black.svg",alt:"modal close button",className:"mealz-recipe-details__close-icon"}}setStickyObserver(){this.topObserver||this.updateComplete.then(()=>{const e=this.querySelector(".mealz-recipe-details__sticky-anchor");e&&(this.topObserver=new IntersectionObserver(([t])=>{this.stickyTimeout&&clearTimeout(this.stickyTimeout),this.stickyTimeout=window.setTimeout(()=>{const s=!t.isIntersecting;this.isSticky!==s&&(this.isSticky=s,this.requestUpdate())},150)},{threshold:0}),this.topObserver.observe(e))})}startRecipeDetailsOnboardingIfNeeded(){localStorage.getItem("_miam/recipeDetailsOnboarding")==="true"||!this.plannerMode||this.updateComplete.then(()=>{this.scrollJustAfterImage();let t=document.querySelector("mealz-planner-onboarding");t?t.type="recipe-details":(t=new ae,t.type="recipe-details",document.body.appendChild(t)),t.launchOnboardingTour()})}scrollJustAfterImage(){const e=this.querySelector(".mealz-recipe-details__tabs");if(!e)return;const t=document.querySelector(".mealz-drawer__content-container");if(t){const s=e.getBoundingClientRect(),a=t.getBoundingClientRect();t.scrollTop+=s.top-a.top;return}e.scrollIntoView({behavior:"smooth",block:"start"})}handleNoSupplierMode(){this.noSupplier=!!r.supplier.isNoSupplier(),this.requestUpdate()}close(){this.sendCloseEvent(),r.recipes.displayedRecipe$.next(null)}listenToCloseEvent(){const e=document.querySelector("mealz-drawer");e&&e.addEventListener("drawerClosed",()=>{this.sendCloseEvent()})}selectTab(e){this.activeTabIndex=e,this.activeTabIndex===1&&this.sendCookingDisplayEvent(),this.requestUpdate()}getLikeButton(){this.noSupplier||r.user.isAuthenticated().pipe(w(this.destroy$),N(e=>e),q(()=>r.html.like(this.recipe.id))).subscribe({next:e=>{this.likeButtonHTML=e,this.requestUpdate()},error:e=>console.error("Like button error:",e)})}checkSponsorStorytelling(){this.sponsor&&r.sponsor.hasStorytelling(this.sponsor.id).pipe(w(this.destroy$)).subscribe({next:e=>{this.hasSponsorStorytelling=e,this.requestUpdate()},error:e=>console.error("Sponsor storytelling error:",e)})}listenPosStatus(){return G({noPosDisplay:r.recipes.noPosDisplay$,invalidPosDisplay:r.recipes.invalidPosDisplay$}).pipe(I(({noPosDisplay:e,invalidPosDisplay:t})=>{this.noPosDisplay=e,this.invalidPosDisplay=t,this.activeTabIndex=e?1:0}),y(()=>{}))}listenLastOrderDate(){return r.recipes.orderHistoryDate$.pipe(I(e=>{this.orderHistoryDate=e}))}listenToLoadingStates(){return G([r.recipes.ingredientToBasketLoading$,r.recipes.updateIngredientFromBasketLoading$]).pipe(y(([e,t])=>e||t),I(e=>{this.basketIsUpdating=e}),ce(1))}listenRemainingBasketEntries(){return r.recipes.remainingBasketEntries$.pipe(I(e=>{this.remainingBasketEntries=e}))}listenToAddAllToBasket(){return r.recipes.allIngredientsToBasketLoading$.pipe(I(e=>{e&&(this.selectTab(0),setTimeout(()=>{this.scrollToPicker()},50))}))}listenToRecipeInBasket(){return r.recipes.isRecipeInBasket(this.recipe.id).pipe(I(e=>{this.inBasket=e}))}scrollToPicker(){const e=this.querySelector(".mealz-products-picker");if(e){const t=this.querySelector(".mealz-recipe-details__title-container"),s=(t==null?void 0:t.offsetHeight)||0;e.style.scrollMarginTop=`${s}px`,e.scrollIntoView({behavior:"instant",block:"start"})}}scrollToReplacedItem(e){var s,a;const t=this.querySelectorAll("mealz-product-card-planner");for(const n of Array.from(t)){const l=n;if(((a=(s=l.product)==null?void 0:s.item)==null?void 0:a.id)===e){l.scrollIntoView({behavior:"instant",block:"center"});break}}}openLastOrderModal(){this.sendOrderedDisplayEvent();const e=new se;e.recipeId=this.recipe.id,e.addEventListener("orderAgain",()=>this.orderAgain()),e.displayLastOrderModal(this.orderHistoryDate)}orderAgain(){r.recipes.addAllIngredientsToBasket({originPath:this.analyticsPath,props:{}})}updateGuests(e){if(this.recipe.modifiedGuests===e.detail.value)return;this.recipe.modifiedGuests=e.detail.value,this.guestObserverService.updateGuests(this.recipe.modifiedGuests);const t={originPath:this.analyticsPath,props:{}};this.plannerMode?r.planner.updateGuests(this.recipe.modifiedGuests,t):r.recipes.updateGuests(t),this.requestUpdate()}render(){const e=this.getRecipeDetailsCloseIcon(),t=this.getRecipeDetailsStickyCloseIcon();return i`
537
+ `}}customElements.get("mealz-no-pos-selected")||customElements.define("mealz-no-pos-selected",ze);class ye extends k{constructor(){super(),this.activeTabIndex=0,this.destroy$=new O,this.remainingBasketEntries=[],this.guestObserverService=j.getInstance(),this.isSticky=!1,this.hasBackNavigation=!1,this.drawerViewSwapper=null,this.detailsCategoryId=null,this.styleURL=new URL("./recipe-details/recipe-details.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.destroy$=new O,this.handleNoSupplierMode(),V(r.recipes.displayedRecipe$.pipe(w(this.destroy$),N(e=>!!e),T(e=>{var s,a;if(e.recipe===null)return;this.recipe=e.recipe;const t=(a=(s=e.eventTrace)==null?void 0:s.props)==null?void 0:a.category_id;this.detailsCategoryId=t!=null&&String(t).length>0?String(t):null,this.sponsor=e.recipe.relationships.sponsors.data[0],this.analyticsPath=`/recipes/${this.recipe.id}/shopping`,this.plannerMode=!!e.planner,this.getLikeButton(),this.checkSponsorStorytelling(),this.pageview(),this.listenToCloseEvent(),this.setStickyObserver()}),q(e=>e.recipe===null?[]:this.listenToRecipeInBasket())),this.listenPosStatus(),this.listenRemainingBasketEntries(),this.listenLastOrderDate(),this.listenToLoadingStates(),this.listenToAddAllToBasket()).pipe(w(this.destroy$)).subscribe({next:()=>this.requestUpdate(),error:e=>console.error("Recipe details error:",e)}),this.addEventListener("products-picker-ready",()=>this.startRecipeDetailsOnboardingIfNeeded()),this.setupDrawerBackNavigationIndicator()}disconnectedCallback(){super.disconnectedCallback(),this.destroy$.next(),this.destroy$.complete(),this.topObserver&&this.topObserver.disconnect(),this.stickyTimeout&&clearTimeout(this.stickyTimeout),this.drawerViewSwapper&&this.onActiveViewsChanged&&this.drawerViewSwapper.removeEventListener("mealz-active-views-changed",this.onActiveViewsChanged)}setupDrawerBackNavigationIndicator(){const e=this.closest("mealz-drawer-view-swapper");this.drawerViewSwapper=e??document.querySelector("mealz-drawer-view-swapper"),this.drawerViewSwapper&&(this.updateBackNavigationFromActiveViews(this.drawerViewSwapper.getActiveViewNames()),this.onActiveViewsChanged=t=>{const s=t==null?void 0:t.detail;s!=null&&s.activeViews&&this.updateBackNavigationFromActiveViews(s.activeViews)},this.drawerViewSwapper.addEventListener("mealz-active-views-changed",this.onActiveViewsChanged))}updateBackNavigationFromActiveViews(e){const t=Array.isArray(e)&&e.length>1;this.hasBackNavigation!==t&&(this.hasBackNavigation=t,this.requestUpdate())}getRecipeDetailsCloseIcon(){return this.hasBackNavigation?{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/arrow-right.svg",alt:"back button",className:"mealz-recipe-details__close-icon is-back"}:{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/Cross_primary.svg",alt:"modal close button",className:"mealz-recipe-details__close-icon"}}getRecipeDetailsStickyCloseIcon(){return this.hasBackNavigation?{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/ArrowLeft_dark.svg",alt:"back button",className:"mealz-recipe-details__close-icon before-title is-back"}:{src:"https://storage.googleapis.com/assets.miam.tech/generic/icons/Cross_Black.svg",alt:"modal close button",className:"mealz-recipe-details__close-icon"}}setStickyObserver(){this.topObserver||this.updateComplete.then(()=>{const e=this.querySelector(".mealz-recipe-details__sticky-anchor");e&&(this.topObserver=new IntersectionObserver(([t])=>{this.stickyTimeout&&clearTimeout(this.stickyTimeout),this.stickyTimeout=window.setTimeout(()=>{const s=!t.isIntersecting;this.isSticky!==s&&(this.isSticky=s,this.requestUpdate())},150)},{threshold:0}),this.topObserver.observe(e))})}startRecipeDetailsOnboardingIfNeeded(){localStorage.getItem("_miam/recipeDetailsOnboarding")==="true"||!this.plannerMode||this.updateComplete.then(()=>{this.scrollJustAfterImage();let t=document.querySelector("mealz-planner-onboarding");t?t.type="recipe-details":(t=new ae,t.type="recipe-details",document.body.appendChild(t)),t.launchOnboardingTour()})}scrollJustAfterImage(){const e=this.querySelector(".mealz-recipe-details__tabs");if(!e)return;const t=document.querySelector(".mealz-drawer__content-container");if(t){const s=e.getBoundingClientRect(),a=t.getBoundingClientRect();t.scrollTop+=s.top-a.top;return}e.scrollIntoView({behavior:"smooth",block:"start"})}handleNoSupplierMode(){this.noSupplier=!!r.supplier.isNoSupplier(),this.requestUpdate()}close(){this.sendCloseEvent(),r.recipes.displayedRecipe$.next(null)}listenToCloseEvent(){const e=document.querySelector("mealz-drawer");e&&e.addEventListener("drawerClosed",()=>{this.sendCloseEvent()})}selectTab(e){this.activeTabIndex=e,this.activeTabIndex===1&&this.sendCookingDisplayEvent(),this.requestUpdate()}getLikeButton(){if(this.noSupplier)return;const e=this.detailsCategoryId;r.user.isAuthenticated().pipe(w(this.destroy$),N(t=>t),q(()=>r.html.like(this.recipe.id,this.analyticsPath,e))).subscribe({next:t=>{this.likeButtonHTML=t,this.requestUpdate()},error:t=>console.error("Like button error:",t)})}checkSponsorStorytelling(){this.sponsor&&r.sponsor.hasStorytelling(this.sponsor.id).pipe(w(this.destroy$)).subscribe({next:e=>{this.hasSponsorStorytelling=e,this.requestUpdate()},error:e=>console.error("Sponsor storytelling error:",e)})}listenPosStatus(){return G({noPosDisplay:r.recipes.noPosDisplay$,invalidPosDisplay:r.recipes.invalidPosDisplay$}).pipe(T(({noPosDisplay:e,invalidPosDisplay:t})=>{this.noPosDisplay=e,this.invalidPosDisplay=t,this.activeTabIndex=e?1:0}),y(()=>{}))}listenLastOrderDate(){return r.recipes.orderHistoryDate$.pipe(T(e=>{this.orderHistoryDate=e}))}listenToLoadingStates(){return G([r.recipes.ingredientToBasketLoading$,r.recipes.updateIngredientFromBasketLoading$]).pipe(y(([e,t])=>e||t),T(e=>{this.basketIsUpdating=e}),ce(1))}listenRemainingBasketEntries(){return r.recipes.remainingBasketEntries$.pipe(T(e=>{this.remainingBasketEntries=e}))}listenToAddAllToBasket(){return r.recipes.allIngredientsToBasketLoading$.pipe(T(e=>{e&&(this.selectTab(0),setTimeout(()=>{this.scrollToPicker()},50))}))}listenToRecipeInBasket(){return r.recipes.isRecipeInBasket(this.recipe.id).pipe(T(e=>{this.inBasket=e}))}scrollToPicker(){const e=this.querySelector(".mealz-products-picker");if(e){const t=this.querySelector(".mealz-recipe-details__title-container"),s=(t==null?void 0:t.offsetHeight)||0;e.style.scrollMarginTop=`${s}px`,e.scrollIntoView({behavior:"instant",block:"start"})}}scrollToReplacedItem(e){var s,a;const t=this.querySelectorAll("mealz-product-card-planner");for(const n of Array.from(t)){const l=n;if(((a=(s=l.product)==null?void 0:s.item)==null?void 0:a.id)===e){l.scrollIntoView({behavior:"instant",block:"center"});break}}}openLastOrderModal(){this.sendOrderedDisplayEvent();const e=new se;e.recipeId=this.recipe.id,e.addEventListener("orderAgain",()=>this.orderAgain()),e.displayLastOrderModal(this.orderHistoryDate)}orderAgain(){r.recipes.addAllIngredientsToBasket({originPath:this.analyticsPath,props:{}})}updateGuests(e){if(this.recipe.modifiedGuests===e.detail.value)return;this.recipe.modifiedGuests=e.detail.value,this.guestObserverService.updateGuests(this.recipe.modifiedGuests);const t={originPath:this.analyticsPath,props:{}};this.plannerMode?r.planner.updateGuests(this.recipe.modifiedGuests,t):r.recipes.updateGuests(t),this.requestUpdate()}render(){const e=this.getRecipeDetailsCloseIcon(),t=this.getRecipeDetailsStickyCloseIcon();return i`
538
538
  <div class="mealz-recipe-details">
539
539
  <!-- IF IS LOADING -->
540
540
  ${this.recipe?d:i`
@@ -647,6 +647,7 @@ import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";
647
647
  .noPosDisplay=${this.noPosDisplay}
648
648
  .noSupplier=${this.noSupplier}
649
649
  .recipeId=${this.recipe.id}
650
+ .categoryId=${this.detailsCategoryId}
650
651
  .plannerMode=${this.plannerMode}
651
652
  .guests=${this.recipe.modifiedGuests}
652
653
  .recipe=${this.recipe}
@@ -1,4 +1,4 @@
1
- import{N as m,k as a}from"../assets/no-shadow-element-CXVMZH9n.js";import{n as d}from"../assets/property-BXpY_hgs.js";import{r as _}from"../assets/state-BjFDUoQX.js";import{e as u}from"../assets/query-BApjzB0v.js";import{a as h}from"../assets/mealz-sdk-CnvUgy3V.js";class f{get extId(){return this.attributes["ext-id"]}}var g=Object.defineProperty,b=Object.getOwnPropertyDescriptor,n=(c,t,e,s)=>{for(var i=s>1?void 0:s?b(t,e):t,o=c.length-1,l;o>=0;o--)(l=c[o])&&(i=(s?l(t,e,i):l(i))||i);return s&&i&&g(t,e,i),i};class r extends m{constructor(){var t,e,s,i,o,l;super(),this.selectedRadius=50,this.getByAddress=(e=(t=h)==null?void 0:t.pos)==null?void 0:e.getByAddress,this.getByCoordinates=(i=(s=h)==null?void 0:s.pos)==null?void 0:i.getByCoordinates,this.getAffiliateSuppliers=(l=(o=h)==null?void 0:o.supplier)==null?void 0:l.getAffiliateSuppliers,this._show=!1,this._posList=[],this._suppliers=[],this._markers=[],this._searchingPos=!1,this._searchSubmitted=!1,this._prevAddress="",this._selectedSuppliers=[],this._showPosList=!1,this._posSelected=!1,this.subscriptions=[],this.styleURL=new URL("/store-locator.css",import.meta.url)}get show(){return this._show}set show(t){this._show=t,this._show&&(this._posSelected=!1,this.initialSearch(),this._map&&this.ensureMapSize())}set geolocationCoordinates(t){var e,s;this._geolocationCoordinates=t,typeof((e=t==null?void 0:t.coords)==null?void 0:e.latitude)=="number"&&typeof((s=t==null?void 0:t.coords)==null?void 0:s.longitude)=="number"&&this.setGeolocation()}get geolocationCoordinates(){return this._geolocationCoordinates}getMapContainer(){var e;const t=this._mapElement??((e=this.querySelector)==null?void 0:e.call(this,"#mealz-store-locator__map"));return t instanceof HTMLElement?t:null}_nameOfStore(t){return`${t.supplier.attributes.name} - ${t.attributes.name}`}connectedCallback(){super.connectedCallback(),this.initLeaflet(),this.initEvents(),this.initResizeObserver()}disconnectedCallback(){var t,e,s;this.subscriptions.forEach(i=>i.unsubscribe()),this._resizeObserver&&this._resizeObserver.disconnect(),super.disconnectedCallback(),this._map&&(this._map.off(),this._map.remove(),this._map=void 0),(t=this._leafletCss)==null||t.remove(),(e=this._miamDs)==null||e.remove(),(s=this._leafletJs)==null||s.remove()}firstUpdated(){this._posSelected=!1,this.loadMap(),this.geolocationTimeout(),this.listenFormSubmit(),this._map&&this.ensureMapSize()}render(){return this.show?this.posSelectionTemplate():a``}posSelectionTemplate(){return a`
1
+ import{N as m,k as a}from"../assets/no-shadow-element-CXVMZH9n.js";import{n as d}from"../assets/property-BXpY_hgs.js";import{r as _}from"../assets/state-BjFDUoQX.js";import{e as u}from"../assets/query-BApjzB0v.js";import{a as h}from"../assets/mealz-sdk-CnvUgy3V.js";class f{get extId(){return this.attributes["ext-id"]}}var g=Object.defineProperty,b=Object.getOwnPropertyDescriptor,n=(c,t,e,s)=>{for(var i=s>1?void 0:s?b(t,e):t,o=c.length-1,l;o>=0;o--)(l=c[o])&&(i=(s?l(t,e,i):l(i))||i);return s&&i&&g(t,e,i),i};class r extends m{constructor(){var t,e,s,i,o,l;super(),this.selectedRadius=50,this.getByAddress=(e=(t=h)==null?void 0:t.pos)==null?void 0:e.getByAddress,this.getByCoordinates=(i=(s=h)==null?void 0:s.pos)==null?void 0:i.getByCoordinates,this.getAffiliateSuppliers=(l=(o=h)==null?void 0:o.supplier)==null?void 0:l.getAffiliateSuppliers,this._show=!1,this._posList=[],this._suppliers=[],this._markers=[],this._searchingPos=!1,this._searchSubmitted=!1,this._prevAddress="",this._selectedSuppliers=[],this._showPosList=!1,this._posSelected=!1,this.subscriptions=[],this.styleURL=new URL("./store-locator/store-locator.css",this.getBaseURL())}get show(){return this._show}set show(t){this._show=t,this._show&&(this._posSelected=!1,this.initialSearch(),this._map&&this.ensureMapSize())}set geolocationCoordinates(t){var e,s;this._geolocationCoordinates=t,typeof((e=t==null?void 0:t.coords)==null?void 0:e.latitude)=="number"&&typeof((s=t==null?void 0:t.coords)==null?void 0:s.longitude)=="number"&&this.setGeolocation()}get geolocationCoordinates(){return this._geolocationCoordinates}getMapContainer(){var e;const t=this._mapElement??((e=this.querySelector)==null?void 0:e.call(this,"#mealz-store-locator__map"));return t instanceof HTMLElement?t:null}_nameOfStore(t){return`${t.supplier.attributes.name} - ${t.attributes.name}`}connectedCallback(){super.connectedCallback(),this.initLeaflet(),this.initEvents(),this.initResizeObserver()}disconnectedCallback(){var t,e,s;this.subscriptions.forEach(i=>i.unsubscribe()),this._resizeObserver&&this._resizeObserver.disconnect(),super.disconnectedCallback(),this._map&&(this._map.off(),this._map.remove(),this._map=void 0),(t=this._leafletCss)==null||t.remove(),(e=this._miamDs)==null||e.remove(),(s=this._leafletJs)==null||s.remove()}firstUpdated(){this._posSelected=!1,this.loadMap(),this.geolocationTimeout(),this.listenFormSubmit(),this._map&&this.ensureMapSize()}render(){return this.show?this.posSelectionTemplate():a``}posSelectionTemplate(){return a`
2
2
  <div class="mealz-store-locator mealz-ds-body">
3
3
  <div class="mealz-store-locator__pos-selection">
4
4
  <button
@@ -1,4 +1,4 @@
1
- import{N as a,k as i}from"../assets/no-shadow-element-CXVMZH9n.js";import{w as n}from"../assets/mealz-sdk-CnvUgy3V.js";import{f as o}from"../assets/filter-aZV_N5pj.js";import"../assets/OperatorSubscriber-CvNNPrIM.js";class p extends a{constructor(){super(),this.onboardingSteps=[{title:"Choisissez une recette",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingRecipe.png"},{title:"Sélectionnez votre magasin",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingDrive.png"},{title:"Commandez vos ingrédients",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingIngredients.png"}],this.subscriptions=[],this.supplierList=[],this.analyticsPath="/supplier-selector",this.styleURL=new URL("/supplier-selector.css",import.meta.url)}connectedCallback(){super.connectedCallback(),n().then(()=>this.loadAvailableSuppliers()).catch(e=>{console.warn("[MealzSupplierSelector] MealzInternal SDK not available, suppliers will not be loaded.",e)}),this.listenToDrawerViewSwapper(),this.listenToCloseEvent()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}loadAvailableSuppliers(){var r;const e=window.mealz,s=(r=e==null?void 0:e.supplier)==null?void 0:r.getAffiliateSuppliers;if(!s){console.warn("[MealzSupplierSelector] mealz.supplier.getAffiliateSuppliers is not available.");return}const t=s();if(!t||typeof t.subscribe!="function"){console.warn("[MealzSupplierSelector] getAffiliateSuppliers did not return a subscribable observable.");return}this.subscriptions.push(t.subscribe(l=>{this.supplierList=l,this.requestUpdate()}))}selectSupplier(e){localStorage.setItem("_miam/selectedSupplierId",e.id),this.sendSelectSupplierEvent(e);const s=this.closest("mealz-drawer-view-swapper"),t=document.querySelector("mealz-store-locator");s&&(s.displayStoreLocator$.next(!0),window.mealzInternal.noSupplier.displaySupplierSelector$.next(!1),t&&(t.show=!0))}listenToDrawerViewSwapper(){const e=document.querySelector("mealz-drawer-view-swapper");e&&this.subscriptions.push(e.displaySupplierSelector$.pipe(o(s=>s)).subscribe(()=>this.pageview()))}listenToCloseEvent(){const e=document.querySelector("mealz-drawer");e&&e.addEventListener("drawerClosed",()=>{this.sendCloseEvent()})}render(){return i`
1
+ import{N as a,k as i}from"../assets/no-shadow-element-CXVMZH9n.js";import{w as n}from"../assets/mealz-sdk-CnvUgy3V.js";import{f as o}from"../assets/filter-aZV_N5pj.js";import"../assets/OperatorSubscriber-CvNNPrIM.js";class p extends a{constructor(){super(),this.onboardingSteps=[{title:"Choisissez une recette",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingRecipe.png"},{title:"Sélectionnez votre magasin",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingDrive.png"},{title:"Commandez vos ingrédients",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingIngredients.png"}],this.subscriptions=[],this.supplierList=[],this.analyticsPath="/supplier-selector",this.styleURL=new URL("./supplier-selector/supplier-selector.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),n().then(()=>this.loadAvailableSuppliers()).catch(e=>{console.warn("[MealzSupplierSelector] MealzInternal SDK not available, suppliers will not be loaded.",e)}),this.listenToDrawerViewSwapper(),this.listenToCloseEvent()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}loadAvailableSuppliers(){var l;const e=window.mealz,s=(l=e==null?void 0:e.supplier)==null?void 0:l.getAffiliateSuppliers;if(!s){console.warn("[MealzSupplierSelector] mealz.supplier.getAffiliateSuppliers is not available.");return}const t=s();if(!t||typeof t.subscribe!="function"){console.warn("[MealzSupplierSelector] getAffiliateSuppliers did not return a subscribable observable.");return}this.subscriptions.push(t.subscribe(r=>{this.supplierList=r,this.requestUpdate()}))}selectSupplier(e){localStorage.setItem("_miam/selectedSupplierId",e.id),this.sendSelectSupplierEvent(e);const s=this.closest("mealz-drawer-view-swapper"),t=document.querySelector("mealz-store-locator");s&&(s.displayStoreLocator$.next(!0),window.mealzInternal.noSupplier.displaySupplierSelector$.next(!1),t&&(t.show=!0))}listenToDrawerViewSwapper(){const e=document.querySelector("mealz-drawer-view-swapper");e&&this.subscriptions.push(e.displaySupplierSelector$.pipe(o(s=>s)).subscribe(()=>this.pageview()))}listenToCloseEvent(){const e=document.querySelector("mealz-drawer");e&&e.addEventListener("drawerClosed",()=>{this.sendCloseEvent()})}render(){return i`
2
2
  <div class="mealz-supplier-selector">
3
3
  ${this.renderOnboarding()}
4
4
  ${this.renderSuppliers()}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mealz-components",
3
3
  "type": "module",
4
- "version": "2.8.0",
4
+ "version": "2.8.2",
5
5
  "main": "./dist/mealz-components.js",
6
6
  "module": "./dist/mealz-components.js",
7
7
  "scripts": {
@@ -1,290 +0,0 @@
1
- .mealz-store-locator {
2
- height: 100%;
3
- display: flex;
4
-
5
- .mealz-store-locator__pos-selection {
6
- display: flex;
7
- width: 320px;
8
- padding: 40px var(--spacing-padding-16-px, 16px);
9
- flex-direction: column;
10
- align-items: stretch;
11
- gap: var(--spacing-padding-16-px, 16px);
12
- flex-shrink: 0;
13
- background: var(--mealz-ds-color-neutral-white, #ffffff);
14
- box-shadow: 2px 0px 16px 0px rgba(0, 0, 0, 0.15);
15
- z-index: 1;
16
-
17
- .mealz-store-locator__title {
18
- color: var(--mealz-ds-color-neutral-black, #0f191f);
19
- font-size: 28px;
20
- font-weight: 700;
21
- line-height: 120%;
22
- }
23
-
24
- .mealz-store-locator__go-back-button {
25
- border-radius: 100%;
26
- height: 40px;
27
- width: 40px;
28
- display: flex;
29
- justify-content: center;
30
- align-items: center;
31
-
32
- img {
33
- width: 15px;
34
- height: 15px;
35
- }
36
- }
37
-
38
- #mealz-store-locator__store-locator-form {
39
- display: flex;
40
- flex-direction: column;
41
- gap: 8px;
42
-
43
- .mealz-store-locator__address-input-container {
44
- display: flex;
45
- gap: 8px;
46
- height: 40px;
47
- position: relative;
48
-
49
- .mealz-store-locator__locate-button {
50
- position: absolute;
51
- background: unset;
52
- border: unset;
53
- padding: 0;
54
- top: 8px;
55
- left: 8px;
56
- width: 24px;
57
- height: 24px;
58
-
59
- .mealz-store-locator__geolocation-icon {
60
- cursor: pointer;
61
- width: 24px;
62
- height: 24px;
63
- }
64
- }
65
-
66
- .mealz-store-locator__locate-button
67
- + .mealz-store-locator__address-input {
68
- padding-left: 40px;
69
- }
70
-
71
- .mealz-store-locator__address-input {
72
- padding-left: 8px;
73
- flex: 1;
74
- border: 1px solid var(--mealz-ds-color-neutral-200, #D9DDE1);
75
- border-radius: 4px;
76
- font-size: 14px;
77
- }
78
- }
79
-
80
- .mealz-store-locator__select-supplier {
81
- display: flex;
82
-
83
- .mealz-store-locator__select-supplier-select {
84
- flex: 1;
85
- padding: 10px;
86
- max-width: initial;
87
- }
88
- }
89
- }
90
-
91
- .mealz-store-locator__pos-loader {
92
- flex: 1;
93
- width: 100%;
94
- display: flex;
95
- justify-content: center;
96
- align-items: center;
97
- }
98
-
99
- .mealz-store-locator__pos-loader .mealz-ds-loader {
100
- margin: 16px;
101
- display: flex;
102
- width: 72px;
103
- height: 72px;
104
- background-position-x: 36px;
105
- background-size: 36px 36px;
106
- }
107
-
108
- #mealz-store-locator__pos-list {
109
- flex-direction: column;
110
- align-items: flex-start;
111
- gap: var(--spacing-padding-12-px, 12px);
112
- align-self: stretch;
113
- overflow: auto;
114
- }
115
-
116
- .mealz-store-locator__pos-list__visible,
117
- .mealz-store-locator__pos-list__hidden {
118
- display: flex;
119
- }
120
-
121
- .mealz-store-locator__no-pos-found {
122
- margin-bottom: 16px;
123
- width: 100%;
124
- flex: 1;
125
- display: flex;
126
- justify-content: center;
127
- align-items: center;
128
- flex-direction: column;
129
- }
130
- }
131
-
132
- #mealz-store-locator__view-swapper-button {
133
- display: none;
134
- }
135
-
136
- .mealz-store-locator__pos-item {
137
- display: flex;
138
- flex-direction: column;
139
- padding: 8px;
140
- align-items: flex-start;
141
- gap: 16px;
142
- align-self: stretch;
143
- border-radius: 8px;
144
- border: 1px solid var(--mealz-ds-color-neutral-200, #eff1f3);
145
-
146
- .mealz-store-locator__pos-data {
147
- display: flex;
148
- align-items: flex-start;
149
- gap: 8px;
150
- align-self: stretch;
151
-
152
- .mealz-store-locator__pos-picture {
153
- width: 40px;
154
- height: 40px;
155
- flex-shrink: 0;
156
- }
157
-
158
- .mealz-store-locator__pos-name {
159
- color: var(--mealz-ds-color-neutral-black, #0f191f);
160
- font-size: 14px;
161
- font-weight: 700;
162
- line-height: 150%;
163
- }
164
-
165
- .mealz-store-locator__pos-address {
166
- color: var(--mealz-ds-color-neutral-500, #8c96a2);
167
- font-size: 12px;
168
- font-weight: 600;
169
- line-height: 150%;
170
- }
171
- }
172
-
173
- .mealz-store-locator__pos-cta {
174
- display: flex;
175
- justify-content: flex-end;
176
- width: 100%;
177
-
178
- .mealz-select-pos-button {
179
- border-radius: 1000px;
180
- }
181
- }
182
- }
183
-
184
- #mealz-store-locator__map {
185
- z-index: 0;
186
- flex: 1 1 0;
187
- min-height: 400px;
188
- width: 100%;
189
-
190
- .mealz-store-locator__pos-item {
191
- border: none;
192
- padding: 0;
193
- }
194
-
195
- .leaflet-marker-pane .mealz-marker-icon {
196
- border-radius: 50%;
197
- overflow: hidden;
198
- object-fit: cover;
199
- border: 4px solid var(--mealz-ds-color-neutral-white, #FFFFFF);
200
- box-sizing: content-box;
201
- }
202
- }
203
- }
204
-
205
- @media (max-width: 768px) {
206
- .mealz-store-locator {
207
- position: absolute;
208
- flex-direction: column;
209
- inset: 0;
210
-
211
- .mealz-store-locator__pos-selection {
212
- width: 100%;
213
- padding: 0;
214
- gap: 0;
215
-
216
- .mealz-store-locator__go-back-button {
217
- position: absolute;
218
- z-index: 1;
219
- top: 12px;
220
- left: 8px;
221
- width: 32px;
222
- height: 32px;
223
- }
224
-
225
- .mealz-store-locator__title {
226
- position: relative;
227
- min-height: 56px;
228
- font-size: 16px;
229
- display: flex;
230
- align-items: center;
231
- justify-content: center;
232
- border-bottom: solid 1px var(--mealz-ds-color-neutral-200, #eff1f3);
233
- }
234
-
235
- #mealz-store-locator__store-locator-form {
236
- padding: 24px 16px;
237
-
238
- .mealz-store-locator__address-input-container {
239
- .mealz-store-locator__address-input {
240
- width: calc(100% - 44px);
241
- }
242
-
243
- .mealz-store-locator__search-address-button {
244
- width: 36px;
245
- }
246
- }
247
- }
248
-
249
- #mealz-store-locator__pos-list {
250
- padding: 0 16px 12px;
251
- align-items: center;
252
-
253
- &.mealz-store-locator__pos-list__visible {
254
- display: flex;
255
- }
256
-
257
- &.mealz-store-locator__pos-list__hidden {
258
- display: none;
259
- }
260
- }
261
-
262
- .mealz-store-locator__pos-loader {
263
- position: absolute;
264
- height: 100%;
265
- }
266
-
267
- &.mealz-store-locator__pos-selection__height {
268
- height: 100%;
269
- }
270
- }
271
-
272
- #mealz-store-locator__view-swapper-button {
273
- width: 100%;
274
- display: flex;
275
- justify-content: center;
276
- padding: 12px 0;
277
-
278
- &.mealz-store-locator__see-list-button {
279
- z-index: 1;
280
- bottom: 40px;
281
- position: absolute;
282
- }
283
-
284
- &.mealz-store-locator__see-map-button {
285
- box-shadow: -2px 0 18px 0 rgba(0, 0, 0, 0.15);
286
- margin-top: auto;
287
- }
288
- }
289
- }
290
- }
@@ -1,99 +0,0 @@
1
- .mealz-supplier-selector {
2
- .mealz-supplier-selector__onboarding-container {
3
- padding: 24px;
4
- background-color: var(--mealz-ds-color-primary-100, #e4eaec);
5
-
6
- .mealz-supplier-selector__onboarding-title {
7
- margin: 0 0 8px 0;
8
- }
9
-
10
- .mealz-supplier-selector__onboarding-steps {
11
- overflow-y: scroll;
12
- margin-top: 16px;
13
- display: flex;
14
-
15
- > *:not(:last-child) {
16
- margin-right: 16px;
17
- }
18
-
19
- .mealz-supplier-selector__card {
20
- background-color: var(--mealz-ds-color-neutral-white, #fff);
21
- display: flex;
22
- align-items: center;
23
- padding: 16px;
24
- border-radius: 12px;
25
-
26
- .mealz-supplier-selector__instructions {
27
- flex: 1 1 0;
28
- margin-right: 24px;
29
-
30
- .mealz-supplier-selector__step-counter {
31
- display: flex;
32
- justify-content: center;
33
- align-items: center;
34
- margin-bottom: 8px;
35
- height: 32px;
36
- width: 32px;
37
- border-radius: 50%;
38
- background-color: var(--mealz-ds-color-primary, #24748F);
39
- color: var(--mealz-ds-color-neutral-white, #fff);
40
- }
41
- }
42
-
43
- .mealz-supplier-selector__onboarding-step-image {
44
- flex: 1 1 0;
45
- }
46
- }
47
- }
48
- }
49
-
50
- .mealz-supplier-selector__suppliers-container {
51
- padding: 24px;
52
-
53
- .mealz-supplier-selector__supplier-list {
54
- display: grid;
55
- grid-template-columns: repeat(3, minmax(150px, 1fr));
56
- margin: 0 -6px -6px -6px;
57
-
58
- .mealz-supplier-selector__supplier-button-card {
59
- border-radius: 8px;
60
- background: none;
61
- border: none;
62
- padding: 0;
63
- margin: 6px;
64
- cursor: pointer;
65
- position: relative;
66
- overflow: hidden;
67
-
68
- .mealz-supplier-selector__supplier-logo {
69
- display: block;
70
- position: absolute;
71
- top: 50%;
72
- left: 50%;
73
- transform: translate(-50%, -50%);
74
- max-width: 65%;
75
- max-height: 100%;
76
- width: auto;
77
- height: auto;
78
- object-fit: contain;
79
- }
80
-
81
- .mealz-supplier-selector__supplier-bg {
82
- display: block;
83
- }
84
- }
85
- }
86
-
87
- @media (max-width: 575px) {
88
- .mealz-supplier-selector__supplier-list {
89
- grid-template-columns: repeat(2, minmax(150px, 1fr));
90
- }
91
- }
92
-
93
- @media (max-width: 375px) {
94
- .mealz-supplier-selector__supplier-list {
95
- grid-template-columns: repeat(1, minmax(150px, 1fr));
96
- }
97
- }
98
- }
99
- }