mealz-components 2.0.0-beta.4 → 2.0.0-beta.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import{t as d}from"../../assets/custom-element-BhZVzxrc.js";import{m}from"../../assets/no-shadow-element-l9trQfcI.js";import{C as h}from"../catalog-load-more.min.js";import{h as g}from"../../assets/session-handler-BnuvphmJ.js";import"../../assets/http-aOzufNsj.js";import"../../assets/innerFrom-CfKCbnvr.js";import"../../assets/mergeMap-buGewtOo.js";import"../../assets/map-C4rf5Jbc.js";import"../../assets/OperatorSubscriber-EGuECN6g.js";import"../../assets/executeSchedule-DfyZaGAH.js";import"../../assets/mapOneOrManyArgs-DNd_tswl.js";import"../../assets/async-D3oCs_PQ.js";import"../../assets/timer-BOl4bYNY.js";var u=Object.getOwnPropertyDescriptor,C=(t,a,o,s)=>{for(var e=s>1?void 0:s?u(a,o):a,r=t.length-1,i;r>=0;r--)(i=t[r])&&(e=i(e)||e);return e};let c=class extends h{connectedCallback(){super.connectedCallback(),this.subscriptions.push(m.preferences.preferencesChanged$().subscribe(()=>this.reloadPage()))}disconnectedCallback(){super.disconnectedCallback()}render(){var n;const t=(n=this.attributes["starting-data"])==null?void 0:n.value;if(!t||(this.recipeCardListHTML=this.querySelector(".mealz-catalog__list"),!this.recipeCardListHTML))return;const{pageSize:a,storeId:o,loadMoreURL:s,displayRecipeVariant:e,search:r,promotions:i,planner:p,sessionId:l}=JSON.parse(t);g(l),this.loadMoreRecipesOnScroll({displayRecipeVariant:e,loadMoreURL:s,sessionId:l,pageSize:a,storeId:o,packageId:null,search:r,listHTML:this.recipeCardListHTML,promotions:i,planner:p}),this.removeAttribute("starting-data")}reloadPage(){location.reload()}};c=C([d("mealz-catalog-list")],c);
1
+ import{t as m}from"../../assets/custom-element-BhZVzxrc.js";import{m as h}from"../../assets/no-shadow-element-l9trQfcI.js";import{C as g}from"../catalog-load-more.min.js";import{h as u}from"../../assets/session-handler-BnuvphmJ.js";import"../../assets/http-aOzufNsj.js";import"../../assets/innerFrom-CfKCbnvr.js";import"../../assets/mergeMap-buGewtOo.js";import"../../assets/map-C4rf5Jbc.js";import"../../assets/OperatorSubscriber-EGuECN6g.js";import"../../assets/executeSchedule-DfyZaGAH.js";import"../../assets/mapOneOrManyArgs-DNd_tswl.js";import"../../assets/async-D3oCs_PQ.js";import"../../assets/timer-BOl4bYNY.js";var C=Object.getOwnPropertyDescriptor,b=(t,a,o,i)=>{for(var e=i>1?void 0:i?C(a,o):a,r=t.length-1,s;r>=0;r--)(s=t[r])&&(e=s(e)||e);return e};let p=class extends g{connectedCallback(){super.connectedCallback(),this.subscriptions.push(h.preferences.preferencesChanged$().subscribe(()=>this.reloadPage()))}disconnectedCallback(){super.disconnectedCallback()}render(){var n;const t=(n=this.attributes["starting-data"])==null?void 0:n.value;if(!t||(this.recipeCardListHTML=this.querySelector(".mealz-catalog__list"),!this.recipeCardListHTML))return;const{pageSize:a,storeId:o,loadMoreURL:i,displayRecipeVariant:e,search:r,promotions:s,planner:c,sessionId:l,recipeTypeId:d}=JSON.parse(t);u(l),this.loadMoreRecipesOnScroll({displayRecipeVariant:e,loadMoreURL:i,sessionId:l,pageSize:a,storeId:o,packageId:null,search:r,listHTML:this.recipeCardListHTML,promotions:s,planner:c,recipeTypeId:d}),this.removeAttribute("starting-data")}reloadPage(){location.reload()}};p=b([m("mealz-catalog-list")],p);
@@ -1 +1 @@
1
- import{c as w,O as R,e as f,N as T}from"../assets/no-shadow-element-l9trQfcI.js";import{b as S}from"../assets/http-aOzufNsj.js";import{a as C,i as b}from"../assets/innerFrom-CfKCbnvr.js";import{m as _}from"../assets/mergeMap-buGewtOo.js";import{m as H}from"../assets/mapOneOrManyArgs-DNd_tswl.js";import{a as k}from"../assets/async-D3oCs_PQ.js";import{o as O,c as y}from"../assets/OperatorSubscriber-EGuECN6g.js";import{t as z}from"../assets/timer-BOl4bYNY.js";import"../assets/map-C4rf5Jbc.js";import"../assets/executeSchedule-DfyZaGAH.js";var x=["addListener","removeListener"],I=["addEventListener","removeEventListener"],V=["on","off"];function E(n,e,t,r){if(f(t)&&(r=t,t=void 0),r)return E(n,e,t).pipe(H(r));var u=w(A(n)?I.map(function(s){return function(d){return n[s](e,d,t)}}):D(n)?x.map(M(n,e)):q(n)?V.map(M(n,e)):[],2),c=u[0],m=u[1];if(!c&&C(n))return _(function(s){return E(s,e,t)})(b(n));if(!c)throw new TypeError("Invalid event target");return new R(function(s){var d=function(){for(var a=[],l=0;l<arguments.length;l++)a[l]=arguments[l];return s.next(1<a.length?a:a[0])};return c(d),function(){return m(d)}})}function M(n,e){return function(t){return function(r){return n[t](e,r)}}}function D(n){return f(n.addListener)&&f(n.removeListener)}function q(n){return f(n.on)&&f(n.off)}function A(n){return f(n.addEventListener)&&f(n.removeEventListener)}function G(n,e){return O(function(t,r){var u=e??{},c=u.leading,m=c===void 0?!0:c,s=u.trailing,d=s===void 0?!1:s,a=!1,l=null,i=null,h=!1,o=function(){i==null||i.unsubscribe(),i=null,d&&(L(),h&&r.complete())},g=function(){i=null,h&&r.complete()},v=function(p){return i=b(n(p)).subscribe(y(r,o,g))},L=function(){if(a){a=!1;var p=l;l=null,r.next(p),!h&&v(p)}};t.subscribe(y(r,function(p){a=!0,l=p,!(i&&!i.closed)&&(m?L():v(p))},function(){h=!0,!(d&&a&&i&&!i.closed)&&r.complete()}))})}function $(n,e,t){e===void 0&&(e=k);var r=z(n,e);return G(function(){return r},t)}const j=300;class X extends T{constructor(){super(...arguments),this.noMoreData=!1,this.isLoading=!1,this.page=2,this.loaderElement=null,this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.createLoader()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.removeLoader()}loadMoreRecipesOnScroll(e){this.addScrollListener(window,()=>{this.isListVisible(e.listHTML)&&this.shouldGetMoreRecipes(window.scrollY,window.innerHeight,document.body.offsetHeight)&&this.getMoreRecipes(e)});const t=document.querySelector(".mealz-drawer__content-container");t&&this.addScrollListener(t,()=>{this.isListVisible(e.listHTML)&&this.shouldGetMoreRecipes(t.scrollTop,t.clientHeight,t.scrollHeight)&&this.getMoreRecipes(e)})}addScrollListener(e,t){const r=E(e,"scroll").pipe($(100));this.subscriptions.push(r.subscribe(t))}isListVisible(e){return!!(e.offsetParent||e.getClientRects().length)}shouldGetMoreRecipes(e,t,r){return!this.noMoreData&&!this.isLoading&&e+t+j>=r}async getMoreRecipes(e){const{displayRecipeVariant:t,loadMoreURL:r,sessionId:u,pageSize:c,storeId:m,packageId:s,search:d,listHTML:a,promotions:l,planner:i,historyStyle:h}=e;this.isLoading=!0,this.toggleLoader(!0);const o=new URLSearchParams;o.append("size",c.toString()),o.append("page",this.page.toString()),t&&o.append("display_recipe_variant",t),s&&o.append("category_id",s),m&&o.append("store_id",m),d&&o.append("search",d),l&&o.append("promotions",l.toString()),i&&o.append("planner","true"),h&&o.append("history_style",h);try{const g=r.includes("?")?"&":"?",v=await fetch(r+g+o.toString(),{method:"GET",headers:S(u)});if(!v.ok)throw new Error(`Load more request failed with status: ${v.status}`);const L=await v.text();this.appendRecipesToList(L,a,c)}catch(g){console.error(g),this.isLoading=!1}}appendRecipesToList(e,t,r){this.checkIfMoreRecipes(e,r),t.insertAdjacentHTML("beforeend",e),this.isLoading=!1,this.toggleLoader(!1),this.page++}checkIfMoreRecipes(e,t){const r=e.match(/<mealz-recipe-card(?=\s|>)/gi)||e.match(/<mealz-history-order(?=\s|>)/gi)||e.match(/<mealz-history-order-expanded(?=\s|>)/gi);(r?r.length:0)<t&&(this.noMoreData=!0)}createLoader(){const e=this.querySelector(".mealz-catalog__content");!this.loaderElement&&e&&(this.loaderElement=document.createElement("div"),this.loaderElement.className="mealz-ds-loader",this.loaderElement.style.display="none",e.appendChild(this.loaderElement))}removeLoader(){this.loaderElement&&this.loaderElement.parentElement&&(this.loaderElement.parentElement.removeChild(this.loaderElement),this.loaderElement=null)}toggleLoader(e){this.loaderElement&&(this.loaderElement.style.display=e?"block":"none")}}export{X as C};
1
+ import{c as w,O as R,e as f,N as T}from"../assets/no-shadow-element-l9trQfcI.js";import{b as _}from"../assets/http-aOzufNsj.js";import{a as S,i as b}from"../assets/innerFrom-CfKCbnvr.js";import{m as C}from"../assets/mergeMap-buGewtOo.js";import{m as H}from"../assets/mapOneOrManyArgs-DNd_tswl.js";import{a as k}from"../assets/async-D3oCs_PQ.js";import{o as O,c as y}from"../assets/OperatorSubscriber-EGuECN6g.js";import{t as z}from"../assets/timer-BOl4bYNY.js";import"../assets/map-C4rf5Jbc.js";import"../assets/executeSchedule-DfyZaGAH.js";var I=["addListener","removeListener"],x=["addEventListener","removeEventListener"],V=["on","off"];function E(n,e,t,r){if(f(t)&&(r=t,t=void 0),r)return E(n,e,t).pipe(H(r));var u=w(A(n)?x.map(function(s){return function(d){return n[s](e,d,t)}}):D(n)?I.map(M(n,e)):q(n)?V.map(M(n,e)):[],2),c=u[0],m=u[1];if(!c&&S(n))return C(function(s){return E(s,e,t)})(b(n));if(!c)throw new TypeError("Invalid event target");return new R(function(s){var d=function(){for(var a=[],l=0;l<arguments.length;l++)a[l]=arguments[l];return s.next(1<a.length?a:a[0])};return c(d),function(){return m(d)}})}function M(n,e){return function(t){return function(r){return n[t](e,r)}}}function D(n){return f(n.addListener)&&f(n.removeListener)}function q(n){return f(n.on)&&f(n.off)}function A(n){return f(n.addEventListener)&&f(n.removeEventListener)}function G(n,e){return O(function(t,r){var u=e??{},c=u.leading,m=c===void 0?!0:c,s=u.trailing,d=s===void 0?!1:s,a=!1,l=null,o=null,h=!1,L=function(){o==null||o.unsubscribe(),o=null,d&&(g(),h&&r.complete())},i=function(){o=null,h&&r.complete()},v=function(p){return o=b(n(p)).subscribe(y(r,L,i))},g=function(){if(a){a=!1;var p=l;l=null,r.next(p),!h&&v(p)}};t.subscribe(y(r,function(p){a=!0,l=p,!(o&&!o.closed)&&(m?g():v(p))},function(){h=!0,!(d&&a&&o&&!o.closed)&&r.complete()}))})}function $(n,e,t){e===void 0&&(e=k);var r=z(n,e);return G(function(){return r},t)}const j=300;class X extends T{constructor(){super(...arguments),this.noMoreData=!1,this.isLoading=!1,this.page=2,this.loaderElement=null,this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.createLoader()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.removeLoader()}loadMoreRecipesOnScroll(e){this.addScrollListener(window,()=>{this.isListVisible(e.listHTML)&&this.shouldGetMoreRecipes(window.scrollY,window.innerHeight,document.body.offsetHeight)&&this.getMoreRecipes(e)});const t=document.querySelector(".mealz-drawer__content-container");t&&this.addScrollListener(t,()=>{this.isListVisible(e.listHTML)&&this.shouldGetMoreRecipes(t.scrollTop,t.clientHeight,t.scrollHeight)&&this.getMoreRecipes(e)})}addScrollListener(e,t){const r=E(e,"scroll").pipe($(100));this.subscriptions.push(r.subscribe(t))}isListVisible(e){return!!(e.offsetParent||e.getClientRects().length)}shouldGetMoreRecipes(e,t,r){return!this.noMoreData&&!this.isLoading&&e+t+j>=r}async getMoreRecipes(e){const{displayRecipeVariant:t,loadMoreURL:r,sessionId:u,pageSize:c,storeId:m,packageId:s,search:d,listHTML:a,promotions:l,planner:o,historyStyle:h,recipeTypeId:L}=e;this.isLoading=!0,this.toggleLoader(!0);const i=new URLSearchParams;i.append("size",c.toString()),i.append("page",this.page.toString()),t&&i.append("display_recipe_variant",t),s&&i.append("category_id",s),m&&i.append("store_id",m),d&&i.append("search",d),l&&i.append("promotions",l.toString()),o&&i.append("planner","true"),h&&i.append("history_style",h),L&&i.append("recipe_type_id",L);try{const v=r.includes("?")?"&":"?",g=await fetch(r+v+i.toString(),{method:"GET",headers:_(u)});if(!g.ok)throw new Error(`Load more request failed with status: ${g.status}`);const p=await g.text();this.appendRecipesToList(p,a,c)}catch(v){console.error(v),this.isLoading=!1}}appendRecipesToList(e,t,r){this.checkIfMoreRecipes(e,r),t.insertAdjacentHTML("beforeend",e),this.isLoading=!1,this.toggleLoader(!1),this.page++}checkIfMoreRecipes(e,t){const r=e.match(/<mealz-recipe-card(?=\s|>)/gi)||e.match(/<mealz-history-order(?=\s|>)/gi)||e.match(/<mealz-history-order-expanded(?=\s|>)/gi);(r?r.length:0)<t&&(this.noMoreData=!0)}createLoader(){const e=this.querySelector(".mealz-catalog__content");!this.loaderElement&&e&&(this.loaderElement=document.createElement("div"),this.loaderElement.className="mealz-ds-loader",this.loaderElement.style.display="none",e.appendChild(this.loaderElement))}removeLoader(){this.loaderElement&&this.loaderElement.parentElement&&(this.loaderElement.parentElement.removeChild(this.loaderElement),this.loaderElement=null)}toggleLoader(e){this.loaderElement&&(this.loaderElement.style.display=e?"block":"none")}}export{X as C};
@@ -1,4 +1,4 @@
1
- import"../drawer/drawer.min.js";import"../store-locator-drawer/store-locator-drawer.min.js";import{N as w,D as d,k as t,m as n,B as c,w as z}from"../assets/no-shadow-element-l9trQfcI.js";import{t as v}from"../assets/custom-element-BhZVzxrc.js";import{n as g}from"../assets/property-leIVgCvV.js";import"../recipe-details/recipe-details.min.js";import"../assets/store-locator-m8sx3XDc.js";import"../planner/planner-catalog/planner-catalog.min.js";import"../replace-item/replace-item.min.js";import"../replace-item-planner/replace-item-planner.min.js";import"../history-drawer/history-drawer.min.js";import{o as k,l as R}from"../catalog/basket-preview/basket-preview.min.js";import{m as f}from"../assets/merge-C-u9uFzU.js";import{m as p}from"../assets/map-C4rf5Jbc.js";import"../assets/unsafe-html-CmALAWuN.js";import"../assets/state-CccUMzBZ.js";import"../assets/skipWhile-DuMEda_n.js";import"../assets/OperatorSubscriber-EGuECN6g.js";import"../assets/switchMap-D8q0hRYH.js";import"../assets/innerFrom-CfKCbnvr.js";import"../recipe-pricing/recipe-pricing.min.js";import"../assets/price-BoM226Kw.js";import"../assets/filter-CEeE8t7I.js";import"../assets/combineLatest-P4GAEtOW.js";import"../assets/from-jBe2xW5a.js";import"../assets/executeSchedule-DfyZaGAH.js";import"../assets/mapOneOrManyArgs-DNd_tswl.js";import"../assets/of-BTA69Qgj.js";import"../assets/take-DO4w5a1Y.js";import"../assets/empty-Cv-4tfKR.js";import"../assets/tap-BCGrRktL.js";import"../assets/recipe-BwGs-blm.js";import"../assets/capitalize-DUAqYmp4.js";import"../counter/counter.min.js";import"../assets/debounceTime-Bo5F3ux-.js";import"../assets/async-D3oCs_PQ.js";import"../assets/product-card-DqcKyf1c.js";import"../price/price.min.js";import"../assets/promotion-badge-BwN2GpDz.js";import"../assets/delay-ILvLVH1b.js";import"../assets/mergeMap-buGewtOo.js";import"../assets/timer-BOl4bYNY.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"../last-order-modal/last-order-modal.min.js";import"../catalog/catalog-load-more.min.js";import"../assets/http-aOzufNsj.js";import"../replace-item/replace-item-card/replace-item-card.min.js";import"../assets/price-utils-BRFZa-3D.js";import"../assets/distinctUntilChanged-BkBiB4M3.js";import"../replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js";import"../slider-tabs/slider-tabs.min.js";import"../modal/modal.min.js";var C=Object.defineProperty,S=Object.getOwnPropertyDescriptor,V=(e,s,r,a)=>{for(var i=a>1?void 0:a?S(s,r):s,o=e.length-1,l;o>=0;o--)(l=e[o])&&(i=(a?l(s,r,i):l(i))||i);return a&&i&&C(s,r,i),i};let m=class extends w{constructor(){super(),this.styleURL=new URL("./recipe-details/sponsor-block/sponsor-block.css",this.getBaseURL())}render(){var b,$,y;if(!this.sponsorBlock)return d;const{pictureUrl:e,content:s,backgroundColor:r="#FFFFFF",fontSize:a=16,fontColor:i="#000000"}=this.sponsorBlock,o=(y=($=(b=this.sponsorBlock.relationships)==null?void 0:b["sponsor-block-type"])==null?void 0:$.data)==null?void 0:y.name;if(!o)return t``;const l=o.toLowerCase(),h=`background-color: ${r}; font-size: ${a}px; color: ${i};`;switch(o){case"TEXT":case"SMALL_TEXT":case"TITLE":case"SMALL_TITLE":return t`
1
+ import"../drawer/drawer.min.js";import"../store-locator-drawer/store-locator-drawer.min.js";import{N as w,D as d,k as t,m as n,B as c,w as z}from"../assets/no-shadow-element-l9trQfcI.js";import{t as v}from"../assets/custom-element-BhZVzxrc.js";import{n as g}from"../assets/property-leIVgCvV.js";import"../recipe-details/recipe-details.min.js";import"../assets/store-locator-m8sx3XDc.js";import"../planner/planner-catalog/planner-catalog.min.js";import"../replace-item/replace-item.min.js";import"../replace-item-planner/replace-item-planner.min.js";import"../history-drawer/history-drawer.min.js";import{o as k,l as R}from"../catalog/basket-preview/basket-preview.min.js";import{m as f}from"../assets/merge-C-u9uFzU.js";import{m as p}from"../assets/map-C4rf5Jbc.js";import"../assets/unsafe-html-CmALAWuN.js";import"../assets/state-CccUMzBZ.js";import"../assets/skipWhile-DuMEda_n.js";import"../assets/OperatorSubscriber-EGuECN6g.js";import"../assets/switchMap-D8q0hRYH.js";import"../assets/innerFrom-CfKCbnvr.js";import"../recipe-pricing/recipe-pricing.min.js";import"../assets/filter-CEeE8t7I.js";import"../assets/combineLatest-P4GAEtOW.js";import"../assets/from-jBe2xW5a.js";import"../assets/executeSchedule-DfyZaGAH.js";import"../assets/mapOneOrManyArgs-DNd_tswl.js";import"../assets/of-BTA69Qgj.js";import"../assets/take-DO4w5a1Y.js";import"../assets/empty-Cv-4tfKR.js";import"../assets/tap-BCGrRktL.js";import"../assets/price-BoM226Kw.js";import"../assets/recipe-BwGs-blm.js";import"../assets/capitalize-DUAqYmp4.js";import"../counter/counter.min.js";import"../assets/debounceTime-Bo5F3ux-.js";import"../assets/async-D3oCs_PQ.js";import"../assets/product-card-DqcKyf1c.js";import"../price/price.min.js";import"../assets/promotion-badge-BwN2GpDz.js";import"../assets/delay-ILvLVH1b.js";import"../assets/mergeMap-buGewtOo.js";import"../assets/timer-BOl4bYNY.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"../last-order-modal/last-order-modal.min.js";import"../catalog/catalog-load-more.min.js";import"../assets/http-aOzufNsj.js";import"../replace-item/replace-item-card/replace-item-card.min.js";import"../assets/price-utils-BRFZa-3D.js";import"../assets/distinctUntilChanged-BkBiB4M3.js";import"../replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js";import"../slider-tabs/slider-tabs.min.js";import"../modal/modal.min.js";var C=Object.defineProperty,S=Object.getOwnPropertyDescriptor,V=(e,s,r,a)=>{for(var i=a>1?void 0:a?S(s,r):s,o=e.length-1,l;o>=0;o--)(l=e[o])&&(i=(a?l(s,r,i):l(i))||i);return a&&i&&C(s,r,i),i};let m=class extends w{constructor(){super(),this.styleURL=new URL("./recipe-details/sponsor-block/sponsor-block.css",this.getBaseURL())}render(){var b,$,y;if(!this.sponsorBlock)return d;const{pictureUrl:e,content:s,backgroundColor:r="#FFFFFF",fontSize:a=16,fontColor:i="#000000"}=this.sponsorBlock,o=(y=($=(b=this.sponsorBlock.relationships)==null?void 0:b["sponsor-block-type"])==null?void 0:$.data)==null?void 0:y.name;if(!o)return t``;const l=o.toLowerCase(),h=`background-color: ${r}; font-size: ${a}px; color: ${i};`;switch(o){case"TEXT":case"SMALL_TEXT":case"TITLE":case"SMALL_TITLE":return t`
2
2
  <div class="sponsor-text-blocks sponsor-${l}-block" style="background-color: ${r};">
3
3
  <span class="sponsor-${l}-block__text" style="font-size: ${o.includes("TITLE")?32:16}px; color: ${i};">
4
4
  ${s}
@@ -1 +1 @@
1
- import"../../drawer-view-swapper/drawer-view-swapper.min.js";import"../../slider-tabs/slider-tabs.min.js";import"../to-basket-loader/to-basket-loader.min.js";import{M as d}from"../planner-abandon-modal/planner-abandon-modal.min.js";import{M as u}from"../planner-open-catalog-modal/planner-open-catalog-modal.min.js";import{N as m,B as h,m as s}from"../../assets/no-shadow-element-l9trQfcI.js";import{t as g}from"../../assets/custom-element-BhZVzxrc.js";import{t as o}from"../../assets/take-DO4w5a1Y.js";import{f}from"../../assets/filter-CEeE8t7I.js";import{m as l}from"../../assets/map-C4rf5Jbc.js";import{c as b}from"../../assets/combineLatest-P4GAEtOW.js";import"../../drawer/drawer.min.js";import"../../assets/property-leIVgCvV.js";import"../../assets/unsafe-html-CmALAWuN.js";import"../../store-locator-drawer/store-locator-drawer.min.js";import"../../assets/state-CccUMzBZ.js";import"../../assets/skipWhile-DuMEda_n.js";import"../../assets/OperatorSubscriber-EGuECN6g.js";import"../../assets/switchMap-D8q0hRYH.js";import"../../assets/innerFrom-CfKCbnvr.js";import"../../recipe-details/recipe-details.min.js";import"../../recipe-pricing/recipe-pricing.min.js";import"../../assets/price-BoM226Kw.js";import"../../assets/from-jBe2xW5a.js";import"../../assets/executeSchedule-DfyZaGAH.js";import"../../assets/mapOneOrManyArgs-DNd_tswl.js";import"../../assets/of-BTA69Qgj.js";import"../../assets/tap-BCGrRktL.js";import"../../assets/empty-Cv-4tfKR.js";import"../../assets/recipe-BwGs-blm.js";import"../../assets/merge-C-u9uFzU.js";import"../../assets/mergeMap-buGewtOo.js";import"../../assets/capitalize-DUAqYmp4.js";import"../../counter/counter.min.js";import"../../assets/debounceTime-Bo5F3ux-.js";import"../../assets/async-D3oCs_PQ.js";import"../../assets/product-card-DqcKyf1c.js";import"../../price/price.min.js";import"../../assets/promotion-badge-BwN2GpDz.js";import"../../assets/delay-ILvLVH1b.js";import"../../assets/timer-BOl4bYNY.js";import"../../store-indicator/store-indicator.min.js";import"../../assets/store-locator-m8sx3XDc.js";import"../../last-order-badge/last-order-badge.min.js";import"../../order-again/order-again.min.js";import"../../like-button/like-button.min.js";import"../../last-order-modal/last-order-modal.min.js";import"../planner-catalog/planner-catalog.min.js";import"../../catalog/catalog-load-more.min.js";import"../../assets/http-aOzufNsj.js";import"../../replace-item/replace-item.min.js";import"../../replace-item/replace-item-card/replace-item-card.min.js";import"../../assets/price-utils-BRFZa-3D.js";import"../../assets/distinctUntilChanged-BkBiB4M3.js";import"../../replace-item-planner/replace-item-planner.min.js";import"../../replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js";import"../../history-drawer/history-drawer.min.js";import"../../catalog/basket-preview/basket-preview.min.js";import"../../modal/modal.min.js";var y=Object.getOwnPropertyDescriptor,B=(e,t,n,r)=>{for(var i=r>1?void 0:r?y(t,n):t,a=e.length-1,p;a>=0;a--)(p=e[a])&&(i=p(i)||i);return i};let c=class extends m{constructor(){super(...arguments),this.wasDesktop=window.innerWidth>768,this.analyticsPath="/meals-planner/current",this.loaderToBasketComplete$=new h(!1),this.subscriptions=[]}get selectors(){return{recipe:".mealz-planner-current-menu__recipe",menu:".mealz-planner-current-menu__menu",displayMenuButton:".mealz-planner-current-menu__mobile-menu-button",displayRecipeButton:".mealz-planner-current-menu__mobile-recipe-button",returnButton:".mealz-planner-current-menu__mobile-return-button",preferencesButton:".mealz-planner-current-menu__menu-header-preferences",preferencesMobileButton:".mealz-planner-current-menu__mobile-preferences-button",cancelMenuButton:".mealz-planner-current-menu__cancel-menu-button",footerButton:".mealz-planner-current-menu__footer-button",footerIcon:".mealz-planner-current-menu__footer-icon",footerDisabledIcon:".mealz-planner-current-menu__footer-disabled-icon",recipeCounterBadge:".mealz-planner-current-menu__menu-badge",preferencesCounterBadges:[".mealz-planner-current-menu__preferences-badge"],mealExtras:[".mealz-planner-current-menu__meal-extras-choice"]}}get nbrRecipeInMenu(){return this.querySelectorAll(".mealz-planner-recipe-card").length}connectedCallback(){super.connectedCallback(),this.pageview(),this.initSelectors(),this.addEventListeners(),this.handleResize(),window.addEventListener("resize",()=>this.handleResize()),s.recipes.setIsRecipeDetailsFromPlanner(!0),this.subscriptions.push(s.preferences.preferencesCount().subscribe(e=>this.updatePreferencesCount(e))),this.updateRecipeCounterBadge(this.nbrRecipeInMenu)}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}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("displayMenuButton",()=>{this.toggleMobileView(!0)}),this.addClickListener("displayRecipeButton",()=>{this.toggleMobileView(!1)}),this.addClickListener("preferencesButton",()=>{this.openPreferences()}),this.addClickListener("preferencesMobileButton",()=>{this.openPreferences()}),this.addClickListener("cancelMenuButton",this.cancelMenu.bind(this)),this.addClickListener("footerButton",()=>{this.handleMenu()});const{mealExtras:e}=this.elements;e==null||e.forEach(t=>{t.addEventListener("click",this.openCatalogSelection.bind(this))})}toggleMobileView(e){const{recipe:t,menu:n,displayMenuButton:r,displayRecipeButton:i,returnButton:a}=this.elements;!t||!n||!r||!i||!a||(t.style.display=e?"none":"block",n.style.display=e?"flex":"none",r.style.display=e?"none":"flex",i.style.display=e?"block":"none",a.style.display=e?"none":"block")}handleResize(){const{menu:e,recipe:t}=this.elements;if(!e||!t)return;const n=window.innerWidth>768;n?(e.style.display="flex",t.style.display="block"):this.wasDesktop&&this.toggleMobileView(!1),this.wasDesktop=n}async openPreferences(){const e=document.querySelector("mealz-drawer-view-swapper");e.displayPreferences$.next(!0),await e.updateComplete}updatePreferencesCount(e){const{preferencesCounterBadges:t}=this.elements;t&&t.forEach(n=>{const r=n.querySelector("p");r.textContent=e.toString(),n.classList.toggle("hidden",e===0)})}updateRecipeCounterBadge(e){const{recipeCounterBadge:t}=this.elements;if(!t)return;const n=t.querySelector("p");n.textContent=e.toString(),t.classList.toggle("hidden",e===0)}openCatalogSelection(e){const t=e.target.closest(".mealz-planner-current-menu__meal-extras-choice");if(!t)return;const r=["starter","dessert","drink"].find(i=>t.classList.contains(i));r&&(this.openCatalogDrawer(r),this.categoryDisplayEvent(r))}cancelMenu(){const e=new d;e.addEventListener("resetMenu",()=>this.resetMenu()),e.displayPlannerAbandonModal()}resetMenu(){const e=s.planner.deleteMenu(this.menuId);this.resetMenuEvent(),e.pipe(o(1)).subscribe(()=>{this.updateRecipeCounterBadge(0),this.redirectToDashboard()})}redirectToDashboard(){var e;(e=this.plannerRoutes)!=null&&e.dashboard&&(window.location.href=this.plannerRoutes.dashboard)}redirectToHomeWithBasketPreview(){var e;(e=this.plannerRoutes)!=null&&e.catalogHome&&(window.location.href=this.plannerRoutes.catalogHome+"?myMeals=products")}handleMenu(){this.storeId?(this.displayAddToBasketLoaderView(),this.finalizeMenuEvent(),this.navigateOnceDone()):console.log("register menu")}navigateOnceDone(){const e=this.loaderToBasketComplete$.pipe(f(n=>n===!0),o(1)),t=s.planner.menuToBasket(this.basket.id).pipe(o(1),l(()=>s.basket.updateRetailerBasketFromPlanner()));this.subscriptions.push(b([t,e]).pipe(o(1)).subscribe(()=>{this.loaderToBasketElement.remove(),this.redirectToHomeWithBasketPreview()}))}retrieveRecipesImgs(){const e=[];return document.querySelectorAll(".mealz-planner-recipe-card").forEach(n=>{if(n.querySelector(".mealz-planner-recipe-card__in-basket:not(.hidden)"))return;const i=n.querySelector("img");i&&i.src&&e.push(i.src)}),e}displayAddToBasketLoaderView(){const e=document.querySelector(".mealz-planner-current-menu");e&&(e.style.display="none");const t=this.retrieveRecipesImgs();this.loaderToBasketElement=document.querySelector("mealz-to-basket-loader"),this.loaderToBasketElement||(this.loaderToBasketElement=document.createElement("mealz-to-basket-loader"),this.loaderToBasketElement.recipeImgs=t,this.loaderToBasketElement.addEventListener("basketComplete",()=>{this.loaderToBasketComplete$.next(!0)}),e.insertAdjacentElement("afterend",this.loaderToBasketElement))}updateFooterButton(e){const{footerButton:t,footerIcon:n,footerDisabledIcon:r}=this.elements;!t||!n||!r||(t.classList.toggle("disabled",!e),n.classList.toggle("hidden",!e),r.classList.toggle("hidden",e))}openCatalogModal(){const e=new u;e.addEventListener("openCatalog",()=>{this.openCatalogDrawer()}),e.displayMealzPlannerOpenCatalogModal()}async openCatalogDrawer(e){const t=document.querySelector("mealz-drawer-view-swapper");t.displayPlannerCatalog$.next(!0),await t.updateComplete;const n=document.querySelector("mealz-planner-catalog");n&&(n.setConfig(this.storeId,this.catalogURL,this.sessionId,e),n.getPlannerCatalog(),n.pageview())}addRecipe(e,t){var i,a;const n=(a=(i=s.recipes)==null?void 0:i.productsPlannerByCategory$)==null?void 0:a.value,r=(n==null?void 0:n.toPickProducts)||[];return s.planner.addRecipeToMenu(e,t,!!s.pos.currentPos().value,r).pipe(o(1),l(async()=>{await this.addRecipeToList(e),this.showResetMenuButton(),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeAddedEvent(e)}))}removeRecipe(e){return s.planner.removeRecipeFromMenu(e).pipe(o(1),l(()=>{const t=this.findRecipeIndexById(e);t!==-1&&(this.removeRecipeFromList(t),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeRemovedEvent(e))}))}async addRecipeToList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&await t.addRecipeCardToList(e)}removeRecipeFromList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&t.removeRecipeCardFromList(e)}showResetMenuButton(){const e=document.querySelector(".mealz-planner-current-menu__cancel-menu");e&&e.classList.remove("hidden")}updateFooterButtonState(){const e=this.nbrRecipeInMenu>0;this.updateFooterButton(e)}findRecipeIndexById(e){const t=document.querySelectorAll("mealz-planner-recipe-card");for(let n=0;n<t.length;n++)if(t[n].recipeId===e)return n;return-1}pageview(){s.analytics.sendEvent("pageview",this.analyticsPath,{})}resetMenuEvent(){s.analytics.sendEvent("planner.reset",this.analyticsPath,{})}finalizeMenuEvent(){s.analytics.sendEvent("planner.finalize",this.analyticsPath,{budget_user:0,recipe_count:this.nbrRecipeInMenu,guests:this.guests})}recipeAddedEvent(e){s.analytics.sendEvent("planner.recipe.add",this.analyticsPath,{recipe_id:e})}recipeRemovedEvent(e){s.analytics.sendEvent("planner.recipe.delete",this.analyticsPath,{recipe_id:e})}categoryDisplayEvent(e){s.analytics.sendEvent("category.display",this.analyticsPath,{category_id:e})}};c=B([g("mealz-planner-current-menu")],c);customElements.get("mealz-planner-current-menu")||customElements.define("mealz-planner-current-menu",c);
1
+ import"../../drawer-view-swapper/drawer-view-swapper.min.js";import"../../slider-tabs/slider-tabs.min.js";import"../to-basket-loader/to-basket-loader.min.js";import{M as d}from"../planner-abandon-modal/planner-abandon-modal.min.js";import{M as u}from"../planner-open-catalog-modal/planner-open-catalog-modal.min.js";import{N as m,B as h,m as s}from"../../assets/no-shadow-element-l9trQfcI.js";import{t as g}from"../../assets/custom-element-BhZVzxrc.js";import{t as o}from"../../assets/take-DO4w5a1Y.js";import{f}from"../../assets/filter-CEeE8t7I.js";import{m as l}from"../../assets/map-C4rf5Jbc.js";import{c as b}from"../../assets/combineLatest-P4GAEtOW.js";import"../../drawer/drawer.min.js";import"../../assets/property-leIVgCvV.js";import"../../assets/unsafe-html-CmALAWuN.js";import"../../store-locator-drawer/store-locator-drawer.min.js";import"../../assets/state-CccUMzBZ.js";import"../../assets/skipWhile-DuMEda_n.js";import"../../assets/OperatorSubscriber-EGuECN6g.js";import"../../assets/switchMap-D8q0hRYH.js";import"../../assets/innerFrom-CfKCbnvr.js";import"../../recipe-details/recipe-details.min.js";import"../../recipe-pricing/recipe-pricing.min.js";import"../../assets/from-jBe2xW5a.js";import"../../assets/executeSchedule-DfyZaGAH.js";import"../../assets/mapOneOrManyArgs-DNd_tswl.js";import"../../assets/of-BTA69Qgj.js";import"../../assets/tap-BCGrRktL.js";import"../../assets/empty-Cv-4tfKR.js";import"../../assets/price-BoM226Kw.js";import"../../assets/recipe-BwGs-blm.js";import"../../assets/merge-C-u9uFzU.js";import"../../assets/mergeMap-buGewtOo.js";import"../../assets/capitalize-DUAqYmp4.js";import"../../counter/counter.min.js";import"../../assets/debounceTime-Bo5F3ux-.js";import"../../assets/async-D3oCs_PQ.js";import"../../assets/product-card-DqcKyf1c.js";import"../../price/price.min.js";import"../../assets/promotion-badge-BwN2GpDz.js";import"../../assets/delay-ILvLVH1b.js";import"../../assets/timer-BOl4bYNY.js";import"../../store-indicator/store-indicator.min.js";import"../../assets/store-locator-m8sx3XDc.js";import"../../last-order-badge/last-order-badge.min.js";import"../../order-again/order-again.min.js";import"../../like-button/like-button.min.js";import"../../last-order-modal/last-order-modal.min.js";import"../planner-catalog/planner-catalog.min.js";import"../../catalog/catalog-load-more.min.js";import"../../assets/http-aOzufNsj.js";import"../../replace-item/replace-item.min.js";import"../../replace-item/replace-item-card/replace-item-card.min.js";import"../../assets/price-utils-BRFZa-3D.js";import"../../assets/distinctUntilChanged-BkBiB4M3.js";import"../../replace-item-planner/replace-item-planner.min.js";import"../../replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js";import"../../history-drawer/history-drawer.min.js";import"../../catalog/basket-preview/basket-preview.min.js";import"../../modal/modal.min.js";var y=Object.getOwnPropertyDescriptor,B=(e,t,n,r)=>{for(var i=r>1?void 0:r?y(t,n):t,a=e.length-1,p;a>=0;a--)(p=e[a])&&(i=p(i)||i);return i};let c=class extends m{constructor(){super(...arguments),this.wasDesktop=window.innerWidth>768,this.analyticsPath="/meals-planner/current",this.loaderToBasketComplete$=new h(!1),this.subscriptions=[]}get selectors(){return{recipe:".mealz-planner-current-menu__recipe",menu:".mealz-planner-current-menu__menu",displayMenuButton:".mealz-planner-current-menu__mobile-menu-button",displayRecipeButton:".mealz-planner-current-menu__mobile-recipe-button",returnButton:".mealz-planner-current-menu__mobile-return-button",preferencesButton:".mealz-planner-current-menu__menu-header-preferences",preferencesMobileButton:".mealz-planner-current-menu__mobile-preferences-button",cancelMenuButton:".mealz-planner-current-menu__cancel-menu-button",footerButton:".mealz-planner-current-menu__footer-button",footerIcon:".mealz-planner-current-menu__footer-icon",footerDisabledIcon:".mealz-planner-current-menu__footer-disabled-icon",recipeCounterBadge:".mealz-planner-current-menu__menu-badge",preferencesCounterBadges:[".mealz-planner-current-menu__preferences-badge"],mealExtras:[".mealz-planner-current-menu__meal-extras-choice"]}}get nbrRecipeInMenu(){return this.querySelectorAll(".mealz-planner-recipe-card").length}connectedCallback(){super.connectedCallback(),this.pageview(),this.initSelectors(),this.addEventListeners(),this.handleResize(),window.addEventListener("resize",()=>this.handleResize()),s.recipes.setIsRecipeDetailsFromPlanner(!0),this.setDefaultMobileView(),this.subscriptions.push(s.preferences.preferencesCount().subscribe(e=>this.updatePreferencesCount(e))),this.updateRecipeCounterBadge(this.nbrRecipeInMenu)}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}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("displayMenuButton",()=>{this.toggleMobileView(!0)}),this.addClickListener("displayRecipeButton",()=>{this.toggleMobileView(!1)}),this.addClickListener("preferencesButton",()=>{this.openPreferences()}),this.addClickListener("preferencesMobileButton",()=>{this.openPreferences()}),this.addClickListener("cancelMenuButton",this.cancelMenu.bind(this)),this.addClickListener("footerButton",()=>{this.handleMenu()});const{mealExtras:e}=this.elements;e==null||e.forEach(t=>{t.addEventListener("click",this.openCatalogSelection.bind(this))})}toggleMobileView(e){const{recipe:t,menu:n,displayMenuButton:r,displayRecipeButton:i,returnButton:a}=this.elements;!t||!n||!r||!i||!a||(t.style.display=e?"none":"block",n.style.display=e?"flex":"none",r.style.display=e?"none":"flex",i.style.display=e?"block":"none",a.style.display=e?"none":"block")}setDefaultMobileView(){window.innerWidth<=768&&!this.wasDesktop&&this.toggleMobileView(!0)}handleResize(){const{menu:e,recipe:t}=this.elements;if(!e||!t)return;const n=window.innerWidth>768;n?(e.style.display="flex",t.style.display="block"):this.wasDesktop&&this.toggleMobileView(!1),this.wasDesktop=n}async openPreferences(){const e=document.querySelector("mealz-drawer-view-swapper");e.displayPreferences$.next(!0),await e.updateComplete}updatePreferencesCount(e){const{preferencesCounterBadges:t}=this.elements;t&&t.forEach(n=>{const r=n.querySelector("p");r.textContent=e.toString(),n.classList.toggle("hidden",e===0)})}updateRecipeCounterBadge(e){const{recipeCounterBadge:t}=this.elements;if(!t)return;const n=t.querySelector("p");n.textContent=e.toString(),t.classList.toggle("hidden",e===0)}openCatalogSelection(e){const t=e.target.closest(".mealz-planner-current-menu__meal-extras-choice");if(!t)return;const r=["starter","dessert","drink"].find(i=>t.classList.contains(i));r&&(this.openCatalogDrawer(r),this.categoryDisplayEvent(r))}cancelMenu(){const e=new d;e.addEventListener("resetMenu",()=>this.resetMenu()),e.displayPlannerAbandonModal()}resetMenu(){const e=s.planner.deleteMenu(this.menuId);this.resetMenuEvent(),e.pipe(o(1)).subscribe(()=>{this.updateRecipeCounterBadge(0),this.redirectToDashboard()})}redirectToDashboard(){var e;(e=this.plannerRoutes)!=null&&e.dashboard&&(window.location.href=this.plannerRoutes.dashboard)}redirectToHomeWithBasketPreview(){var e;(e=this.plannerRoutes)!=null&&e.catalogHome&&(window.location.href=this.plannerRoutes.catalogHome+"?myMeals=products")}handleMenu(){this.storeId?(this.displayAddToBasketLoaderView(),this.finalizeMenuEvent(),this.navigateOnceDone()):console.log("register menu")}navigateOnceDone(){const e=this.loaderToBasketComplete$.pipe(f(n=>n===!0),o(1)),t=s.planner.menuToBasket(this.basket.id).pipe(o(1),l(()=>s.basket.updateRetailerBasketFromPlanner()));this.subscriptions.push(b([t,e]).pipe(o(1)).subscribe(()=>{this.loaderToBasketElement.remove(),this.redirectToHomeWithBasketPreview()}))}retrieveRecipesImgs(){const e=[];return document.querySelectorAll(".mealz-planner-recipe-card").forEach(n=>{if(n.querySelector(".mealz-planner-recipe-card__in-basket:not(.hidden)"))return;const i=n.querySelector("img");i&&i.src&&e.push(i.src)}),e}displayAddToBasketLoaderView(){const e=document.querySelector(".mealz-planner-current-menu");e&&(e.style.display="none");const t=this.retrieveRecipesImgs();this.loaderToBasketElement=document.querySelector("mealz-to-basket-loader"),this.loaderToBasketElement||(this.loaderToBasketElement=document.createElement("mealz-to-basket-loader"),this.loaderToBasketElement.recipeImgs=t,this.loaderToBasketElement.addEventListener("basketComplete",()=>{this.loaderToBasketComplete$.next(!0)}),e.insertAdjacentElement("afterend",this.loaderToBasketElement))}updateFooterButton(e){const{footerButton:t,footerIcon:n,footerDisabledIcon:r}=this.elements;!t||!n||!r||(t.classList.toggle("disabled",!e),n.classList.toggle("hidden",!e),r.classList.toggle("hidden",e))}openCatalogModal(){const e=new u;e.addEventListener("openCatalog",()=>{this.openCatalogDrawer()}),e.displayMealzPlannerOpenCatalogModal()}async openCatalogDrawer(e){const t=document.querySelector("mealz-drawer-view-swapper");t.displayPlannerCatalog$.next(!0),await t.updateComplete;const n=document.querySelector("mealz-planner-catalog");n&&(n.setConfig(this.storeId,this.catalogURL,this.sessionId,e),n.getPlannerCatalog(),n.pageview())}addRecipe(e,t){var i,a;const n=(a=(i=s.recipes)==null?void 0:i.productsPlannerByCategory$)==null?void 0:a.value,r=(n==null?void 0:n.toPickProducts)||[];return s.planner.addRecipeToMenu(e,t,!!s.pos.currentPos().value,r).pipe(o(1),l(async()=>{await this.addRecipeToList(e),this.showResetMenuButton(),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeAddedEvent(e)}))}removeRecipe(e){return s.planner.removeRecipeFromMenu(e).pipe(o(1),l(()=>{const t=this.findRecipeIndexById(e);t!==-1&&(this.removeRecipeFromList(t),this.updateFooterButtonState(),this.updateRecipeCounterBadge(this.nbrRecipeInMenu),this.recipeRemovedEvent(e))}))}async addRecipeToList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&await t.addRecipeCardToList(e)}removeRecipeFromList(e){const t=document.querySelector("mealz-planner-recipe-list");t&&t.removeRecipeCardFromList(e)}showResetMenuButton(){const e=document.querySelector(".mealz-planner-current-menu__cancel-menu");e&&e.classList.remove("hidden")}updateFooterButtonState(){const e=this.nbrRecipeInMenu>0;this.updateFooterButton(e)}findRecipeIndexById(e){const t=document.querySelectorAll("mealz-planner-recipe-card");for(let n=0;n<t.length;n++)if(t[n].recipeId===e)return n;return-1}pageview(){s.analytics.sendEvent("pageview",this.analyticsPath,{})}resetMenuEvent(){s.analytics.sendEvent("planner.reset",this.analyticsPath,{})}finalizeMenuEvent(){s.analytics.sendEvent("planner.finalize",this.analyticsPath,{budget_user:0,recipe_count:this.nbrRecipeInMenu,guests:this.guests})}recipeAddedEvent(e){s.analytics.sendEvent("planner.recipe.add",this.analyticsPath,{recipe_id:e})}recipeRemovedEvent(e){s.analytics.sendEvent("planner.recipe.delete",this.analyticsPath,{recipe_id:e})}categoryDisplayEvent(e){s.analytics.sendEvent("category.display",this.analyticsPath,{category_id:e})}};c=B([g("mealz-planner-current-menu")],c);customElements.get("mealz-planner-current-menu")||customElements.define("mealz-planner-current-menu",c);
@@ -1 +1 @@
1
- .mealz-planner-recipe-list{display:grid;grid-template-columns:repeat(auto-fill,var(--m-planner-recipe-card-width, 218px));grid-gap:8px}.mealz-planner-recipe-list .mealz-planner-recipe-list__in-menu{display:contents}.mealz-planner-recipe-list .mealz-planner-recipe-list__add-to-menu{display:flex;flex-direction:column;justify-content:center;align-items:center;width:var(--m-planner-recipe-card-width, 218px);height:272px;padding:40px;box-sizing:border-box;background-color:var(--miam-color-neutral-100, #F7F8F9);border:1px solid var(--mealz-ds-color-neutral-200, #D9DDE1);border-radius:12px;cursor:pointer}.mealz-planner-recipe-list .mealz-planner-recipe-list__add-to-menu .mealz-planner-recipe-list__add-to-menu-icon{margin-bottom:8px;padding:12px}.mealz-planner-recipe-list .mealz-planner-recipe-list__add-to-menu .mealz-planner-recipe-list__add-to-menu-text{text-align:center}
1
+ .mealz-planner-recipe-list{display:grid;grid-template-columns:repeat(auto-fill,var(--m-planner-recipe-card-width, 218px));grid-gap:8px}.mealz-planner-recipe-list .mealz-planner-recipe-list__in-menu{display:contents}.mealz-planner-recipe-list .mealz-planner-recipe-list__add-to-menu{display:flex;flex-direction:column;justify-content:center;align-items:center;color:var(--mealz-ds-color-primary, #24748f);width:var(--m-planner-recipe-card-width, 218px);height:272px;padding:40px;box-sizing:border-box;background-color:var(--miam-color-neutral-100, #f7f8f9);border:1px solid var(--mealz-ds-color-neutral-200, #d9dde1);border-radius:12px;cursor:pointer}.mealz-planner-recipe-list .mealz-planner-recipe-list__add-to-menu .mealz-planner-recipe-list__add-to-menu-icon{width:64px;height:64px;border-radius:100%;border:1px solid var(--mealz-ds-color-primary, #24748f);margin-bottom:8px;padding:20px}.mealz-planner-recipe-list .mealz-planner-recipe-list__add-to-menu .mealz-planner-recipe-list__add-to-menu-text{text-align:center}
@@ -1 +1 @@
1
- .mealz-planner-recipe-suggestion{display:flex;flex-direction:column;position:relative;height:100%}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture img{width:100%;height:100%;object-fit:cover;transition:filter .3s ease-in-out}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture img.loading{filter:blur(8px)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture .mealz-planner-recipe-suggestion__overlay{position:absolute;left:0;right:0;top:45%;bottom:0;background:linear-gradient(180deg,#0f191f00,#0f191fb3);pointer-events:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__content{display:flex;flex-direction:column;justify-content:space-between;position:relative;flex:1;pointer-events:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count{display:flex;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:24px calc(50% - 55px);pointer-events:auto}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count .mealz-planner-recipe-suggestion__meals-count-button{flex:0 0 auto;padding:10px 16px;border-radius:50px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count .mealz-planner-recipe-suggestion__meals-count-button>*:not(:last-child){margin-right:4px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count .mealz-planner-recipe-suggestion__meals-count-button:not(primary){background-color:#00000059;color:var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count>*:not(:last-child){margin-right:4px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count::-webkit-scrollbar{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions{padding:24px;pointer-events:auto}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos{display:flex;flex-direction:column;margin-bottom:32px;color:var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges{display:flex;align-items:center}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .mealz-recipe-promotion-badge span{font-size:14px;line-height:16px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .mealz-planner-recipe-suggestion__recipe-sponsor{display:flex;justify-content:center;background-color:var(--mealz-ds-color-neutral-white, #fff);padding:6px 8px;border-radius:50px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .mealz-planner-recipe-suggestion__recipe-sponsor>*{height:20px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .hidden{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges>*:not(:last-child){margin-right:8px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__see-recipe{display:flex;width:fit-content;background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-current-menu__recipe-title{cursor:pointer}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos>*:not(:last-child){margin-bottom:12px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-remove-button{width:100%}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-remove-button span{color:var(--miam-color-neutral-black, #0f191f)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-remove-button img{width:20px;height:20px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap{display:flex;flex-direction:row}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>*{flex:1}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>* img,.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>* .mealz-planner-recipe-suggestion__actions-add-button-loading{width:20px;height:20px;margin-right:4px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>*:not(:last-child){margin-right:24px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .hidden{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-swap-button:hover img{content:url(https://storage.googleapis.com/assets.miam.tech/generic/icons/Swap_white.svg)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button img{display:block}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button .mealz-planner-recipe-suggestion__actions-add-button-loading,.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button.loading img{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button.loading .mealz-planner-recipe-suggestion__actions-add-button-loading{display:block}
1
+ .mealz-planner-recipe-suggestion{display:flex;flex-direction:column;position:relative;height:100%}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture{position:absolute;top:0;left:0;width:100%;height:100%;cursor:pointer}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture img{width:100%;height:100%;object-fit:cover;transition:filter .3s ease-in-out}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture img.loading{filter:blur(8px)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__picture .mealz-planner-recipe-suggestion__overlay{position:absolute;left:0;right:0;top:45%;bottom:0;background:linear-gradient(180deg,#0f191f00,#0f191fb3);pointer-events:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__content{display:flex;flex-direction:column;justify-content:space-between;position:relative;flex:1;pointer-events:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count{display:flex;overflow-x:auto;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none;padding:24px calc(50% - 55px);pointer-events:auto}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count .mealz-planner-recipe-suggestion__meals-count-button{flex:0 0 auto;padding:10px 16px;border-radius:50px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count .mealz-planner-recipe-suggestion__meals-count-button>*:not(:last-child){margin-right:4px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count .mealz-planner-recipe-suggestion__meals-count-button:not(primary){background-color:#00000059;color:var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count>*:not(:last-child){margin-right:4px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__meals-count::-webkit-scrollbar{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions{padding:24px;pointer-events:auto}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos{display:flex;flex-direction:column;margin-bottom:32px;color:var(--mealz-ds-color-neutral-white, #fff)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges{display:flex;align-items:center}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .mealz-recipe-promotion-badge span{font-size:14px;line-height:16px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .mealz-planner-recipe-suggestion__recipe-sponsor{display:flex;justify-content:center;background-color:var(--mealz-ds-color-neutral-white, #fff);padding:6px 8px;border-radius:50px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .mealz-planner-recipe-suggestion__recipe-sponsor>*{height:20px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges .hidden{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__recipe-badges>*:not(:last-child){margin-right:8px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__see-recipe{display:flex;width:fit-content;background:none;border:none;font:inherit;color:inherit;cursor:pointer}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-recipe-suggestion__see-recipe span{line-height:16px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos .mealz-planner-current-menu__recipe-title{cursor:pointer}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__recipe-infos>*:not(:last-child){margin-bottom:12px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-remove-button{width:100%}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-remove-button span{color:var(--miam-color-neutral-black, #0f191f)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-remove-button img{width:20px;height:20px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap{display:flex;flex-direction:row}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>*{flex:1}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>* img,.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>* .mealz-planner-recipe-suggestion__actions-add-button-loading{width:20px;height:20px;margin-right:4px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-and-swap>*:not(:last-child){margin-right:24px}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .hidden{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-swap-button:hover img{content:url(https://storage.googleapis.com/assets.miam.tech/generic/icons/Swap_white.svg)}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button img{display:block}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button .mealz-planner-recipe-suggestion__actions-add-button-loading,.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button.loading img{display:none}.mealz-planner-recipe-suggestion .mealz-planner-recipe-suggestion__infos-and-actions .mealz-planner-recipe-suggestion__actions .mealz-planner-recipe-suggestion__actions-add-button.loading .mealz-planner-recipe-suggestion__actions-add-button-loading{display:block}
@@ -1 +1 @@
1
- import{N as f,m as n}from"../assets/no-shadow-element-l9trQfcI.js";import{V as u}from"../assets/viewport-listener-RTCBatPv.js";import{t as w}from"../assets/custom-element-BhZVzxrc.js";import{h as v}from"../assets/session-handler-BnuvphmJ.js";import{f as m}from"../assets/filter-CEeE8t7I.js";import{s as y}from"../assets/switchMap-D8q0hRYH.js";import{c as L}from"../assets/combineLatest-P4GAEtOW.js";import{t as d}from"../assets/take-DO4w5a1Y.js";import"../assets/debounceTime-Bo5F3ux-.js";import"../assets/async-D3oCs_PQ.js";import"../assets/OperatorSubscriber-EGuECN6g.js";import"../assets/innerFrom-CfKCbnvr.js";import"../assets/from-jBe2xW5a.js";import"../assets/executeSchedule-DfyZaGAH.js";import"../assets/mapOneOrManyArgs-DNd_tswl.js";import"../assets/map-C4rf5Jbc.js";import"../assets/empty-Cv-4tfKR.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(e,i,s){const r=Date.now(),a=!this.trackedRecipes.get(e),l=this.hasScrolled;!a&&!l||(this.trackedRecipes.size>=this.MAX_RECIPES&&this.cleanOldRecipes(),this.trackedRecipes.set(e,r),window.mealzInternal.analytics.sendEvent("recipe.show",i,{recipe_id:e,category_id:s}))}cleanOldRecipes(){const i=Date.now()-3600*1e3;for(const[s,r]of this.trackedRecipes.entries())r<i&&this.trackedRecipes.delete(s)}clearAllRecipes(){this.trackedRecipes.clear()}destroy(){this.scrollListener&&(window.removeEventListener("scroll",this.scrollListener),this.scrollListener=null),window.removeEventListener("beforeunload",this.handlePageUnload),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.trackedRecipes.clear(),this.hasScrolled=!1,o.instance=null}setupScrollListener(){let e;this.scrollListener=()=>{this.hasScrolled=!0,clearTimeout(e),e=window.setTimeout(()=>{this.hasScrolled=!1},2e3)},window.addEventListener("scroll",this.scrollListener)}startAutoCleanup(){this.cleanupInterval=window.setInterval(()=>{this.cleanOldRecipes()},this.CLEANUP_INTERVAL)}setupPageUnloadListener(){window.addEventListener("beforeunload",this.handlePageUnload)}}var b=Object.getOwnPropertyDescriptor,C=(t,e,i,s)=>{for(var r=s>1?void 0:s?b(e,i):e,c=t.length-1,a;c>=0;c--)(a=t[c])&&(r=a(r)||r);return r};let g=class extends f{constructor(){super(...arguments),this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.getInitialStatus(),this.listenInView(),this.setupSubscriptions()}setupSubscriptions(){this.subscriptions.push(n.basket.recipePricesInBasket$().subscribe(t=>{const e=t.find(i=>i.id===this.recipeId);e&&(this.updatedRecipeId=e.id,this.updateDOM())}),this.setupPlannerMenuSubscription())}setupPlannerMenuSubscription(){return n.planner.menuPrice$.pipe(m(()=>this.planner&&!!this.recipeId),y(()=>L([n.planner.isRecipeInMenu$(this.recipeId).pipe(d(1)),n.planner.getGuestsForRecipe(this.recipeId).pipe(d(1))])),m(([t,e])=>t&&typeof e=="number"&&e>0)).subscribe(([t,e])=>{this.guests=e,this.updateGuestDisplay()})}disconnectedCallback(){var e,i;super.disconnectedCallback(),this.subscriptions.forEach(s=>s.unsubscribe()),(e=this.priceViewportObserver)==null||e.disconnect(),(i=this.analyticsViewportObserver)==null||i.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.priceViewportObserver=new u(this,()=>{this.handleIntersection()}),this.analyticsViewportObserver=new u(this,()=>{this.sendAnalyticsShow()},{threshold:.8,debounce:1e3})}handleIntersection(){this.recipePricing=this.querySelector("mealz-recipe-pricing"),this.recipePricing&&(this.recipePricing.fetchPrice(this.posId,this.guests,this.recipeId),this.priceViewportObserver.disconnect())}getInitialStatus(){var p;const t=(p=this.attributes["starting-data"])==null?void 0:p.value;if(!t)return;const{id:e,guests:i,posId:s,path:r,categoryId:c,initialTabIndex:a,planner:l,sessionId:S,recipe:I}=JSON.parse(t);if(this.posId=s,this.recipeId=e,this.analyticsPath=r,this.categoryId=c,this.guests=i,this.initialTabIndex=a,this.planner=l,this.recipe=I,v(S),!i){this.guests=this.getGuests();const h=this.querySelector(".mealz-recipe-card__counter p");h&&(h.innerHTML=this.guests.toString())}this.removeAttribute("starting-data")}openDetails(){n.recipes.openDetails(this.recipeId,this.guests,this.initialTabIndex,this.analyticsPath,this.planner,this.categoryId)}recipeCardCtaClick(){this.planner?this.handleCTAClickForPlanner():this.openDetails()}getGuests(){const t=localStorage.getItem("_miam/preferences/guests");if(t){const e=+t;if(!isNaN(e)&&e>0&&e<=30)return e}return 4}handleCTAClickForPlanner(){const t=this.querySelector("mealz-recipe-card-cta");if(!t)return;const e=t.getStatus();e==="add"?(this.showAddingToMenuState(t),this.addRecipeToMenu()):e==="in-menu"&&(this.showRemovingFromMenuState(t),this.removeRecipeFromMenu())}addRecipeToMenu(){var s,r;const t=document.querySelector("mealz-planner-recipe-suggestion"),e=(t==null?void 0:t.guests)||this.guests;t.recipeId=this.recipeId;const i=document.querySelector("mealz-planner-current-menu");if(!i){const c=(r=(s=n.recipes)==null?void 0:s.productsPlannerByCategory$)==null?void 0:r.value,a=(c==null?void 0:c.toPickProducts)||[];n.planner.addRecipeToMenu(this.recipeId,e,!!n.pos.currentPos().value,a).pipe(d(1)).subscribe(()=>{this.removeRecipeCardLoader("add");const l=document.querySelector("mealz-planner-recipe-list");l==null||l.addRecipeCardToList(this.recipeId)});return}i.addRecipe(this.recipeId,e).subscribe(()=>{this.removeRecipeCardLoader("add"),t.addAndSelectNewSuggestion(this.recipe)})}removeRecipeFromMenu(){const t=document.querySelector("mealz-planner-recipe-suggestion");if(!t){n.planner.removeRecipeFromMenu(this.recipeId).pipe(d(1)).subscribe(()=>this.removeRecipeCardLoader("remove"));return}t.removeRecipe(this.recipeId).subscribe(()=>this.removeRecipeCardLoader("remove"))}showRemovingFromMenuState(t){const e=this.querySelector(".mealz-recipe-card-cta__loader"),i=t.querySelector("img.in-menu");e==null||e.classList.remove("hidden"),i==null||i.classList.add("hidden")}removeRecipeCardLoader(t){const e=this.querySelector("mealz-recipe-card-cta");if(!e)return;const i=this.querySelector(".mealz-recipe-card-cta"),s=this.querySelector(".mealz-recipe-card-cta__loader"),r=e.querySelector("img.add"),c=e.querySelector("img.in-menu");t==="add"?(s==null||s.classList.add("hidden"),i==null||i.classList.replace("primary","secondary"),c==null||c.classList.remove("hidden"),e.updateStatus("in-menu")):(s==null||s.classList.add("hidden"),i==null||i.classList.replace("secondary","primary"),r==null||r.classList.remove("hidden"),e.updateStatus("add"))}showAddingToMenuState(t){const e=this.querySelector(".mealz-recipe-card-cta__loader"),i=t.querySelector("img.add"),s=t.querySelector("img.in-menu");e==null||e.classList.remove("hidden"),i==null||i.classList.add("hidden"),s==null||s.classList.add("hidden")}updateDOM(){if(this.recipeId!==this.updatedRecipeId)return;const t=this.querySelector(".mealz-recipe-card__counter p");t&&(t.innerHTML=this.guests.toString(),this.updatedRecipeId&&this.guests&&this.recipePricing&&this.recipePricing.fetchPrice(this.posId,this.guests,this.recipeId))}updateGuestDisplay(){const t=this.querySelector(".mealz-recipe-card__counter p");t&&this.guests&&(t.innerHTML=this.guests.toString())}sendAnalyticsShow(){o.getInstance().trackRecipeShow(this.recipeId,this.analyticsPath,this.categoryId)}};g=C([w("mealz-recipe-card")],g);
1
+ import{N as w,m as n}from"../assets/no-shadow-element-l9trQfcI.js";import{V as m}from"../assets/viewport-listener-RTCBatPv.js";import{t as v}from"../assets/custom-element-BhZVzxrc.js";import{h as y}from"../assets/session-handler-BnuvphmJ.js";import{f as d}from"../assets/filter-CEeE8t7I.js";import{s as b}from"../assets/switchMap-D8q0hRYH.js";import{c as L}from"../assets/combineLatest-P4GAEtOW.js";import{t as l}from"../assets/take-DO4w5a1Y.js";import"../assets/debounceTime-Bo5F3ux-.js";import"../assets/async-D3oCs_PQ.js";import"../assets/OperatorSubscriber-EGuECN6g.js";import"../assets/innerFrom-CfKCbnvr.js";import"../assets/from-jBe2xW5a.js";import"../assets/executeSchedule-DfyZaGAH.js";import"../assets/mapOneOrManyArgs-DNd_tswl.js";import"../assets/map-C4rf5Jbc.js";import"../assets/empty-Cv-4tfKR.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(e,i,s){const r=Date.now(),a=!this.trackedRecipes.get(e),p=this.hasScrolled;!a&&!p||(this.trackedRecipes.size>=this.MAX_RECIPES&&this.cleanOldRecipes(),this.trackedRecipes.set(e,r),window.mealzInternal.analytics.sendEvent("recipe.show",i,{recipe_id:e,category_id:s}))}cleanOldRecipes(){const i=Date.now()-3600*1e3;for(const[s,r]of this.trackedRecipes.entries())r<i&&this.trackedRecipes.delete(s)}clearAllRecipes(){this.trackedRecipes.clear()}destroy(){this.scrollListener&&(window.removeEventListener("scroll",this.scrollListener),this.scrollListener=null),window.removeEventListener("beforeunload",this.handlePageUnload),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.trackedRecipes.clear(),this.hasScrolled=!1,o.instance=null}setupScrollListener(){let e;this.scrollListener=()=>{this.hasScrolled=!0,clearTimeout(e),e=window.setTimeout(()=>{this.hasScrolled=!1},2e3)},window.addEventListener("scroll",this.scrollListener)}startAutoCleanup(){this.cleanupInterval=window.setInterval(()=>{this.cleanOldRecipes()},this.CLEANUP_INTERVAL)}setupPageUnloadListener(){window.addEventListener("beforeunload",this.handlePageUnload)}}var C=Object.getOwnPropertyDescriptor,P=(t,e,i,s)=>{for(var r=s>1?void 0:s?C(e,i):e,c=t.length-1,a;c>=0;c--)(a=t[c])&&(r=a(r)||r);return r};let g=class extends w{constructor(){super(...arguments),this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.getInitialStatus(),this.listenInView(),this.setupSubscriptions()}setupSubscriptions(){this.subscriptions.push(n.basket.recipePricesInBasket$().subscribe(t=>{const e=t.find(i=>i.id===this.recipeId);e?(this.inBasket=!0,this.updatedRecipeId=e.id,this.updateDOM()):this.inBasket=!1}),this.setupPlannerMenuSubscription(),this.setupGuestUpdatesSubscription())}setupPlannerMenuSubscription(){return n.planner.menuPrice$.pipe(d(()=>this.planner&&!!this.recipeId),b(()=>L([n.planner.isRecipeInMenu$(this.recipeId).pipe(l(1)),n.planner.getGuestsForRecipe(this.recipeId).pipe(l(1))])),d(([t,e])=>t&&typeof e=="number"&&e>0)).subscribe(([t,e])=>{this.guests=e,this.updateGuestDisplay()})}setupGuestUpdatesSubscription(){return n.recipes.guestsUpdated().pipe(d(()=>!!this.recipeId)).subscribe(({guests:t,recipeId:e})=>{e===this.recipeId&&this.inBasket&&(this.guests=t,this.updateGuestDisplay(),this.recipePricing&&this.recipePricing.fetchPrice(this.posId,this.guests,this.recipeId))})}disconnectedCallback(){var e,i;super.disconnectedCallback(),this.subscriptions.forEach(s=>s.unsubscribe()),(e=this.priceViewportObserver)==null||e.disconnect(),(i=this.analyticsViewportObserver)==null||i.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.priceViewportObserver=new m(this,()=>{this.handleIntersection()}),this.analyticsViewportObserver=new m(this,()=>{this.sendAnalyticsShow()},{threshold:.8,debounce:1e3})}handleIntersection(){this.recipePricing=this.querySelector("mealz-recipe-pricing"),this.recipePricing&&(this.recipePricing.fetchPrice(this.posId,this.guests,this.recipeId),this.priceViewportObserver.disconnect())}getInitialStatus(){var h;const t=(h=this.attributes["starting-data"])==null?void 0:h.value;if(!t){this.inBasket=!1;return}const{id:e,guests:i,posId:s,path:r,categoryId:c,initialTabIndex:a,planner:p,sessionId:S,recipe:f,inBasket:I}=JSON.parse(t);if(this.posId=s,this.recipeId=e,this.analyticsPath=r,this.categoryId=c,this.guests=i,this.initialTabIndex=a,this.planner=p,this.recipe=f,this.inBasket=I||!1,y(S),!i){this.guests=this.getGuests();const u=this.querySelector(".mealz-recipe-card__counter p");u&&(u.innerHTML=this.guests.toString())}this.removeAttribute("starting-data")}openDetails(){n.recipes.openDetails(this.recipeId,this.guests,this.initialTabIndex,this.analyticsPath,this.planner,this.categoryId)}recipeCardCtaClick(){this.planner?this.handleCTAClickForPlanner():this.openDetails()}getGuests(){const t=localStorage.getItem("_miam/preferences/guests");if(t){const e=+t;if(!isNaN(e)&&e>0&&e<=30)return e}return 4}handleCTAClickForPlanner(){const t=this.querySelector("mealz-recipe-card-cta");if(!t)return;const e=t.getStatus();e==="add"?(this.showAddingToMenuState(t),this.addRecipeToMenu()):e==="in-menu"&&(this.showRemovingFromMenuState(t),this.removeRecipeFromMenu())}addRecipeToMenu(){var s,r;const t=document.querySelector("mealz-planner-recipe-suggestion"),e=(t==null?void 0:t.guests)||this.guests;t.recipeId=this.recipeId;const i=document.querySelector("mealz-planner-current-menu");if(!i){const c=(r=(s=n.recipes)==null?void 0:s.productsPlannerByCategory$)==null?void 0:r.value,a=(c==null?void 0:c.toPickProducts)||[];n.planner.addRecipeToMenu(this.recipeId,e,!!n.pos.currentPos().value,a).pipe(l(1)).subscribe(()=>{this.removeRecipeCardLoader("add");const p=document.querySelector("mealz-planner-recipe-list");p==null||p.addRecipeCardToList(this.recipeId)});return}i.addRecipe(this.recipeId,e).subscribe(()=>{this.removeRecipeCardLoader("add"),t.addAndSelectNewSuggestion(this.recipe)})}removeRecipeFromMenu(){const t=document.querySelector("mealz-planner-recipe-suggestion");if(!t){n.planner.removeRecipeFromMenu(this.recipeId).pipe(l(1)).subscribe(()=>this.removeRecipeCardLoader("remove"));return}t.removeRecipe(this.recipeId).subscribe(()=>this.removeRecipeCardLoader("remove"))}showRemovingFromMenuState(t){const e=this.querySelector(".mealz-recipe-card-cta__loader"),i=t.querySelector("img.in-menu");e==null||e.classList.remove("hidden"),i==null||i.classList.add("hidden")}removeRecipeCardLoader(t){const e=this.querySelector("mealz-recipe-card-cta");if(!e)return;const i=this.querySelector(".mealz-recipe-card-cta"),s=this.querySelector(".mealz-recipe-card-cta__loader"),r=e.querySelector("img.add"),c=e.querySelector("img.in-menu");t==="add"?(s==null||s.classList.add("hidden"),i==null||i.classList.replace("primary","secondary"),c==null||c.classList.remove("hidden"),e.updateStatus("in-menu")):(s==null||s.classList.add("hidden"),i==null||i.classList.replace("secondary","primary"),r==null||r.classList.remove("hidden"),e.updateStatus("add"))}showAddingToMenuState(t){const e=this.querySelector(".mealz-recipe-card-cta__loader"),i=t.querySelector("img.add"),s=t.querySelector("img.in-menu");e==null||e.classList.remove("hidden"),i==null||i.classList.add("hidden"),s==null||s.classList.add("hidden")}updateDOM(){if(this.recipeId!==this.updatedRecipeId)return;const t=this.querySelector(".mealz-recipe-card__counter p");t&&(t.innerHTML=this.guests.toString(),this.updatedRecipeId&&this.guests&&this.recipePricing&&this.recipePricing.fetchPrice(this.posId,this.guests,this.recipeId))}updateGuestDisplay(){const t=this.querySelector(".mealz-recipe-card__counter p");t&&this.guests&&(t.innerHTML=this.guests.toString())}sendAnalyticsShow(){o.getInstance().trackRecipeShow(this.recipeId,this.analyticsPath,this.categoryId)}};g=P([v("mealz-recipe-card")],g);
@@ -19,7 +19,7 @@ import"../drawer/drawer.min.js";import"../recipe-pricing/recipe-pricing.min.js";
19
19
  @click=${()=>this.addToMenu()}
20
20
  >
21
21
  <span class="mealz-ds-text size-s weight-xl">Ajouter au menu</span>
22
- <img alt="check icon" src="https://storage.googleapis.com/assets.miam.tech/generic/icons/Checkmark.svg">
22
+ <img src="https://storage.googleapis.com/assets.miam.tech/generic/icons/Pot-add_white.svg" alt="add to menu icon" />
23
23
  </button>
24
24
  `:s`
25
25
  <button
@@ -1 +1 @@
1
- import{O as z,N as A,B as C,m as c}from"../assets/no-shadow-element-l9trQfcI.js";import{P as _}from"../assets/price-BoM226Kw.js";import{t as D}from"../assets/custom-element-BhZVzxrc.js";import{f as P}from"../assets/filter-CEeE8t7I.js";import{a as k,b as w,c as L}from"../assets/combineLatest-P4GAEtOW.js";import{s as O}from"../assets/skipWhile-DuMEda_n.js";import{s as g}from"../assets/switchMap-D8q0hRYH.js";import{i as F}from"../assets/innerFrom-CfKCbnvr.js";import{b as E}from"../assets/from-jBe2xW5a.js";import{c as R}from"../assets/OperatorSubscriber-EGuECN6g.js";import{m as U}from"../assets/mapOneOrManyArgs-DNd_tswl.js";import{o as f}from"../assets/of-BTA69Qgj.js";import{t as y}from"../assets/take-DO4w5a1Y.js";import{t as $}from"../assets/tap-BCGrRktL.js";import"../assets/executeSchedule-DfyZaGAH.js";import"../assets/map-C4rf5Jbc.js";import"../assets/empty-Cv-4tfKR.js";function B(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var r=E(e),t=k(e),s=t.args,a=t.keys,l=new z(function(h){var o=s.length;if(!o){h.complete();return}for(var n=new Array(o),u=o,v=o,I=function(b){var m=!1;F(s[b]).subscribe(R(h,function(M){m||(m=!0,v--),n[b]=M},function(){return u--},void 0,function(){(!u||!m)&&(v||h.next(a?w(a,n):n),h.complete())}))},d=0;d<o;d++)I(d)});return r?l.pipe(U(r)):l}class p{constructor(){this.priceMemorized=new Map,this.displayedPrices=new Set,this.cleanupInterval=null,this.MAX_MEMO_SIZE=500,this.CLEANUP_INTERVAL=600*1e3,this.handlePageUnload=()=>{this.destroy()},this.startAutoCleanup(),this.setupPageUnloadListener()}static getInstance(){return p.instance||(p.instance=new p),p.instance}getMemorizedPrice(i,r){const t=`${i}-${r}`;return this.priceMemorized.get(t)}memorizedPrice(i,r,t){const s=`${i}-${r}`;this.priceMemorized.size>=this.MAX_MEMO_SIZE&&this.cleanOldPrices(),this.priceMemorized.set(s,{price:t,guests:r})}isPriceDisplayed(i,r){const t=`${i}-${r}`;return this.displayedPrices.has(t)}markPriceAsDisplayed(i,r){const t=`${i}-${r}`;this.displayedPrices.add(t)}cleanOldPrices(){this.priceMemorized.size>this.MAX_MEMO_SIZE*.8&&Array.from(this.priceMemorized.entries()).slice(0,Math.floor(this.priceMemorized.size*.3)).forEach(([t])=>{this.priceMemorized.delete(t),this.displayedPrices.delete(t)})}clearAllPrices(){this.priceMemorized.clear(),this.displayedPrices.clear()}destroy(){window.removeEventListener("beforeunload",this.handlePageUnload),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.priceMemorized.clear(),this.displayedPrices.clear(),p.instance=null}startAutoCleanup(){this.cleanupInterval=window.setInterval(()=>{this.cleanOldPrices()},this.CLEANUP_INTERVAL)}setupPageUnloadListener(){window.addEventListener("beforeunload",this.handlePageUnload)}}var V=Object.getOwnPropertyDescriptor,N=(e,i,r,t)=>{for(var s=t>1?void 0:t?V(i,r):i,a=e.length-1,l;a>=0;a--)(l=e[a])&&(s=l(s)||s);return s};let S=class extends A{constructor(){super(...arguments),this.formattedPrice="",this.rendered=new C(!1),this.inBasket=!1,this.planner=!1,this.lastPlannerPrice=0,this.plannerPriceSubscription=null,this.subscriptions=[],this.priceService=_.getInstance()}connectedCallback(){super.connectedCallback(),this.classList.add("re-rendering"),this.getInitialStatus(),this.setupSubscriptions(),requestAnimationFrame(()=>{this.classList.remove("re-rendering")})}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.plannerPriceSubscription&&(this.plannerPriceSubscription.unsubscribe(),this.plannerPriceSubscription=null)}setupSubscriptions(){this.subscriptions.push(c.recipes.guestsUpdated().subscribe(e=>{e.recipeId===this.recipeId&&(this.serves=e.guests,this.recalculatePrice())}),this.listenToBasket(),this.setupDisplayedRecipeSubscription(),this.setupGuestUpdatesSubscription(),this.setupMenuPriceSubscription())}setupDisplayedRecipeSubscription(){return c.recipes.displayedRecipe$.pipe(P(()=>this.planner&&!!this.recipeId)).subscribe(e=>{var i;((i=e==null?void 0:e.recipe)==null?void 0:i.id)===this.recipeId?(this.lastDisplayedRecipeId=this.recipeId,this.trackPlannerRecipePrice(),this.updateGuestCountFromMenu()):!(e!=null&&e.recipe)&&this.lastDisplayedRecipeId===this.recipeId&&(this.updatePriceFromCapturedPlannerPrice(),this.lastDisplayedRecipeId=null,this.plannerPriceSubscription&&(this.plannerPriceSubscription.unsubscribe(),this.plannerPriceSubscription=null))})}setupGuestUpdatesSubscription(){return c.recipes.guestsUpdated().pipe(P(()=>this.planner&&!!this.recipeId)).subscribe(({guests:e,recipeId:i})=>{i===this.recipeId&&!this.planner&&(this.serves=e)})}setupMenuPriceSubscription(){return c.planner.menuPrice$.pipe(P(()=>this.planner&&!!this.recipeId)).subscribe(e=>{if(this.updateGuestCountFromMenu(),this.lastPlannerPrice>0&&this.serves>0){const i=this.lastPlannerPrice/this.serves;this.applyCurrencyDisplay(i.toFixed(2))}})}fetchPrice(e,i,r){var h,o;const t=(h=this.recipePricing)==null?void 0:h.querySelector(".mealz-recipe-pricing__wrapper"),s=(o=this.attributes["starting-data"])==null?void 0:o.value;if(!s){t==null||t.classList.replace("active","hidden");return}if(s){const n=JSON.parse(s);if(this.removeAttribute("starting-data"),n.pricePerServe!==null||n.inBasket){t==null||t.classList.replace("hidden","active"),this.applyCurrencyDisplay(n.pricePerServe),this.inBasket=n.inBasket;return}}const a=p.getInstance(),l=a.getMemorizedPrice(r,i);if(l){requestAnimationFrame(()=>{this.applyCurrencyDisplay(l.price),a.markPriceAsDisplayed(r,i)});return}t==null||t.classList.replace("active","hidden"),this.subscriptions.push(c.recipes.fetchPricing(r,e,"DEFAULT",i).subscribe(n=>{if(n!=null&&n.price_per_serve){const u=p.getInstance();u.memorizedPrice(r,i,n.price_per_serve),requestAnimationFrame(()=>{t==null||t.classList.replace("hidden","active"),this.applyCurrencyDisplay(n.price_per_serve),u.markPriceAsDisplayed(r,i)})}}))}render(){this.recipePricing=this.querySelector(".mealz-recipe-pricing"),this.recipePricing&&(this.recipeId&&this.pricePerServe&&p.getInstance().isPriceDisplayed(this.recipeId,this.serves)&&requestAnimationFrame(()=>{this.applyCurrencyDisplay(this.pricePerServe)}),this.rendered.next(!0),this.getInitialStatus())}getInitialStatus(){var a;const e=(a=this.attributes["starting-data"])==null?void 0:a.value;if(!e)return;const{recipeId:i,pricePerServe:r,serves:t,planner:s}=JSON.parse(e);this.recipeId=i,this.pricePerServe=(r==null?void 0:r.toString())??null,this.serves=t,this.planner=s||!1,this.applyCurrencyDisplay(this.pricePerServe),this.updateDOM()}applyCurrencyDisplay(e){const i=parseFloat(e);isNaN(i)||(this.formattedPrice=i.toLocaleString("fr-FR",{minimumFractionDigits:2,maximumFractionDigits:2}),this.updateDOM())}showPrice(){var r,t;const e=(r=this.recipePricing)==null?void 0:r.querySelector(".mealz-recipe-pricing__loading"),i=(t=this.recipePricing)==null?void 0:t.querySelector(".mealz-recipe-pricing__wrapper");e==null||e.classList.replace("active","hidden"),i==null||i.classList.replace("hidden","active")}updateDOM(){var i;const e=(i=this.recipePricing)==null?void 0:i.querySelector(".mealz-recipe-pricing__wrapper__price");e&&(e.innerHTML=this.formattedPrice+" €",this.showPrice())}listenToBasket(){return L([this.rendered,c.basket.recipePricesInBasket$()]).pipe(O(([e,i])=>!e||!i),g(([,e])=>B([f(e),c.pos.currentPos().pipe(y(1))])),g(([e,i])=>(this.recipePricingValue=e.find(r=>r.id===this.recipeId),this.recipePricingValue?(this.inBasket=!0,this.applyCurrencyDisplay((+this.recipePricingValue.price/this.serves).toString()),f(null)):i&&this.inBasket?c.recipes.fetchPricing(this.recipeId,i.id,"DEFAULT",this.serves).pipe($(r=>{r!=null&&r.price_per_serve&&(this.applyCurrencyDisplay(r.price_per_serve),this.inBasket=!1)})):(this.formattedPrice=this.pricePerServe,f(null))))).subscribe(()=>{this.showPrice()})}recalculatePrice(){if(this.recipePricingValue){const e=(parseFloat(this.recipePricingValue.price)/this.recipePricingValue.guests).toString();requestAnimationFrame(()=>{this.applyCurrencyDisplay(e);const i=p.getInstance();i.memorizedPrice(this.recipeId,this.recipePricingValue.guests,e),i.markPriceAsDisplayed(this.recipeId,this.recipePricingValue.guests)})}}trackPlannerRecipePrice(){this.plannerPriceSubscription&&(this.plannerPriceSubscription.unsubscribe(),this.plannerPriceSubscription=null),this.plannerPriceSubscription=c.planner.plannerRecipePrice$.subscribe(e=>{e>0&&(this.lastPlannerPrice=e)})}updateGuestCountFromMenu(){!this.planner||!this.recipeId||c.planner.getGuestsForRecipe(this.recipeId).pipe(y(1)).subscribe(e=>{e&&e>0&&(this.serves=e)})}updatePriceFromCapturedPlannerPrice(){!this.planner||!this.recipeId||c.planner.isRecipeInMenu$(this.recipeId).pipe(y(1)).subscribe(e=>{if(e&&this.lastPlannerPrice>0){if(this.serves>0){const i=this.lastPlannerPrice/this.serves;this.applyCurrencyDisplay(i.toFixed(2))}}else this.pricePerServe&&this.applyCurrencyDisplay(this.pricePerServe)})}};S=N([D("mealz-recipe-pricing")],S);
1
+ import{O as D,N as z,B as A,m as c}from"../assets/no-shadow-element-l9trQfcI.js";import{t as C}from"../assets/custom-element-BhZVzxrc.js";import{f as P}from"../assets/filter-CEeE8t7I.js";import{a as _,b as k,c as w}from"../assets/combineLatest-P4GAEtOW.js";import{s as O}from"../assets/skipWhile-DuMEda_n.js";import{s as g}from"../assets/switchMap-D8q0hRYH.js";import{i as L}from"../assets/innerFrom-CfKCbnvr.js";import{b as F}from"../assets/from-jBe2xW5a.js";import{c as E}from"../assets/OperatorSubscriber-EGuECN6g.js";import{m as R}from"../assets/mapOneOrManyArgs-DNd_tswl.js";import{o as f}from"../assets/of-BTA69Qgj.js";import{t as y}from"../assets/take-DO4w5a1Y.js";import{t as $}from"../assets/tap-BCGrRktL.js";import"../assets/executeSchedule-DfyZaGAH.js";import"../assets/map-C4rf5Jbc.js";import"../assets/empty-Cv-4tfKR.js";function B(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var r=F(e),s=_(e),t=s.args,a=s.keys,l=new D(function(h){var o=t.length;if(!o){h.complete();return}for(var n=new Array(o),u=o,b=o,I=function(v){var m=!1;L(t[v]).subscribe(E(h,function(M){m||(m=!0,b--),n[v]=M},function(){return u--},void 0,function(){(!u||!m)&&(b||h.next(a?k(a,n):n),h.complete())}))},d=0;d<o;d++)I(d)});return r?l.pipe(R(r)):l}class p{constructor(){this.priceMemorized=new Map,this.displayedPrices=new Set,this.cleanupInterval=null,this.MAX_MEMO_SIZE=500,this.CLEANUP_INTERVAL=600*1e3,this.handlePageUnload=()=>{this.destroy()},this.startAutoCleanup(),this.setupPageUnloadListener()}static getInstance(){return p.instance||(p.instance=new p),p.instance}getMemorizedPrice(i,r){const s=`${i}-${r}`;return this.priceMemorized.get(s)}memorizedPrice(i,r,s){const t=`${i}-${r}`;this.priceMemorized.size>=this.MAX_MEMO_SIZE&&this.cleanOldPrices(),this.priceMemorized.set(t,{price:s,guests:r})}isPriceDisplayed(i,r){const s=`${i}-${r}`;return this.displayedPrices.has(s)}markPriceAsDisplayed(i,r){const s=`${i}-${r}`;this.displayedPrices.add(s)}cleanOldPrices(){this.priceMemorized.size>this.MAX_MEMO_SIZE*.8&&Array.from(this.priceMemorized.entries()).slice(0,Math.floor(this.priceMemorized.size*.3)).forEach(([s])=>{this.priceMemorized.delete(s),this.displayedPrices.delete(s)})}clearAllPrices(){this.priceMemorized.clear(),this.displayedPrices.clear()}destroy(){window.removeEventListener("beforeunload",this.handlePageUnload),this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.priceMemorized.clear(),this.displayedPrices.clear(),p.instance=null}startAutoCleanup(){this.cleanupInterval=window.setInterval(()=>{this.cleanOldPrices()},this.CLEANUP_INTERVAL)}setupPageUnloadListener(){window.addEventListener("beforeunload",this.handlePageUnload)}}var V=Object.getOwnPropertyDescriptor,N=(e,i,r,s)=>{for(var t=s>1?void 0:s?V(i,r):i,a=e.length-1,l;a>=0;a--)(l=e[a])&&(t=l(t)||t);return t};let S=class extends z{constructor(){super(...arguments),this.formattedPrice="",this.rendered=new A(!1),this.inBasket=!1,this.planner=!1,this.lastPlannerPrice=0,this.plannerPriceSubscription=null,this.lastAppliedPrice="",this.priceDisplayed=!1,this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.classList.add("re-rendering"),this.getInitialStatus(),this.setupSubscriptions(),requestAnimationFrame(()=>{this.classList.remove("re-rendering")})}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe()),this.plannerPriceSubscription&&(this.plannerPriceSubscription.unsubscribe(),this.plannerPriceSubscription=null)}setupSubscriptions(){this.subscriptions.push(c.recipes.guestsUpdated().subscribe(e=>{e.recipeId===this.recipeId&&(this.serves=e.guests,this.recalculatePrice())}),this.listenToBasket(),this.setupDisplayedRecipeSubscription(),this.setupGuestUpdatesSubscription(),this.setupMenuPriceSubscription())}setupDisplayedRecipeSubscription(){return c.recipes.displayedRecipe$.pipe(P(()=>this.planner&&!!this.recipeId)).subscribe(e=>{var i;((i=e==null?void 0:e.recipe)==null?void 0:i.id)===this.recipeId?(this.lastDisplayedRecipeId=this.recipeId,this.trackPlannerRecipePrice(),this.updateGuestCountFromMenu()):!(e!=null&&e.recipe)&&this.lastDisplayedRecipeId===this.recipeId&&(this.updatePriceFromCapturedPlannerPrice(),this.lastDisplayedRecipeId=null,this.plannerPriceSubscription&&(this.plannerPriceSubscription.unsubscribe(),this.plannerPriceSubscription=null))})}setupGuestUpdatesSubscription(){return c.recipes.guestsUpdated().pipe(P(()=>!!this.recipeId)).subscribe(({guests:e,recipeId:i})=>{i===this.recipeId&&(this.serves=e,this.recalculatePrice())})}setupMenuPriceSubscription(){return c.planner.menuPrice$.pipe(P(()=>this.planner&&!!this.recipeId)).subscribe(e=>{if(this.updateGuestCountFromMenu(),this.lastPlannerPrice>0&&this.serves>0){const i=this.lastPlannerPrice/this.serves;this.applyCurrencyDisplay(i.toFixed(2))}})}fetchPrice(e,i,r){var h,o;const s=(h=this.recipePricing)==null?void 0:h.querySelector(".mealz-recipe-pricing__wrapper"),t=(o=this.attributes["starting-data"])==null?void 0:o.value;if(!t){if(this.priceDisplayed)return;s==null||s.classList.replace("active","hidden"),this.priceDisplayed=!1;return}if(t){const n=JSON.parse(t);if(this.removeAttribute("starting-data"),n.pricePerServe!==null||n.inBasket){s==null||s.classList.replace("hidden","active"),this.applyCurrencyDisplay(n.pricePerServe),this.inBasket=n.inBasket;return}}const a=p.getInstance(),l=a.getMemorizedPrice(r,i);if(l){requestAnimationFrame(()=>{this.applyCurrencyDisplay(l.price),a.markPriceAsDisplayed(r,i)});return}s==null||s.classList.replace("active","hidden"),this.subscriptions.push(c.recipes.fetchPricing(r,e,i).subscribe(n=>{if(n!=null&&n.price_per_serve){const u=p.getInstance();u.memorizedPrice(r,i,n.price_per_serve),requestAnimationFrame(()=>{s==null||s.classList.replace("hidden","active"),this.applyCurrencyDisplay(n.price_per_serve),u.markPriceAsDisplayed(r,i)})}}))}render(){this.recipePricing=this.querySelector(".mealz-recipe-pricing"),this.recipePricing&&(this.recipeId&&this.pricePerServe&&p.getInstance().isPriceDisplayed(this.recipeId,this.serves)&&requestAnimationFrame(()=>{this.applyCurrencyDisplay(this.pricePerServe)}),this.rendered.next(!0),this.getInitialStatus())}getInitialStatus(){var a;const e=(a=this.attributes["starting-data"])==null?void 0:a.value;if(!e)return;const{recipeId:i,pricePerServe:r,serves:s,planner:t}=JSON.parse(e);this.recipeId=i,this.pricePerServe=(r==null?void 0:r.toString())??null,this.serves=s,this.planner=t||!1,this.applyCurrencyDisplay(this.pricePerServe)}applyCurrencyDisplay(e){if(this.lastAppliedPrice===e)return;const i=parseFloat(e);isNaN(i)||(this.lastAppliedPrice=e,this.formattedPrice=i.toLocaleString("fr-FR",{minimumFractionDigits:2,maximumFractionDigits:2}),this.updateDOM())}showPrice(){var r,s;if(this.priceDisplayed)return;const e=(r=this.recipePricing)==null?void 0:r.querySelector(".mealz-recipe-pricing__loading"),i=(s=this.recipePricing)==null?void 0:s.querySelector(".mealz-recipe-pricing__wrapper");e==null||e.classList.replace("active","hidden"),i==null||i.classList.replace("hidden","active"),this.priceDisplayed=!0}updateDOM(){var i;const e=(i=this.recipePricing)==null?void 0:i.querySelector(".mealz-recipe-pricing__wrapper__price");e&&(e.innerHTML=this.formattedPrice+" €",this.showPrice())}listenToBasket(){return w([this.rendered,c.basket.recipePricesInBasket$()]).pipe(O(([e,i])=>!e||!i),g(([,e])=>B([f(e),c.pos.currentPos().pipe(y(1))])),g(([e,i])=>(this.recipePricingValue=e.find(r=>r.id===this.recipeId),this.recipePricingValue?(this.inBasket=!0,this.applyCurrencyDisplay((+this.recipePricingValue.price/this.serves).toString()),f(null)):i&&this.inBasket?c.recipes.fetchPricing(this.recipeId,i.id,this.serves).pipe($(r=>{r!=null&&r.price_per_serve&&(this.applyCurrencyDisplay(r.price_per_serve),this.inBasket=!1)})):(this.formattedPrice=this.pricePerServe,f(null))))).subscribe(()=>{this.priceDisplayed||(this.showPrice(),this.priceDisplayed=!0)})}recalculatePrice(){if(this.recipePricingValue){const e=(parseFloat(this.recipePricingValue.price)/this.recipePricingValue.guests).toString();requestAnimationFrame(()=>{this.applyCurrencyDisplay(e);const i=p.getInstance();i.memorizedPrice(this.recipeId,this.recipePricingValue.guests,e),i.markPriceAsDisplayed(this.recipeId,this.recipePricingValue.guests)})}}trackPlannerRecipePrice(){this.plannerPriceSubscription&&(this.plannerPriceSubscription.unsubscribe(),this.plannerPriceSubscription=null),this.plannerPriceSubscription=c.planner.plannerRecipePrice$.subscribe(e=>{e>0&&(this.lastPlannerPrice=e)})}updateGuestCountFromMenu(){!this.planner||!this.recipeId||c.planner.getGuestsForRecipe(this.recipeId).pipe(y(1)).subscribe(e=>{e&&e>0&&(this.serves=e)})}updatePriceFromCapturedPlannerPrice(){!this.planner||!this.recipeId||c.planner.isRecipeInMenu$(this.recipeId).pipe(y(1)).subscribe(e=>{if(e&&this.lastPlannerPrice>0){if(this.serves>0){const i=this.lastPlannerPrice/this.serves;this.applyCurrencyDisplay(i.toFixed(2))}}else this.pricePerServe&&this.applyCurrencyDisplay(this.pricePerServe)})}};S=N([C("mealz-recipe-pricing")],S);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mealz-components",
3
3
  "type": "module",
4
- "version": "2.0.0-beta.4",
4
+ "version": "2.0.0-beta.6",
5
5
  "main": "./dist/mealz-components.js",
6
6
  "module": "./dist/mealz-components.js",
7
7
  "scripts": {