mealz-components 2.3.0 → 2.3.1
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"../../drawer-view-swapper/drawer-view-swapper.min.js";import"../../slider-tabs/slider-tabs.min.js";import"../planner-onboarding-modal/planner-onboarding-modal.min.js";import"../to-basket-loader/to-basket-loader.min.js";import{o as h}from"../helpers/open-onboarding-modal.min.js";import{M as y}from"../planner-abandon-modal/planner-abandon-modal.min.js";import{i as M,a as C,M as g}from"../planner-onboarding/planner-onboarding.min.js";import{M as v}from"../planner-open-catalog-modal/planner-open-catalog-modal.min.js";import{M as B}from"../planner-welcome-modal/planner-welcome-modal.min.js";import{N as w,B as _}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as S}from"../../assets/custom-element-BhZVzxrc.js";import{r as z}from"../../assets/state-C5zM4-Pq.js";import{m as o}from"../../assets/mealz-sdk-E_fNZM-c.js";import{P as R}from"../../assets/price-CHipCs2z.js";import{t as l}from"../../assets/take-ByPtGQky.js";import{f as b}from"../../assets/filter-DQ4vwAGj.js";import{m as p}from"../../assets/map-DHslluWD.js";import{c as E}from"../../assets/combineLatest-BN0_WcEG.js";import"../../drawer/drawer.min.js";import"../../assets/property-Bx8Yvr4_.js";import"../../assets/unsafe-html-Bv_ydUHb.js";import"../../store-locator-drawer/store-locator-drawer.min.js";import"../../assets/skipWhile-BzDgmir5.js";import"../../assets/OperatorSubscriber-DF1TYu__.js";import"../../assets/switchMap-6Z80ObHE.js";import"../../assets/innerFrom-FMZwm2mb.js";import"../../recipe-details/recipe-details.min.js";import"../../recipe-pricing/recipe-pricing.min.js";import"../../assets/viewport-listener-DrFhSZNW.js";import"../../assets/debounceTime-D7R6Z3Am.js";import"../../assets/async-D5WN8Wfc.js";import"../../assets/empty-Bs9kqCuA.js";import"../../assets/merge-tdU3EgEI.js";import"../../assets/mergeAll-DTkL1sF8.js";import"../../assets/mergeMap-g-JGW99j.js";import"../../assets/executeSchedule-C0acKsif.js";import"../../assets/from-BTlWkhKh.js";import"../../assets/capitalize-DUAqYmp4.js";import"../../counter/counter.min.js";import"../../assets/product-card-c_0I2Lp_.js";import"../../price/price.min.js";import"../../assets/promotion-badge-CzwsPJJq.js";import"../../assets/delay-wUm-cx7a.js";import"../../assets/timer-C3uKg-qK.js";import"../../assets/accordion-la5mVBfL.js";import"../../store-indicator/store-indicator.min.js";import"../../store-locator/store-locator.min.js";import"../../assets/query-BApjzB0v.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"../../last-order-modal/last-order-modal.min.js";import"../../assets/tap-K_D6lo97.js";import"../../onboarding/onboarding.min.js";import"../../onboarding/events.min.js";import"../../onboarding/analytics/onboarding-analytics.min.js";import"../../assets/mapOneOrManyArgs-Bdu6mo6S.js";import"../planner-catalog/planner-catalog.min.js";import"../../catalog/catalog-load-more.min.js";import"../../assets/http-Bepz6wA4.js";import"../../replace-item/replace-item.min.js";import"../../replace-item/replace-item-card/replace-item-card.min.js";import"../../assets/price-utils-BRFZa-3D.js";import"../../assets/distinctUntilChanged-VvZTmHoN.js";import"../../replace-item-planner/replace-item-planner.min.js";import"../../replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js";import"../../history-drawer/history-drawer.min.js";import"../../assets/of-hd4MpK5g.js";import"../../supplier-selector/supplier-selector.min.js";import"../../catalog/basket-preview/basket-preview.min.js";import"../../modal/modal.min.js";import"../../preferences/preferences.min.js";var k=Object.defineProperty,L=Object.getOwnPropertyDescriptor,f=(e,t,n,r)=>{for(var i=r>1?void 0:r?L(t,n):t,a=e.length-1,s;a>=0;a--)(s=e[a])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&k(t,n,i),i};let u=class extends w{constructor(){super(...arguments),this.analyticsPath="/meals-planner/current",this.loaderToBasketComplete$=new _(!1),this.subscriptions=[],this.isCustomMenu=!1,this.budget=0,this.recipeSources=new Map,this.priceService=R.getInstance(),this.isMobile=!1}get selectors(){return{recipe:".mealz-planner-current-menu__recipe",menu:".mealz-planner-current-menu__menu",displayMenuButton:".mealz-planner-current-menu__mobile-menu-button",displayRecipeButton:".mealz-planner-current-menu__mobile-recipe-button",returnButton:".mealz-planner-current-menu__mobile-return-button",preferencesButton:".mealz-planner-current-menu__menu-header-preferences",preferencesMobileButton:".mealz-planner-current-menu__mobile-preferences-button",onboardingButton:".mealz-planner-current-menu__onboarding-button",onboardingButtonMobile:".mealz-planner-current-menu__mobile-onboarding-button",cancelMenuButton:".mealz-planner-current-menu__cancel-menu-button",footerButton:".mealz-planner-current-menu__footer-button",footerIcon:".mealz-planner-current-menu__footer-icon",footerDisabledIcon:".mealz-planner-current-menu__footer-disabled-icon",recipeCounterBadge:".mealz-planner-current-menu__menu-badge",preferencesCounterBadges:[".mealz-planner-current-menu__preferences-badge"],mealExtras:[".mealz-planner-current-menu__meal-extras-choice"]}}get nbrRecipeInMenu(){return this.querySelectorAll(".mealz-planner-recipe-card").length}connectedCallback(){super.connectedCallback(),this.pageview(),this.initSelectors(),this.addEventListeners(),this.priceService.initFormatter(),this.addEventListener("budgetUpdated",e=>{const t=e.detail;(t==null?void 0:t.budgetLimit)===void 0||t.budgetLimit===null||this.updateBudget(t.budgetLimit)}),this.isMobile=M(this),this.handleResize(),this.removeResponsiveListener=C(this,e=>{e!==this.isMobile&&(this.isMobile=e),this.handleResize()}),o.recipes.setIsRecipeDetailsFromPlanner(!0),this.isCustomMenu=localStorage.getItem("_miam/isCustomMenu")==="true",this.isCustomMenu||this.setDefaultMobileView(),this.subscriptions.push(o.preferences.preferencesCount().subscribe(e=>this.updatePreferencesCount(e))),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.showWelcomeModal()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.removeResponsiveListener&&(this.removeResponsiveListener(),this.removeResponsiveListener=void 0)}render(){const e=this.getAttribute("starting-data");e&&(Object.assign(this,JSON.parse(e)),this.removeAttribute("starting-data"))}showWelcomeModal(){const e=this.isCustomMenu?"_miam/customMenuOnboarding":"_miam/suggestionOnboarding";if(localStorage.getItem(e)==="true")return;const n=new B;n.isCustomMenu=this.isCustomMenu,n.addEventListener("openOnboarding",r=>{const i=r.detail??{};this.startPlannerOnboarding(i.isCustomMenu??this.isCustomMenu,!1)}),n.addEventListener("onboarding-skipped",()=>{localStorage.setItem(e,"true"),this.startPlannerOnboarding(!1,!0)}),n.displayPlannerWelcomeModal(),this.autoCloseWelcomeOnDrawerOpen(n)}autoCloseWelcomeOnDrawerOpen(e){requestAnimationFrame(()=>{const n=document.querySelector("mealz-drawer-view-swapper");if(!n)return;const r=n.currentView$.subscribe(i=>{i!==void 0&&(document.body.contains(e)&&e.remove(),r.unsubscribe())})})}startPlannerOnboarding(e,t){this.scrollIntoView({behavior:"smooth",block:"center"});const n=new g;n.isCustomMenu=e,document.body.appendChild(n),t?(n.type=this.isMobile?"guide-mobile":"guide",n.launchOnboardingTour()):(this.isMobile?n.type=e?"custom-mobile":"suggestion-mobile":n.type=e?"custom":"suggestion",n.startTour())}addEventListeners(){this.addClickListener("displayMenuButton",()=>{this.toggleMobileView(!0)}),this.addClickListener("displayRecipeButton",()=>{this.toggleMobileView(!1)}),this.addClickListener("preferencesButton",()=>{this.openPreferences()}),this.addClickListener("preferencesMobileButton",()=>{this.openPreferences()}),this.addClickListener("cancelMenuButton",this.cancelMenu.bind(this)),this.addClickListener("footerButton",()=>{this.handleMenu()}),this.addClickListener("onboardingButton",()=>h("current")),this.addClickListener("onboardingButtonMobile",()=>h("current"));const{mealExtras:e}=this.elements;e==null||e.forEach(t=>{t.addEventListener("click",this.openCatalogSelection.bind(this))})}toggleMobileView(e){const{recipe:t,menu:n,displayMenuButton:r,displayRecipeButton:i,returnButton:a}=this.elements;!t||!n||!r||!i||!a||(t.style.display=e?"none":"block",n.style.display=e?"flex":"none",r.style.display=e?"none":"flex",i.style.display=e?"block":"none",a.style.display=e?"none":"block")}setDefaultMobileView(){this.isMobile&&this.toggleMobileView(!0)}handleResize(){const{menu:e,recipe:t}=this.elements;!e||!t||(this.isMobile?this.toggleMobileView(!1):(e.style.display="flex",t.style.display="block"))}async openPreferences(){const e=document.querySelector("mealz-drawer-view-swapper");e&&(e.displayPreferences$.next(!0),await e.updateComplete)}updatePreferencesCount(e){const{preferencesCounterBadges:t}=this.elements;t&&t.forEach(n=>{const r=n.querySelector("p");r&&(r.textContent=e.toString(),n.classList.toggle("hidden",e===0))})}updateRecipeCounterBadge(e){const{recipeCounterBadge:t}=this.elements;if(!t)return;const n=t.querySelector("p");n.textContent=e.toString(),t.classList.toggle("hidden",e===0)}openCatalogSelection(e){const t=e.target.closest(".mealz-planner-current-menu__meal-extras-choice");if(!t)return;const r=["starter","dessert","drink"].find(i=>t.classList.contains(i));r&&(this.openCatalogDrawer(r),this.categoryDisplayEvent(r))}cancelMenu(){const e=new y;e.addEventListener("resetMenu",()=>this.resetMenu()),e.displayPlannerAbandonModal()}resetMenu(){const e=o.planner.deleteMenu(this.menuId);this.resetMenuEvent(),e.pipe(l(1)).subscribe(()=>{this.updateRecipeCounterBadge(0),this.redirectToCatalogHome()})}redirectToDashboard(){var e;(e=this.plannerRoutes)!=null&&e.dashboard&&(window.location.href=this.plannerRoutes.dashboard)}redirectToCatalogHome(){var e;(e=this.plannerRoutes)!=null&&e.catalogHome&&(window.location.href=this.plannerRoutes.catalogHome)}redirectToRetailerCart(){var e,t;if((e=this.plannerRoutes)!=null&&e.retailerCart){window.location.href=this.plannerRoutes.retailerCart;return}(t=this.plannerRoutes)!=null&&t.catalogHome&&(window.location.href=this.plannerRoutes.catalogHome+"?myMeals=products")}handleMenu(){this.storeId?(this.displayAddToBasketLoaderView(),this.finalizeMenuEvent(),this.navigateOnceDone()):console.log("register menu")}navigateOnceDone(){const e=this.loaderToBasketComplete$.pipe(b(n=>n===!0),l(1)),t=o.planner.menuToBasket(this.basket.id).pipe(l(1),p(()=>o.basket.updateRetailerBasketFromPlanner()));this.subscriptions.push(E([t,e]).pipe(l(1)).subscribe(()=>{this.loaderToBasketElement.remove(),this.redirectToRetailerCart()}))}retrieveRecipesImgs(){const e=[];return document.querySelectorAll(".mealz-planner-recipe-card").forEach(n=>{if(n.querySelector(".mealz-planner-recipe-card__in-basket:not(.hidden)"))return;const i=n.querySelector("img");i&&i.src&&e.push(i.src)}),e}displayAddToBasketLoaderView(){const e=document.querySelector(".mealz-planner-current-menu");if(!e)return;e.style.display="none";const t=this.retrieveRecipesImgs();this.loaderToBasketElement=document.querySelector("mealz-to-basket-loader")||document.createElement("mealz-to-basket-loader"),document.querySelector("mealz-to-basket-loader")||(this.loaderToBasketElement.recipeImgs=t,this.loaderToBasketElement.addEventListener("basketComplete",()=>{this.loaderToBasketComplete$.next(!0)}),e.insertAdjacentElement("afterend",this.loaderToBasketElement))}updateFooterButton(e){const{footerButton:t,footerIcon:n,footerDisabledIcon:r}=this.elements;!t||!n||!r||(t.classList.toggle("disabled",!e),n.classList.toggle("hidden",!e),r.classList.toggle("hidden",e))}openCatalogModal(){const e=new v;e.addEventListener("openCatalog",()=>{this.openCatalogDrawer()}),e.displayMealzPlannerOpenCatalogModal()}async openCatalogDrawer(e){const t=document.querySelector("mealz-drawer-view-swapper");if(!t)return;t.displayPlannerCatalog$.next(!0),await t.updateComplete;const n=document.querySelector("mealz-planner-catalog");n&&(n.setConfig(this.storeId,this.catalogURL,this.sessionId,e),n.getPlannerCatalog(),n.pageview())}getRecipeSource(){const e=document.querySelector("mealz-planner-catalog");if(e){const t=e.getExtraType();if(t)switch(t){case"starter":return"collection_entrees";case"dessert":return"collection_desserts";case"drink":return"collection_boissons"}}return"catalog"}getJourney(){const e=document.querySelector("mealz-planner-catalog");if(e){if(e.getExtraType())return"meals-planner-categories";const n=document.querySelector("mealz-catalog-toolbar");if(n){const r=n.querySelector(".mealz-catalog-toolbar__searchbar-input");if(r&&r.value.trim().length>0)return"meals-space-catalog-search"}return"meals-space-catalog"}return"meals-planner-dashboard"}addRecipe(e,t,n,r){var d,m;const i=(m=(d=o.recipes)==null?void 0:d.productsPlannerByCategory$)==null?void 0:m.value,a=(i==null?void 0:i.toPickProducts)||[],s=n||this.getRecipeSource(),c=r||this.getJourney();return this.recipeSources.set(e,s),o.planner.addRecipeToMenu(e,t,!!o.pos.currentPos().value,a).pipe(l(1),p(async()=>{await this.addRecipeToList(e),this.showResetMenuButton(),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeAddedEvent(e,s,c),this.shouldShowMenuToBasketOnboarding()}))}removeRecipe(e){return o.planner.removeRecipeFromMenu(e).pipe(l(1),p(()=>{const t=this.findRecipeIndexById(e);t!==-1&&(this.removeRecipeFromList(t),this.recipeSources.delete(e),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeRemovedEvent(e))}))}async addRecipeToList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&await t.addRecipeCardToList(e)}removeRecipeFromList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&t.removeRecipeCardFromList(e)}showResetMenuButton(){const e=document.querySelector(".mealz-planner-current-menu__cancel-menu");e&&e.classList.remove("hidden")}shouldShowMenuToBasketOnboarding(){var r;if(localStorage.getItem("_miam/menuToBasketOnboarding")==="true")return;this.isMobile&&this.toggleMobileView(!0);const t=document.querySelector("mealz-drawer-view-swapper");((r=t==null?void 0:t.currentView$)==null?void 0:r.value)!==void 0?this.subscriptions.push(t.currentView$.pipe(b(i=>i===void 0),l(1)).subscribe(()=>{this.showMenuToBasketOnboarding()})):this.showMenuToBasketOnboarding()}showMenuToBasketOnboarding(){this.updateComplete.then(()=>{const e=new g;e.type=this.isMobile?"menu-to-basket-mobile":"menu-to-basket",document.body.appendChild(e),e.launchOnboardingTour()})}updateFooterButtonState(){const e=this.nbrRecipeInMenu>0;this.updateFooterButton(e)}findRecipeIndexById(e){const t=document.querySelectorAll("mealz-planner-recipe-card");for(let n=0;n<t.length;n++)if(t[n].recipeId===e)return n;return-1}getAllRecipeIds(){const e=[];return document.querySelectorAll("mealz-planner-recipe-card").forEach(n=>{const r=n.recipeId;r&&e.push(r)}),e}pageview(){o.analytics.sendEvent("pageview",this.analyticsPath,{})}resetMenuEvent(){o.analytics.sendEvent("planner.reset",this.analyticsPath,{})}finalizeMenuEvent(){o.analytics.sendEvent("planner.finalize",this.analyticsPath,{budget_user:this.budget,recipe_count:this.nbrRecipeInMenu,guests:this.guests,mode:this.isCustomMenu?"custom":"from-featured"},"meals-planner-dashboard"),this.getAllRecipeIds().forEach(t=>{const n=this.recipeSources.get(t)||"";o.analytics.sendEvent("recipe.add",this.analyticsPath,{recipe_id:t,recipe_source:n,mode:this.isCustomMenu?"custom":"from-featured"},"meals-planner-dashboard")})}recipeAddedEvent(e,t,n){o.analytics.sendEvent("planner.recipe.add",this.analyticsPath,{recipe_id:e,recipe_source:t||"",mode:this.isCustomMenu?"custom":"from-featured"},n||"meals-planner-dashboard")}recipeRemovedEvent(e){o.analytics.sendEvent("planner.recipe.delete",this.analyticsPath,{recipe_id:e})}categoryDisplayEvent(e){o.analytics.sendEvent("category.display",this.analyticsPath,{category_id:e})}async updateBudget(e){if(!this.menuId)return;const t=o.planner.updateMenu(this.menuId,{attributes:{budget:e}}).subscribe({next:()=>{this.budget=e,this.updateBudgetGaugeUI(e)}});this.subscriptions.push(t)}updateBudgetGaugeUI(e){var c;const t=this.querySelector(".mealz-planner-budget-gauge__budget-limit"),n=this.querySelector(".mealz-planner-budget-gauge__budget-define"),r=this.querySelector(".mealz-planner-budget-gauge__budget-edit"),i=this.querySelector(".mealz-planner-budget-gauge__budget"),a=this.querySelector(".mealz-planner-budget-gauge__gauge");t&&(t.textContent=`/ ${this.priceService.formatPrice(e)}`,t.classList.toggle("hidden",e<=0)),n&&n.classList.toggle("hidden",e>0),r&&r.classList.toggle("hidden",e<=0),i&&i.classList.toggle("only-total",e<=0),a&&a.classList.toggle("hidden",e<=0);const s=this.querySelector("mealz-planner-budget-gauge");s&&(s.budgetLimit=e,(c=s.elements)!=null&&c.gaugeBar&&typeof s.updateGaugeBar=="function"&&s.updateGaugeBar())}};f([z()],u.prototype,"isMobile",2);u=f([S("mealz-planner-current-menu")],u);customElements.get("mealz-planner-current-menu")||customElements.define("mealz-planner-current-menu",u);
|
|
1
|
+
import"../../drawer-view-swapper/drawer-view-swapper.min.js";import"../../slider-tabs/slider-tabs.min.js";import"../planner-onboarding-modal/planner-onboarding-modal.min.js";import"../to-basket-loader/to-basket-loader.min.js";import{o as h}from"../helpers/open-onboarding-modal.min.js";import{M as y}from"../planner-abandon-modal/planner-abandon-modal.min.js";import{i as M,a as C,M as g}from"../planner-onboarding/planner-onboarding.min.js";import{M as v}from"../planner-open-catalog-modal/planner-open-catalog-modal.min.js";import{M as B}from"../planner-welcome-modal/planner-welcome-modal.min.js";import{N as w,B as _}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as S}from"../../assets/custom-element-BhZVzxrc.js";import{r as z}from"../../assets/state-C5zM4-Pq.js";import{m as o}from"../../assets/mealz-sdk-E_fNZM-c.js";import{P as R}from"../../assets/price-CHipCs2z.js";import{t as l}from"../../assets/take-ByPtGQky.js";import{f as b}from"../../assets/filter-DQ4vwAGj.js";import{m as p}from"../../assets/map-DHslluWD.js";import{c as k}from"../../assets/combineLatest-BN0_WcEG.js";import"../../drawer/drawer.min.js";import"../../assets/property-Bx8Yvr4_.js";import"../../assets/unsafe-html-Bv_ydUHb.js";import"../../store-locator-drawer/store-locator-drawer.min.js";import"../../assets/skipWhile-BzDgmir5.js";import"../../assets/OperatorSubscriber-DF1TYu__.js";import"../../assets/switchMap-6Z80ObHE.js";import"../../assets/innerFrom-FMZwm2mb.js";import"../../recipe-details/recipe-details.min.js";import"../../recipe-pricing/recipe-pricing.min.js";import"../../assets/viewport-listener-DrFhSZNW.js";import"../../assets/debounceTime-D7R6Z3Am.js";import"../../assets/async-D5WN8Wfc.js";import"../../assets/empty-Bs9kqCuA.js";import"../../assets/merge-tdU3EgEI.js";import"../../assets/mergeAll-DTkL1sF8.js";import"../../assets/mergeMap-g-JGW99j.js";import"../../assets/executeSchedule-C0acKsif.js";import"../../assets/from-BTlWkhKh.js";import"../../assets/capitalize-DUAqYmp4.js";import"../../counter/counter.min.js";import"../../assets/product-card-c_0I2Lp_.js";import"../../price/price.min.js";import"../../assets/promotion-badge-CzwsPJJq.js";import"../../assets/delay-wUm-cx7a.js";import"../../assets/timer-C3uKg-qK.js";import"../../assets/accordion-la5mVBfL.js";import"../../store-indicator/store-indicator.min.js";import"../../store-locator/store-locator.min.js";import"../../assets/query-BApjzB0v.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"../../last-order-modal/last-order-modal.min.js";import"../../assets/tap-K_D6lo97.js";import"../../onboarding/onboarding.min.js";import"../../onboarding/events.min.js";import"../../onboarding/analytics/onboarding-analytics.min.js";import"../../assets/mapOneOrManyArgs-Bdu6mo6S.js";import"../planner-catalog/planner-catalog.min.js";import"../../catalog/catalog-load-more.min.js";import"../../assets/http-Bepz6wA4.js";import"../../replace-item/replace-item.min.js";import"../../replace-item/replace-item-card/replace-item-card.min.js";import"../../assets/price-utils-BRFZa-3D.js";import"../../assets/distinctUntilChanged-VvZTmHoN.js";import"../../replace-item-planner/replace-item-planner.min.js";import"../../replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js";import"../../history-drawer/history-drawer.min.js";import"../../assets/of-hd4MpK5g.js";import"../../supplier-selector/supplier-selector.min.js";import"../../catalog/basket-preview/basket-preview.min.js";import"../../modal/modal.min.js";import"../../preferences/preferences.min.js";var E=Object.defineProperty,L=Object.getOwnPropertyDescriptor,f=(e,t,n,r)=>{for(var i=r>1?void 0:r?L(t,n):t,a=e.length-1,s;a>=0;a--)(s=e[a])&&(i=(r?s(t,n,i):s(i))||i);return r&&i&&E(t,n,i),i};let u=class extends w{constructor(){super(...arguments),this.analyticsPath="/meals-planner/current",this.loaderToBasketComplete$=new _(!1),this.subscriptions=[],this.isCustomMenu=!1,this.budget=0,this.recipeSources=new Map,this.priceService=R.getInstance(),this.isMobile=!1,this.handleBasketComplete=()=>{this.loaderToBasketComplete$.next(!0)}}get selectors(){return{recipe:".mealz-planner-current-menu__recipe",menu:".mealz-planner-current-menu__menu",displayMenuButton:".mealz-planner-current-menu__mobile-menu-button",displayRecipeButton:".mealz-planner-current-menu__mobile-recipe-button",returnButton:".mealz-planner-current-menu__mobile-return-button",preferencesButton:".mealz-planner-current-menu__menu-header-preferences",preferencesMobileButton:".mealz-planner-current-menu__mobile-preferences-button",onboardingButton:".mealz-planner-current-menu__onboarding-button",onboardingButtonMobile:".mealz-planner-current-menu__mobile-onboarding-button",cancelMenuButton:".mealz-planner-current-menu__cancel-menu-button",footerButton:".mealz-planner-current-menu__footer-button",footerIcon:".mealz-planner-current-menu__footer-icon",footerDisabledIcon:".mealz-planner-current-menu__footer-disabled-icon",recipeCounterBadge:".mealz-planner-current-menu__menu-badge",preferencesCounterBadges:[".mealz-planner-current-menu__preferences-badge"],mealExtras:[".mealz-planner-current-menu__meal-extras-choice"]}}get nbrRecipeInMenu(){return this.querySelectorAll(".mealz-planner-recipe-card").length}connectedCallback(){super.connectedCallback(),this.pageview(),this.initSelectors(),this.addEventListeners(),this.priceService.initFormatter(),this.addEventListener("budgetUpdated",e=>{const t=e.detail;(t==null?void 0:t.budgetLimit)===void 0||t.budgetLimit===null||this.updateBudget(t.budgetLimit)}),this.isMobile=M(this),this.handleResize(),this.removeResponsiveListener=C(this,e=>{e!==this.isMobile&&(this.isMobile=e),this.handleResize()}),o.recipes.setIsRecipeDetailsFromPlanner(!0),this.isCustomMenu=localStorage.getItem("_miam/isCustomMenu")==="true",this.isCustomMenu||this.setDefaultMobileView(),this.subscriptions.push(o.preferences.preferencesCount().subscribe(e=>this.updatePreferencesCount(e))),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.showWelcomeModal()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.removeResponsiveListener&&(this.removeResponsiveListener(),this.removeResponsiveListener=void 0)}render(){const e=this.getAttribute("starting-data");e&&(Object.assign(this,JSON.parse(e)),this.removeAttribute("starting-data"))}showWelcomeModal(){const e=this.isCustomMenu?"_miam/customMenuOnboarding":"_miam/suggestionOnboarding";if(localStorage.getItem(e)==="true")return;const n=new B;n.isCustomMenu=this.isCustomMenu,n.addEventListener("openOnboarding",r=>{const i=r.detail??{};this.startPlannerOnboarding(i.isCustomMenu??this.isCustomMenu,!1)}),n.addEventListener("onboarding-skipped",()=>{localStorage.setItem(e,"true"),this.startPlannerOnboarding(!1,!0)}),n.displayPlannerWelcomeModal(),this.autoCloseWelcomeOnDrawerOpen(n)}autoCloseWelcomeOnDrawerOpen(e){requestAnimationFrame(()=>{const n=document.querySelector("mealz-drawer-view-swapper");if(!n)return;const r=n.currentView$.subscribe(i=>{i!==void 0&&(document.body.contains(e)&&e.remove(),r.unsubscribe())})})}startPlannerOnboarding(e,t){this.scrollIntoView({behavior:"smooth",block:"center"});const n=new g;n.isCustomMenu=e,document.body.appendChild(n),t?(n.type=this.isMobile?"guide-mobile":"guide",n.launchOnboardingTour()):(this.isMobile?n.type=e?"custom-mobile":"suggestion-mobile":n.type=e?"custom":"suggestion",n.startTour())}addEventListeners(){this.addClickListener("displayMenuButton",()=>{this.toggleMobileView(!0)}),this.addClickListener("displayRecipeButton",()=>{this.toggleMobileView(!1)}),this.addClickListener("preferencesButton",()=>{this.openPreferences()}),this.addClickListener("preferencesMobileButton",()=>{this.openPreferences()}),this.addClickListener("cancelMenuButton",this.cancelMenu.bind(this)),this.addClickListener("footerButton",()=>{this.handleMenu()}),this.addClickListener("onboardingButton",()=>h("current")),this.addClickListener("onboardingButtonMobile",()=>h("current"));const{mealExtras:e}=this.elements;e==null||e.forEach(t=>{t.addEventListener("click",this.openCatalogSelection.bind(this))})}toggleMobileView(e){const{recipe:t,menu:n,displayMenuButton:r,displayRecipeButton:i,returnButton:a}=this.elements;!t||!n||!r||!i||!a||(t.style.display=e?"none":"block",n.style.display=e?"flex":"none",r.style.display=e?"none":"flex",i.style.display=e?"block":"none",a.style.display=e?"none":"block")}setDefaultMobileView(){this.isMobile&&this.toggleMobileView(!0)}handleResize(){const{menu:e,recipe:t}=this.elements;!e||!t||(this.isMobile?this.toggleMobileView(!1):(e.style.display="flex",t.style.display="block"))}async openPreferences(){const e=document.querySelector("mealz-drawer-view-swapper");e&&(e.displayPreferences$.next(!0),await e.updateComplete)}updatePreferencesCount(e){const{preferencesCounterBadges:t}=this.elements;t&&t.forEach(n=>{const r=n.querySelector("p");r&&(r.textContent=e.toString(),n.classList.toggle("hidden",e===0))})}updateRecipeCounterBadge(e){const{recipeCounterBadge:t}=this.elements;if(!t)return;const n=t.querySelector("p");n.textContent=e.toString(),t.classList.toggle("hidden",e===0)}openCatalogSelection(e){const t=e.target.closest(".mealz-planner-current-menu__meal-extras-choice");if(!t)return;const r=["starter","dessert","drink"].find(i=>t.classList.contains(i));r&&(this.openCatalogDrawer(r),this.categoryDisplayEvent(r))}cancelMenu(){const e=new y;e.addEventListener("resetMenu",()=>this.resetMenu()),e.displayPlannerAbandonModal()}resetMenu(){const e=o.planner.deleteMenu(this.menuId);this.resetMenuEvent(),e.pipe(l(1)).subscribe(()=>{this.updateRecipeCounterBadge(0),this.redirectToCatalogHome()})}redirectToDashboard(){var e;(e=this.plannerRoutes)!=null&&e.dashboard&&(window.location.href=this.plannerRoutes.dashboard)}redirectToCatalogHome(){var e;(e=this.plannerRoutes)!=null&&e.catalogHome&&(window.location.href=this.plannerRoutes.catalogHome)}redirectToRetailerCart(){var e,t;if((e=this.plannerRoutes)!=null&&e.retailerCart){window.location.href=this.plannerRoutes.retailerCart;return}(t=this.plannerRoutes)!=null&&t.catalogHome&&(window.location.href=this.plannerRoutes.catalogHome+"?myMeals=products")}handleMenu(){this.storeId?(this.displayAddToBasketLoaderView(),this.finalizeMenuEvent(),this.navigateOnceDone()):console.log("register menu")}navigateOnceDone(){const e=this.loaderToBasketComplete$.pipe(b(n=>n===!0),l(1)),t=o.planner.menuToBasket(this.basket.id).pipe(l(1),p(()=>o.basket.updateRetailerBasketFromPlanner()));this.subscriptions.push(k([t,e]).pipe(l(1)).subscribe(()=>{this.loaderToBasketElement.remove(),this.redirectToRetailerCart()}))}retrieveRecipesImgs(){const e=[];return document.querySelectorAll(".mealz-planner-recipe-card").forEach(n=>{if(n.querySelector(".mealz-planner-recipe-card__in-basket:not(.hidden)"))return;const i=n.querySelector("img");i&&i.src&&e.push(i.src)}),e}displayAddToBasketLoaderView(){const e=document.querySelector(".mealz-planner-current-menu");if(!e)return;this.loaderToBasketComplete$.next(!1),e.style.display="none";const t=this.retrieveRecipesImgs(),n=document.querySelector("mealz-to-basket-loader");n&&n.remove(),this.loaderToBasketElement=document.createElement("mealz-to-basket-loader"),this.loaderToBasketElement.recipeImgs=t,this.loaderToBasketElement.addEventListener("basketComplete",this.handleBasketComplete),e.insertAdjacentElement("afterend",this.loaderToBasketElement)}updateFooterButton(e){const{footerButton:t,footerIcon:n,footerDisabledIcon:r}=this.elements;!t||!n||!r||(t.classList.toggle("disabled",!e),n.classList.toggle("hidden",!e),r.classList.toggle("hidden",e))}openCatalogModal(){const e=new v;e.addEventListener("openCatalog",()=>{this.openCatalogDrawer()}),e.displayMealzPlannerOpenCatalogModal()}async openCatalogDrawer(e){const t=document.querySelector("mealz-drawer-view-swapper");if(!t)return;t.displayPlannerCatalog$.next(!0),await t.updateComplete;const n=document.querySelector("mealz-planner-catalog");n&&(n.setConfig(this.storeId,this.catalogURL,this.sessionId,e),n.getPlannerCatalog(),n.pageview())}getRecipeSource(){const e=document.querySelector("mealz-planner-catalog");if(e){const t=e.getExtraType();if(t)switch(t){case"starter":return"collection_entrees";case"dessert":return"collection_desserts";case"drink":return"collection_boissons"}}return"catalog"}getJourney(){const e=document.querySelector("mealz-planner-catalog");if(e){if(e.getExtraType())return"meals-planner-categories";const n=document.querySelector("mealz-catalog-toolbar");if(n){const r=n.querySelector(".mealz-catalog-toolbar__searchbar-input");if(r&&r.value.trim().length>0)return"meals-space-catalog-search"}return"meals-space-catalog"}return"meals-planner-dashboard"}addRecipe(e,t,n,r){var d,m;const i=(m=(d=o.recipes)==null?void 0:d.productsPlannerByCategory$)==null?void 0:m.value,a=(i==null?void 0:i.toPickProducts)||[],s=n||this.getRecipeSource(),c=r||this.getJourney();return this.recipeSources.set(e,s),o.planner.addRecipeToMenu(e,t,!!o.pos.currentPos().value,a).pipe(l(1),p(async()=>{await this.addRecipeToList(e),this.showResetMenuButton(),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeAddedEvent(e,s,c),this.shouldShowMenuToBasketOnboarding()}))}removeRecipe(e){return o.planner.removeRecipeFromMenu(e).pipe(l(1),p(()=>{const t=this.findRecipeIndexById(e);t!==-1&&(this.removeRecipeFromList(t),this.recipeSources.delete(e),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeRemovedEvent(e))}))}async addRecipeToList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&await t.addRecipeCardToList(e)}removeRecipeFromList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&t.removeRecipeCardFromList(e)}showResetMenuButton(){const e=document.querySelector(".mealz-planner-current-menu__cancel-menu");e&&e.classList.remove("hidden")}shouldShowMenuToBasketOnboarding(){var r;if(localStorage.getItem("_miam/menuToBasketOnboarding")==="true")return;this.isMobile&&this.toggleMobileView(!0);const t=document.querySelector("mealz-drawer-view-swapper");((r=t==null?void 0:t.currentView$)==null?void 0:r.value)!==void 0?this.subscriptions.push(t.currentView$.pipe(b(i=>i===void 0),l(1)).subscribe(()=>{this.showMenuToBasketOnboarding()})):this.showMenuToBasketOnboarding()}showMenuToBasketOnboarding(){this.updateComplete.then(()=>{const e=new g;e.type=this.isMobile?"menu-to-basket-mobile":"menu-to-basket",document.body.appendChild(e),e.launchOnboardingTour()})}updateFooterButtonState(){const e=this.nbrRecipeInMenu>0;this.updateFooterButton(e)}findRecipeIndexById(e){const t=document.querySelectorAll("mealz-planner-recipe-card");for(let n=0;n<t.length;n++)if(t[n].recipeId===e)return n;return-1}getAllRecipeIds(){const e=[];return document.querySelectorAll("mealz-planner-recipe-card").forEach(n=>{const r=n.recipeId;r&&e.push(r)}),e}pageview(){o.analytics.sendEvent("pageview",this.analyticsPath,{})}resetMenuEvent(){o.analytics.sendEvent("planner.reset",this.analyticsPath,{})}finalizeMenuEvent(){o.analytics.sendEvent("planner.finalize",this.analyticsPath,{budget_user:this.budget,recipe_count:this.nbrRecipeInMenu,guests:this.guests,mode:this.isCustomMenu?"custom":"from-featured"},"meals-planner-dashboard"),this.getAllRecipeIds().forEach(t=>{const n=this.recipeSources.get(t)||"";o.analytics.sendEvent("recipe.add",this.analyticsPath,{recipe_id:t,recipe_source:n,mode:this.isCustomMenu?"custom":"from-featured"},"meals-planner-dashboard")})}recipeAddedEvent(e,t,n){o.analytics.sendEvent("planner.recipe.add",this.analyticsPath,{recipe_id:e,recipe_source:t||"",mode:this.isCustomMenu?"custom":"from-featured"},n||"meals-planner-dashboard")}recipeRemovedEvent(e){o.analytics.sendEvent("planner.recipe.delete",this.analyticsPath,{recipe_id:e})}categoryDisplayEvent(e){o.analytics.sendEvent("category.display",this.analyticsPath,{category_id:e})}async updateBudget(e){if(!this.menuId)return;const t=o.planner.updateMenu(this.menuId,{attributes:{budget:e}}).subscribe({next:()=>{this.budget=e,this.updateBudgetGaugeUI(e)}});this.subscriptions.push(t)}updateBudgetGaugeUI(e){var c;const t=this.querySelector(".mealz-planner-budget-gauge__budget-limit"),n=this.querySelector(".mealz-planner-budget-gauge__budget-define"),r=this.querySelector(".mealz-planner-budget-gauge__budget-edit"),i=this.querySelector(".mealz-planner-budget-gauge__budget"),a=this.querySelector(".mealz-planner-budget-gauge__gauge");t&&(t.textContent=`/ ${this.priceService.formatPrice(e)}`,t.classList.toggle("hidden",e<=0)),n&&n.classList.toggle("hidden",e>0),r&&r.classList.toggle("hidden",e<=0),i&&i.classList.toggle("only-total",e<=0),a&&a.classList.toggle("hidden",e<=0);const s=this.querySelector("mealz-planner-budget-gauge");s&&(s.budgetLimit=e,(c=s.elements)!=null&&c.gaugeBar&&typeof s.updateGaugeBar=="function"&&s.updateGaugeBar())}};f([z()],u.prototype,"isMobile",2);u=f([S("mealz-planner-current-menu")],u);customElements.get("mealz-planner-current-menu")||customElements.define("mealz-planner-current-menu",u);
|