mealz-components 2.1.2 → 2.2.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/add-to-cart-cta/add-to-cart-cta.min.js +1 -1
- package/dist/assets/{OperatorSubscriber-DTLDfxTG.js → OperatorSubscriber-B37s2U6v.js} +1 -1
- package/dist/assets/{async-CmPLa8Kr.js → async-guWcMFmJ.js} +1 -1
- package/dist/assets/{combineLatest-BHklsKG3.js → combineLatest-qLpwa5de.js} +1 -1
- package/dist/assets/{debounceTime-D-8QwBTO.js → debounceTime-cu8WlLF0.js} +1 -1
- package/dist/assets/delay-DX2Gy1PY.js +1 -0
- package/dist/assets/{distinctUntilChanged-BpEwGP-B.js → distinctUntilChanged-DmoT2we5.js} +1 -1
- package/dist/assets/empty-DhPhHznc.js +1 -0
- package/dist/assets/{executeSchedule-Bcv6kCZW.js → executeSchedule-Dqc6shOu.js} +1 -1
- package/dist/assets/{filter-5Dmf5Y50.js → filter-BjN-BbQD.js} +1 -1
- package/dist/assets/{from-DdsjDX8p.js → from-CEPL7XsE.js} +1 -1
- package/dist/assets/http-Bepz6wA4.js +1 -0
- package/dist/assets/{innerFrom-D6KOflHk.js → innerFrom-D8hyVDmo.js} +1 -1
- package/dist/assets/{map-hUep_Pe9.js → map-D6X2syNu.js} +1 -1
- package/dist/assets/mapOneOrManyArgs-UKKoFfIU.js +1 -0
- package/dist/assets/merge-Cw-bwf6Z.js +1 -0
- package/dist/assets/mergeAll-9jcORGP2.js +1 -0
- package/dist/assets/{mergeMap-DK1Hk0t3.js → mergeMap-CX64J-ac.js} +1 -1
- package/dist/assets/{no-shadow-element-QlLhHglK.js → no-shadow-element-D4NOg0uW.js} +5 -5
- package/dist/assets/{of-CkMhMgHZ.js → of-CzgrATec.js} +1 -1
- package/dist/assets/{price-C5yP2Ah6.js → price-DdIbni0N.js} +1 -1
- package/dist/assets/{product-card-DajtMyct.js → product-card-CcuyZyd6.js} +1 -1
- package/dist/assets/{promotion-badge-3XLbShnW.js → promotion-badge-TYkTBrOQ.js} +1 -1
- package/dist/assets/{property-ewXDvYQv.js → property-BXNy7Yd-.js} +1 -1
- package/dist/assets/{skipWhile-i7Cmb462.js → skipWhile-B_4e7jSH.js} +1 -1
- package/dist/assets/{state-CB7P_Crl.js → state-b8IyfZUU.js} +1 -1
- package/dist/assets/{store-locator-CpKpyxUa.js → store-locator-CQ_XQBby.js} +1 -1
- package/dist/assets/{switchMap-Dt8kq-AX.js → switchMap-BYsewftM.js} +1 -1
- package/dist/assets/{take-DpcsPTvZ.js → take-ujVMxFwY.js} +1 -1
- package/dist/assets/{tap-BHwic9L0.js → tap-DwBV-qFl.js} +1 -1
- package/dist/assets/{timer-C5HGcf9-.js → timer-D3X0vtFO.js} +1 -1
- package/dist/assets/{unsafe-html-BxKVegsR.js → unsafe-html-C8GMyVYZ.js} +1 -1
- package/dist/assets/{viewport-listener-CWzfnuTn.js → viewport-listener-BRwa66-G.js} +1 -1
- package/dist/basket-transfer-modal/basket-transfer-modal.min.js +1 -1
- package/dist/catalog/basket-preview/basket-preview.min.js +1 -1
- 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.css +1 -1
- package/dist/catalog/catalog-home/catalog-home.min.js +1 -1
- package/dist/catalog/catalog-home-header/catalog-home-header.css +1 -0
- 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.min.js +1 -1
- 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 +1 -1
- 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/onboarding/onboarding.min.js +1 -1
- 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 -0
- package/dist/planner/planner-budget-edit-modal/planner-budget-edit-modal.min.js +26 -0
- 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 +1 -1
- package/dist/planner/planner-current-menu/planner-current-menu.css +1 -1
- 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.css +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 +3 -3
- 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 +1 -1
- package/dist/planner/to-basket-loader/to-basket-loader.css +1 -1
- package/dist/planner/to-basket-loader/to-basket-loader.min.js +2 -2
- package/dist/planner-entry/planner-entry.css +1 -0
- package/dist/planner-entry/planner-entry.min.js +1 -0
- package/dist/preferences/preferences.min.js +1 -1
- package/dist/price/price.min.js +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 +1 -1
- package/dist/recipe-pricing/recipe-pricing.min.js +1 -1
- package/dist/replace-item/replace-item-card/replace-item-card.min.js +1 -1
- package/dist/replace-item/replace-item.min.js +1 -1
- 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 +1 -1
- package/dist/store-indicator/store-indicator.min.js +1 -1
- package/dist/store-locator-drawer/store-locator-drawer.min.js +1 -1
- package/package.json +1 -1
- package/dist/assets/delay-D39fpUTn.js +0 -1
- package/dist/assets/empty-kpxVz-0O.js +0 -1
- package/dist/assets/http-CtqmFT_i.js +0 -1
- package/dist/assets/mapOneOrManyArgs-grjqJfJT.js +0 -1
- package/dist/assets/merge-DbnsJEG8.js +0 -1
- package/dist/assets/mergeAll-B07hn2cK.js +0 -1
|
@@ -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 p}from"../../assets/no-shadow-element-D4NOg0uW.js";import{t as c}from"../../assets/custom-element-BhZVzxrc.js";import{m as s}from"../../assets/mealz-sdk-E_fNZM-c.js";import"../../assets/state-b8IyfZUU.js";import"../../assets/property-BXNy7Yd-.js";import"../../onboarding/analytics/onboarding-analytics.min.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-C8GMyVYZ.js";import"../../onboarding/events.min.js";var h=Object.getOwnPropertyDescriptor,m=(e,t,a,o)=>{for(var n=o>1?void 0:o?h(t,a):t,r=e.length-1,i;r>=0;r--)(i=e[r])&&(n=i(n)||n);return n};let l=class extends p{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;s.hook.hookCallback().subscribe(a=>{a&&(window.location.href=t.href)})}openOnboardingModal(e){e.preventDefault(),d("dashboard")}pageview(){s.analytics.sendEvent("pageview",this.analyticsPath,{})}};l=m([c("mealz-planner-dashboard")],l);
|
|
@@ -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-D4NOg0uW.js";import{t as h}from"../../assets/custom-element-BhZVzxrc.js";import{n as l}from"../../assets/property-BXNy7Yd-.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-ujVMxFwY.js";import{s as v}from"../../assets/switchMap-BYsewftM.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-C8GMyVYZ.js";import"../../onboarding/events.min.js";import"../../assets/empty-DhPhHznc.js";import"../../assets/OperatorSubscriber-B37s2U6v.js";import"../../assets/innerFrom-D8hyVDmo.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
|
-
.mealz-planner-menu-option{border:1px solid var(--mealz-ds-color-neutral-200, #D9DDE1);border-radius:12px;color:var(--mealz-ds-color-neutral-black, #0F191F);width:100
|
|
1
|
+
.mealz-planner-menu-option{border:1px solid var(--mealz-ds-color-neutral-200, #D9DDE1);border-radius:12px;color:var(--mealz-ds-color-neutral-black, #0F191F);width:100%;background:var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-menu-option .mealz-planner-menu-option__container{display:flex;flex-direction:column;padding:12px;width:100%;background:none;border:none;font:inherit;color:inherit;cursor:pointer;position:relative}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top{display:flex;justify-content:space-between;align-items:start;margin-bottom:12px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars{width:fit-content}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-planner-menu-option__recipe-avatar{width:80px;height:80px;border:2px solid var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-planner-menu-option__recipe-avatar:not(:first-child){margin-left:-24px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-planner-menu-option__recipe-avatar-overflow{display:flex;justify-content:center;align-items:center;background-color:var(--miam-color-neutral-100, #F7F8F9);border:1px solid var(--mealz-ds-color-neutral-200, #D9DDE1)}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-planner-menu-option__recipe-avatar-overflow span{color:var(--mealz-ds-color-neutral-black, #0F191F);opacity:.5}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-planner-menu-option__recipe-avatar-empty{display:flex;justify-content:center;align-items:center;background-color:var(--mealz-ds-color-neutral-white, #fff);border:2px solid var(--mealz-ds-color-neutral-white, #fff);overflow:hidden}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-planner-menu-option__recipe-avatar-empty picture,.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-planner-menu-option__recipe-avatar-empty img{width:100%;height:100%;object-fit:cover;background:none}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__redirect{position:absolute;top:11px;right:11px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;cursor:pointer;padding:8px;border-radius:8px;transition:background-color .2s ease;z-index:10}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__redirect:hover{background-color:#24748f1a}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__redirect img{width:24px;height:24px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__texts{display:flex;flex-direction:column;text-align:left;min-height:52px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__texts .mealz-planner-menu-option__title{font-family:var(--family-body, "Satoshi", sans-serif);font-size:20px;font-weight:700;line-height:28px;color:var(--content-default, #1f2a2e);margin:0 0 4px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__texts .mealz-planner-menu-option__subtitle{font-family:var(--family-body, "Satoshi", sans-serif);font-size:16px;font-weight:400;line-height:24px;color:var(--content-weak, rgba(31, 42, 46, .7));margin:0}@media (max-width: 607px){.mealz-planner-menu-option .mealz-planner-menu-option__container{padding:16px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__top .mealz-planner-menu-option__avatars .mealz-ds-avatar{width:54px;height:54px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__title{font-size:16px;line-height:150%;font-weight:700}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__subtitle{font-size:14px;line-height:150%;font-weight:500}}.mealz-planner-menu-option .mealz-planner-menu-option__cancel{display:flex;justify-content:center;width:100%;padding:8px 0;border:none;border-top:1px solid var(--mealz-ds-color-neutral-200, #D9DDE1);cursor:pointer;text-decoration:none;background:none}.mealz-planner-menu-option .mealz-planner-menu-option__cancel span{color:var(--mealz-ds-color-neutral-black, #0F191F);opacity:.5;margin-right:4px}
|
|
@@ -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 m}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-D4NOg0uW.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-ujVMxFwY.js";import{s as f}from"../../assets/switchMap-BYsewftM.js";import"../../assets/property-BXNy7Yd-.js";import"../../modal/modal.min.js";import"../../assets/unsafe-html-C8GMyVYZ.js";import"../../onboarding/events.min.js";import"../../assets/empty-DhPhHznc.js";import"../../assets/OperatorSubscriber-B37s2U6v.js";import"../../assets/innerFrom-D8hyVDmo.js";import"../../assets/state-b8IyfZUU.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 c=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 u;const e=(u=this.attributes["starting-data"])==null?void 0:u.value;if(!e)return;const{isCustomMenu:t,guestsPreference:n,storeId:s,hasCustomRecipes:r,menuId:a,recipesId:o,currentMenuPageUrl:d,recipeImgs:h}=JSON.parse(e);this.isCustomMenu=t,this.storeId=s,this.hasCustomRecipes=r,this.menuId=a,this.currentMenuPageUrl=d,this.recipeImgs=h||[],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),i.hook.hookCallback().subscribe(t=>{if(t){if(localStorage.setItem("_miam/isCustomMenu",this.isCustomMenu.toString()),this.isCustomMenu&&this.recipeIds.length>0){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:d=>{console.error("Error adding recipe to menu:",d),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 m;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")}};c=E([g("mealz-planner-menu-option")],c);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as m}from"../../assets/custom-element-BhZVzxrc.js";import{n as l}from"../../assets/property-ewXDvYQv.js";import{r as d}from"../../assets/state-CB7P_Crl.js";import{M as g}from"../../onboarding/onboarding.min.js";import{N as b}from"../../assets/no-shadow-element-QlLhHglK.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 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,4 +1,4 @@
|
|
|
1
|
-
import{N as m,k as e}from"../../assets/no-shadow-element-
|
|
1
|
+
import{N as m,k as e}from"../../assets/no-shadow-element-D4NOg0uW.js";import{t as d}from"../../assets/custom-element-BhZVzxrc.js";import{r as g}from"../../assets/state-b8IyfZUU.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-BXNy7Yd-.js";var _=Object.defineProperty,x=Object.getOwnPropertyDescriptor,p=(t,n,a,o)=>{for(var s=o>1?void 0:o?x(n,a):n,r=t.length-1,l;r>=0;r--)(l=t[r])&&(s=(o?l(n,a,s):l(s))||s);return o&&s&&_(n,a,s),s};let i=class extends m{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,7 +12,7 @@ import{N as m,k as e}from"../../assets/no-shadow-element-QlLhHglK.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)}onModalDisplayed(){c(this.step)}disconnectedCallback(){super.disconnectedCallback(),window.removeEventListener("resize",this.boundHandleResize)}handleResize(){this.isMobile=window.innerWidth<=768}render(){const{imgDesktop:t,imgMobile:n,title:a,content:o}=this.steps[this.step-1],s=this.isMobile?n:t;return e`
|
|
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:n,title:a,content:o}=this.steps[this.step-1],s=this.isMobile?n: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}">
|
|
@@ -50,4 +50,4 @@ import{N as m,k as e}from"../../assets/no-shadow-element-QlLhHglK.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([g()],i.prototype,"step",2);p([g()],i.prototype,"isMobile",2);i=p([d("mealz-planner-onboarding-modal")],i);
|
|
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([g()],i.prototype,"step",2);p([g()],i.prototype,"isMobile",2);i=p([d("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-D4NOg0uW.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-BXNy7Yd-.js";import"../../assets/unsafe-html-C8GMyVYZ.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-D4NOg0uW.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-D4NOg0uW.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-ujVMxFwY.js";import"../../assets/empty-DhPhHznc.js";import"../../assets/OperatorSubscriber-B37s2U6v.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,i;a>=0;a--)(i=e[a])&&(r=i(r)||r);return r};let d=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")}};d=h([p("mealz-planner-recipe-list")],d);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as h,n as m,S as f}from"../../assets/no-shadow-element-QlLhHglK.js";import{t as S}from"../../assets/custom-element-BhZVzxrc.js";import{m as p}from"../../assets/mealz-sdk-E_fNZM-c.js";import{d as R}from"../../assets/debounceTime-D-8QwBTO.js";import{o as b}from"../../assets/of-CkMhMgHZ.js";import{t as g}from"../../assets/take-DpcsPTvZ.js";import{t as v}from"../../assets/tap-BHwic9L0.js";import"../../assets/async-CmPLa8Kr.js";import"../../assets/OperatorSubscriber-DTLDfxTG.js";import"../../assets/from-DdsjDX8p.js";import"../../assets/executeSchedule-Bcv6kCZW.js";import"../../assets/innerFrom-D6KOflHk.js";import"../../assets/empty-kpxVz-0O.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(R(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,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([S("mealz-planner-recipe-suggestion")],d);
|
|
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,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-D4NOg0uW.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-BXNy7Yd-.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-C8GMyVYZ.js";var g=Object.defineProperty,w=Object.getOwnPropertyDescriptor,m=(e,n,t,o)=>{for(var s=o>1?void 0:o?w(n,t):n,a=e.length-1,i;a>=0;a--)(i=e[a])&&(s=(o?i(n,t,s):i(s))||s);return o&&s&&g(n,t,s),s};let l=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 n=this.isCustomMenu?"Bienvenue dans votre premier menu personnalisé":"Bienvenue dans votre première sélection du moment";e.titleSlot=r`<span>${n}</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>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.mealz-to-basket-loader{position:relative;width:100%;min-height:90dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.mealz-to-basket-loader__background,.mealz-to-basket-loader__background-crossfade{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;z-index:-1;transition:opacity .8s ease;opacity:0;overflow:hidden}.mealz-to-basket-loader__background:before,.mealz-to-basket-loader__background-crossfade:before{content:"";position:absolute;top:-30px;left:-30px;right:-30px;bottom:-30px;background:inherit;background-size:cover;background-position:center;filter:blur(30px);-webkit-filter:blur(30px);-moz-filter:blur(30px);-o-filter:blur(30px);-ms-filter:blur(30px);transform:scale(1.1)}.mealz-to-basket-loader__background.active,.mealz-to-basket-loader__background-crossfade.active{opacity:1}.mealz-to-basket-loader__container{width:100%;padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.mealz-to-basket-loader__recipes{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;min-height:120px}.mealz-to-basket-loader__recipe-item{transform:scale(.8);animation:fadeInRecipe .5s ease forwards}.mealz-to-basket-loader__recipe-image{width:144px;height:144px;border-radius:50%;overflow:hidden;box-shadow:0 4px 8px var(rgba(0, 0, 0, .1));background-color:var(--mealz-ds-color-neutral-white, #fff);display:flex;align-items:center;justify-content:center;border:8px solid var(--mealz-ds-color-neutral-white, #fff)}.mealz-to-basket-loader__recipe-image img{width:100%;height:100%;object-fit:cover}.mealz-to-basket-loader__recipe-placeholder{width:100%;height:100%;background-color:var(--mealz-ds-color-neutral-100, #f7f8f9);border-radius:50%}.mealz-to-basket-loader.complete .mealz-to-basket-loader__recipe-item{animation:pulseComplete .5s ease forwards}@keyframes fadeInRecipe{0%{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseComplete{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@media (max-width: 768px){.mealz-to-basket-loader__container{padding:1.5rem}.mealz-to-basket-loader__recipe-image{width:70px;height:70px;border:4px solid var(--mealz-ds-color-neutral-white, #fff)}}@media (max-width: 480px){.mealz-to-basket-loader__recipe-image{width:60px;height:60px;border:2px solid var(--mealz-ds-color-neutral-white, #fff)}}
|
|
1
|
+
.mealz-to-basket-loader{position:relative;width:100%;min-height:90dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden}.mealz-catalog-home .mealz-to-basket-loader{position:fixed;top:24px;right:0;width:100%;height:100%;z-index:50;background-color:#fff}.mealz-to-basket-loader__background,.mealz-to-basket-loader__background-crossfade{position:absolute;top:0;left:0;width:100%;height:100%;background-size:cover;background-position:center;z-index:-1;transition:opacity .8s ease;opacity:0;overflow:hidden}.mealz-to-basket-loader__background:before,.mealz-to-basket-loader__background-crossfade:before{content:"";position:absolute;top:-30px;left:-30px;right:-30px;bottom:-30px;background:inherit;background-size:cover;background-position:center;filter:blur(30px);-webkit-filter:blur(30px);-moz-filter:blur(30px);-o-filter:blur(30px);-ms-filter:blur(30px);transform:scale(1.1)}.mealz-to-basket-loader__background.active,.mealz-to-basket-loader__background-crossfade.active{opacity:1}.mealz-to-basket-loader__container{width:100%;padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.mealz-to-basket-loader__recipes{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;min-height:120px}.mealz-to-basket-loader__recipe-item{transform:scale(.8);animation:fadeInRecipe .5s ease forwards}.mealz-to-basket-loader__recipe-image{width:144px;height:144px;border-radius:50%;overflow:hidden;box-shadow:0 4px 8px var(rgba(0, 0, 0, .1));background-color:var(--mealz-ds-color-neutral-white, #fff);display:flex;align-items:center;justify-content:center;border:8px solid var(--mealz-ds-color-neutral-white, #fff)}.mealz-to-basket-loader__recipe-image img{width:100%;height:100%;object-fit:cover}.mealz-to-basket-loader__recipe-placeholder{width:100%;height:100%;background-color:var(--mealz-ds-color-neutral-100, #f7f8f9);border-radius:50%}.mealz-to-basket-loader.complete .mealz-to-basket-loader__recipe-item{animation:pulseComplete .5s ease forwards}@keyframes fadeInRecipe{0%{opacity:0;transform:scale(.8) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulseComplete{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}@media (max-width: 768px){.mealz-to-basket-loader__container{padding:1.5rem}.mealz-to-basket-loader__recipe-image{width:70px;height:70px;border:4px solid var(--mealz-ds-color-neutral-white, #fff)}}@media (max-width: 480px){.mealz-to-basket-loader__recipe-image{width:60px;height:60px;border:2px solid var(--mealz-ds-color-neutral-white, #fff)}}
|
|
@@ -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-D4NOg0uW.js";import{t as m}from"../../assets/custom-element-BhZVzxrc.js";import{n as h}from"../../assets/property-BXNy7Yd-.js";import{r as p}from"../../assets/state-b8IyfZUU.js";import"../../assets/mealz-sdk-E_fNZM-c.js";var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,r=(e,t,o,s)=>{for(var i=s>1?void 0:s?g(t,o):t,d=e.length-1,l;d>=0;d--)(l=e[d])&&(i=(s?l(t,o,i):l(i))||i);return s&&i&&u(t,o,i),i};let a=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 s=new Image;s.onload=()=>{this.preloadedImages.set(t,s),o()},s.onerror=()=>{o()},s.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-QlLhHglK.js";import{t a
|
|
|
17
17
|
</div>
|
|
18
18
|
</div>
|
|
19
19
|
</div>
|
|
20
|
-
`}};
|
|
20
|
+
`}};r([h({type:Array})],a.prototype,"recipeImgs",2);r([p()],a.prototype,"currentStep",2);r([p()],a.prototype,"displayedRecipes",2);r([p()],a.prototype,"isComplete",2);r([p()],a.prototype,"backgroundImages",2);r([p()],a.prototype,"activeBackgroundIndex",2);r([p()],a.prototype,"preloadedImages",2);a=r([m("mealz-to-basket-loader")],a);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.mealz-planner-entry__content{display:flex;flex-direction:column;width:100%;box-sizing:border-box;padding:24px 80px 0}@media (max-width: 1025px){.mealz-planner-entry__content{position:relative;padding:24px 24px 0}}@media (max-width: 700px){.mealz-planner-entry__content{padding:24px 16px 0}}.mealz-planner-entry__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;width:100%}.mealz-planner-entry__header-left{display:flex;align-items:center;gap:8px}.mealz-planner-entry__title{font-family:var(--family-headings, "Satoshi", sans-serif);font-size:24px;font-weight:900;line-height:28px;color:var(--content-default, #1f2a2e);margin:0 12px 0 0}.mealz-planner-entry__stepper{display:flex;align-items:center;gap:4px}.mealz-planner-entry__stepper-button{display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:8px;border:1px solid var(--button-secondary-border, #24748f);border-radius:8px;background:var(--button-secondary-bg, transparent);cursor:pointer;color:var(--content-default, #1f2a2e);transition:all .2s ease}.mealz-planner-entry__stepper-button:hover:not(:disabled){background:var(--button-secondary-bg-hover, rgba(36, 116, 143, .1))}.mealz-planner-entry__stepper-button:disabled{opacity:.5;cursor:not-allowed}.mealz-planner-entry__stepper-button--plus{background:var(--button-primary-bg, #24748f);border-color:var(--button-primary-bg, #24748f);color:#fff}.mealz-planner-entry__stepper-button--plus:hover:not(:disabled){background:var(--button-primary-bg-hover, #1d5a6f);border-color:var(--button-primary-bg-hover, #1d5a6f)}.mealz-planner-entry__stepper-value{display:flex;align-items:center;justify-content:center;gap:4px;padding:8px}.mealz-planner-entry__stepper-number{font-family:Satoshi,sans-serif;font-size:16px;font-weight:700;line-height:24px;color:var(--content-default, #1f2a2e)}.mealz-planner-entry__stepper-value picture,.mealz-planner-entry__stepper-value img{display:block;width:16px;height:16px}.mealz-planner-entry__help-link{font-family:Satoshi,sans-serif;font-size:16px;font-weight:700;line-height:24px;color:#24748f;text-decoration:underline;text-underline-position:from-font;cursor:pointer;transition:color .2s ease}.mealz-planner-entry__help-link:hover{color:#1d5a6f}.mealz-planner-entry__banner{position:relative;background:#fff;border:1px solid var(--border-default, #d9e0e3);border-radius:12px;padding:16px;display:flex;gap:16px;overflow:hidden;box-shadow:0 4px 12px #0318201f}.mealz-planner-entry__banner:before{content:"";position:absolute;bottom:-176px;left:50%;transform:translate(-50%);width:1531px;height:282px;background:#e4edf1;border-radius:50%;z-index:0;pointer-events:none}.mealz-planner-entry__banner:after{content:"";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:100%;height:100%;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background.webp);background-size:cover;background-position:center;z-index:1;pointer-events:none}.mealz-planner-entry__options{position:relative;z-index:2;display:flex;gap:16px;width:100%}.mealz-planner-entry__options .mealz-planner-menu-option{height:100%}.mealz-planner-entry__options>*{flex:1 0 0}@media (max-width: 1025px){.mealz-planner-entry__banner{padding:16px 0 48px;margin:0 -16px;border-radius:0}.mealz-planner-entry__banner:after{background-position:left center;background-image:url(https://storage.googleapis.com/assets.miam.tech/generic/meals-planner/meals-planner-home-entry-background-mobile.webp)}.mealz-planner-entry__help-link{position:absolute;bottom:16px;left:16px;z-index:2}.mealz-planner-entry__options{flex-wrap:nowrap;gap:8px;padding:0 16px;align-items:stretch;overflow-x:scroll;scrollbar-width:none;-ms-overflow-style:none;width:100%}.mealz-planner-menu-option .mealz-planner-menu-option__container{padding:0 12px}.mealz-planner-menu-option .mealz-planner-menu-option__container .mealz-planner-menu-option__redirect{position:static;width:40px;height:40px;padding:0 0 0 8px}.mealz-planner-entry__options::-webkit-scrollbar{display:none}}@media (max-width: 768px){.mealz-planner-entry__header{flex-direction:column;align-items:flex-start;gap:16px}.mealz-planner-entry__header-left{width:100%;justify-content:space-between}.mealz-planner-entry__title{font-size:20px;line-height:24px}.mealz-planner-entry__options .mealz-planner-menu-option{width:280px}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{N as p}from"../assets/no-shadow-element-D4NOg0uW.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-BXNy7Yd-.js";import"../assets/unsafe-html-C8GMyVYZ.js";import"../onboarding/events.min.js";import"../planner/planner-onboarding-modal/planner-onboarding-modal.min.js";import"../assets/state-b8IyfZUU.js";import"../onboarding/analytics/onboarding-analytics.min.js";var h=Object.getOwnPropertyDescriptor,m=(t,e,r,s)=>{for(var i=s>1?void 0:s?h(e,r):e,n=t.length-1,u;n>=0;n--)(u=t[n])&&(i=u(i)||i);return i};let a=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")}};a=m([o("mealz-planner-entry")],a);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as _,k as c,B as $,S}from"../assets/no-shadow-element-
|
|
1
|
+
import{N as _,k as c,B as $,S}from"../assets/no-shadow-element-D4NOg0uW.js";import{t as b}from"../assets/custom-element-BhZVzxrc.js";import{n as p}from"../assets/property-BXNy7Yd-.js";import{a as z}from"../assets/unsafe-html-C8GMyVYZ.js";import{r as u}from"../assets/state-b8IyfZUU.js";import{m as i}from"../assets/mealz-sdk-E_fNZM-c.js";import{d as C}from"../assets/debounceTime-cu8WlLF0.js";import{d as T}from"../assets/distinctUntilChanged-DmoT2we5.js";import{s as k}from"../assets/switchMap-BYsewftM.js";import{f as x}from"../assets/filter-BjN-BbQD.js";import"../assets/async-guWcMFmJ.js";import"../assets/OperatorSubscriber-B37s2U6v.js";import"../assets/innerFrom-D8hyVDmo.js";var I=Object.defineProperty,q=Object.getOwnPropertyDescriptor,g=(e,s,r,a)=>{for(var t=a>1?void 0:a?q(s,r):s,n=e.length-1,l;n>=0;n--)(l=e[n])&&(t=(a?l(s,r,t):l(t))||t);return a&&t&&I(s,r,t),t};let h=class extends _{constructor(){super(),this.isCollapsed=!0,this.isCollapsedChangeEvent=new CustomEvent("isCollapsedChange",{detail:{isCollapsed:this.isCollapsed},bubbles:!0,composed:!0}),this.styleURL=new URL("./accordion/accordion.css",this.getBaseURL())}connectedCallback(){super.connectedCallback();const e=this.querySelector('[slot="title"]');e&&(this.titleSlot=e.innerHTML,e.remove());const s=this.querySelector('[slot="content"]');s&&(this.contentSlot=s.innerHTML,s.remove()),this.innerHTML=""}disconnectedCallback(){super.disconnectedCallback()}toggleAccordion(){this.isCollapsed=!this.isCollapsed,this.dispatchEvent(this.isCollapsedChangeEvent),this.requestUpdate()}updated(){this.classList.toggle("opened",!this.isCollapsed)}render(){return c`
|
|
2
2
|
<button
|
|
3
3
|
class="mealz-accordion__header"
|
|
4
4
|
@click=${()=>this.toggleAccordion()}
|
package/dist/price/price.min.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{N as n,k as a,D as d}from"../assets/no-shadow-element-
|
|
1
|
+
import{N as n,k as a,D as d}from"../assets/no-shadow-element-D4NOg0uW.js";import{t as v}from"../assets/custom-element-BhZVzxrc.js";import{n as m}from"../assets/property-BXNy7Yd-.js";import{P as h}from"../assets/price-DdIbni0N.js";import"../assets/mealz-sdk-E_fNZM-c.js";var u=Object.defineProperty,P=Object.getOwnPropertyDescriptor,l=(o,i,c,t)=>{for(var e=t>1?void 0:t?P(i,c):i,s=o.length-1,p;s>=0;s--)(p=o[s])&&(e=(t?p(i,c,e):p(e))||e);return t&&e&&u(i,c,e),e};let r=class extends n{constructor(){super(),this.priceService=h.getInstance(),this.styleURL=new URL("./price/price.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.priceService.initFormatter()}renderOldPrice(){return a`
|
|
2
2
|
<div class="mealz-price__previous mealz-ds-text weight-l size-xs">
|
|
3
3
|
${this.priceService.priceTemplate(this.oldPrice)}
|
|
4
4
|
</div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as g}from"../assets/no-shadow-element-
|
|
1
|
+
import{N as g}from"../assets/no-shadow-element-D4NOg0uW.js";import{V as f}from"../assets/viewport-listener-BRwa66-G.js";import{t as I}from"../assets/custom-element-BhZVzxrc.js";import{h as w}from"../assets/session-handler-BZFnRy_K.js";import{w as y,m as c}from"../assets/mealz-sdk-E_fNZM-c.js";import{f as u}from"../assets/filter-BjN-BbQD.js";import{s as b}from"../assets/switchMap-BYsewftM.js";import{c as v}from"../assets/combineLatest-qLpwa5de.js";import{t as d}from"../assets/take-ujVMxFwY.js";import"../assets/debounceTime-cu8WlLF0.js";import"../assets/async-guWcMFmJ.js";import"../assets/OperatorSubscriber-B37s2U6v.js";import"../assets/innerFrom-D8hyVDmo.js";import"../assets/from-CEPL7XsE.js";import"../assets/executeSchedule-Dqc6shOu.js";import"../assets/mapOneOrManyArgs-UKKoFfIU.js";import"../assets/map-D6X2syNu.js";import"../assets/empty-DhPhHznc.js";class o{constructor(){this.trackedRecipes=new Map,this.hasScrolled=!1,this.scrollListener=null,this.cleanupInterval=null,this.MAX_RECIPES=1e3,this.CLEANUP_INTERVAL=300*1e3,this.handlePageUnload=()=>{this.destroy()},this.setupScrollListener(),this.startAutoCleanup(),this.setupPageUnloadListener()}static getInstance(){return o.instance||(o.instance=new o),o.instance}trackRecipeShow(t,s,i){const r=Date.now(),n=!this.trackedRecipes.get(t),l=this.hasScrolled;!n&&!l||(this.trackedRecipes.size>=this.MAX_RECIPES&&this.cleanOldRecipes(),this.trackedRecipes.set(t,r),window.mealzInternal.analytics.sendEvent("recipe.show",s,{recipe_id:t,category_id:i}))}cleanOldRecipes(){const s=Date.now()-3600*1e3;for(const[i,r]of this.trackedRecipes.entries())r<s&&this.trackedRecipes.delete(i)}clearAllRecipes(){this.trackedRecipes.clear()}destroy(){this.scrollListener&&(window.removeEventListener("scroll",this.scrollListener),this.scrollListener=null),window.removeEventListener("beforeunload",this.handlePageUnload),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.trackedRecipes.clear(),this.hasScrolled=!1,o.instance=null}setupScrollListener(){let t;this.scrollListener=()=>{this.hasScrolled=!0,clearTimeout(t),t=window.setTimeout(()=>{this.hasScrolled=!1},2e3)},window.addEventListener("scroll",this.scrollListener)}startAutoCleanup(){this.cleanupInterval=window.setInterval(()=>{this.cleanOldRecipes()},this.CLEANUP_INTERVAL)}setupPageUnloadListener(){window.addEventListener("beforeunload",this.handlePageUnload)}}var L=Object.getOwnPropertyDescriptor,C=(e,t,s,i)=>{for(var r=i>1?void 0:i?L(t,s):t,a=e.length-1,n;a>=0;a--)(n=e[a])&&(r=n(r)||r);return r};let m=class extends g{constructor(){super(...arguments),this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.getInitialStatus(),this.listenInView(),y().then(()=>{this.setupSubscriptions()}).catch(e=>{console.warn("Failed to initialize SDK subscriptions:",e)})}setupSubscriptions(){this.subscriptions.push(c.basket.recipePricesInBasket$().subscribe(e=>{if(!e)return;const t=e.find(s=>s.id===this.recipeId);e.length>0&&t&&parseFloat(t.price)>0?(this.guests=c.basket.guestsForRecipe(t.id),this.updatedRecipeId=t.id,this.updateDOM()):this.render()}),this.setupPlannerMenuSubscription(),this.setupGuestUpdatesSubscription())}setupPlannerMenuSubscription(){return c.planner.menuPrice$.pipe(u(()=>this.planner&&!!this.recipeId),b(()=>v([c.planner.isRecipeInMenu$(this.recipeId).pipe(d(1))])),u(([e,t])=>e&&typeof t=="number"&&t>0)).subscribe(([e,t])=>{this.guests=t,this.updateGuestDisplay()})}setupGuestUpdatesSubscription(){return c.recipes.guestsUpdated().subscribe(e=>{e.recipeId===this.recipeId&&(this.guests=e.guests,this.updatedRecipeId=this.recipeId,this.updateDOM())})}disconnectedCallback(){var t;super.disconnectedCallback(),this.subscriptions.forEach(s=>s.unsubscribe()),(t=this.analyticsViewportObserver)==null||t.disconnect(),o.getInstance().cleanOldRecipes()}render(){this.recipeCardTop=this.querySelector(".mealz-recipe-card__top"),this.recipeCardCta=this.querySelector(".mealz-recipe-card__cta"),this.recipeCardTop&&(this.getInitialStatus(),this.recipeCardTop.addEventListener("click",()=>this.openDetails()),this.recipeCardCta&&this.recipeCardCta.addEventListener("click",()=>this.recipeCardCtaClick()))}listenInView(){this.analyticsViewportObserver=new f(this,()=>{this.sendAnalyticsShow()},{threshold:.8,debounce:1e3})}getInitialStatus(){var p;const e=(p=this.attributes["starting-data"])==null?void 0:p.value;if(!e)return;const{id:t,guests:s,path:i,categoryId:r,initialTabIndex:a,planner:n,sessionId:l,recipe:S}=JSON.parse(e);if(this.recipeId=t,this.analyticsPath=i,this.categoryId=r,this.guests=s,this.initialTabIndex=a,this.planner=n,this.recipe=S,w(l),!this.guests){this.guests=this.getGuests();const h=this.querySelector(".mealz-recipe-card__counter p");h&&(h.innerHTML=this.guests.toString())}this.removeAttribute("starting-data"),this.updateDOM()}openDetails(){c.recipes.openDetails(this.recipeId,this.guests,this.initialTabIndex,this.analyticsPath,this.planner,this.categoryId)}recipeCardCtaClick(){this.planner?this.handleCTAClickForPlanner():this.openDetails()}getGuests(){const e=localStorage.getItem("_miam/preferences/guests");if(e){const t=+e;if(!isNaN(t)&&t>0&&t<=30)return t}return 4}handleCTAClickForPlanner(){const e=this.querySelector("mealz-recipe-card-cta");if(!e)return;const t=e.getStatus();t==="add"?(this.showAddingToMenuState(e),this.addRecipeToMenu()):t==="in-menu"&&(this.showRemovingFromMenuState(e),this.removeRecipeFromMenu())}addRecipeToMenu(){var i,r;const e=document.querySelector("mealz-planner-recipe-suggestion"),t=(e==null?void 0:e.guests)||this.guests;e&&(e.recipeId=this.recipeId);const s=document.querySelector("mealz-planner-current-menu");if(!s){const a=(r=(i=c.recipes)==null?void 0:i.productsPlannerByCategory$)==null?void 0:r.value,n=(a==null?void 0:a.toPickProducts)||[];c.planner.addRecipeToMenu(this.recipeId,t,!!c.pos.currentPos().value,n).pipe(d(1)).subscribe(()=>{this.removeRecipeCardLoader("add");const l=document.querySelector("mealz-planner-recipe-list");l==null||l.addRecipeCardToList(this.recipeId)});return}s.addRecipe(this.recipeId,t).subscribe(()=>{this.removeRecipeCardLoader("add"),e==null||e.addAndSelectNewSuggestion(this.recipe)})}removeRecipeFromMenu(){const e=document.querySelector("mealz-planner-recipe-suggestion");if(!e){c.planner.removeRecipeFromMenu(this.recipeId).pipe(d(1)).subscribe(()=>this.removeRecipeCardLoader("remove"));return}e.removeRecipe(this.recipeId).subscribe(()=>this.removeRecipeCardLoader("remove"))}showRemovingFromMenuState(e){const t=this.querySelector(".mealz-recipe-card-cta__loader"),s=e.querySelector("img.in-menu");t==null||t.classList.remove("hidden"),s==null||s.classList.add("hidden")}removeRecipeCardLoader(e){const t=this.querySelector("mealz-recipe-card-cta");if(!t)return;const s=this.querySelector(".mealz-recipe-card-cta"),i=this.querySelector(".mealz-recipe-card-cta__loader"),r=t.querySelector("img.add"),a=t.querySelector("img.in-menu");e==="add"?(i==null||i.classList.add("hidden"),s==null||s.classList.replace("primary","secondary"),a==null||a.classList.remove("hidden"),t.updateStatus("in-menu")):(i==null||i.classList.add("hidden"),s==null||s.classList.replace("secondary","primary"),r==null||r.classList.remove("hidden"),t.updateStatus("add"))}showAddingToMenuState(e){const t=this.querySelector(".mealz-recipe-card-cta__loader"),s=e.querySelector("img.add"),i=e.querySelector("img.in-menu");t==null||t.classList.remove("hidden"),s==null||s.classList.add("hidden"),i==null||i.classList.add("hidden")}updateDOM(){if(this.recipeId!==this.updatedRecipeId)return;const e=this.querySelector(".mealz-recipe-card__counter p");e&&(e.innerHTML=this.guests.toString())}updateGuestDisplay(){const e=this.querySelector(".mealz-recipe-card__counter p");e&&this.guests&&(e.innerHTML=this.guests.toString())}sendAnalyticsShow(){o.getInstance().trackRecipeShow(this.recipeId,this.analyticsPath,this.categoryId)}};m=C([I("mealz-recipe-card")],m);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{N as m}from"../assets/no-shadow-element-
|
|
1
|
+
import{N as m}from"../assets/no-shadow-element-D4NOg0uW.js";import{t as f}from"../assets/custom-element-BhZVzxrc.js";import{w as b,m as n}from"../assets/mealz-sdk-E_fNZM-c.js";import{m as p}from"../assets/map-D6X2syNu.js";import{d as c}from"../assets/distinctUntilChanged-DmoT2we5.js";import{m as C}from"../assets/mergeAll-9jcORGP2.js";import{f as k,p as o}from"../assets/from-CEPL7XsE.js";import{o as g}from"../assets/OperatorSubscriber-B37s2U6v.js";import{c as v}from"../assets/combineLatest-qLpwa5de.js";import"../assets/mergeMap-CX64J-ac.js";import"../assets/innerFrom-D8hyVDmo.js";import"../assets/executeSchedule-Dqc6shOu.js";import"../assets/mapOneOrManyArgs-UKKoFfIU.js";function I(){return C(1)}function u(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return I()(k(e,o(e)))}function h(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];var s=o(e);return g(function(i,a){(s?u(e,i,s):u(e,i)).subscribe(a)})}var L=Object.getOwnPropertyDescriptor,S=(e,t,s,i)=>{for(var a=i>1?void 0:i?L(t,s):t,r=e.length-1,l;r>=0;r--)(l=e[r])&&(a=l(a)||a);return a};let d=class extends m{constructor(){super(...arguments),this.subscriptions=[],this.clickHandler=()=>{},this.recipeId="",this.status="add",this.planner=!1,this.recipeCta=null,this.guests=4,this.standalone=!1,this.inBasket=!1}connectedCallback(){super.connectedCallback(),this.getInitialStatus(),b().then(()=>{this.setupClickHandler(),this.setupSubscriptions()}).catch(e=>{console.warn("Failed to initialize SDK subscriptions:",e)})}setupSubscriptions(){const e=n.basket.recipePricesInBasket$().pipe(p(t=>t.some(s=>s.id===this.recipeId)),c(),h(!1));this.subscriptions.push(v([n.planner.isRecipeInMenu$(this.recipeId).pipe(h(!1),c()),e]).pipe(p(([t,s])=>this.planner?s?"in-basket":t?"in-menu":"add":s?"in-basket":"add"),c()).subscribe(t=>this.updateStatus(t)))}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.removeClickHandler()}render(){this.recipeCta=this.querySelector(".mealz-recipe-card-cta"),this.recipeCta&&this.updateStatus(this.status)}getInitialStatus(){const e=this.attributes.getNamedItem("starting-data"),t=(e==null?void 0:e.value)||"{}",s=JSON.parse(t);if(s){if(s.recipeId)this.recipeId=s.recipeId,this.guests=s.guests||4,this.standalone=!0,this.inBasket=s.inBasket||!1,this.planner=s.planner||!1,this.status=s.status||"add",this.updateDOM(this.inBasket);else{const i=e==null?void 0:e.value;this.recipeId=i||"",this.standalone=!1;const a=this.classList.contains("in-basket");this.updateDOM(a)}if(this.removeAttribute("starting-data"),this.planner)this.updateStatus(this.status);else{const i=this.classList.contains("in-basket");this.updateStatus(i?"in-basket":"add")}}}setupClickHandler(){this.standalone&&(this.recipeCta=this.querySelector(".mealz-recipe-card-cta"),this.recipeCta&&(this.clickHandler=()=>{n.recipes.openDetails(this.recipeId,this.guests,0,"/recipes")},this.recipeCta.addEventListener("click",this.clickHandler)))}removeClickHandler(){this.recipeCta&&this.clickHandler&&this.recipeCta.removeEventListener("click",this.clickHandler)}updateStatus(e){this.recipeCta&&(this.recipeCta.classList.remove("hidden"),this.status!==e&&(this.status=e,this.recipeCta.classList.remove("in-basket","in-menu","add"),this.recipeCta.classList.add(this.status),this.recipeCta.classList.toggle("primary",this.status==="add"),this.recipeCta.classList.toggle("secondary",this.status!=="add"),this.updateButtonState(),this.updateImages()))}updateButtonState(){this.recipeCta&&(this.planner&&this.status==="in-basket"?this.recipeCta.setAttribute("disabled","true"):this.recipeCta.removeAttribute("disabled"))}updateImages(){if(!this.recipeCta)return;this.recipeCta.querySelectorAll("img").forEach(t=>{t.classList.contains(this.status)?t.classList.remove("hidden"):t.classList.add("hidden")})}getStatus(){return this.status}updateDOM(e){const t=this.querySelector(".mealz-recipe-card-cta");t&&(t.classList.remove("hidden"),e?(t.classList.replace("primary","secondary"),t.classList.add("in-basket")):(t.classList.replace("secondary","primary"),t.classList.remove("in-basket")))}};d=S([f("mealz-recipe-card-cta")],d);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";import{_ as re,n as D,p as X,a as ne,b as oe,q as le,N as m,D as c,k as a}from"../assets/no-shadow-element-
|
|
1
|
+
import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";import{_ as re,n as D,p as X,a as ne,b as oe,q as le,N as m,D as c,k as a}from"../assets/no-shadow-element-D4NOg0uW.js";import{t as g}from"../assets/custom-element-BhZVzxrc.js";import{n as p}from"../assets/property-BXNy7Yd-.js";import{P as ce}from"../assets/price-DdIbni0N.js";import{m as o}from"../assets/mealz-sdk-E_fNZM-c.js";import{m as Z}from"../assets/merge-Cw-bwf6Z.js";import{m as h}from"../assets/map-D6X2syNu.js";import{t as F}from"../assets/take-ujVMxFwY.js";import{c as ee}from"../assets/capitalize-DUAqYmp4.js";import"../counter/counter.min.js";import{G as te}from"../assets/product-card-CcuyZyd6.js";import"../price/price.min.js";import"../assets/promotion-badge-TYkTBrOQ.js";import"../store-indicator/store-indicator.min.js";import"../last-order-badge/last-order-badge.min.js";import"../order-again/order-again.min.js";import"../like-button/like-button.min.js";import{L as de}from"../last-order-modal/last-order-modal.min.js";import{a as pe}from"../assets/unsafe-html-C8GMyVYZ.js";import{M as ue}from"../planner/planner-onboarding/planner-onboarding.min.js";import{o as se,c as he}from"../assets/OperatorSubscriber-B37s2U6v.js";import{i as N}from"../assets/innerFrom-D8hyVDmo.js";import{f as j}from"../assets/filter-BjN-BbQD.js";import{t as z}from"../assets/tap-DwBV-qFl.js";import{s as V}from"../assets/switchMap-BYsewftM.js";import{c as H}from"../assets/combineLatest-qLpwa5de.js";import{d as me}from"../assets/async-guWcMFmJ.js";import"../assets/viewport-listener-BRwa66-G.js";import"../assets/debounceTime-cu8WlLF0.js";import"../assets/skipWhile-B_4e7jSH.js";import"../assets/mergeAll-9jcORGP2.js";import"../assets/mergeMap-CX64J-ac.js";import"../assets/executeSchedule-Dqc6shOu.js";import"../assets/empty-DhPhHznc.js";import"../assets/from-CEPL7XsE.js";import"../assets/delay-DX2Gy1PY.js";import"../assets/timer-D3X0vtFO.js";import"../assets/store-locator-CQ_XQBby.js";import"../select/select.min.js";import"../assets/state-b8IyfZUU.js";import"../assets/query-BApjzB0v.js";import"../onboarding/onboarding.min.js";import"../onboarding/events.min.js";import"../onboarding/analytics/onboarding-analytics.min.js";import"../assets/mapOneOrManyArgs-UKKoFfIU.js";var ge=function(e){re(t,e);function t(i,r,s){i===void 0&&(i=1/0),r===void 0&&(r=1/0),s===void 0&&(s=me);var n=e.call(this)||this;return n._bufferSize=i,n._windowTime=r,n._timestampProvider=s,n._buffer=[],n._infiniteTimeWindow=!0,n._infiniteTimeWindow=r===1/0,n._bufferSize=Math.max(1,i),n._windowTime=Math.max(1,r),n}return t.prototype.next=function(i){var r=this,s=r.isStopped,n=r._buffer,l=r._infiniteTimeWindow,d=r._timestampProvider,v=r._windowTime;s||(n.push(i),!l&&n.push(d.now()+v)),this._trimBuffer(),e.prototype.next.call(this,i)},t.prototype._subscribe=function(i){this._throwIfClosed(),this._trimBuffer();for(var r=this._innerSubscribe(i),s=this,n=s._infiniteTimeWindow,l=s._buffer,d=l.slice(),v=0;v<d.length&&!i.closed;v+=n?1:2)i.next(d[v]);return this._checkFinalizedStatuses(i),r},t.prototype._trimBuffer=function(){var i=this,r=i._bufferSize,s=i._timestampProvider,n=i._buffer,l=i._infiniteTimeWindow,d=(l?1:2)*r;if(r<1/0&&d<n.length&&n.splice(0,n.length-d),!l){for(var v=s.now(),k=0,u=1;u<n.length&&n[u]<=v;u+=2)k=u;k&&n.splice(0,k+1)}},t}(D);function ve(e){e===void 0&&(e={});var t=e.connector,i=t===void 0?function(){return new D}:t,r=e.resetOnError,s=r===void 0?!0:r,n=e.resetOnComplete,l=n===void 0?!0:n,d=e.resetOnRefCountZero,v=d===void 0?!0:d;return function(k){var u,f,I,E=0,C=!1,x=!1,S=function(){f==null||f.unsubscribe(),f=void 0},L=function(){S(),u=I=void 0,C=x=!1},ae=function(){var P=u;L(),P==null||P.unsubscribe()};return se(function(P,G){E++,!x&&!C&&S();var R=I=I??i();G.add(function(){E--,E===0&&!x&&!C&&(f=B(ae,v))}),R.subscribe(G),!u&&E>0&&(u=new X({next:function(O){return R.next(O)},error:function(O){x=!0,S(),f=B(L,s,O),R.error(O)},complete:function(){C=!0,S(),f=B(L,l),R.complete()}}),N(P).subscribe(u))})(k)}}function B(e,t){for(var i=[],r=2;r<arguments.length;r++)i[r-2]=arguments[r];if(t===!0){e();return}if(t!==!1){var s=new X({next:function(){s.unsubscribe(),e()}});return N(t.apply(void 0,ne([],oe(i)))).subscribe(s)}}function be(e,t,i){var r,s=!1;return r=e,ve({connector:function(){return new ge(r,t,i)},resetOnError:!0,resetOnComplete:!1,resetOnRefCountZero:s})}function w(e){return se(function(t,i){N(e).subscribe(he(i,function(){return i.complete()},le)),!i.closed&&t.subscribe(i)})}var _e=Object.defineProperty,fe=Object.getOwnPropertyDescriptor,y=(e,t,i,r)=>{for(var s=r>1?void 0:r?fe(t,i):t,n=e.length-1,l;n>=0;n--)(l=e[n])&&(s=(r?l(t,i,s):l(s))||s);return r&&s&&_e(t,i,s),s};let b=class extends m{constructor(){super(),this.noPosDisplay=!1,this.noSupplier=!1,this.recipeId="",this.plannerMode=!1,this.guests=0,this.recipe=null,this.analyticsPath="",this.subscriptions=[],this.remainingBasketEntries=[],this.recipePrice={remaining:0,inBasket:0,total:0,totalPerGuest:0},this.priceService=ce.getInstance(),this.allIngredientsToBasketLoading=!1,this.ingredientToBasketLoading=!1,this.updateIngredientFromBasketLoading=!1,this.productsLoading=!1,this.inMenu=!1,this.menuUpdateLoading=!1,this.styleURL=new URL("./recipe-details/details-footer/details-footer.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.priceService.initFormatter(),this.analyticsPath=`/recipes/${this.recipeId}/shopping`,this.subscriptions.push(Z(o.recipes.remainingBasketEntries$.pipe(h(e=>{this.remainingBasketEntries=e})),o.recipes.recipePrice$.pipe(h(e=>{const t=e.remaining+e.inBasket;this.recipePrice={...e,total:t,totalPerGuest:0}})),o.recipes.allIngredientsToBasketLoading$.pipe(h(e=>{this.allIngredientsToBasketLoading=e})),o.recipes.ingredientToBasketLoading$.pipe(h(e=>{this.ingredientToBasketLoading=e})),o.recipes.updateIngredientFromBasketLoading$.pipe(h(e=>{this.updateIngredientFromBasketLoading=e})),o.recipes.productsLoading$.pipe(h(e=>{this.productsLoading=e})),o.planner.plannerRecipePrice$.pipe(h(e=>{this.recipePrice.totalPerGuest=this.guests>0?e/this.guests:e}))).subscribe(()=>this.requestUpdate())),this.subscribeIsRecipeInMenu()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.isRecipeInMenuSub&&(this.isRecipeInMenuSub.unsubscribe(),this.isRecipeInMenuSub=void 0)}updated(e){super.updated(e),e.has("recipeId")&&this.subscribeIsRecipeInMenu()}subscribeIsRecipeInMenu(){this.recipeId&&(this.isRecipeInMenuSub&&this.isRecipeInMenuSub.unsubscribe(),this.isRecipeInMenuSub=o.planner.isRecipeInMenu$(this.recipeId).pipe(h(e=>{this.inMenu=e})).subscribe(()=>this.requestUpdate()))}closeRecipeDetails(e=!1){o.recipes.displayedRecipe$.next(null),e&&o.basket.basketPreviewState$.next({isOpen:!0,activeTabIndex:o.basket.basketPreviewState$.getValue().activeTabIndex})}continueShopping(){this.closeRecipeDetails(),this.sendContinueEvent()}addToMenu(){var i,r;this.menuUpdateLoading=!0,this.requestUpdate();const e=document.querySelector("mealz-planner-recipe-suggestion");e&&(e.recipeId=this.recipeId);const t=document.querySelector("mealz-planner-current-menu");if(!t){const s=(r=(i=o.recipes)==null?void 0:i.productsPlannerByCategory$)==null?void 0:r.value,n=(s==null?void 0:s.toPickProducts)||[];o.planner.addRecipeToMenu(this.recipeId,this.guests,!!o.pos.currentPos().value,n).pipe(F(1)).subscribe(()=>{this.inMenu=!0;const l=document.querySelector("mealz-planner-recipe-list");l==null||l.addRecipeCardToList(this.recipeId),this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()});return}t.addRecipe(this.recipeId,this.guests).subscribe(()=>{this.inMenu=!0,e==null||e.addAndSelectNewSuggestion(this.recipe||void 0),this.menuUpdateLoading=!1,this.requestUpdate(),this.closeRecipeDetails()})}removeFromMenu(){this.menuUpdateLoading=!0,this.requestUpdate();const e=document.querySelector("mealz-planner-recipe-suggestion");if(!e){o.planner.removeRecipeFromMenu(this.recipeId).pipe(F(1)).subscribe(()=>{this.inMenu=!1,this.menuUpdateLoading=!1,this.requestUpdate()});return}e.removeRecipe(this.recipeId).subscribe(()=>{this.inMenu=!1,this.menuUpdateLoading=!1,this.requestUpdate()})}addAllIngredients(){o.recipes.addAllIngredientsToBasket({originPath:this.analyticsPath,props:{}}),this.sendAddAllEvent(),this.recipePrice.inBasket===0&&this.sendAddRecipeEvent()}render(){if(this.noPosDisplay&&!this.plannerMode)return c;const e=this.remainingBasketEntries.length>0&&!this.plannerMode,t=this.plannerMode&&this.noPosDisplay,i=this.plannerMode&&!this.inMenu;return a`
|
|
2
2
|
<div class="mealz-recipe-details__footer">
|
|
3
3
|
${this.productsLoading&&!this.plannerMode?c:a`
|
|
4
4
|
<!-- ADD TO BASKET CTA -->
|