mealz-components 2.2.0 → 2.3.0
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.
- package/dist/accordion/accordion.css +1 -1
- package/dist/assets/{OperatorSubscriber-B37s2U6v.js → OperatorSubscriber-DF1TYu__.js} +1 -1
- package/dist/assets/accordion-la5mVBfL.js +19 -0
- package/dist/assets/{async-guWcMFmJ.js → async-D5WN8Wfc.js} +1 -1
- package/dist/assets/{combineLatest-qLpwa5de.js → combineLatest-BN0_WcEG.js} +1 -1
- package/dist/assets/{debounceTime-cu8WlLF0.js → debounceTime-D7R6Z3Am.js} +1 -1
- package/dist/assets/delay-wUm-cx7a.js +1 -0
- package/dist/assets/{distinctUntilChanged-DmoT2we5.js → distinctUntilChanged-VvZTmHoN.js} +1 -1
- package/dist/assets/empty-Bs9kqCuA.js +1 -0
- package/dist/assets/{executeSchedule-Dqc6shOu.js → executeSchedule-C0acKsif.js} +1 -1
- package/dist/assets/{filter-BjN-BbQD.js → filter-DQ4vwAGj.js} +1 -1
- package/dist/assets/{from-CEPL7XsE.js → from-BTlWkhKh.js} +1 -1
- package/dist/assets/{innerFrom-D8hyVDmo.js → innerFrom-FMZwm2mb.js} +1 -1
- package/dist/assets/{map-D6X2syNu.js → map-DHslluWD.js} +1 -1
- package/dist/assets/mapOneOrManyArgs-Bdu6mo6S.js +1 -0
- package/dist/assets/merge-tdU3EgEI.js +1 -0
- package/dist/assets/mergeAll-DTkL1sF8.js +1 -0
- package/dist/assets/{mergeMap-CX64J-ac.js → mergeMap-g-JGW99j.js} +1 -1
- package/dist/assets/{no-shadow-element-D4NOg0uW.js → no-shadow-element-Dz9jgDtr.js} +7 -7
- package/dist/assets/{of-CzgrATec.js → of-hd4MpK5g.js} +1 -1
- package/dist/assets/{price-DdIbni0N.js → price-CHipCs2z.js} +1 -1
- package/dist/assets/{product-card-CcuyZyd6.js → product-card-c_0I2Lp_.js} +14 -14
- package/dist/assets/{promotion-badge-TYkTBrOQ.js → promotion-badge-CzwsPJJq.js} +3 -3
- package/dist/assets/{property-BXNy7Yd-.js → property-Bx8Yvr4_.js} +1 -1
- package/dist/assets/skip-BuAl4dWz.js +1 -0
- package/dist/assets/{skipWhile-B_4e7jSH.js → skipWhile-BzDgmir5.js} +1 -1
- package/dist/assets/{state-b8IyfZUU.js → state-C5zM4-Pq.js} +1 -1
- package/dist/assets/{switchMap-BYsewftM.js → switchMap-6Z80ObHE.js} +1 -1
- package/dist/assets/{take-ujVMxFwY.js → take-ByPtGQky.js} +1 -1
- package/dist/assets/{tap-DwBV-qFl.js → tap-K_D6lo97.js} +1 -1
- package/dist/assets/{timer-D3X0vtFO.js → timer-C3uKg-qK.js} +1 -1
- package/dist/assets/{unsafe-html-C8GMyVYZ.js → unsafe-html-Bv_ydUHb.js} +1 -1
- package/dist/assets/{viewport-listener-BRwa66-G.js → viewport-listener-DrFhSZNW.js} +1 -1
- package/dist/basket-transfer-modal/basket-transfer-modal.min.js +12 -13
- package/dist/catalog/basket-preview/basket-preview-product/basket-preview-product.css +1 -1
- package/dist/catalog/basket-preview/basket-preview.css +1 -1
- package/dist/catalog/basket-preview/basket-preview.min.js +48 -43
- package/dist/catalog/catalog-category/catalog-category.min.js +1 -1
- package/dist/catalog/catalog-favorites/catalog-favorites.min.js +1 -1
- package/dist/catalog/catalog-history/catalog-history.min.js +1 -1
- package/dist/catalog/catalog-home/catalog-home.min.js +1 -1
- package/dist/catalog/catalog-list/catalog-list.min.js +1 -1
- package/dist/catalog/catalog-load-more.min.js +1 -1
- package/dist/catalog/catalog-tabs/catalog-tabs.min.js +1 -1
- package/dist/catalog/catalog-toolbar/catalog-toolbar.min.js +1 -1
- package/dist/catalog/my-meals-button/my-meals-button.min.js +1 -1
- package/dist/counter/counter.min.js +1 -1
- package/dist/drawer/drawer.min.js +1 -1
- package/dist/drawer-view-swapper/drawer-view-swapper.css +1 -1
- package/dist/drawer-view-swapper/drawer-view-swapper.min.js +24 -20
- package/dist/history-drawer/history-drawer.min.js +1 -1
- package/dist/history-order/history-order.min.js +1 -1
- package/dist/history-order-expanded/history-order-expanded.min.js +1 -1
- package/dist/last-order-badge/last-order-badge.min.js +2 -2
- package/dist/last-order-modal/last-order-modal.min.js +1 -1
- package/dist/like-button/like-button.min.js +1 -1
- package/dist/modal/modal.min.js +1 -1
- package/dist/no-supplier-add-to-cart-cta/no-supplier-add-to-cart-cta.css +1 -0
- package/dist/no-supplier-add-to-cart-cta/no-supplier-add-to-cart-cta.min.js +7 -0
- package/dist/onboarding/onboarding.min.js +2 -2
- package/dist/order-again/order-again.min.js +1 -1
- package/dist/planner/helpers/open-onboarding-modal.min.js +1 -1
- package/dist/planner/planner-abandon-modal/planner-abandon-modal.min.js +1 -1
- package/dist/planner/planner-budget-edit-modal/planner-budget-edit-modal.css +1 -1
- package/dist/planner/planner-budget-edit-modal/planner-budget-edit-modal.min.js +6 -6
- package/dist/planner/planner-budget-gauge/planner-budget-gauge.css +1 -1
- package/dist/planner/planner-budget-gauge/planner-budget-gauge.min.js +1 -1
- package/dist/planner/planner-catalog/planner-catalog.min.js +2 -2
- package/dist/planner/planner-current-menu/planner-current-menu.min.js +1 -1
- package/dist/planner/planner-current-menu-modal/planner-current-menu-modal.min.js +1 -1
- package/dist/planner/planner-dashboard/planner-dashboard.min.js +1 -1
- package/dist/planner/planner-form/planner-form.min.js +1 -1
- package/dist/planner/planner-menu-option/planner-menu-option.min.js +1 -1
- package/dist/planner/planner-onboarding/planner-onboarding.min.js +1 -1
- package/dist/planner/planner-onboarding-modal/planner-onboarding-modal.min.js +6 -6
- package/dist/planner/planner-open-catalog-modal/planner-open-catalog-modal.min.js +1 -1
- package/dist/planner/planner-recipe-card/planner-recipe-card.min.js +1 -1
- package/dist/planner/planner-recipe-list/planner-recipe-list.min.js +1 -1
- package/dist/planner/planner-recipe-suggestion/planner-recipe-suggestion.min.js +1 -1
- package/dist/planner/planner-welcome-modal/planner-welcome-modal.min.js +2 -2
- package/dist/planner/to-basket-loader/to-basket-loader.min.js +2 -2
- package/dist/planner-entry/planner-entry.min.js +1 -1
- package/dist/preferences/preferences.min.js +21 -39
- package/dist/price/price.min.js +1 -1
- package/dist/product-addition/product-addition.css +1 -1
- package/dist/recipe-card/recipe-card.min.js +1 -1
- package/dist/recipe-card-cta/recipe-card-cta.min.js +1 -1
- package/dist/recipe-details/recipe-details.min.js +49 -41
- package/dist/recipe-pricing/recipe-pricing.min.js +1 -1
- package/dist/replace-item/replace-item-card/replace-item-card.min.js +5 -5
- package/dist/replace-item/replace-item.min.js +2 -2
- package/dist/replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js +1 -1
- package/dist/replace-item-planner/replace-item-planner.min.js +1 -1
- package/dist/select/select.min.js +1 -1
- package/dist/slider-tabs/slider-tabs.min.js +2 -2
- package/dist/store-indicator/store-indicator.min.js +1 -1
- package/dist/store-locator/store-locator.css +1 -1
- package/dist/store-locator/store-locator.min.js +97 -0
- package/dist/store-locator-drawer/store-locator-drawer.min.js +4 -37
- package/dist/store-locator.css +290 -0
- package/dist/supplier-selector/supplier-selector.css +1 -0
- package/dist/supplier-selector/supplier-selector.min.js +53 -0
- package/dist/supplier-selector.css +99 -0
- package/package.json +1 -1
- package/dist/add-to-cart-cta/add-to-cart-cta.css +0 -1
- package/dist/add-to-cart-cta/add-to-cart-cta.min.js +0 -7
- package/dist/assets/delay-DX2Gy1PY.js +0 -1
- package/dist/assets/empty-DhPhHznc.js +0 -1
- package/dist/assets/mapOneOrManyArgs-UKKoFfIU.js +0 -1
- package/dist/assets/merge-Cw-bwf6Z.js +0 -1
- package/dist/assets/mergeAll-9jcORGP2.js +0 -1
- package/dist/assets/store-locator-CQ_XQBby.js +0 -95
- package/dist/no-supplier-onboarding/no-supplier-onboarding.css +0 -1
|
@@ -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 m}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 h}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-D4NOg0uW.js";import{t as S}from"../../assets/custom-element-BhZVzxrc.js";import{r as z}from"../../assets/state-b8IyfZUU.js";import{m as o}from"../../assets/mealz-sdk-E_fNZM-c.js";import{P as R}from"../../assets/price-DdIbni0N.js";import{t as l}from"../../assets/take-ujVMxFwY.js";import{f as g}from"../../assets/filter-BjN-BbQD.js";import{m as c}from"../../assets/map-D6X2syNu.js";import{c as k}from"../../assets/combineLatest-qLpwa5de.js";import"../../drawer/drawer.min.js";import"../../assets/property-BXNy7Yd-.js";import"../../assets/unsafe-html-C8GMyVYZ.js";import"../../store-locator-drawer/store-locator-drawer.min.js";import"../../assets/skipWhile-B_4e7jSH.js";import"../../assets/OperatorSubscriber-B37s2U6v.js";import"../../assets/switchMap-BYsewftM.js";import"../../assets/innerFrom-D8hyVDmo.js";import"../../recipe-details/recipe-details.min.js";import"../../recipe-pricing/recipe-pricing.min.js";import"../../assets/viewport-listener-BRwa66-G.js";import"../../assets/debounceTime-cu8WlLF0.js";import"../../assets/async-guWcMFmJ.js";import"../../assets/empty-DhPhHznc.js";import"../../assets/merge-Cw-bwf6Z.js";import"../../assets/mergeAll-9jcORGP2.js";import"../../assets/mergeMap-CX64J-ac.js";import"../../assets/executeSchedule-Dqc6shOu.js";import"../../assets/from-CEPL7XsE.js";import"../../assets/capitalize-DUAqYmp4.js";import"../../counter/counter.min.js";import"../../assets/product-card-CcuyZyd6.js";import"../../price/price.min.js";import"../../assets/promotion-badge-TYkTBrOQ.js";import"../../assets/delay-DX2Gy1PY.js";import"../../assets/timer-D3X0vtFO.js";import"../../store-indicator/store-indicator.min.js";import"../../assets/store-locator-CQ_XQBby.js";import"../../select/select.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-DwBV-qFl.js";import"../../onboarding/onboarding.min.js";import"../../onboarding/events.min.js";import"../../onboarding/analytics/onboarding-analytics.min.js";import"../../assets/mapOneOrManyArgs-UKKoFfIU.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-DmoT2we5.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-CzgrATec.js";import"../../catalog/basket-preview/basket-preview.min.js";import"../../modal/modal.min.js";var E=Object.defineProperty,L=Object.getOwnPropertyDescriptor,b=(e,t,n,r)=>{for(var i=r>1?void 0:r?L(t,n):t,s=e.length-1,a;s>=0;s--)(a=e[s])&&(i=(r?a(t,n,i):a(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}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 h;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",()=>m("current")),this.addClickListener("onboardingButtonMobile",()=>m("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:s}=this.elements;!t||!n||!r||!i||!s||(t.style.display=e?"none":"block",n.style.display=e?"flex":"none",r.style.display=e?"none":"flex",i.style.display=e?"block":"none",s.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(g(n=>n===!0),l(1)),t=o.planner.menuToBasket(this.basket.id).pipe(l(1),c(()=>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;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 p,d;const i=(d=(p=o.recipes)==null?void 0:p.productsPlannerByCategory$)==null?void 0:d.value,s=(i==null?void 0:i.toPickProducts)||[],a=n||this.getRecipeSource(),f=r||this.getJourney();return this.recipeSources.set(e,a),o.planner.addRecipeToMenu(e,t,!!o.pos.currentPos().value,s).pipe(l(1),c(async()=>{await this.addRecipeToList(e),this.showResetMenuButton(),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeAddedEvent(e,a,f),this.shouldShowMenuToBasketOnboarding()}))}removeRecipe(e){return o.planner.removeRecipeFromMenu(e).pipe(l(1),c(()=>{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(g(i=>i===void 0),l(1)).subscribe(()=>{this.showMenuToBasketOnboarding()})):this.showMenuToBasketOnboarding()}showMenuToBasketOnboarding(){this.updateComplete.then(()=>{const e=new h;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 a;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");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);const s=this.querySelector("mealz-planner-budget-gauge");s&&(s.budgetLimit=e,(a=s.elements)!=null&&a.gaugeBar&&typeof s.updateGaugeBar=="function"&&s.updateGaugeBar())}};b([z()],u.prototype,"isMobile",2);u=b([S("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 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,4 +1,4 @@
|
|
|
1
|
-
import{N as u,k as o}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as u,k as o}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{M as p}from"../../modal/modal.min.js";import{t as d}from"../../assets/custom-element-BhZVzxrc.js";import"../../assets/mealz-sdk-E_fNZM-c.js";import"../../assets/property-Bx8Yvr4_.js";import"../../assets/unsafe-html-Bv_ydUHb.js";import"../../onboarding/events.min.js";var i=Object.getOwnPropertyDescriptor,c=(e,r,m,s)=>{for(var n=s>1?void 0:s?i(r,m):r,t=e.length-1,l;t>=0;t--)(l=e[t])&&(n=l(n)||n);return n};let a=class extends u{constructor(){super(),this.styleURL=new URL("./planner/planner-current-menu-modal/planner-current-menu-modal.css",this.getBaseURL())}displayPlannerCurrentMenuModal(){const e=new p;document.body.appendChild(this),e.titleSlot=o`<span>Menu déjà en cours</span>`,e.contentSlot=this.renderModal(),this.appendChild(e),e.addEventListener("modalClosed",()=>this.remove())}replaceMenu(){const e=new CustomEvent("replaceMenu");this.dispatchEvent(e),this.remove()}keepMenu(){const e=new CustomEvent("keepMenu");this.dispatchEvent(e),this.remove()}renderModal(){return o`
|
|
2
2
|
<div class="mealz-planner-current-menu-modal__content">
|
|
3
3
|
<div class="mealz-planner-current-menu-modal__description mealz-ds-text size-m">
|
|
4
4
|
<span>Vous avez déjà un menu en cours de planification.</span>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../planner-onboarding-modal/planner-onboarding-modal.min.js";import{o as d}from"../helpers/open-onboarding-modal.min.js";import{N as
|
|
1
|
+
import"../planner-onboarding-modal/planner-onboarding-modal.min.js";import{o as d}from"../helpers/open-onboarding-modal.min.js";import{N as m}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as p}from"../../assets/custom-element-BhZVzxrc.js";import{m as l}from"../../assets/mealz-sdk-E_fNZM-c.js";import"../../assets/state-C5zM4-Pq.js";import"../../assets/property-Bx8Yvr4_.js";import"../../onboarding/analytics/onboarding-analytics.min.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-Bv_ydUHb.js";import"../../onboarding/events.min.js";var c=Object.getOwnPropertyDescriptor,h=(e,t,a,s)=>{for(var n=s>1?void 0:s?c(t,a):t,r=e.length-1,i;r>=0;r--)(i=e[r])&&(n=i(n)||n);return n};let o=class extends m{constructor(){super(...arguments),this.analyticsPath="/meals-planner/dashboard"}get selectors(){return{historyLink:".mealz-planner-dashboard__history-container",onboardingButton:".mealz-planner-dashboard__onboarding-container"}}connectedCallback(){super.connectedCallback(),this.pageview(),this.initSelectors(),this.addEventListeners()}addEventListeners(){var e,t;(e=this.elements.historyLink)==null||e.addEventListener("click",a=>this.navigateToHistory(a)),(t=this.elements.onboardingButton)==null||t.addEventListener("click",a=>this.openOnboardingModal(a))}navigateToHistory(e){e.preventDefault();const t=e.currentTarget;l.hook.hookCallback().subscribe(a=>{a&&(window.location.href=t.href)})}openOnboardingModal(e){e.preventDefault(),d("dashboard")}pageview(){l.analytics.sendEvent("pageview",this.analyticsPath,{})}};o=h([p("mealz-planner-dashboard")],o);customElements.get("mealz-planner-dashboard")||customElements.define("mealz-planner-dashboard",o);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as c,D as g,k as i}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as c,D as g,k as i}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as h}from"../../assets/custom-element-BhZVzxrc.js";import{n as l}from"../../assets/property-Bx8Yvr4_.js";import{M as b}from"../planner-current-menu-modal/planner-current-menu-modal.min.js";import{m as o}from"../../assets/mealz-sdk-E_fNZM-c.js";import{t as p}from"../../assets/take-ByPtGQky.js";import{s as v}from"../../assets/switchMap-6Z80ObHE.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-Bv_ydUHb.js";import"../../onboarding/events.min.js";import"../../assets/empty-Bs9kqCuA.js";import"../../assets/OperatorSubscriber-DF1TYu__.js";import"../../assets/innerFrom-FMZwm2mb.js";var f=Object.defineProperty,M=Object.getOwnPropertyDescriptor,r=(e,t,a,u)=>{for(var n=u>1?void 0:u?M(t,a):t,d=e.length-1,m;d>=0;d--)(m=e[d])&&(n=(u?m(t,a,n):m(n))||n);return u&&n&&f(t,a,n),n};let s=class extends c{constructor(){super(),this.menuId="",this.guests=4,this.hideBudget=!1,this.isCustomMenu=!1,this.currentMenuModal=!1,this.budget=0,this.generatingLoader=!1,this.analyticsPath="/meals-planner/dashboard",this.styleURL=new URL("./planner/planner-form/planner-form.css",this.getBaseURL())}render(){return i`
|
|
2
2
|
<div class="mealz-planner-form">
|
|
3
3
|
<img class="mealz-planner-form__logo"
|
|
4
4
|
src="https://storage.googleapis.com/assets.miam.tech/generic/images/meals-planner_logo.svg" alt="Meals Planner"/>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"../planner-form/planner-form.min.js";import"../to-basket-loader/to-basket-loader.min.js";import{M as
|
|
1
|
+
import"../planner-form/planner-form.min.js";import"../to-basket-loader/to-basket-loader.min.js";import{M as h}from"../planner-abandon-modal/planner-abandon-modal.min.js";import{M as p}from"../planner-current-menu-modal/planner-current-menu-modal.min.js";import{N as M}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as g}from"../../assets/custom-element-BhZVzxrc.js";import{m as i}from"../../assets/mealz-sdk-E_fNZM-c.js";import{t as l}from"../../assets/take-ByPtGQky.js";import{s as f}from"../../assets/switchMap-6Z80ObHE.js";import"../../assets/property-Bx8Yvr4_.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-Bv_ydUHb.js";import"../../onboarding/events.min.js";import"../../assets/empty-Bs9kqCuA.js";import"../../assets/OperatorSubscriber-DF1TYu__.js";import"../../assets/innerFrom-FMZwm2mb.js";import"../../assets/state-C5zM4-Pq.js";var y=Object.getOwnPropertyDescriptor,E=(e,t,n,s)=>{for(var r=s>1?void 0:s?y(t,n):t,a=e.length-1,o;a>=0;a--)(o=e[a])&&(r=o(r)||r);return r};let d=class extends M{constructor(){super(...arguments),this.menuId="",this.isCustomMenu=!1,this.guests=4,this.recipeIds=[],this.recipeImgs=[],this.analyticsPath="/meals-planner/dashboard",this.isRedirecting=!1}get selectors(){return{cancelMenuButton:".mealz-planner-menu-option__cancel",menuOption:".mealz-planner-menu-option__container"}}connectedCallback(){super.connectedCallback(),this.initSelectors(),this.addEventListeners(),this.updateGuestsFromPlanner(),this.listenToPlannerGuestsChanges()}disconnectedCallback(){this.plannerGuestsChangeHandler&&document.removeEventListener("plannerGuestsChanged",this.plannerGuestsChangeHandler),super.disconnectedCallback()}render(){var c;const e=(c=this.attributes["starting-data"])==null?void 0:c.value;if(!e)return;const{isCustomMenu:t,guestsPreference:n,storeId:s,hasCustomRecipes:r,menuId:a,recipesId:o,currentMenuPageUrl:u,recipeImgs:m}=JSON.parse(e);this.isCustomMenu=t,this.storeId=s,this.hasCustomRecipes=r,this.menuId=a,this.currentMenuPageUrl=u,this.recipeImgs=m||[],o&&(this.recipeIds=o),n&&(this.guests=n),this.removeAttribute("starting-data"),this.updateGuestsFromPlanner()}updateGuestsFromPlanner(){const e=localStorage.getItem("_mealz/planner/guests");if(e){const t=parseInt(e,10);!isNaN(t)&&t>=1&&t<=30&&(this.guests=t)}}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.navigateToMenuOrShowForm())}navigateToMenuOrShowForm(){const e=this.isCustomMenu?"custom":"from-featured";this.sendModeSelectEvent(e);const t=!!document.querySelector("mealz-planner-entry");i.hook.hookCallback().subscribe(n=>{if(!n)return;if(localStorage.setItem("_miam/isCustomMenu",this.isCustomMenu.toString()),this.hasCustomRecipes&&!this.isCustomMenu&&t){this.displayCurrentMenuModal();return}this.continueMenuFlow()})}continueMenuFlow(){if(document.querySelector("mealz-planner-entry")){localStorage.setItem("_mealz/planner/from-entry","true"),!this.isCustomMenu&&this.recipeIds.length>0?this.generateMenu({detail:{guests:this.guests}}):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",n=>this.generateMenu(n)),e?e.insertAdjacentElement("afterend",t):document.body.appendChild(t))}generateMenu(e){if(this.recipeIds.length===0){this.redirectToMenu();return}this.displayAddToBasketLoaderView(e.detail.guests)}displayAddToBasketLoaderView(e){this.hideUIElements(),this.setupBasketLoader(e)}hideUIElements(){const e=document.querySelector(".mealz-planner-dashboard");e&&(e.style.display="none");const t=document.querySelector("mealz-planner-form");t&&(t.style.display="none")}setupBasketLoader(e){if(this.loaderToBasketElement=document.querySelector("mealz-to-basket-loader"),!this.loaderToBasketElement){this.loaderToBasketElement=document.createElement("mealz-to-basket-loader"),this.loaderToBasketElement.recipeImgs=this.recipeImgs,this.setupSynchronization(this.loaderToBasketElement,e);const t=document.querySelector("mealz-planner-form"),n=document.querySelector("mealz-planner-entry");t?t.insertAdjacentElement("afterend",this.loaderToBasketElement):n?n.insertAdjacentElement("afterend",this.loaderToBasketElement):document.body.appendChild(this.loaderToBasketElement)}}setupSynchronization(e,t){let n=!1,s=!1;const r=()=>{n&&s&&this.redirectToMenu()};e.addEventListener("basketComplete",()=>{n=!0,r()}),this.addRecipesSequentially(0,t,()=>{s=!0,r()})}addRecipesSequentially(e,t,n){var a,o;if(e>=this.recipeIds.length){n&&n();return}const s=(o=(a=i.recipes)==null?void 0:a.productsPlannerByCategory$)==null?void 0:o.value,r=(s==null?void 0:s.toPickProducts)||[];i.planner.addRecipeToMenu(this.recipeIds[e],t,!!i.pos.currentPos().value,r).pipe(l(1)).subscribe({next:()=>{this.recipeAddedEvent(this.recipeIds[e]),this.addRecipesSequentially(e+1,t,n)},error:u=>{console.error("Error adding recipe to menu:",u),this.addRecipesSequentially(e+1,t,n)}})}redirectToMenu(){if(this.isRedirecting)return;this.isRedirecting=!0,this.sendRedirectToMenuEvent();const e=this.currentMenuPageUrl;e&&e!==window.location.href&&(window.location.href=e)}sendRedirectToMenuEvent(){const e=new CustomEvent("redirectToMenu",{bubbles:!0,composed:!0,detail:{url:this.currentMenuPageUrl}});this.dispatchEvent(e)}displayDashboard(){const e=document.querySelector(".mealz-planner-dashboard");e&&(e.style.display="block")}cancelMenu(){const e=new h;e.addEventListener("resetMenu",()=>this.resetMenu()),e.displayPlannerAbandonModal()}resetMenu(){const e=i.planner.deleteMenu(this.menuId);this.resetMenuEvent(),e.pipe(l(1)).subscribe(()=>{window.location.reload()})}displayCurrentMenuModal(){const e=new p;e.displayPlannerCurrentMenuModal(),e.addEventListener("replaceMenu",()=>this.replaceMenu()),e.addEventListener("keepMenu",()=>this.keepMenu())}replaceMenu(){this.resetMenuEvent(),i.planner.deleteMenu(this.menuId).pipe(l(1),f(()=>i.planner.createMenu()),l(1)).subscribe(e=>{this.menuId=e.id,this.continueMenuFlow()})}keepMenu(){this.redirectToMenu()}sendModeSelectEvent(e){i.analytics.sendEvent("planner.mode.select",this.analyticsPath,{mode:e},"meals-planner-home")}resetMenuEvent(){i.analytics.sendEvent("planner.reset",this.analyticsPath,{})}recipeAddedEvent(e){i.analytics.sendEvent("planner.recipe.add",this.analyticsPath,{recipe_id:e,recipe_source:"pre_filled",mode:this.isCustomMenu?"custom":"from-featured"},"meals-planner-home")}};d=E([g("mealz-planner-menu-option")],d);customElements.get("mealz-planner-menu-option")||customElements.define("mealz-planner-menu-option",d);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as m}from"../../assets/custom-element-BhZVzxrc.js";import{n as l}from"../../assets/property-BXNy7Yd-.js";import{r as d}from"../../assets/state-b8IyfZUU.js";import{M as g}from"../../onboarding/onboarding.min.js";import{N as b}from"../../assets/no-shadow-element-D4NOg0uW.js";import{O as h,b as v,c as y}from"../../onboarding/events.min.js";import{t as _,a as z,b as p,c as C}from"../../onboarding/analytics/onboarding-analytics.min.js";import"../../assets/query-BApjzB0v.js";import"../../assets/mealz-sdk-E_fNZM-c.js";function c(e,t=".mealz-planner-current-menu__mobile-header",s="(max-width: 768px)"){const o=e.querySelector(t);return o?window.getComputedStyle(o).display!=="none":window.matchMedia(s).matches}function f(e,t,s=".mealz-planner-current-menu__mobile-header",o="(max-width: 768px)"){const n=()=>{const i=c(e,s,o);t(i)};return window.addEventListener("resize",n),()=>window.removeEventListener("resize",n)}var O=Object.defineProperty,T=Object.getOwnPropertyDescriptor,u=(e,t,s,o)=>{for(var n=o>1?void 0:o?T(t,s):t,i=e.length-1,r;i>=0;i--)(r=e[i])&&(n=(o?r(t,s,n):r(n))||n);return o&&n&&O(t,s,n),n};const S={custom:{type:"custom",steps:[{element:".mealz-planner-current-menu__menu-top",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici.",overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}},{element:".mealz-planner-recipe-suggestion",popover:{title:"Inspirez-vous avec nos suggestions",description:"Visualisez notre proposition de recette rien que pour vous ici.<br>Cliquez dessus pour en voir les détails.",overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}},{element:".mealz-planner-recipe-suggestion__actions-add-button",popover:{title:"Cette recette vous plaît ?",description:'Ajoutez-la en 1 clic à votre menu grâce au bouton <b>"Ajouter au menu"</b>. ',overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}},{element:".mealz-planner-recipe-suggestion__actions-swap-button",popover:{title:"Cette recette ne vous plaît pas ?",description:'Cliquez sur <b>"Autre suggestion"</b> pour découvrir une nouvelle suggestion, ou sélectionnez la recette de votre choix en explorant notre catalogue',overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}}],localStorageKey:"_miam/customMenuOnboarding",showProgress:!0},"custom-mobile":{type:"custom-mobile",steps:[{element:".mealz-planner-current-menu__mobile-menu-button img",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici.",overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}},{element:".mealz-planner-recipe-suggestion",popover:{title:"Inspirez-vous avec nos suggestions",description:"Visualisez notre proposition de recette rien que pour vous ici.<br>Cliquez dessus pour en voir les détails.",overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}},{element:".mealz-planner-recipe-suggestion__actions-add-button",popover:{title:"Cette recette vous plaît ?",description:'Ajoutez-la en 1 clic à votre menu grâce au bouton <b>"Ajouter au menu"</b>.',overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}},{element:".mealz-planner-recipe-suggestion__actions-swap-button",popover:{title:"Cette recette ne vous plaît pas ?",description:'Cliquez sur <b>"Autre suggestion"</b> pour découvrir une nouvelle suggestion, ou sélectionnez la recette de votre choix en explorant notre catalogue',overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}}],localStorageKey:"_miam/customMenuOnboarding",showProgress:!0},suggestion:{type:"suggestion",steps:[{element:".mealz-planner-current-menu__menu-top",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici."}},{element:".mealz-planner-recipe-suggestion",popover:{title:"Inspirez-vous avec nos suggestions",description:"Visualisez notre proposition de recette rien que pour vous ici.<br>Cliquez dessus pour en voir les détails."}}],localStorageKey:"_miam/suggestionOnboarding",showProgress:!0},"suggestion-mobile":{type:"suggestion-mobile",steps:[{element:".mealz-planner-current-menu__menu-top",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici."}},{element:".mealz-planner-recipe-card",popover:{title:"Vos recettes en un coup d’œil",description:"Consultez le détail d’une recette ou retirez-la de votre menu en un clic."}}],localStorageKey:"_miam/suggestionOnboarding",showProgress:!0,bottomMargin:0},guide:{type:"guide",steps:[{element:".mealz-planner-current-menu__onboarding-button",popover:{title:"Besoin d'aide ?",description:"Retrouvez à tout moment notre guide en quelques étapes simples."}}],localStorageKey:"_miam/guideOnboarding",showProgress:!1,bottomMargin:0},"guide-mobile":{type:"guide-mobile",steps:[{element:".mealz-planner-current-menu__mobile-onboarding-button",popover:{title:"Besoin d'aide ?",description:"Retrouvez à tout moment notre guide en quelques étapes simples."}}],localStorageKey:"_miam/guideOnboarding",showProgress:!1,bottomMargin:0},"recipe-details":{type:"recipe-details",steps:[{element:"mealz-product-card-planner:first-of-type .mealz-product-card-planner__checkbox input",popover:{title:"Personnalisez votre recette",description:"Vous avez déjà certains produits ? Désélectionnez-les pour qu’ils ne soient pas ajoutés à votre panier.<br>Les produits sélectionnés seront eux ajoutés automatiquement au panier."}}],localStorageKey:"_miam/recipeDetailsOnboarding",showProgress:!1,bottomMargin:0},"menu-to-basket":{type:"menu-to-basket",steps:[{element:".mealz-planner-current-menu__footer-button:not(.disabled)",popover:{title:"Votre menu est terminé ?",description:'Quand votre menu sera terminé, utiliser le bouton <b>"Mettre le menu au panier"</b> pour mettre les produits de toutes les recettes dans votre panier.',overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}}],localStorageKey:"_miam/menuToBasketOnboarding",showProgress:!1},"menu-to-basket-mobile":{type:"menu-to-basket",steps:[{element:".mealz-planner-current-menu__footer-button:not(.disabled)",popover:{title:"Votre menu est terminé ?",description:'Quand votre menu sera terminé, utiliser le bouton <b>"Mettre le menu au panier"</b> pour mettre les produits de toutes les recettes dans votre panier.',overElement:".mealz-planner-current-menu__footer",spacerLeft:0,spacerTop:-272}}],localStorageKey:"_miam/menuToBasketOnboarding",showProgress:!1}};let a=class extends b{constructor(){super(...arguments),this.isCustomMenu=!1,this.type="custom",this.isMobile=!1,this.onboardingComponent=null,this.currentStep=1,this.isTourActive=!1}connectedCallback(){super.connectedCallback(),this.isMobile=c(document),this.initOnboarding(),this.removeResponsiveListener=f(document,e=>{e!==this.isMobile&&(this.isMobile=e,this.updateOnboardingConfig())})}initOnboarding(){this.onboardingComponent||(this.onboardingComponent=new g,this.onboardingComponent.configurations=S,this.onboardingComponent.type=this.type,this.appendChild(this.onboardingComponent),this.listenToOnboardingClosed()),this.updateOnboardingConfig()}listenToOnboardingClosed(){var e,t,s;(e=this.onboardingComponent)==null||e.addEventListener(h,()=>{var o;_(this.mapTypeForAnalytics(this.type),this.currentStep),this.isTourActive=!1,this.markOnboardingAsSeen(this.type),(this.type==="custom"||this.type==="suggestion"||this.type==="custom-mobile"||this.type==="suggestion-mobile")&&!((o=this.onboardingComponent)!=null&&o.hasSeenOnboarding("guide"))?this.openGuideOnboarding():this.remove()}),(t=this.onboardingComponent)==null||t.addEventListener(v,o=>{var r;const i=((r=o.detail)==null?void 0:r.stepIndex)??0;z(this.mapTypeForAnalytics(this.type),this.currentStep),this.currentStep=i+1,p(this.mapTypeForAnalytics(this.type),this.currentStep)}),(s=this.onboardingComponent)==null||s.addEventListener(y,()=>{C(this.mapTypeForAnalytics(this.type)),this.markOnboardingAsSeen(this.type)})}markOnboardingAsSeen(e){if(this.onboardingComponent)try{const t=this.onboardingComponent.getConfig(e);t!=null&&t.localStorageKey&&localStorage.setItem(t.localStorageKey,"true")}catch{}}updateOnboardingConfig(){if(!this.onboardingComponent)return;this.onboardingComponent.type=this.type;const e=this.onboardingComponent.getConfig(this.type);this.onboardingComponent.steps=e.steps,this.onboardingComponent.showProgress=e.showProgress??!0;let t=e.bottomMargin??110;t===0&&!this.isMobile&&(t=24),this.onboardingComponent.bottomMargin=t}openGuideOnboarding(){this.type=this.isMobile?"guide-mobile":"guide",this.currentStep=1,this.isTourActive=!1,setTimeout(()=>{this.onboardingComponent&&(this.updateOnboardingConfig(),this.launchOnboardingTour())},300)}startTour(){this.isTourActive||(this.onboardingComponent||this.initOnboarding(),this.currentStep=1,this.isTourActive=!0,this.launchOnboardingTour())}launchOnboardingTour(){this.onboardingComponent&&(this.updateOnboardingConfig(),p(this.mapTypeForAnalytics(this.type),this.currentStep),this.onboardingComponent.startOnboardingTour())}startOnboardingByType(e){this.type=e,this.onboardingComponent||this.initOnboarding(),this.launchOnboardingTour()}disconnectedCallback(){super.disconnectedCallback(),this.removeResponsiveListener&&(this.removeResponsiveListener(),this.removeResponsiveListener=void 0),this.onboardingComponent&&(this.onboardingComponent.remove(),this.onboardingComponent=null)}mapTypeForAnalytics(e){switch(e){case"custom":case"custom-mobile":return"personal";case"suggestion":case"suggestion-mobile":return"suggestion";case"guide":case"guide-mobile":return"guide";case"recipe-details":return"recipe-details";case"menu-to-basket":case"menu-to-basket-mobile":return"to-basket";default:return"personal"}}};u([l({type:Boolean})],a.prototype,"isCustomMenu",2);u([l({type:String})],a.prototype,"type",2);u([d()],a.prototype,"isMobile",2);a=u([m("mealz-planner-onboarding")],a);export{a as M,f as a,c as i};
|
|
1
|
+
import{t as m}from"../../assets/custom-element-BhZVzxrc.js";import{n as p}from"../../assets/property-Bx8Yvr4_.js";import{r as d}from"../../assets/state-C5zM4-Pq.js";import{M as g}from"../../onboarding/onboarding.min.js";import{N as b}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{O as h,b as v,c as y}from"../../onboarding/events.min.js";import{t as _,a as z,b as l,c as f}from"../../onboarding/analytics/onboarding-analytics.min.js";import"../../assets/query-BApjzB0v.js";import"../../assets/mealz-sdk-E_fNZM-c.js";function c(e,t=".mealz-planner-current-menu__mobile-header",s="(max-width: 768px)"){const n=e.querySelector(t);return n?window.getComputedStyle(n).display!=="none":window.matchMedia(s).matches}function C(e,t,s=".mealz-planner-current-menu__mobile-header",n="(max-width: 768px)"){const o=()=>{const i=c(e,s,n);t(i)};return window.addEventListener("resize",o),()=>window.removeEventListener("resize",o)}var O=Object.defineProperty,T=Object.getOwnPropertyDescriptor,u=(e,t,s,n)=>{for(var o=n>1?void 0:n?T(t,s):t,i=e.length-1,r;i>=0;i--)(r=e[i])&&(o=(n?r(t,s,o):r(o))||o);return n&&o&&O(t,s,o),o};const S={custom:{type:"custom",steps:[{element:".mealz-planner-current-menu__menu-top",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici.",overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}},{element:".mealz-planner-recipe-suggestion",popover:{title:"Inspirez-vous avec nos suggestions",description:"Visualisez notre proposition de recette rien que pour vous ici.<br>Cliquez dessus pour en voir les détails.",overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}},{element:".mealz-planner-recipe-suggestion__actions-add-button",popover:{title:"Cette recette vous plaît ?",description:'Ajoutez-la en 1 clic à votre menu grâce au bouton <b>"Ajouter au menu"</b>. ',overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}},{element:".mealz-planner-recipe-suggestion__actions-swap-button",popover:{title:"Cette recette ne vous plaît pas ?",description:'Cliquez sur <b>"Autre suggestion"</b> pour découvrir une nouvelle suggestion, ou sélectionnez la recette de votre choix en explorant notre catalogue',overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}}],localStorageKey:"_miam/customMenuOnboarding",showProgress:!0},"custom-mobile":{type:"custom-mobile",steps:[{element:".mealz-planner-current-menu__mobile-menu-button img",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici.",overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}},{element:".mealz-planner-recipe-suggestion",popover:{title:"Inspirez-vous avec nos suggestions",description:"Visualisez notre proposition de recette rien que pour vous ici.<br>Cliquez dessus pour en voir les détails.",overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}},{element:".mealz-planner-recipe-suggestion__actions-add-button",popover:{title:"Cette recette vous plaît ?",description:'Ajoutez-la en 1 clic à votre menu grâce au bouton <b>"Ajouter au menu"</b>.',overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}},{element:".mealz-planner-recipe-suggestion__actions-swap-button",popover:{title:"Cette recette ne vous plaît pas ?",description:'Cliquez sur <b>"Autre suggestion"</b> pour découvrir une nouvelle suggestion, ou sélectionnez la recette de votre choix en explorant notre catalogue',overElement:".mealz-planner-recipe-suggestion__content",spacerTop:89}}],localStorageKey:"_miam/customMenuOnboarding",showProgress:!0},suggestion:{type:"suggestion",steps:[{element:".mealz-planner-current-menu__menu-top",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici."}},{element:".mealz-planner-recipe-suggestion",popover:{title:"Inspirez-vous avec nos suggestions",description:"Visualisez notre proposition de recette rien que pour vous ici.<br>Cliquez dessus pour en voir les détails."}}],localStorageKey:"_miam/suggestionOnboarding",showProgress:!0},"suggestion-mobile":{type:"suggestion-mobile",steps:[{element:".mealz-planner-current-menu__menu-top",popover:{title:"Retrouvez votre menu ici",description:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici."}},{element:".mealz-planner-recipe-card",popover:{title:"Vos recettes en un coup d’œil",description:"Consultez le détail d’une recette ou retirez-la de votre menu en un clic."}}],localStorageKey:"_miam/suggestionOnboarding",showProgress:!0,bottomMargin:0},guide:{type:"guide",steps:[{element:".mealz-planner-current-menu__onboarding-button",popover:{title:"Besoin d'aide ?",description:"Retrouvez à tout moment notre guide en quelques étapes simples."}}],localStorageKey:"_miam/guideOnboarding",showProgress:!1,bottomMargin:0},"guide-mobile":{type:"guide-mobile",steps:[{element:".mealz-planner-current-menu__mobile-onboarding-button",popover:{title:"Besoin d'aide ?",description:"Retrouvez à tout moment notre guide en quelques étapes simples."}}],localStorageKey:"_miam/guideOnboarding",showProgress:!1,bottomMargin:0},"recipe-details":{type:"recipe-details",steps:[{element:"mealz-product-card-planner:first-of-type .mealz-product-card-planner__checkbox input",popover:{title:"Personnalisez votre recette",description:"Vous avez déjà certains produits ? Désélectionnez-les pour qu’ils ne soient pas ajoutés à votre panier.<br>Les produits sélectionnés seront eux ajoutés automatiquement au panier."}}],localStorageKey:"_miam/recipeDetailsOnboarding",showProgress:!1,bottomMargin:0},"menu-to-basket":{type:"menu-to-basket",steps:[{element:".mealz-planner-current-menu__footer-button:not(.disabled)",popover:{title:"Votre menu est terminé ?",description:'Quand votre menu sera terminé, utiliser le bouton <b>"Mettre le menu au panier"</b> pour mettre les produits de toutes les recettes dans votre panier.',overElement:".mealz-planner-current-menu__meal-extras",spacerTop:16,spacerLeft:16}}],localStorageKey:"_miam/menuToBasketOnboarding",showProgress:!1},"menu-to-basket-mobile":{type:"menu-to-basket",steps:[{element:".mealz-planner-current-menu__footer-button:not(.disabled)",popover:{title:"Votre menu est terminé ?",description:'Quand votre menu sera terminé, utiliser le bouton <b>"Mettre le menu au panier"</b> pour mettre les produits de toutes les recettes dans votre panier.',overElement:".mealz-planner-current-menu__footer",spacerLeft:0,spacerTop:-272}}],localStorageKey:"_miam/menuToBasketOnboarding",showProgress:!1}};let a=class extends b{constructor(){super(...arguments),this.isCustomMenu=!1,this.type="custom",this.isMobile=!1,this.onboardingComponent=null,this.currentStep=1,this.isTourActive=!1}connectedCallback(){super.connectedCallback(),this.isMobile=c(document),this.initOnboarding(),this.removeResponsiveListener=C(document,e=>{e!==this.isMobile&&(this.isMobile=e,this.updateOnboardingConfig())})}initOnboarding(){this.onboardingComponent||(this.onboardingComponent=new g,this.onboardingComponent.configurations=S,this.onboardingComponent.type=this.type,this.appendChild(this.onboardingComponent),this.listenToOnboardingClosed()),this.updateOnboardingConfig()}listenToOnboardingClosed(){var e,t,s;(e=this.onboardingComponent)==null||e.addEventListener(h,()=>{var n;_(this.mapTypeForAnalytics(this.type),this.currentStep),this.isTourActive=!1,this.markOnboardingAsSeen(this.type),(this.type==="custom"||this.type==="suggestion"||this.type==="custom-mobile"||this.type==="suggestion-mobile")&&!((n=this.onboardingComponent)!=null&&n.hasSeenOnboarding("guide"))?this.openGuideOnboarding():this.remove()}),(t=this.onboardingComponent)==null||t.addEventListener(v,n=>{var r;const i=((r=n.detail)==null?void 0:r.stepIndex)??0;z(this.mapTypeForAnalytics(this.type),this.currentStep),this.currentStep=i+1,l(this.mapTypeForAnalytics(this.type),this.currentStep)}),(s=this.onboardingComponent)==null||s.addEventListener(y,()=>{f(this.mapTypeForAnalytics(this.type)),this.markOnboardingAsSeen(this.type)})}markOnboardingAsSeen(e){if(this.onboardingComponent)try{const t=this.onboardingComponent.getConfig(e);t!=null&&t.localStorageKey&&localStorage.setItem(t.localStorageKey,"true")}catch{}}updateOnboardingConfig(){if(!this.onboardingComponent)return;this.onboardingComponent.type=this.type;const e=this.onboardingComponent.getConfig(this.type);this.onboardingComponent.steps=e.steps,this.onboardingComponent.showProgress=e.showProgress??!0;let t=e.bottomMargin??110;t===0&&!this.isMobile&&(t=24),this.onboardingComponent.bottomMargin=t}openGuideOnboarding(){this.type=this.isMobile?"guide-mobile":"guide",this.currentStep=1,this.isTourActive=!1,setTimeout(()=>{this.onboardingComponent&&(this.updateOnboardingConfig(),this.launchOnboardingTour())},300)}startTour(){this.isTourActive||(this.onboardingComponent||this.initOnboarding(),this.currentStep=1,this.isTourActive=!0,this.launchOnboardingTour())}launchOnboardingTour(){this.onboardingComponent&&(this.updateOnboardingConfig(),l(this.mapTypeForAnalytics(this.type),this.currentStep),this.onboardingComponent.startOnboardingTour())}startOnboardingByType(e){this.type=e,this.onboardingComponent||this.initOnboarding(),this.launchOnboardingTour()}disconnectedCallback(){super.disconnectedCallback(),this.removeResponsiveListener&&(this.removeResponsiveListener(),this.removeResponsiveListener=void 0),this.onboardingComponent&&(this.onboardingComponent.remove(),this.onboardingComponent=null)}mapTypeForAnalytics(e){switch(e){case"custom":case"custom-mobile":return"personal";case"suggestion":case"suggestion-mobile":return"suggestion";case"guide":case"guide-mobile":return"guide";case"recipe-details":return"recipe-details";case"menu-to-basket":case"menu-to-basket-mobile":return"to-basket";default:return"personal"}}};u([p({type:Boolean})],a.prototype,"isCustomMenu",2);u([p({type:String})],a.prototype,"type",2);u([d()],a.prototype,"isMobile",2);a=u([m("mealz-planner-onboarding")],a);customElements.get("mealz-planner-onboarding")||customElements.define("mealz-planner-onboarding",a);export{a as M,C as a,c as i};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as
|
|
1
|
+
import{N as g,k as e}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as d}from"../../assets/custom-element-BhZVzxrc.js";import{r as m}from"../../assets/state-C5zM4-Pq.js";import{d as c,e as u,f as b,g as h,h as v,i as z}from"../../onboarding/analytics/onboarding-analytics.min.js";import"../../assets/mealz-sdk-E_fNZM-c.js";import"../../assets/property-Bx8Yvr4_.js";var _=Object.defineProperty,x=Object.getOwnPropertyDescriptor,p=(t,s,a,o)=>{for(var n=o>1?void 0:o?x(s,a):s,r=t.length-1,l;r>=0;r--)(l=t[r])&&(n=(o?l(s,a,n):l(n))||n);return o&&n&&_(s,a,n),n};let i=class extends g{constructor(){super(),this.step=1,this.isMobile=window.innerWidth<=768,this.analyticsPath="/meals-planner/onboarding",this.steps=[{imgDesktop:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step0.png",imgMobile:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step0-mobile.png",title:"Retrouvez votre menu",content:"Découvrez notre Sélection du moment pour gagner du temps, ou créez un Menu personnalisé adapté à vos goûts et à votre budget."},{imgDesktop:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step1.png",imgMobile:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step1-mobile.png",title:"Retrouvez votre menu",content:"Toutes les recettes que vous sélectionnerez et l'accès au catalogue de recettes seront visibles ici."},{imgDesktop:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step2.png",imgMobile:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step2-mobile.png",title:"Inspirez-vous avec nos suggestions",content:e`Visualisez notre proposition de recette rien que pour vous ici.<br>Cliquez dessus pour en voir les détails.`},{imgDesktop:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step3.png",imgMobile:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step3-mobile.png",title:"Une recette vous plaît ?",content:e`
|
|
2
2
|
Ajoutez-la en 1 clic à votre menu grâce au bouton
|
|
3
3
|
<span class="mealz-ds-text weight-xl">"Ajouter au menu"</span>.
|
|
4
4
|
`},{imgDesktop:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step4.png",imgMobile:"https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/onboarding/planner-onboarding-step4-mobile.png",title:"Une recette ne vous plaît pas ?",content:e`
|
|
@@ -12,11 +12,11 @@ import{N as m,k as e}from"../../assets/no-shadow-element-D4NOg0uW.js";import{t a
|
|
|
12
12
|
Quand votre menu sera terminé, utilisez le bouton
|
|
13
13
|
<span class="mealz-ds-text weight-xl">"Mettre le menu au panier"</span>
|
|
14
14
|
pour mettre les produits de toutes les recettes dans votre panier.
|
|
15
|
-
`}],this.styleURL=new URL("./planner/planner-onboarding-modal/planner-onboarding-modal.css",this.getBaseURL()),this.boundHandleResize=this.handleResize.bind(this)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.boundHandleResize),this.requestUpdate()}onModalDisplayed(){c(this.step)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("resize",this.boundHandleResize)}handleResize(){this.isMobile=window.innerWidth<=768}render(){const{imgDesktop:t,imgMobile:
|
|
15
|
+
`}],this.styleURL=new URL("./planner/planner-onboarding-modal/planner-onboarding-modal.css",this.getBaseURL()),this.boundHandleResize=this.handleResize.bind(this)}connectedCallback(){super.connectedCallback(),window.addEventListener("resize",this.boundHandleResize),this.requestUpdate()}onModalDisplayed(){c(this.step)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("resize",this.boundHandleResize)}handleResize(){this.isMobile=window.innerWidth<=768}render(){const{imgDesktop:t,imgMobile:s,title:a,content:o}=this.steps[this.step-1],n=this.isMobile?s:t;return e`
|
|
16
16
|
<div class="mealz-planner-onboarding-modal">
|
|
17
17
|
<div class="mealz-planner-onboarding-modal__body">
|
|
18
18
|
<div class="mealz-planner-onboarding-modal__content step${this.step}">
|
|
19
|
-
<img class="mealz-planner-onboarding-modal__img" src="${
|
|
19
|
+
<img class="mealz-planner-onboarding-modal__img" src="${n}">
|
|
20
20
|
<span class="mealz-planner-onboarding-modal__title mealz-ds-text size-m weight-xxl">
|
|
21
21
|
${a}
|
|
22
22
|
</span>
|
|
@@ -30,8 +30,8 @@ import{N as m,k as e}from"../../assets/no-shadow-element-D4NOg0uW.js";import{t a
|
|
|
30
30
|
</div>
|
|
31
31
|
${this.renderNavigationButtons()}
|
|
32
32
|
</div>
|
|
33
|
-
`}renderStepIndicators(){return this.steps.map((t,
|
|
34
|
-
<div class="mealz-planner-onboarding-modal__indicator ${this.step===
|
|
33
|
+
`}renderStepIndicators(){return this.steps.map((t,s)=>e`
|
|
34
|
+
<div class="mealz-planner-onboarding-modal__indicator ${this.step===s+1?"active":""}"></div>
|
|
35
35
|
`)}renderNavigationButtons(){const t=this.step===this.steps.length;return e`
|
|
36
36
|
<div class="mealz-planner-onboarding-modal__navigation-buttons">
|
|
37
37
|
<button @click="${()=>this.previousStep()}"
|
|
@@ -50,4 +50,4 @@ import{N as m,k as e}from"../../assets/no-shadow-element-D4NOg0uW.js";import{t a
|
|
|
50
50
|
</button>
|
|
51
51
|
`}
|
|
52
52
|
</div>
|
|
53
|
-
`}previousStep(){u(this.step),this.step=Math.max(this.step-1,1),this.onModalDisplayed()}nextStep(){b(this.step),this.step=Math.min(this.step+1,this.steps.length),this.onModalDisplayed()}closeModal(){h(this.step),this.dispatchEvent(new CustomEvent("onboardingConfirmed",{bubbles:!0,composed:!0}))}closeModalViaX(){v(this.step),this.dispatchEvent(new CustomEvent("onboardingConfirmed",{bubbles:!0,composed:!0}))}onQuestionMarkClick(t="dashboard"){z(t)}};p([
|
|
53
|
+
`}previousStep(){u(this.step),this.step=Math.max(this.step-1,1),this.onModalDisplayed()}nextStep(){b(this.step),this.step=Math.min(this.step+1,this.steps.length),this.onModalDisplayed()}closeModal(){h(this.step),this.dispatchEvent(new CustomEvent("onboardingConfirmed",{bubbles:!0,composed:!0}))}closeModalViaX(){v(this.step),this.dispatchEvent(new CustomEvent("onboardingConfirmed",{bubbles:!0,composed:!0}))}onQuestionMarkClick(t="dashboard"){z(t)}};p([m()],i.prototype,"step",2);p([m()],i.prototype,"isMobile",2);i=p([d("mealz-planner-onboarding-modal")],i);customElements.get("mealz-planner-onboarding-modal")||customElements.define("mealz-planner-onboarding-modal",i);export{i as M};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as m,k as r}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as m,k as r}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{M as d}from"../../modal/modal.min.js";import{t as i}from"../../assets/custom-element-BhZVzxrc.js";import"../../assets/mealz-sdk-E_fNZM-c.js";import"../../assets/property-Bx8Yvr4_.js";import"../../assets/unsafe-html-Bv_ydUHb.js";import"../../onboarding/events.min.js";var c=Object.getOwnPropertyDescriptor,u=(e,n,p,l)=>{for(var a=l>1?void 0:l?c(n,p):n,t=e.length-1,s;t>=0;t--)(s=e[t])&&(a=s(a)||a);return a};let o=class extends m{constructor(){super(),this.styleURL=new URL("./planner/planner-open-catalog-modal/planner-open-catalog-modal.css",this.getBaseURL())}displayMealzPlannerOpenCatalogModal(){const e=new d;document.body.appendChild(this),e.titleSlot=r`<span>Rien à votre goût ?</span>`,e.contentSlot=this.renderModal(),this.appendChild(e),e.addEventListener("modalClosed",()=>{this.remove()})}openCatalog(){const e=new CustomEvent("openCatalog");this.dispatchEvent(e),this.remove()}closeModal(){const e=new CustomEvent("refuse");this.dispatchEvent(e),this.remove()}renderModal(){return r`
|
|
2
2
|
<div class="mealz-planner-open-catalog-modal__content">
|
|
3
3
|
<div class="mealz-planner-open-catalog-modal__description">
|
|
4
4
|
<span class="mealz-ds-text size-m">
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as l}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as l}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as o}from"../../assets/custom-element-BhZVzxrc.js";import{m as p}from"../../assets/mealz-sdk-E_fNZM-c.js";var d=Object.getOwnPropertyDescriptor,u=(e,r,n,s)=>{for(var t=s>1?void 0:s?d(r,n):r,i=e.length-1,a;i>=0;i--)(a=e[i])&&(t=a(t)||t);return t};let c=class extends l{get selectors(){return{title:".mealz-planner-current-menu__recipe-title",overlay:".mealz-planner-recipe-card__in-basket",removeButton:".mealz-planner-recipe-card__remove-button"}}connectedCallback(){super.connectedCallback(),this.initSelectors(),this.addEventListeners()}render(){var t;const e=(t=this.attributes["starting-data"])==null?void 0:t.value;if(!e)return;const{recipeId:r,recipeIndex:n,guests:s}=JSON.parse(e);this.recipeId=r,this.recipeIndex=n,this.guests=s,this.removeAttribute("starting-data")}addEventListeners(){this.addClickListener("title",()=>this.handleRecipeClick()),this.addClickListener("overlay",()=>this.handleRecipeClick()),this.addClickListener("removeButton",()=>this.removeRecipe())}handleRecipeClick(){this.openRecipeDetails(),this.updateDisplayedRecipe()}openRecipeDetails(){p.recipes.openDetails(this.recipeId,this.guests)}updateDisplayedRecipe(){if(!this.recipeId||this.recipeIndex===void 0)return;const e=document.querySelector(".mealz-planner-recipe-suggestion__meals-count"),r=document.querySelectorAll(".mealz-planner-recipe-suggestion__meals-count-button");if(!e||!r.length)return;const n=e.querySelector(".primary");if(Array.from(e.children).indexOf(n)===this.recipeIndex)return;const t=r[this.recipeIndex],i=document.querySelector("mealz-planner-recipe-suggestion");i==null||i.handleRecipeSelect(r,t,this.recipeIndex)}removeRecipe(){const e=document.querySelector("mealz-planner-recipe-suggestion");e&&e.removeRecipe(this.recipeId).subscribe()}updateRecipeIndex(e){this.recipeIndex=e}};c=u([o("mealz-planner-recipe-card")],c);customElements.get("mealz-planner-recipe-card")||customElements.define("mealz-planner-recipe-card",c);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as c}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as c}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{b as o}from"../../assets/http-Bepz6wA4.js";import{t as p}from"../../assets/custom-element-BhZVzxrc.js";import{m as l}from"../../assets/mealz-sdk-E_fNZM-c.js";import{t as m}from"../../assets/take-ByPtGQky.js";import"../../assets/empty-Bs9kqCuA.js";import"../../assets/OperatorSubscriber-DF1TYu__.js";var u=Object.getOwnPropertyDescriptor,h=(e,t,s,n)=>{for(var r=n>1?void 0:n?u(t,s):t,a=e.length-1,d;a>=0;a--)(d=e[a])&&(r=d(r)||r);return r};let i=class extends c{constructor(){super(...arguments),this.recipesIdInBasket=[]}get selectors(){return{addToMenuCard:".mealz-planner-recipe-list__add-to-menu",recipeCardsContainer:".mealz-planner-recipe-list__in-menu"}}connectedCallback(){super.connectedCallback(),this.initSelectors(),this.getRecipesInBasket(),this.addEventListeners()}render(){var t;const e=(t=this.attributes["starting-data"])==null?void 0:t.value;e&&(Object.assign(this,JSON.parse(e)),this.removeAttribute("starting-data"))}addEventListeners(){this.addClickListener("addToMenuCard",()=>{this.openCatalogDrawer()})}openCatalogDrawer(){const e=document.querySelector("mealz-planner-current-menu");e==null||e.openCatalogDrawer()}async addRecipeCardToList(e){const t=new URLSearchParams;t.append("recipe_id",e),t.append("recipe_index",this.menuRecipeCount.toString()),this.storeId&&t.append("store_id",this.storeId);const n=await(await fetch(this.recipeCardURL+"?"+t.toString(),{method:"GET",headers:o(this.sessionId)})).text(),{recipeCardsContainer:r}=this.elements;if(r.insertAdjacentHTML("beforeend",n),this.recipesIdInBasket.includes(e)){const a=r.lastElementChild;a&&this.addInBasketOverlay(a)}this.menuRecipeCount++}removeRecipeCardFromList(e){const{recipeCardsContainer:t}=this.elements;t.children[e].remove(),this.menuRecipeCount--,this.updateRemainingRecipeIndexes()}updateRemainingRecipeIndexes(){(document.querySelectorAll("mealz-planner-recipe-card")||[]).forEach((t,s)=>{t.updateRecipeIndex(s)})}getRecipesInBasket(){l.basket.recipePricesInBasket$().pipe(m(1)).subscribe(e=>this.recipesIdInBasket=e.map(t=>t.id))}addInBasketOverlay(e){e.querySelector(".mealz-planner-recipe-card__in-basket").classList.remove("hidden")}};i=h([p("mealz-planner-recipe-list")],i);customElements.get("mealz-planner-recipe-list")||customElements.define("mealz-planner-recipe-list",i);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as h,n as m,S as f}from"../../assets/no-shadow-element-D4NOg0uW.js";import{t as R}from"../../assets/custom-element-BhZVzxrc.js";import{m as p}from"../../assets/mealz-sdk-E_fNZM-c.js";import{d as S}from"../../assets/debounceTime-cu8WlLF0.js";import{o as b}from"../../assets/of-CzgrATec.js";import{t as g}from"../../assets/take-ujVMxFwY.js";import{t as v}from"../../assets/tap-DwBV-qFl.js";import"../../assets/async-guWcMFmJ.js";import"../../assets/OperatorSubscriber-B37s2U6v.js";import"../../assets/from-CEPL7XsE.js";import"../../assets/executeSchedule-Dqc6shOu.js";import"../../assets/innerFrom-D8hyVDmo.js";import"../../assets/empty-DhPhHznc.js";class w{constructor(){this.attributes={title:"","ext-id":"","ext-link":"",description:"","number-of-guests":"","preparation-time":"","preheating-time":"","cooking-time":"","resting-time":"","media-url":"",source:"","informational-page-html":"","filigrane-logo-url":"","informational-sentence":"","order-history":"",difficulty:1,cost:1,suggested:!1,popularity:0,"video-id":"",promoted:!1,editable:!1,position:-1},this.ttl=3600,this.finalTimer=this.attributes["preparation-time"]+this.attributes["preheating-time"]+this.attributes["cooking-time"]+this.attributes["resting-time"]}get title(){return this.attributes.title}get promoted(){return this.attributes.promoted}get guests(){return this.attributes["number-of-guests"]}set guests(t){this.attributes["number-of-guests"]=t}get filigraneLogoUrl(){return this.attributes["filigrane-logo-url"]?this.attributes["filigrane-logo-url"]:null}get sponsorName(){return this.relationships.sponsors.length>0?this.relationships.sponsors[0].attributes.name:null}get sponsorLogoUrl(){var t;return this.relationships.sponsors.data.length>0&&((t=this.included)!=null&&t.length)?this.included.find(s=>s.id===this.relationships.sponsors.data[0].id&&s.type==="sponsors").attributes["logo-url"]:null}get informationalSentence(){return this.attributes["informational-sentence"]}get costLabel(){switch(this.attributes.cost){case 1:return"faible";case 2:return"moyen";case 3:return"élevé";default:return"moyen"}}get orderHistory(){return this.attributes["order-history"]}get preparationTime(){}get cookingTime(){}get restingTime(){}get difficulty(){return this.attributes.difficulty}set difficulty(t){this.attributes.difficulty=t}}var L=Object.getOwnPropertyDescriptor,y=(e,t,s,i)=>{for(var n=i>1?void 0:i?L(t,s):t,r=e.length-1,o;r>=0;r--)(o=e[r])&&(n=o(n)||n);return n};let d=class extends h{constructor(){super(...arguments),this.recipeId="",this.isDragging=!1,this.dragStartX=0,this.initialScrollLeft=0,this.layoutObserver=null,this.menuRecipes=[],this.suggestedRecipes=[],this.buttonClickHandlers=new Map,this.swapRecipeCount=0,this.swapRecipeClick$=new m,this.analyticsPath="/meals-planner/current",this.preferencesSubscription=new f,this.lastShownRecipeId=null}get selectors(){return{buttonsContainer:".mealz-planner-recipe-suggestion__meals-count",title:".mealz-planner-current-menu__recipe-title",removeButtons:".mealz-planner-recipe-suggestion__actions-remove",removeButton:".mealz-planner-recipe-suggestion__actions-remove-button",swapButton:".mealz-planner-recipe-suggestion__actions-swap-button",addButton:".mealz-planner-recipe-suggestion__actions-add-button",seeRecipe:".mealz-planner-recipe-suggestion__see-recipe",promotion:".mealz-planner-recipe-suggestion__recipe-badges-promotion",sponsor:".mealz-planner-recipe-suggestion__recipe-sponsor",addAndSwapButtons:".mealz-planner-recipe-suggestion__actions-add-and-swap",buttons:[".mealz-planner-recipe-suggestion__meals-count-button"],activeButton:".mealz-planner-recipe-suggestion__meals-count-button.primary",pictureContainer:".mealz-planner-recipe-suggestion__picture",picture:".mealz-planner-recipe-suggestion__picture img",sponsorImg:".mealz-planner-recipe-suggestion__recipe-sponsor img"}}connectedCallback(){super.connectedCallback(),this.initSelectors(),this.addEventListeners(),this.swapRecipeClick$.pipe(S(300)).subscribe(()=>this.swapRecipe()),this.subscribeToPreferencesChanges()}disconnectedCallback(){super.disconnectedCallback(),this.layoutObserver&&this.layoutObserver.disconnect(),this.swapRecipeClick$.complete(),this.preferencesSubscription.unsubscribe()}render(){const{buttonsContainer:e,buttons:t}=this.elements;!e||!t.length||this.mealsCountButtonsListener(t)}firstUpdated(){var i,n;const{buttonsContainer:e,buttons:t}=this.elements;if(!e||!t.length)return;this.initScrolling(e,t),this.initDragScrolling(e);const s=(i=this.attributes["starting-data"])==null?void 0:i.value;s&&(Object.assign(this,JSON.parse(s)),this.recipeId=(n=this.recipeDisplayed)==null?void 0:n.id,this.updateDisplayedRecipe(!1,this.menuRecipes.length),t.length===1&&this.recipeId&&this.suggestionShownEvent(),this.removeAttribute("starting-data"))}addEventListeners(){this.addClickListener("removeButton",()=>this.removeRecipe().subscribe()),this.addClickListener("swapButton",()=>this.swapRecipeClick$.next()),this.addClickListener("addButton",()=>this.addRecipe()),this.addClickListener("title",()=>this.openRecipeDetails()),this.addClickListener("seeRecipe",()=>this.openRecipeDetails()),this.addClickListener("pictureContainer",()=>this.openRecipeDetails())}mealsCountButtonsListener(e){e.forEach((t,s)=>{const i=this.buttonClickHandlers.get(t);i&&t.removeEventListener("click",i);const n=()=>this.handleRecipeSelect(e,t,s);this.buttonClickHandlers.set(t,n),t.addEventListener("click",n)})}handleRecipeSelect(e,t,s){e.forEach(i=>i.classList.remove("primary")),t.classList.add("primary"),this.updateDisplayedRecipe(!1,s),s+1===e.length&&this.suggestionShownEvent(),this.scrollToButton(t)}updateDisplayedRecipe(e=!1,t){const{title:s,promotion:i,sponsor:n,addAndSwapButtons:r,removeButtons:o,picture:c,sponsorImg:l}=this.elements;if(!c||!s||!i||!n||!l||!r||!o)return;const a=this.getRecipeToDisplay(e,t);if(!a)return;const u=new w;Object.assign(u,a),this.recipeId=a.id,this.initializeUIState(c,i,n),this.setupImageHandlers(c,l,n,u,s,i,r,o,t)}getRecipeToDisplay(e,t){return e?this.suggestedRecipes[0]:this.menuRecipes[t]||this.suggestedRecipes[0]}initializeUIState(e,t,s){e.classList.add("loading"),t.classList.add("hidden"),s.classList.add("hidden")}setupImageHandlers(e,t,s,i,n,r,o,c,l){let a=null;const u=()=>{a&&(clearTimeout(a),a=null),this.updateRecipeUI(e,s,n,r,o,c,i,l)};if(e.onload=u,e.onerror=u,i.attributes["media-url"])e.src=i.attributes["media-url"];else{u();return}i.sponsorLogoUrl&&(t.src=i.sponsorLogoUrl),a=window.setTimeout(u,1e3)}updateRecipeUI(e,t,s,i,n,r,o,c){e.classList.remove("loading"),o.sponsorLogoUrl&&t.classList.remove("hidden"),s.textContent=o.attributes.title||"",i.classList.toggle("hidden",!o.discounted);const l=!!this.menuRecipes[c];n.classList.toggle("hidden",l),r.classList.toggle("hidden",!l)}addRecipe(){this.toggleLoadingButton(!0);const e=document.querySelector("mealz-planner-current-menu");if(!e){this.toggleLoadingButton(!1);return}e.addRecipe(this.recipeId,this.guests,"ai_suggestion","meals-planner-dashboard").subscribe({next:()=>{this.addAndSelectNewSuggestion(),this.toggleLoadingButton(!1)},error:()=>{this.toggleLoadingButton(!1)}})}toggleLoadingButton(e){const t=this.selectors.addButton,s=this.querySelector(t);s&&s.classList.toggle("loading",e)}addAndSelectNewSuggestion(e){!e||this.suggestedRecipes[0].id===e.id?(this.menuRecipes.push(this.suggestedRecipes[0]),this.removeSuggestedRecipe()):this.menuRecipes.push(e),this.addNewMealCountButton(),this.selectNewSuggestion(),this.addCheckIconToButton(),this.requestUpdate()}addNewMealCountButton(){var n;const{buttons:e}=this.elements;if(!e.length)return;const t=e[e.length-1],s=t.cloneNode(!0);s.classList.remove("primary");const i=s.querySelector("span");if(i){const r=(n=i.textContent)==null?void 0:n.match(/\d+/);if(r){const o=parseInt(r[0],10)+1;i.textContent=i.textContent.replace(/\d+/,o.toString())}}t.after(s)}selectNewSuggestion(){this.initSelectors("buttons");const{buttons:e}=this.elements;if(!e.length)return;const t=e[e.length-1];this.handleRecipeSelect(e,t,e.length-1)}addCheckIconToButton(){this.initSelectors("buttons");const{buttons:e}=this.elements;if(!e.length)return;const t=e[e.length-2],s=document.createElement("img");s.src="https://storage.googleapis.com/assets.miam.tech/generic/icons/Check.svg",s.alt="check icon",t.appendChild(s)}removeRecipe(e){const t=e||this.recipeId,s=document.querySelector("mealz-planner-current-menu");return!s||!t?b():s.removeRecipe(t).pipe(g(1),v(()=>{const i=this.menuRecipes.findIndex(n=>n.id===t);i!==-1&&(this.removeRecipeFromMenu(i),this.removeButtonFromContainer(i),this.updateButtonsCount())}))}removeButtonFromContainer(e){const{buttonsContainer:t,buttons:s}=this.elements;if(!t||!s.length)return;const i=s[e];if(i.classList.contains("primary")){const n=+e+1,r=s[n];this.handleRecipeSelect(s,r,e)}i.remove()}removeRecipeFromMenu(e){this.menuRecipes.splice(e,1)}updateButtonsCount(){this.initSelectors("buttons");const{buttons:e}=this.elements;e.forEach((t,s)=>{var n;const i=t.querySelector("span");if(i&&((n=i.textContent)==null?void 0:n.match(/\d+/))){const o=s+1;i.textContent=i.textContent.replace(/\d+/,o.toString())}}),this.requestUpdate()}swapRecipe(){this.suggestedRecipes.shift(),p.planner.rejectRecipe(this.recipeId).pipe(g(1)).subscribe({next:()=>{this.suggestedRecipes.length<1&&this.getNewSuggestedRecipes()}}),this.recipeSwappedEvent(),this.swapRecipeCount++,!sessionStorage.getItem("_miam/selectFromCatalogSuggestion")&&this.swapRecipeCount>3&&(sessionStorage.setItem("_miam/selectFromCatalogSuggestion","true"),this.openCatalogModal()),this.updateDisplayedRecipe(!0),this.suggestionShownEvent()}removeSuggestedRecipe(){this.suggestedRecipes.shift(),this.suggestedRecipes.length<1&&this.getNewSuggestedRecipes()}getNewSuggestedRecipes(){p.planner.getSuggestedRecipes().pipe(g(1)).subscribe(e=>{const t=new Set(this.suggestedRecipes.map(i=>i.id)),s=e.filter(i=>!t.has(i.id));this.suggestedRecipes=[...this.suggestedRecipes,...s],this.updateDisplayedRecipe(!0),this.suggestionShownEvent()})}openCatalogModal(){const e=document.querySelector("mealz-planner-current-menu");this.promptCatalogEvent(),e==null||e.openCatalogModal()}openRecipeDetails(){p.recipes.openDetails(this.recipeId,this.guests,0,"",!0)}initScrolling(e,t){t.length>0&&t[0].offsetWidth>0?this.centerActiveButton(e,t):this.waitForButtonLayout(e,t)}centerActiveButton(e,t){this.initSelectors("activeButton");const{activeButton:s}=this.elements;this.setPadding(e,t),s&&this.scrollToButton(s,"instant")}waitForButtonLayout(e,t){const s=new ResizeObserver(()=>{t.length>0&&t[0].offsetWidth>0&&(this.centerActiveButton(e,t),s.disconnect())});t.forEach(i=>s.observe(i))}initDragScrolling(e){e.addEventListener("mousedown",t=>this.startDrag(t,e)),e.addEventListener("mouseleave",()=>this.stopDrag()),e.addEventListener("mouseup",()=>this.stopDrag()),e.addEventListener("mousemove",t=>this.onDrag(t,e))}refreshSuggestions(){p.planner.getSuggestedRecipes().pipe(g(1)).subscribe(e=>{var n;this.suggestedRecipes=e,this.initSelectors("buttons","activeButton");const{buttons:t,activeButton:s}=this.elements;if(!!(t!=null&&t.length)&&s===t[t.length-1]&&this.suggestedRecipes.length>0){const r=this.suggestedRecipes[0];((n=this.recipeDisplayed)==null?void 0:n.id)!==r.id&&(this.recipeDisplayed=r,this.updateDisplayedRecipe(!0),this.requestUpdate())}})}subscribeToPreferencesChanges(){this.preferencesSubscription.add(p.preferences.preferencesChanged$().subscribe(()=>this.refreshSuggestions()))}setPadding(e,t){const s=t[0].offsetWidth,i=t[t.length-1].offsetWidth;e.style.paddingLeft=`calc(50% - ${s/2}px)`,e.style.paddingRight=`calc(50% - ${i/2}px)`}scrollToButton(e,t="smooth"){if(!e||!e.parentElement)return;const s=e.parentElement,n=Array.from(this.elements.buttons).indexOf(e);if(n===-1)return;const r=window.getComputedStyle(s),o=parseFloat(r.paddingLeft||"0"),c=window.getComputedStyle(e),l=parseFloat(c.marginRight||"0");let a=e.offsetLeft-o;a+=l*n,s.scrollTo({left:a,behavior:t})}startDrag(e,t){this.isDragging=!0,this.dragStartX=e.pageX-t.offsetLeft,this.initialScrollLeft=t.scrollLeft}stopDrag(){this.isDragging=!1}onDrag(e,t){if(!this.isDragging)return;e.preventDefault();const s=e.pageX-t.offsetLeft;t.scrollLeft=this.initialScrollLeft-(s-this.dragStartX)}recipeSwappedEvent(){p.analytics.sendEvent("planner.recipe.swap",this.analyticsPath,{recipe_id:this.recipeId})}promptCatalogEvent(){p.analytics.sendEvent("planner.recipe.catalog-prompt",this.analyticsPath,{})}suggestionShownEvent(){this.recipeId&&this.recipeId!==this.lastShownRecipeId&&(p.analytics.sendEvent("planner.suggestion.show",this.analyticsPath,{recipe_id:this.recipeId}),this.lastShownRecipeId=this.recipeId)}};d=y([R("mealz-planner-recipe-suggestion")],d);
|
|
1
|
+
import{N as h,n as m,a as f}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as R}from"../../assets/custom-element-BhZVzxrc.js";import{m as p}from"../../assets/mealz-sdk-E_fNZM-c.js";import{d as S}from"../../assets/debounceTime-D7R6Z3Am.js";import{o as b}from"../../assets/of-hd4MpK5g.js";import{t as g}from"../../assets/take-ByPtGQky.js";import{t as v}from"../../assets/tap-K_D6lo97.js";import"../../assets/async-D5WN8Wfc.js";import"../../assets/OperatorSubscriber-DF1TYu__.js";import"../../assets/from-BTlWkhKh.js";import"../../assets/executeSchedule-C0acKsif.js";import"../../assets/innerFrom-FMZwm2mb.js";import"../../assets/empty-Bs9kqCuA.js";class w{constructor(){this.attributes={title:"","ext-id":"","ext-link":"",description:"","number-of-guests":"","preparation-time":"","preheating-time":"","cooking-time":"","resting-time":"","media-url":"",source:"","informational-page-html":"","filigrane-logo-url":"","informational-sentence":"","order-history":"",difficulty:1,cost:1,suggested:!1,popularity:0,"video-id":"",promoted:!1,editable:!1,position:-1},this.ttl=3600,this.finalTimer=this.attributes["preparation-time"]+this.attributes["preheating-time"]+this.attributes["cooking-time"]+this.attributes["resting-time"]}get title(){return this.attributes.title}get promoted(){return this.attributes.promoted}get guests(){return this.attributes["number-of-guests"]}set guests(t){this.attributes["number-of-guests"]=t}get filigraneLogoUrl(){return this.attributes["filigrane-logo-url"]?this.attributes["filigrane-logo-url"]:null}get sponsorName(){return this.relationships.sponsors.length>0?this.relationships.sponsors[0].attributes.name:null}get sponsorLogoUrl(){var t;return this.relationships.sponsors.data.length>0&&((t=this.included)!=null&&t.length)?this.included.find(s=>s.id===this.relationships.sponsors.data[0].id&&s.type==="sponsors").attributes["logo-url"]:null}get informationalSentence(){return this.attributes["informational-sentence"]}get costLabel(){switch(this.attributes.cost){case 1:return"faible";case 2:return"moyen";case 3:return"élevé";default:return"moyen"}}get orderHistory(){return this.attributes["order-history"]}get preparationTime(){}get cookingTime(){}get restingTime(){}get difficulty(){return this.attributes.difficulty}set difficulty(t){this.attributes.difficulty=t}}var L=Object.getOwnPropertyDescriptor,y=(e,t,s,i)=>{for(var n=i>1?void 0:i?L(t,s):t,r=e.length-1,o;r>=0;r--)(o=e[r])&&(n=o(n)||n);return n};let d=class extends h{constructor(){super(...arguments),this.recipeId="",this.isDragging=!1,this.dragStartX=0,this.initialScrollLeft=0,this.layoutObserver=null,this.menuRecipes=[],this.suggestedRecipes=[],this.buttonClickHandlers=new Map,this.swapRecipeCount=0,this.swapRecipeClick$=new m,this.analyticsPath="/meals-planner/current",this.preferencesSubscription=new f,this.lastShownRecipeId=null}get selectors(){return{buttonsContainer:".mealz-planner-recipe-suggestion__meals-count",title:".mealz-planner-current-menu__recipe-title",removeButtons:".mealz-planner-recipe-suggestion__actions-remove",removeButton:".mealz-planner-recipe-suggestion__actions-remove-button",swapButton:".mealz-planner-recipe-suggestion__actions-swap-button",addButton:".mealz-planner-recipe-suggestion__actions-add-button",seeRecipe:".mealz-planner-recipe-suggestion__see-recipe",promotion:".mealz-planner-recipe-suggestion__recipe-badges-promotion",sponsor:".mealz-planner-recipe-suggestion__recipe-sponsor",addAndSwapButtons:".mealz-planner-recipe-suggestion__actions-add-and-swap",buttons:[".mealz-planner-recipe-suggestion__meals-count-button"],activeButton:".mealz-planner-recipe-suggestion__meals-count-button.primary",pictureContainer:".mealz-planner-recipe-suggestion__picture",picture:".mealz-planner-recipe-suggestion__picture img",sponsorImg:".mealz-planner-recipe-suggestion__recipe-sponsor img"}}connectedCallback(){super.connectedCallback(),this.initSelectors(),this.addEventListeners(),this.swapRecipeClick$.pipe(S(300)).subscribe(()=>this.swapRecipe()),this.subscribeToPreferencesChanges()}disconnectedCallback(){super.disconnectedCallback(),this.layoutObserver&&this.layoutObserver.disconnect(),this.swapRecipeClick$.complete(),this.preferencesSubscription.unsubscribe()}render(){const{buttonsContainer:e,buttons:t}=this.elements;!e||!t.length||this.mealsCountButtonsListener(t)}firstUpdated(){var i,n;const{buttonsContainer:e,buttons:t}=this.elements;if(!e||!t.length)return;this.initScrolling(e,t),this.initDragScrolling(e);const s=(i=this.attributes["starting-data"])==null?void 0:i.value;s&&(Object.assign(this,JSON.parse(s)),this.recipeId=(n=this.recipeDisplayed)==null?void 0:n.id,this.updateDisplayedRecipe(!1,this.menuRecipes.length),t.length===1&&this.recipeId&&this.suggestionShownEvent(),this.removeAttribute("starting-data"))}addEventListeners(){this.addClickListener("removeButton",()=>this.removeRecipe().subscribe()),this.addClickListener("swapButton",()=>this.swapRecipeClick$.next()),this.addClickListener("addButton",()=>this.addRecipe()),this.addClickListener("title",()=>this.openRecipeDetails()),this.addClickListener("seeRecipe",()=>this.openRecipeDetails()),this.addClickListener("pictureContainer",()=>this.openRecipeDetails())}mealsCountButtonsListener(e){e.forEach((t,s)=>{const i=this.buttonClickHandlers.get(t);i&&t.removeEventListener("click",i);const n=()=>this.handleRecipeSelect(e,t,s);this.buttonClickHandlers.set(t,n),t.addEventListener("click",n)})}handleRecipeSelect(e,t,s){e.forEach(i=>i.classList.remove("primary")),t.classList.add("primary"),this.updateDisplayedRecipe(!1,s),s+1===e.length&&this.suggestionShownEvent(),this.scrollToButton(t)}updateDisplayedRecipe(e=!1,t){const{title:s,promotion:i,sponsor:n,addAndSwapButtons:r,removeButtons:o,picture:c,sponsorImg:l}=this.elements;if(!c||!s||!i||!n||!l||!r||!o)return;const a=this.getRecipeToDisplay(e,t);if(!a)return;const u=new w;Object.assign(u,a),this.recipeId=a.id,this.initializeUIState(c,i,n),this.setupImageHandlers(c,l,n,u,s,i,r,o,t)}getRecipeToDisplay(e,t){return e?this.suggestedRecipes[0]:this.menuRecipes[t]||this.suggestedRecipes[0]}initializeUIState(e,t,s){e.classList.add("loading"),t.classList.add("hidden"),s.classList.add("hidden")}setupImageHandlers(e,t,s,i,n,r,o,c,l){let a=null;const u=()=>{a&&(clearTimeout(a),a=null),this.updateRecipeUI(e,s,n,r,o,c,i,l)};if(e.onload=u,e.onerror=u,i.attributes["media-url"])e.src=i.attributes["media-url"];else{u();return}i.sponsorLogoUrl&&(t.src=i.sponsorLogoUrl),a=window.setTimeout(u,1e3)}updateRecipeUI(e,t,s,i,n,r,o,c){e.classList.remove("loading"),o.sponsorLogoUrl&&t.classList.remove("hidden"),s.textContent=o.attributes.title||"",i.classList.toggle("hidden",!o.discounted);const l=!!this.menuRecipes[c];n.classList.toggle("hidden",l),r.classList.toggle("hidden",!l)}addRecipe(){this.toggleLoadingButton(!0);const e=document.querySelector("mealz-planner-current-menu");if(!e){this.toggleLoadingButton(!1);return}e.addRecipe(this.recipeId,this.guests,"ai_suggestion","meals-planner-dashboard").subscribe({next:()=>{this.addAndSelectNewSuggestion(),this.toggleLoadingButton(!1)},error:()=>{this.toggleLoadingButton(!1)}})}toggleLoadingButton(e){const t=this.selectors.addButton,s=this.querySelector(t);s&&s.classList.toggle("loading",e)}addAndSelectNewSuggestion(e){!e||this.suggestedRecipes[0].id===e.id?(this.menuRecipes.push(this.suggestedRecipes[0]),this.removeSuggestedRecipe()):this.menuRecipes.push(e),this.addNewMealCountButton(),this.selectNewSuggestion(),this.addCheckIconToButton(),this.requestUpdate()}addNewMealCountButton(){var n;const{buttons:e}=this.elements;if(!e.length)return;const t=e[e.length-1],s=t.cloneNode(!0);s.classList.remove("primary");const i=s.querySelector("span");if(i){const r=(n=i.textContent)==null?void 0:n.match(/\d+/);if(r){const o=parseInt(r[0],10)+1;i.textContent=i.textContent.replace(/\d+/,o.toString())}}t.after(s)}selectNewSuggestion(){this.initSelectors("buttons");const{buttons:e}=this.elements;if(!e.length)return;const t=e[e.length-1];this.handleRecipeSelect(e,t,e.length-1)}addCheckIconToButton(){this.initSelectors("buttons");const{buttons:e}=this.elements;if(!e.length)return;const t=e[e.length-2],s=document.createElement("img");s.src="https://storage.googleapis.com/assets.miam.tech/generic/icons/Check.svg",s.alt="check icon",t.appendChild(s)}removeRecipe(e){const t=e||this.recipeId,s=document.querySelector("mealz-planner-current-menu");return!s||!t?b():s.removeRecipe(t).pipe(g(1),v(()=>{const i=this.menuRecipes.findIndex(n=>n.id===t);i!==-1&&(this.removeRecipeFromMenu(i),this.removeButtonFromContainer(i),this.updateButtonsCount())}))}removeButtonFromContainer(e){const{buttonsContainer:t,buttons:s}=this.elements;if(!t||!s.length)return;const i=s[e];if(i.classList.contains("primary")){const n=+e+1,r=s[n];this.handleRecipeSelect(s,r,e)}i.remove()}removeRecipeFromMenu(e){this.menuRecipes.splice(e,1)}updateButtonsCount(){this.initSelectors("buttons");const{buttons:e}=this.elements;e.forEach((t,s)=>{var n;const i=t.querySelector("span");if(i&&((n=i.textContent)==null?void 0:n.match(/\d+/))){const o=s+1;i.textContent=i.textContent.replace(/\d+/,o.toString())}}),this.requestUpdate()}swapRecipe(){this.suggestedRecipes.shift(),p.planner.rejectRecipe(this.recipeId).pipe(g(1)).subscribe({next:()=>{this.suggestedRecipes.length<1&&this.getNewSuggestedRecipes()}}),this.recipeSwappedEvent(),this.swapRecipeCount++,!sessionStorage.getItem("_miam/selectFromCatalogSuggestion")&&this.swapRecipeCount>3&&(sessionStorage.setItem("_miam/selectFromCatalogSuggestion","true"),this.openCatalogModal()),this.updateDisplayedRecipe(!0),this.suggestionShownEvent()}removeSuggestedRecipe(){this.suggestedRecipes.shift(),this.suggestedRecipes.length<1&&this.getNewSuggestedRecipes()}getNewSuggestedRecipes(){p.planner.getSuggestedRecipes().pipe(g(1)).subscribe(e=>{const t=new Set(this.suggestedRecipes.map(i=>i.id)),s=e.filter(i=>!t.has(i.id));this.suggestedRecipes=[...this.suggestedRecipes,...s],this.updateDisplayedRecipe(!0),this.suggestionShownEvent()})}openCatalogModal(){const e=document.querySelector("mealz-planner-current-menu");this.promptCatalogEvent(),e==null||e.openCatalogModal()}openRecipeDetails(){p.recipes.openDetails(this.recipeId,this.guests,0,"",!0)}initScrolling(e,t){t.length>0&&t[0].offsetWidth>0?this.centerActiveButton(e,t):this.waitForButtonLayout(e,t)}centerActiveButton(e,t){this.initSelectors("activeButton");const{activeButton:s}=this.elements;this.setPadding(e,t),s&&this.scrollToButton(s,"instant")}waitForButtonLayout(e,t){const s=new ResizeObserver(()=>{t.length>0&&t[0].offsetWidth>0&&(this.centerActiveButton(e,t),s.disconnect())});t.forEach(i=>s.observe(i))}initDragScrolling(e){e.addEventListener("mousedown",t=>this.startDrag(t,e)),e.addEventListener("mouseleave",()=>this.stopDrag()),e.addEventListener("mouseup",()=>this.stopDrag()),e.addEventListener("mousemove",t=>this.onDrag(t,e))}refreshSuggestions(){p.planner.getSuggestedRecipes().pipe(g(1)).subscribe(e=>{var n;this.suggestedRecipes=e,this.initSelectors("buttons","activeButton");const{buttons:t,activeButton:s}=this.elements;if(!!(t!=null&&t.length)&&s===t[t.length-1]&&this.suggestedRecipes.length>0){const r=this.suggestedRecipes[0];((n=this.recipeDisplayed)==null?void 0:n.id)!==r.id&&(this.recipeDisplayed=r,this.updateDisplayedRecipe(!0),this.requestUpdate())}})}subscribeToPreferencesChanges(){this.preferencesSubscription.add(p.preferences.preferencesChanged$().subscribe(()=>this.refreshSuggestions()))}setPadding(e,t){const s=t[0].offsetWidth,i=t[t.length-1].offsetWidth;e.style.paddingLeft=`calc(50% - ${s/2}px)`,e.style.paddingRight=`calc(50% - ${i/2}px)`}scrollToButton(e,t="smooth"){if(!e||!e.parentElement)return;const s=e.parentElement,n=Array.from(this.elements.buttons).indexOf(e);if(n===-1)return;const r=window.getComputedStyle(s),o=parseFloat(r.paddingLeft||"0"),c=window.getComputedStyle(e),l=parseFloat(c.marginRight||"0");let a=e.offsetLeft-o;a+=l*n,s.scrollTo({left:a,behavior:t})}startDrag(e,t){this.isDragging=!0,this.dragStartX=e.pageX-t.offsetLeft,this.initialScrollLeft=t.scrollLeft}stopDrag(){this.isDragging=!1}onDrag(e,t){if(!this.isDragging)return;e.preventDefault();const s=e.pageX-t.offsetLeft;t.scrollLeft=this.initialScrollLeft-(s-this.dragStartX)}recipeSwappedEvent(){p.analytics.sendEvent("planner.recipe.swap",this.analyticsPath,{recipe_id:this.recipeId})}promptCatalogEvent(){p.analytics.sendEvent("planner.recipe.catalog-prompt",this.analyticsPath,{})}suggestionShownEvent(){this.recipeId&&this.recipeId!==this.lastShownRecipeId&&(p.analytics.sendEvent("planner.suggestion.show",this.analyticsPath,{recipe_id:this.recipeId}),this.lastShownRecipeId=this.recipeId)}};d=y([R("mealz-planner-recipe-suggestion")],d);customElements.get("mealz-planner-recipe-suggestion")||customElements.define("mealz-planner-recipe-suggestion",d);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as p,k as r}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as p,k as r}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{M as d}from"../../modal/modal.min.js";import{t as u}from"../../assets/custom-element-BhZVzxrc.js";import{n as c}from"../../assets/property-Bx8Yvr4_.js";import{M as v}from"../../onboarding/events.min.js";import{b as h,j as M,k as b}from"../../onboarding/analytics/onboarding-analytics.min.js";import"../../assets/mealz-sdk-E_fNZM-c.js";import"../../assets/unsafe-html-Bv_ydUHb.js";var g=Object.defineProperty,w=Object.getOwnPropertyDescriptor,m=(e,s,a,o)=>{for(var n=o>1?void 0:o?w(s,a):s,l=e.length-1,i;l>=0;l--)(i=e[l])&&(n=(o?i(s,a,n):i(n))||n);return o&&n&&g(s,a,n),n};let t=class extends p{constructor(){super(),this.isCustomMenu=!1,this.analyticsPath="/meals-planner/onboarding",this.styleURL=new URL("./planner/planner-welcome-modal/planner-welcome-modal.css",this.getBaseURL())}displayPlannerWelcomeModal(){const e=new d;document.body.appendChild(this);const s=this.isCustomMenu?"Bienvenue dans votre premier menu personnalisé":"Bienvenue dans votre première sélection du moment";e.titleSlot=r`<span>${s}</span>`,e.contentSlot=this.renderModal(),this.appendChild(e),h(this.isCustomMenu?"personal":"suggestion","welcome"),e.addEventListener(v,()=>{this.openGuideModal()})}openGuideModal(){M(this.isCustomMenu?"personal":"suggestion");const e=new CustomEvent("onboarding-skipped");this.dispatchEvent(e),this.remove()}startOnboardingTour(){b(this.isCustomMenu?"personal":"suggestion");const e=new CustomEvent("openOnboarding",{detail:{isCustomMenu:this.isCustomMenu}});this.dispatchEvent(e),this.remove()}renderModal(){const e=this.isCustomMenu?"Découvrez comment composer facilement votre menu selon vos envies.":"Découvrez le menu de la semaine que nous avons composé pour vous.";return r`
|
|
2
2
|
<div class="mealz-planner-welcome-modal__content">
|
|
3
3
|
<div class="mealz-planner-welcome-modal__description mealz-ds-text size-m">
|
|
4
4
|
<span>${e}</span>
|
|
@@ -14,4 +14,4 @@ import{N as p,k as r}from"../../assets/no-shadow-element-D4NOg0uW.js";import{M a
|
|
|
14
14
|
</button>
|
|
15
15
|
</div>
|
|
16
16
|
</div>
|
|
17
|
-
`}};m([c({type:Boolean})],
|
|
17
|
+
`}};m([c({type:Boolean})],t.prototype,"isCustomMenu",2);t=m([u("mealz-planner-welcome-modal")],t);customElements.get("mealz-planner-welcome-modal")||customElements.define("mealz-planner-welcome-modal",t);export{t as M};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as n,k as c}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as n,k as c}from"../../assets/no-shadow-element-Dz9jgDtr.js";import{t as m}from"../../assets/custom-element-BhZVzxrc.js";import{n as h}from"../../assets/property-Bx8Yvr4_.js";import{r as l}from"../../assets/state-C5zM4-Pq.js";import"../../assets/mealz-sdk-E_fNZM-c.js";var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,r=(e,t,o,a)=>{for(var i=a>1?void 0:a?g(t,o):t,d=e.length-1,p;d>=0;d--)(p=e[d])&&(i=(a?p(t,o,i):p(i))||i);return a&&i&&u(t,o,i),i};let s=class extends n{constructor(){super(),this.recipeImgs=[],this.currentStep=0,this.displayedRecipes=[],this.isComplete=!1,this.backgroundImages=[],this.activeBackgroundIndex=0,this.preloadedImages=new Map,this.styleURL=new URL("./planner/to-basket-loader/to-basket-loader.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),document.querySelector("mealz-planner-form")&&this.scrollIntoView({behavior:"smooth",block:"center"}),this.preloadImages().then(()=>{this.startAnimation()})}async preloadImages(){if(!this.recipeImgs||this.recipeImgs.length===0)return Promise.resolve();const e=this.recipeImgs.map(t=>new Promise(o=>{const a=new Image;a.onload=()=>{this.preloadedImages.set(t,a),o()},a.onerror=()=>{o()},a.src=t}));return Promise.all(e).then(()=>{this.backgroundImages=[null,null]})}startAnimation(){this.displayedRecipes=[],this.recipeImgs.length>0&&(this.backgroundImages[0]=this.recipeImgs[0],this.activeBackgroundIndex=0);const e=()=>{if(this.currentStep<this.recipeImgs.length){const t=this.recipeImgs[this.currentStep];this.displayedRecipes=[...this.displayedRecipes,t],this.updateBackgroundImage(t),this.currentStep++,setTimeout(()=>{e()},1200)}else this.isComplete=!0,setTimeout(()=>{this.emitLoaderComplete()},1500)};setTimeout(()=>{e()},500)}updateBackgroundImage(e){const t=(this.activeBackgroundIndex+1)%2;this.backgroundImages[t]=e,this.activeBackgroundIndex=t,this.requestUpdate()}emitLoaderComplete(){this.dispatchEvent(new CustomEvent("basketComplete",{bubbles:!0,composed:!0}))}render(){return c`
|
|
2
2
|
<div class="mealz-to-basket-loader ${this.isComplete?"complete":""}">
|
|
3
3
|
${this.backgroundImages.map((e,t)=>e?c`
|
|
4
4
|
<div class="mealz-to-basket-loader__background ${t===this.activeBackgroundIndex?"active":""}"
|
|
@@ -17,4 +17,4 @@ import{N as n,k as c}from"../../assets/no-shadow-element-D4NOg0uW.js";import{t a
|
|
|
17
17
|
</div>
|
|
18
18
|
</div>
|
|
19
19
|
</div>
|
|
20
|
-
`}};r([h({type:Array})],
|
|
20
|
+
`}};r([h({type:Array})],s.prototype,"recipeImgs",2);r([l()],s.prototype,"currentStep",2);r([l()],s.prototype,"displayedRecipes",2);r([l()],s.prototype,"isComplete",2);r([l()],s.prototype,"backgroundImages",2);r([l()],s.prototype,"activeBackgroundIndex",2);r([l()],s.prototype,"preloadedImages",2);s=r([m("mealz-to-basket-loader")],s);customElements.get("mealz-to-basket-loader")||customElements.define("mealz-to-basket-loader",s);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as p}from"../assets/no-shadow-element-
|
|
1
|
+
import{N as p}from"../assets/no-shadow-element-Dz9jgDtr.js";import{t as o}from"../assets/custom-element-BhZVzxrc.js";import{o as l}from"../planner/helpers/open-onboarding-modal.min.js";import{m as c}from"../assets/mealz-sdk-E_fNZM-c.js";import"../modal/modal.min.js";import"../assets/property-Bx8Yvr4_.js";import"../assets/unsafe-html-Bv_ydUHb.js";import"../onboarding/events.min.js";import"../planner/planner-onboarding-modal/planner-onboarding-modal.min.js";import"../assets/state-C5zM4-Pq.js";import"../onboarding/analytics/onboarding-analytics.min.js";var h=Object.getOwnPropertyDescriptor,m=(t,e,r,s)=>{for(var n=s>1?void 0:s?h(e,r):e,i=t.length-1,a;i>=0;i--)(a=t[i])&&(n=a(n)||n);return n};let u=class extends p{constructor(){super(...arguments),this.minGuests=1,this.maxGuests=30,this.currentGuests=4,this.menuId=null,this.subscriptions=[]}get selectors(){return{stepperMinus:".mealz-planner-entry__stepper-button--minus",stepperPlus:".mealz-planner-entry__stepper-button--plus",stepperNumber:".mealz-planner-entry__stepper-number",helpLink:".mealz-planner-entry__help-link"}}connectedCallback(){super.connectedCallback(),this.initSelectors(),this.initStartingData(),this.initGuests(),this.addEventListeners(),this.updateStepperButtons()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(t=>t.unsubscribe()),this.subscriptions=[]}initStartingData(){const t=this.getAttribute("starting-data");if(t){try{const{menuId:e}=JSON.parse(t);e&&(this.menuId=e)}catch(e){console.error("Failed to parse starting-data:",e);return}this.removeAttribute("starting-data")}}initGuests(){const t=localStorage.getItem("_mealz/planner/guests");if(t){const e=parseInt(t,10);!isNaN(e)&&e>=this.minGuests&&e<=this.maxGuests&&(this.currentGuests=e)}else{const e=this.querySelector(this.selectors.stepperNumber);if(e){const r=e.getAttribute("data-guests");if(r){const s=parseInt(r,10);!isNaN(s)&&s>=this.minGuests&&s<=this.maxGuests&&(this.currentGuests=s)}}if(this.currentGuests===4){const r=localStorage.getItem("_miam/preferences/guests");if(r){const s=parseInt(r,10);!isNaN(s)&&s>=this.minGuests&&s<=this.maxGuests&&(this.currentGuests=s)}}}this.updateGuestsDisplay()}addEventListeners(){this.addClickListener("stepperMinus",()=>this.decrementGuests()),this.addClickListener("stepperPlus",()=>this.incrementGuests()),this.querySelectorAll(this.selectors.helpLink).forEach(e=>{e.addEventListener("click",r=>{r.preventDefault(),this.openOnboarding()})})}decrementGuests(){this.currentGuests>this.minGuests&&(this.currentGuests--,this.updateGuests())}incrementGuests(){this.currentGuests<this.maxGuests&&(this.currentGuests++,this.updateGuests())}updateGuests(){if(localStorage.setItem("_mealz/planner/guests",this.currentGuests.toString()),this.updateGuestsDisplay(),this.updateStepperButtons(),this.menuId){const t={guests:this.currentGuests};this.subscriptions.push(c.planner.updateMenu(this.menuId,{attributes:{...t}}).subscribe())}this.dispatchEvent(new CustomEvent("plannerGuestsChanged",{detail:{guests:this.currentGuests},bubbles:!0,composed:!0}))}updateGuestsDisplay(){const t=this.querySelector(this.selectors.stepperNumber);t&&(t.textContent=this.currentGuests.toString(),t.setAttribute("data-guests",this.currentGuests.toString()))}updateStepperButtons(){const t=this.querySelector(this.selectors.stepperMinus),e=this.querySelector(this.selectors.stepperPlus);t&&(t.disabled=this.currentGuests<=this.minGuests),e&&(e.disabled=this.currentGuests>=this.maxGuests)}openOnboarding(){l("dashboard")}};u=m([o("mealz-planner-entry")],u);customElements.get("mealz-planner-entry")||customElements.define("mealz-planner-entry",u);
|