mealz-components 2.2.0 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/dist/accordion/accordion.css +1 -1
  2. package/dist/assets/{OperatorSubscriber-B37s2U6v.js → OperatorSubscriber-DF1TYu__.js} +1 -1
  3. package/dist/assets/accordion-la5mVBfL.js +19 -0
  4. package/dist/assets/{async-guWcMFmJ.js → async-D5WN8Wfc.js} +1 -1
  5. package/dist/assets/{combineLatest-qLpwa5de.js → combineLatest-BN0_WcEG.js} +1 -1
  6. package/dist/assets/{debounceTime-cu8WlLF0.js → debounceTime-D7R6Z3Am.js} +1 -1
  7. package/dist/assets/delay-wUm-cx7a.js +1 -0
  8. package/dist/assets/{distinctUntilChanged-DmoT2we5.js → distinctUntilChanged-VvZTmHoN.js} +1 -1
  9. package/dist/assets/empty-Bs9kqCuA.js +1 -0
  10. package/dist/assets/{executeSchedule-Dqc6shOu.js → executeSchedule-C0acKsif.js} +1 -1
  11. package/dist/assets/{filter-BjN-BbQD.js → filter-DQ4vwAGj.js} +1 -1
  12. package/dist/assets/{from-CEPL7XsE.js → from-BTlWkhKh.js} +1 -1
  13. package/dist/assets/{innerFrom-D8hyVDmo.js → innerFrom-FMZwm2mb.js} +1 -1
  14. package/dist/assets/{map-D6X2syNu.js → map-DHslluWD.js} +1 -1
  15. package/dist/assets/mapOneOrManyArgs-Bdu6mo6S.js +1 -0
  16. package/dist/assets/merge-tdU3EgEI.js +1 -0
  17. package/dist/assets/mergeAll-DTkL1sF8.js +1 -0
  18. package/dist/assets/{mergeMap-CX64J-ac.js → mergeMap-g-JGW99j.js} +1 -1
  19. package/dist/assets/{no-shadow-element-D4NOg0uW.js → no-shadow-element-Dz9jgDtr.js} +7 -7
  20. package/dist/assets/{of-CzgrATec.js → of-hd4MpK5g.js} +1 -1
  21. package/dist/assets/{price-DdIbni0N.js → price-CHipCs2z.js} +1 -1
  22. package/dist/assets/{product-card-CcuyZyd6.js → product-card-c_0I2Lp_.js} +14 -14
  23. package/dist/assets/{promotion-badge-TYkTBrOQ.js → promotion-badge-CzwsPJJq.js} +3 -3
  24. package/dist/assets/{property-BXNy7Yd-.js → property-Bx8Yvr4_.js} +1 -1
  25. package/dist/assets/skip-BuAl4dWz.js +1 -0
  26. package/dist/assets/{skipWhile-B_4e7jSH.js → skipWhile-BzDgmir5.js} +1 -1
  27. package/dist/assets/{state-b8IyfZUU.js → state-C5zM4-Pq.js} +1 -1
  28. package/dist/assets/{switchMap-BYsewftM.js → switchMap-6Z80ObHE.js} +1 -1
  29. package/dist/assets/{take-ujVMxFwY.js → take-ByPtGQky.js} +1 -1
  30. package/dist/assets/{tap-DwBV-qFl.js → tap-K_D6lo97.js} +1 -1
  31. package/dist/assets/{timer-D3X0vtFO.js → timer-C3uKg-qK.js} +1 -1
  32. package/dist/assets/{unsafe-html-C8GMyVYZ.js → unsafe-html-Bv_ydUHb.js} +1 -1
  33. package/dist/assets/{viewport-listener-BRwa66-G.js → viewport-listener-DrFhSZNW.js} +1 -1
  34. package/dist/basket-transfer-modal/basket-transfer-modal.min.js +12 -13
  35. package/dist/catalog/basket-preview/basket-preview-product/basket-preview-product.css +1 -1
  36. package/dist/catalog/basket-preview/basket-preview.css +1 -1
  37. package/dist/catalog/basket-preview/basket-preview.min.js +48 -43
  38. package/dist/catalog/catalog-category/catalog-category.min.js +1 -1
  39. package/dist/catalog/catalog-favorites/catalog-favorites.min.js +1 -1
  40. package/dist/catalog/catalog-history/catalog-history.min.js +1 -1
  41. package/dist/catalog/catalog-home/catalog-home.min.js +1 -1
  42. package/dist/catalog/catalog-list/catalog-list.min.js +1 -1
  43. package/dist/catalog/catalog-load-more.min.js +1 -1
  44. package/dist/catalog/catalog-tabs/catalog-tabs.min.js +1 -1
  45. package/dist/catalog/catalog-toolbar/catalog-toolbar.min.js +1 -1
  46. package/dist/catalog/my-meals-button/my-meals-button.min.js +1 -1
  47. package/dist/counter/counter.min.js +1 -1
  48. package/dist/drawer/drawer.min.js +1 -1
  49. package/dist/drawer-view-swapper/drawer-view-swapper.css +1 -1
  50. package/dist/drawer-view-swapper/drawer-view-swapper.min.js +24 -20
  51. package/dist/history-drawer/history-drawer.min.js +1 -1
  52. package/dist/history-order/history-order.min.js +1 -1
  53. package/dist/history-order-expanded/history-order-expanded.min.js +1 -1
  54. package/dist/last-order-badge/last-order-badge.min.js +2 -2
  55. package/dist/last-order-modal/last-order-modal.min.js +1 -1
  56. package/dist/like-button/like-button.min.js +1 -1
  57. package/dist/modal/modal.min.js +1 -1
  58. package/dist/no-supplier-add-to-cart-cta/no-supplier-add-to-cart-cta.css +1 -0
  59. package/dist/no-supplier-add-to-cart-cta/no-supplier-add-to-cart-cta.min.js +7 -0
  60. package/dist/onboarding/onboarding.min.js +2 -2
  61. package/dist/order-again/order-again.min.js +1 -1
  62. package/dist/planner/helpers/open-onboarding-modal.min.js +1 -1
  63. package/dist/planner/planner-abandon-modal/planner-abandon-modal.min.js +1 -1
  64. package/dist/planner/planner-budget-edit-modal/planner-budget-edit-modal.css +1 -1
  65. package/dist/planner/planner-budget-edit-modal/planner-budget-edit-modal.min.js +6 -6
  66. package/dist/planner/planner-budget-gauge/planner-budget-gauge.css +1 -1
  67. package/dist/planner/planner-budget-gauge/planner-budget-gauge.min.js +1 -1
  68. package/dist/planner/planner-catalog/planner-catalog.min.js +2 -2
  69. package/dist/planner/planner-current-menu/planner-current-menu.min.js +1 -1
  70. package/dist/planner/planner-current-menu-modal/planner-current-menu-modal.min.js +1 -1
  71. package/dist/planner/planner-dashboard/planner-dashboard.min.js +1 -1
  72. package/dist/planner/planner-form/planner-form.min.js +1 -1
  73. package/dist/planner/planner-menu-option/planner-menu-option.min.js +1 -1
  74. package/dist/planner/planner-onboarding/planner-onboarding.min.js +1 -1
  75. package/dist/planner/planner-onboarding-modal/planner-onboarding-modal.min.js +6 -6
  76. package/dist/planner/planner-open-catalog-modal/planner-open-catalog-modal.min.js +1 -1
  77. package/dist/planner/planner-recipe-card/planner-recipe-card.min.js +1 -1
  78. package/dist/planner/planner-recipe-list/planner-recipe-list.min.js +1 -1
  79. package/dist/planner/planner-recipe-suggestion/planner-recipe-suggestion.min.js +1 -1
  80. package/dist/planner/planner-welcome-modal/planner-welcome-modal.min.js +2 -2
  81. package/dist/planner/to-basket-loader/to-basket-loader.min.js +2 -2
  82. package/dist/planner-entry/planner-entry.min.js +1 -1
  83. package/dist/preferences/preferences.min.js +21 -39
  84. package/dist/price/price.min.js +1 -1
  85. package/dist/product-addition/product-addition.css +1 -1
  86. package/dist/recipe-card/recipe-card.min.js +1 -1
  87. package/dist/recipe-card-cta/recipe-card-cta.min.js +1 -1
  88. package/dist/recipe-details/recipe-details.min.js +49 -41
  89. package/dist/recipe-pricing/recipe-pricing.min.js +1 -1
  90. package/dist/replace-item/replace-item-card/replace-item-card.min.js +5 -5
  91. package/dist/replace-item/replace-item.min.js +2 -2
  92. package/dist/replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js +1 -1
  93. package/dist/replace-item-planner/replace-item-planner.min.js +1 -1
  94. package/dist/select/select.min.js +1 -1
  95. package/dist/slider-tabs/slider-tabs.min.js +2 -2
  96. package/dist/store-indicator/store-indicator.min.js +1 -1
  97. package/dist/store-locator/store-locator.css +1 -1
  98. package/dist/store-locator/store-locator.min.js +97 -0
  99. package/dist/store-locator-drawer/store-locator-drawer.min.js +4 -37
  100. package/dist/store-locator.css +290 -0
  101. package/dist/supplier-selector/supplier-selector.css +1 -0
  102. package/dist/supplier-selector/supplier-selector.min.js +53 -0
  103. package/dist/supplier-selector.css +99 -0
  104. package/package.json +1 -1
  105. package/dist/add-to-cart-cta/add-to-cart-cta.css +0 -1
  106. package/dist/add-to-cart-cta/add-to-cart-cta.min.js +0 -7
  107. package/dist/assets/delay-DX2Gy1PY.js +0 -1
  108. package/dist/assets/empty-DhPhHznc.js +0 -1
  109. package/dist/assets/mapOneOrManyArgs-UKKoFfIU.js +0 -1
  110. package/dist/assets/merge-Cw-bwf6Z.js +0 -1
  111. package/dist/assets/mergeAll-9jcORGP2.js +0 -1
  112. package/dist/assets/store-locator-CQ_XQBby.js +0 -95
  113. package/dist/no-supplier-onboarding/no-supplier-onboarding.css +0 -1
@@ -0,0 +1,99 @@
1
+ .mealz-supplier-selector {
2
+ .mealz-supplier-selector__onboarding-container {
3
+ padding: 24px;
4
+ background-color: var(--mealz-ds-color-primary-100, #e4eaec);
5
+
6
+ .mealz-supplier-selector__onboarding-title {
7
+ margin: 0 0 8px 0;
8
+ }
9
+
10
+ .mealz-supplier-selector__onboarding-steps {
11
+ overflow-y: scroll;
12
+ margin-top: 16px;
13
+ display: flex;
14
+
15
+ > *:not(:last-child) {
16
+ margin-right: 16px;
17
+ }
18
+
19
+ .mealz-supplier-selector__card {
20
+ background-color: var(--mealz-ds-color-neutral-white, #fff);
21
+ display: flex;
22
+ align-items: center;
23
+ padding: 16px;
24
+ border-radius: 12px;
25
+
26
+ .mealz-supplier-selector__instructions {
27
+ flex: 1 1 0;
28
+ margin-right: 24px;
29
+
30
+ .mealz-supplier-selector__step-counter {
31
+ display: flex;
32
+ justify-content: center;
33
+ align-items: center;
34
+ margin-bottom: 8px;
35
+ height: 32px;
36
+ width: 32px;
37
+ border-radius: 50%;
38
+ background-color: var(--mealz-ds-color-primary, #24748F);
39
+ color: var(--mealz-ds-color-neutral-white, #fff);
40
+ }
41
+ }
42
+
43
+ .mealz-supplier-selector__onboarding-step-image {
44
+ flex: 1 1 0;
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ .mealz-supplier-selector__suppliers-container {
51
+ padding: 24px;
52
+
53
+ .mealz-supplier-selector__supplier-list {
54
+ display: grid;
55
+ grid-template-columns: repeat(3, minmax(150px, 1fr));
56
+ margin: 0 -6px -6px -6px;
57
+
58
+ .mealz-supplier-selector__supplier-button-card {
59
+ border-radius: 8px;
60
+ background: none;
61
+ border: none;
62
+ padding: 0;
63
+ margin: 6px;
64
+ cursor: pointer;
65
+ position: relative;
66
+ overflow: hidden;
67
+
68
+ .mealz-supplier-selector__supplier-logo {
69
+ display: block;
70
+ position: absolute;
71
+ top: 50%;
72
+ left: 50%;
73
+ transform: translate(-50%, -50%);
74
+ max-width: 65%;
75
+ max-height: 100%;
76
+ width: auto;
77
+ height: auto;
78
+ object-fit: contain;
79
+ }
80
+
81
+ .mealz-supplier-selector__supplier-bg {
82
+ display: block;
83
+ }
84
+ }
85
+ }
86
+
87
+ @media (max-width: 575px) {
88
+ .mealz-supplier-selector__supplier-list {
89
+ grid-template-columns: repeat(2, minmax(150px, 1fr));
90
+ }
91
+ }
92
+
93
+ @media (max-width: 375px) {
94
+ .mealz-supplier-selector__supplier-list {
95
+ grid-template-columns: repeat(1, minmax(150px, 1fr));
96
+ }
97
+ }
98
+ }
99
+ }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "mealz-components",
3
3
  "type": "module",
4
- "version": "2.2.0",
4
+ "version": "2.3.0",
5
5
  "main": "./dist/mealz-components.js",
6
6
  "module": "./dist/mealz-components.js",
7
7
  "scripts": {
@@ -1 +0,0 @@
1
- @keyframes slideUp{0%{transform:translate(-50%) translateY(100%);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}.mealz-add-to-cart-cta{border-radius:999px;padding:16px}.mealz-add-to-cart-cta.secondary{background:var(--mealz-ds-color-neutral-white, #fff)}.mealz-add-to-cart-cta img{margin-right:4px}.mealz-add-to-cart-cta--fixed{display:none;width:400px;position:fixed;left:50%;bottom:24px;transform:translate(-50%) translateY(0);z-index:1000;box-shadow:0 6px 24px #0000002e;pointer-events:auto}@media (max-width: 600px){.mealz-add-to-cart-cta--fixed{width:calc(100% - 32px)}}
@@ -1,7 +0,0 @@
1
- import{t as o}from"../assets/custom-element-BhZVzxrc.js";import{N as d}from"../assets/no-shadow-element-D4NOg0uW.js";import"../assets/mealz-sdk-E_fNZM-c.js";var h=Object.getOwnPropertyDescriptor,l=(t,s,a,e)=>{for(var i=e>1?void 0:e?h(s,a):s,n=t.length-1,c;n>=0;n--)(c=t[n])&&(i=c(i)||i);return i};let r=class extends d{constructor(){super(...arguments),this.inBasket=!1,this.showFixedButton=!1,this.recipeId="",this.inBasketContent=`
2
- <img alt="see ingredients in icon" src="https://storage.googleapis.com/assets.miam.tech/generic/icons/InCart_primary.svg"/>
3
- <span>Voir les ingrédients</span>
4
- `,this.addToBasketContent=`
5
- <img alt="add ingredients to basket icon" src="https://storage.googleapis.com/assets.miam.tech/generic/icons/Basket.svg"/>
6
- <span>Acheter les ingrédients</span>
7
- `}connectedCallback(){super.connectedCallback()}disconnectedCallback(){super.disconnectedCallback(),this.observer&&this.ctaBtn&&(this.observer.unobserve(this.ctaBtn),this.observer.disconnect())}render(){this.ctaBtn=this.querySelector(".mealz-add-to-cart-cta.mealz-add-to-cart-cta--static"),this.fixedCtaBtn=this.querySelector(".mealz-add-to-cart-cta.mealz-add-to-cart-cta--fixed"),!(!this.ctaBtn||!this.fixedCtaBtn)&&(this.getInitialStatus(),this.setupEventListeners(),this.setupIntersectionObserver())}getInitialStatus(){var e;const t=(e=this.attributes["starting-data"])==null?void 0:e.value;if(!t)return;const{recipeId:s,inBasket:a}=JSON.parse(t);this.recipeId=s,this.inBasket=a!==void 0?a:!1,this.removeAttribute("starting-data")}setupEventListeners(){this.ctaBtn.addEventListener("click",t=>{t.stopPropagation(),this.toggleBasketState()}),this.fixedCtaBtn.addEventListener("click",t=>{t.stopPropagation(),this.toggleBasketState()})}setupIntersectionObserver(){this.observer=new IntersectionObserver(([t])=>{this.showFixedButton=!t.isIntersecting,this.fixedCtaBtn.style.display=this.showFixedButton?"flex":"none",this.showFixedButton&&(this.fixedCtaBtn.style.animation="slideUp 300ms cubic-bezier(.25,.8,.25,1)")},{threshold:0}),this.observer.observe(this.ctaBtn)}toggleBasketState(){this.inBasket=!this.inBasket,this.updateDOM(),this.handleCtaClick()}updateDOM(){this.updateButtonState(this.ctaBtn),this.updateButtonState(this.fixedCtaBtn)}updateButtonState(t){t&&(this.inBasket?(t.className=t.className.replace("primary","secondary"),t.innerHTML=this.inBasketContent):(t.className=t.className.replace("secondary","primary"),t.innerHTML=this.addToBasketContent))}handleCtaClick(){const t=new CustomEvent("addToCartCtaClicked",{detail:{inBasket:this.inBasket,recipeId:this.recipeId}});document.dispatchEvent(t)}};r=l([o("mealz-add-to-cart-cta")],r);customElements.get("mealz-add-to-cart-cta")||customElements.define("mealz-add-to-cart-cta",r);
@@ -1 +0,0 @@
1
- import{a as i}from"./async-guWcMFmJ.js";import{t as m}from"./take-ujVMxFwY.js";import{m as a}from"./map-D6X2syNu.js";import{m as e}from"./mergeMap-CX64J-ac.js";import{i as f}from"./innerFrom-D8hyVDmo.js";import{t as p}from"./timer-D3X0vtFO.js";function u(r){return a(function(){return r})}function s(r,t){return e(function(n,o){return f(r(n,o)).pipe(m(1),u(n))})}function l(r,t){t===void 0&&(t=i);var n=p(r,t);return s(function(){return n})}export{l as d};
@@ -1 +0,0 @@
1
- import{O as r}from"./no-shadow-element-D4NOg0uW.js";var t=new r(function(e){return e.complete()});export{t as E};
@@ -1 +0,0 @@
1
- import{a as n,b as p}from"./no-shadow-element-D4NOg0uW.js";import{m as o}from"./map-D6X2syNu.js";var t=Array.isArray;function i(a,r){return t(r)?a.apply(void 0,n([],p(r))):a(r)}function y(a){return o(function(r){return i(a,r)})}export{y as m};
@@ -1 +0,0 @@
1
- import{m as n}from"./mergeAll-9jcORGP2.js";import{i as t}from"./innerFrom-D8hyVDmo.js";import{E as s}from"./empty-DhPhHznc.js";import{p,a as f,f as u}from"./from-CEPL7XsE.js";function h(){for(var r=[],e=0;e<arguments.length;e++)r[e]=arguments[e];var o=p(r),a=f(r,1/0),m=r;return m.length?m.length===1?t(m[0]):n(a)(u(m,o)):s}export{h as m};
@@ -1 +0,0 @@
1
- import{m}from"./mergeMap-CX64J-ac.js";import{t}from"./no-shadow-element-D4NOg0uW.js";function o(i){return i===void 0&&(i=1/0),m(t,i)}export{o as m};
@@ -1,95 +0,0 @@
1
- import{N as h,k as a}from"./no-shadow-element-D4NOg0uW.js";import"../select/select.min.js";import{t as c}from"./custom-element-BhZVzxrc.js";import{n as p}from"./property-BXNy7Yd-.js";import{r as u}from"./state-b8IyfZUU.js";import{e as m}from"./query-BApjzB0v.js";import{a as b}from"./mealz-sdk-E_fNZM-c.js";class g{get extId(){return this.attributes["ext-id"]}}var _=Object.defineProperty,f=Object.getOwnPropertyDescriptor,r=(e,t,s,o)=>{for(var i=o>1?void 0:o?f(t,s):t,n=e.length-1,d;n>=0;n--)(d=e[n])&&(i=(o?d(t,s,i):d(i))||i);return o&&i&&_(t,s,i),i};let l=class extends h{constructor(){super(),this.show=!1,this.selectedRadius=50,this._mealzSdk=b,this.getByAddress=this._mealzSdk.pos.getByAddress,this.getByCoordinates=this._mealzSdk.pos.getByCoordinates,this.getAffiliateSuppliers=this._mealzSdk.supplier.getAffiliateSuppliers,this._posList=[],this._markers=[],this._searchingPos=!1,this._searchSubmitted=!1,this._prevAddress="",this._previousSearchMethod=()=>{},this._suppliers=[],this._selectedSuppliers=[],this._showPosList=!1,this._posSelected=!1,this.subscriptions=[],this.setGeolocation=()=>{this._prevAddress="",this._previousSearchMethod=()=>this.setGeolocation(),this.getPosByCoordinates()},this.styleURL=new URL("./store-locator/store-locator.css",this.getBaseURL())}set geolocationCoordinates(e){var t,s;this._geolocationCoordinates=e,(t=e==null?void 0:e.coords)!=null&&t.latitude&&((s=e==null?void 0:e.coords)!=null&&s.longitude)&&this.setGeolocation()}get geolocationCoordinates(){return this._geolocationCoordinates}get L(){return window.L}_nameOfStore(e){return`${e.supplier.attributes.name} - ${e.attributes.name}`}connectedCallback(){super.connectedCallback(),this.initLeaflet(),this.fetchSuppliers()}disconnectedCallback(){this.subscriptions.forEach(e=>e.unsubscribe()),super.disconnectedCallback(),this._leafletCss.remove(),this._miamDs.remove(),this._leafletJs.remove()}render(){if(this.show)return this.classList.add("mealz-store-locator"),this.posSelectionTemplate()}firstUpdated(){this._posSelected=!1,this.loadMap(),this.geolocationTimeout(),this.listenFormSubmit()}posSelectionTemplate(){return a`
2
- <div class="mealz-wrapper mealz-ds-body">
3
- <div class="mealz-pos-selection">
4
- <div class="mealz-title">
5
- <button class="mealz-ds-button square ghost mealz-back-button" @click=${()=>this.dispatchShow(!1)}>
6
- <img src="https://storage.googleapis.com/assets.miam.tech/generic/icons/Caret.svg" alt="Caret" />
7
- </button>
8
- <span>Sélectionner un magasin</span>
9
- </div>
10
- <form id="mealz-store-locator-form">
11
- <div class="mealz-address-input-container">
12
- ${this.geolocButtonTemplate()}
13
- <input required class="mealz-address-input" type="text" name="address"
14
- placeholder="Votre code postal ou ville">
15
- <button type="submit" class="mealz-ds-button primary search-address-button">OK</button>
16
- </div>
17
- ${this.selectSupplierTemplate()}
18
- </form>
19
- ${this.posListTemplate()}
20
- ${this._posList.length>0?a`
21
- <div id="mealz-mobile-buttons-wrapper"
22
- class="${this._showPosList?"mealz-mobile-buttons-wrapper__see-map":"mealz-mobile-buttons-wrapper__see-list"}">
23
- <button @click=${()=>this.togglePosList(this._showPosList)}
24
- class="mealz-ds-button secondary hide-pos-button ${this._showPosList?"secondary":"primary"}">
25
- ${this.getButtonLabel()}
26
- </button>
27
- </div>`:""}
28
- </div>
29
- </div>
30
- ${this.posMapTemplate()}
31
- </div>
32
- `}geolocButtonTemplate(){var t,s,o,i;let e;if(this.geolocationCoordinates===void 0)e=a`
33
- <div class="mealz-ds-loader"></div>`;else if((s=(t=this.geolocationCoordinates)==null?void 0:t.coords)!=null&&s.longitude&&((i=(o=this.geolocationCoordinates)==null?void 0:o.coords)!=null&&i.latitude))e=a`<img title="Votre position" class="geolocation-icon"
34
- src="https://storage.googleapis.com/assets.miam.tech/generic/icons/locate-primary.svg"
35
- alt="Geolocaliser"/>`;else return a``;return a`
36
- <button type="button" ?disabled=${this.geolocationCoordinates===void 0}
37
- class="mealz-ds-button square ghost mealz-locate-button" @click=${this.setGeolocation}>
38
- ${e}
39
- </button>
40
- `}posMapTemplate(){return a`
41
- <div id="mealz-map"></div>
42
- `}selectSupplierTemplate(){const e=this._selectedSuppliers[0],t=[{id:"",label:"Toutes les enseignes"},...this._suppliers.map(s=>({id:s.id,label:s.name}))];return a`
43
- <div class="mealz-select-supplier">
44
- <mealz-select
45
- .options=${t}
46
- .value=${e||""}
47
- .placeholder=${"Toutes les enseignes"}
48
- @valueChange=${s=>{var o;return this.handleSupplierChange(((o=s.detail)==null?void 0:o.value)??null)}}
49
- ></mealz-select>
50
- </div>
51
- `}handleSupplierChange(e){const t={target:{value:e||""}};this.supplierSelected(t)}supplierSelected(e){const t=e.target;t!=null&&t.value?this._selectedSuppliers[0]=t.value:this._selectedSuppliers=[];const s=this._suppliers.find(n=>n.id===(t==null?void 0:t.value)),i={detail:{supplierName:s?s.name:""},bubbles:!0,composed:!0};this.dispatchEvent(new CustomEvent("filterChange",i)),this._previousSearchMethod(!0)}posListTemplate(){if(this._searchingPos)return a`
52
- <div class="mealz-pos-loader">
53
- <div class="mealz-ds-loader"></div>
54
- </div>
55
- `;if(this._posList.length<1&&this._searchSubmitted)return a`
56
- <div class="mealz-no-pos-found">
57
- <b>Aucun magasin trouvé à proximité.</b>
58
- <span>Essayez une autre adresse.</span>
59
- </div>
60
- `;if(this._posList.length<1)return;const e=this.querySelector(".mealz-pos-selection");return e&&e.classList.toggle("mealz-pos-selection__height",this._showPosList),a`
61
- <div id="mealz-pos-list" class="${this._showPosList?"mealz-pos-list__visible":"mealz-pos-list__hidden"}">
62
- ${this._posList.map(t=>a`
63
- <div class="mealz-pos-item">
64
- <div class="mealz-top">
65
- <img src="${t.supplier.attributes.logo}" alt="${t.supplier.attributes.name}"/>
66
- <div class="mealz-top-right">
67
- <div class="mealz-name">${this._nameOfStore(t)}</div>
68
- <div class="mealz-address">${t.attributes.address}</div>
69
- </div>
70
- </div>
71
- <div class="mealz-bottom">
72
- <button @click=${()=>this.dispatchPos(t)}
73
- class="mealz-ds-button primary small mealz-select-pos-button"
74
- ?disabled=${this._posSelected}>
75
- ${this._posSelected?a`
76
- <div class="mealz-ds-loader"></div>`:"Sélectionner"}
77
- </button>
78
- </div>
79
- </div>
80
- `)}
81
- </div>
82
- `}getButtonLabel(){if(this._showPosList)return"Voir la carte";const e=this._posList.length;return e===1?"Voir le magasin":`Voir les ${e} magasins`}setAddress(e=!1){!this._addressInput.value||this._addressInput.value.length<3||this._searchingPos||!e&&this._prevAddress===this._addressInput.value+", France"||(this._previousSearchMethod=t=>this.setAddress(t),this._prevAddress=this._addressInput.value+", France",this._searchingPos=!0,this.requestUpdate(),this.subscriptions.push(this.getByAddress(this._prevAddress,this.selectedRadius,this._selectedSuppliers).subscribe(t=>{this.setPosList(t),this.setNewLocation(),this.dispatchSearch(this._prevAddress,t.data.length),this._searchingPos=!1,this._searchSubmitted=!0,this.togglePosList(!1),this.requestUpdate()})))}getPosByCoordinates(){this._searchingPos=!0,this.requestUpdate(),this.subscriptions.push(this.getByCoordinates(this.geolocationCoordinates.coords.latitude,this.geolocationCoordinates.coords.longitude,this.selectedRadius,this._selectedSuppliers).subscribe(e=>{this._addressInput.value="",this.setPosList(e),this._searchingPos=!1,this.setNewLocation(),this._searchSubmitted=!0,this.togglePosList(!1),this.requestUpdate()}))}setPosList(e){this._posList=e.data.map(t=>{const s=Object.assign(new g,t),o=e.included.find(i=>i.id===s.relationships.supplier.data.id);return o&&(s.supplier=o),s}).sort((t,s)=>t.attributes.name.includes("onoprix")?-1:s.attributes.name.includes("onoprix")?1:0)}dispatchPos(e){this._posSelected=!0,this.requestUpdate();const t={detail:{posId:e.id,posExtId:e.extId,supplierId:e.supplier.id,supplierName:e.supplier.attributes.name,posName:this._nameOfStore(e)},bubbles:!0,composed:!0};this.dispatchEvent(new CustomEvent("posIdChange",t))}dispatchShow(e){const t={detail:{show:e},bubbles:!0,composed:!0};this.dispatchEvent(new CustomEvent("showChange",t))}dispatchSearch(e,t){const s={detail:{searchTerm:e,storesFoundCount:t},bubbles:!0,composed:!0};console.debug("[MealzComponents] dispatchEvent searchChange",s),this.dispatchEvent(new CustomEvent("searchChange",s))}initLeaflet(){this._leafletCss=document.createElement("link"),this._leafletCss.setAttribute("rel","stylesheet"),this._leafletCss.setAttribute("href","https://unpkg.com/leaflet@1.9.4/dist/leaflet.css"),this._leafletCss.setAttribute("integrity","sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY="),this._leafletCss.setAttribute("crossorigin",""),this._leafletJs=document.createElement("script"),this._leafletJs.setAttribute("src","https://unpkg.com/leaflet@1.9.4/dist/leaflet.js"),this._leafletJs.setAttribute("integrity","sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo="),this._leafletJs.setAttribute("crossorigin",""),this._miamDs=document.createElement("link"),this._miamDs.setAttribute("rel","stylesheet"),this._miamDs.setAttribute("href","https://unpkg.com/mealz-ds@2.0.0/mealz-ds.min.css"),this.appendChild(this._miamDs),this.appendChild(this._leafletCss),document.head.appendChild(this._leafletJs)}waitForLeaflet(e){let o=50;console.debug("[Map] Checking for window.L");const i=setInterval(()=>{typeof window.L<"u"||o===0?(clearInterval(i),typeof window.L<"u"?(console.debug("[Map] window.L is defined"),e(!0)):(console.error("[Map] Failed to load Leaflet after",5e3,"ms"),e(!1))):o--},100)}initMap(){this._map&&(this._map.off(),this._map.remove()),this.setNewLocation(),this.L.tileLayer("https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png",{maxZoom:19,attribution:"Map tiles by Carto, under CC BY 3.0. Data by OpenStreetMap, under ODbL."}).addTo(this._map)}loadMap(){this.waitForLeaflet(e=>{e&&this.initMap()})}fetchSuppliers(){this.subscriptions.push(this.getAffiliateSuppliers().subscribe(e=>{this._suppliers=e.map(t=>({id:t.id,name:t.attributes.name})),this.requestUpdate()}))}setNewLocation(){const e=this.querySelector("#mealz-map");if(e){if(this._map){const t=this._map;this._markers.forEach(s=>{t.removeLayer(s)}),this._markers=[],t.panTo(this.getCoordinates())}else this._map=this.L.map(e).setView(this.getCoordinates(),13);this._map&&this.addMarkers()}}getCoordinates(){return this._posList.length<1?[48.866667,2.333333]:[Number(this._posList[0].attributes.latitude),Number(this._posList[0].attributes.longitude)]}addMarkers(){this._posList.length>0&&this._posList.forEach((e,t)=>{this._markers.push(this.L.marker([Number(e.attributes.latitude),Number(e.attributes.longitude)],{icon:this.buildIcon(e.supplier)}).addTo(this._map));const s=this.L.popup({content:`
83
- <div class="mealz-pos-item">
84
- <div class="mealz-top">
85
- <img class="mealz-pos-img" src="${e.supplier.attributes.logo}" alt="${e.supplier.attributes.name}"/>
86
- <div class="mealz-top-right">
87
- <div class="mealz-name">${this._nameOfStore(e)}</div>
88
- <div class="mealz-address">${e.attributes.address}</div>
89
- </div>
90
- </div>
91
- <div class="mealz-bottom">
92
- <button id="mealz-select" class="mealz-ds-button primary small mealz-select-pos-button">Sélectionner</button>
93
- </div>
94
- </div>
95
- `});this._markers[t].bindPopup(s).on("popupopen",o=>{var n,d;const i=(n=o.target.getPopup())==null?void 0:n.getElement();(d=i==null?void 0:i.querySelector("#mealz-select"))==null||d.addEventListener("click",()=>{this.dispatchPos(e)})})})}buildIcon(e){return this.L.icon({iconUrl:e.attributes.logo||"https://cdn-icons-png.flaticon.com/512/3515/3515146.png",shadowUrl:"https://storage.googleapis.com/assets.miam.tech/mealz-components/store-locator/marker.svg",iconSize:[24,24],shadowSize:[44,53],iconAnchor:[16,43],shadowAnchor:[22,45],popupAnchor:[0,-55],className:"mealz-marker-icon"})}togglePosList(e){this._showPosList=!e;const t=this.querySelector("#mealz-pos-list"),s={bubbles:!0,composed:!0};t&&(e?(t.style.display="none",this.dispatchEvent(new CustomEvent("mapSelected",s))):(t.style.display="flex",this.dispatchEvent(new CustomEvent("listSelected",s))),this.requestUpdate())}geolocationTimeout(){setTimeout(()=>{this.geolocationCoordinates===void 0&&(this.geolocationCoordinates={})},2e4)}listenFormSubmit(){const e=this.querySelector("#mealz-store-locator-form");e&&e.addEventListener("submit",t=>{t.preventDefault(),this.setAddress()})}};r([p({type:Boolean})],l.prototype,"show",2);r([p({type:Number})],l.prototype,"selectedRadius",2);r([p({attribute:!1})],l.prototype,"geolocationCoordinates",1);r([p()],l.prototype,"getByAddress",2);r([p()],l.prototype,"getByCoordinates",2);r([p()],l.prototype,"getAffiliateSuppliers",2);r([u()],l.prototype,"_geolocationCoordinates",2);r([m("input")],l.prototype,"_addressInput",2);l=r([c("mealz-store-locator")],l);
@@ -1 +0,0 @@
1
- .mealz-modal{width:375px;min-width:375px;height:700px;z-index:calc(var(--m-z-index-modal) + 2);padding:0}.mealz-modal .mealz-modal__header{padding:16px}.mealz-modal .mealz-modal__content-container{padding-top:0;height:calc(100% - 64px);box-sizing:border-box}@media (max-width: 600px){.mealz-modal{min-width:320px;width:100vw;max-width:100vw;top:unset;bottom:0;transform:translate(-50%)}}.mealz-no-supplier-onboarding{display:flex;flex-direction:column;height:100%}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__header{display:flex;width:100%;box-sizing:border-box;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding:16px 16px 0}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__header .mealz-no-supplier-onboarding__close{padding:4px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body{display:flex;flex-direction:column;justify-content:space-between;align-items:center;flex:1}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:0 16px 16px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__img{width:343px;height:380px}@media (max-width: 375px){.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__img{width:288px}}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__title{margin-bottom:16px;text-align:center}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__text{text-align:center;margin-bottom:16px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__text span{display:inline;padding:0 4px 0 0}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__text .mealz-no-supplier-onboarding__bold{font-weight:700}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__text .mealz-no-supplier-onboarding__bold:last-of-type{color:var(--mealz-ds-color-primary)}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__content .mealz-no-supplier-onboarding__fake-button{margin-top:16px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__track{display:flex;justify-content:space-between;width:60px;margin-bottom:16px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__track img:not(.active){opacity:.2}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__body .mealz-no-supplier-onboarding__confirm{margin:16px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__previous,.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__next{position:absolute;top:50%;transform:translateY(-50%);display:flex;width:48px;height:48px;justify-content:center;align-items:center;border-radius:1000px;box-shadow:0 4px 4px #00000040}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__previous.mealz-ds-button.primary.ghost,.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__next.mealz-ds-button.primary.ghost{background-color:#fff}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__previous.hidden,.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__next.hidden{display:none}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__previous{left:8px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__next{right:8px}.mealz-no-supplier-onboarding .mealz-no-supplier-onboarding__next img{transform:rotate(180deg)}