mealz-components 2.2.0 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion/accordion.css +1 -1
- package/dist/assets/{OperatorSubscriber-B37s2U6v.js → OperatorSubscriber-DF1TYu__.js} +1 -1
- package/dist/assets/accordion-la5mVBfL.js +19 -0
- package/dist/assets/{async-guWcMFmJ.js → async-D5WN8Wfc.js} +1 -1
- package/dist/assets/{combineLatest-qLpwa5de.js → combineLatest-BN0_WcEG.js} +1 -1
- package/dist/assets/{debounceTime-cu8WlLF0.js → debounceTime-D7R6Z3Am.js} +1 -1
- package/dist/assets/delay-wUm-cx7a.js +1 -0
- package/dist/assets/{distinctUntilChanged-DmoT2we5.js → distinctUntilChanged-VvZTmHoN.js} +1 -1
- package/dist/assets/empty-Bs9kqCuA.js +1 -0
- package/dist/assets/{executeSchedule-Dqc6shOu.js → executeSchedule-C0acKsif.js} +1 -1
- package/dist/assets/{filter-BjN-BbQD.js → filter-DQ4vwAGj.js} +1 -1
- package/dist/assets/{from-CEPL7XsE.js → from-BTlWkhKh.js} +1 -1
- package/dist/assets/{innerFrom-D8hyVDmo.js → innerFrom-FMZwm2mb.js} +1 -1
- package/dist/assets/{map-D6X2syNu.js → map-DHslluWD.js} +1 -1
- package/dist/assets/mapOneOrManyArgs-Bdu6mo6S.js +1 -0
- package/dist/assets/merge-tdU3EgEI.js +1 -0
- package/dist/assets/mergeAll-DTkL1sF8.js +1 -0
- package/dist/assets/{mergeMap-CX64J-ac.js → mergeMap-g-JGW99j.js} +1 -1
- package/dist/assets/{no-shadow-element-D4NOg0uW.js → no-shadow-element-Dz9jgDtr.js} +7 -7
- package/dist/assets/{of-CzgrATec.js → of-hd4MpK5g.js} +1 -1
- package/dist/assets/{price-DdIbni0N.js → price-CHipCs2z.js} +1 -1
- package/dist/assets/{product-card-CcuyZyd6.js → product-card-c_0I2Lp_.js} +14 -14
- package/dist/assets/{promotion-badge-TYkTBrOQ.js → promotion-badge-CzwsPJJq.js} +3 -3
- package/dist/assets/{property-BXNy7Yd-.js → property-Bx8Yvr4_.js} +1 -1
- package/dist/assets/skip-BuAl4dWz.js +1 -0
- package/dist/assets/{skipWhile-B_4e7jSH.js → skipWhile-BzDgmir5.js} +1 -1
- package/dist/assets/{state-b8IyfZUU.js → state-C5zM4-Pq.js} +1 -1
- package/dist/assets/{switchMap-BYsewftM.js → switchMap-6Z80ObHE.js} +1 -1
- package/dist/assets/{take-ujVMxFwY.js → take-ByPtGQky.js} +1 -1
- package/dist/assets/{tap-DwBV-qFl.js → tap-K_D6lo97.js} +1 -1
- package/dist/assets/{timer-D3X0vtFO.js → timer-C3uKg-qK.js} +1 -1
- package/dist/assets/{unsafe-html-C8GMyVYZ.js → unsafe-html-Bv_ydUHb.js} +1 -1
- package/dist/assets/{viewport-listener-BRwa66-G.js → viewport-listener-DrFhSZNW.js} +1 -1
- package/dist/basket-transfer-modal/basket-transfer-modal.min.js +12 -13
- package/dist/catalog/basket-preview/basket-preview-product/basket-preview-product.css +1 -1
- package/dist/catalog/basket-preview/basket-preview.css +1 -1
- package/dist/catalog/basket-preview/basket-preview.min.js +48 -43
- package/dist/catalog/catalog-category/catalog-category.min.js +1 -1
- package/dist/catalog/catalog-favorites/catalog-favorites.min.js +1 -1
- package/dist/catalog/catalog-history/catalog-history.min.js +1 -1
- package/dist/catalog/catalog-home/catalog-home.min.js +1 -1
- package/dist/catalog/catalog-list/catalog-list.min.js +1 -1
- package/dist/catalog/catalog-load-more.min.js +1 -1
- package/dist/catalog/catalog-tabs/catalog-tabs.min.js +1 -1
- package/dist/catalog/catalog-toolbar/catalog-toolbar.min.js +1 -1
- package/dist/catalog/my-meals-button/my-meals-button.min.js +1 -1
- package/dist/counter/counter.min.js +1 -1
- package/dist/drawer/drawer.min.js +1 -1
- package/dist/drawer-view-swapper/drawer-view-swapper.css +1 -1
- package/dist/drawer-view-swapper/drawer-view-swapper.min.js +24 -20
- package/dist/history-drawer/history-drawer.min.js +1 -1
- package/dist/history-order/history-order.min.js +1 -1
- package/dist/history-order-expanded/history-order-expanded.min.js +1 -1
- package/dist/last-order-badge/last-order-badge.min.js +2 -2
- package/dist/last-order-modal/last-order-modal.min.js +1 -1
- package/dist/like-button/like-button.min.js +1 -1
- package/dist/modal/modal.min.js +1 -1
- package/dist/no-supplier-add-to-cart-cta/no-supplier-add-to-cart-cta.css +1 -0
- package/dist/no-supplier-add-to-cart-cta/no-supplier-add-to-cart-cta.min.js +7 -0
- package/dist/onboarding/onboarding.min.js +2 -2
- package/dist/order-again/order-again.min.js +1 -1
- package/dist/planner/helpers/open-onboarding-modal.min.js +1 -1
- package/dist/planner/planner-abandon-modal/planner-abandon-modal.min.js +1 -1
- package/dist/planner/planner-budget-edit-modal/planner-budget-edit-modal.css +1 -1
- package/dist/planner/planner-budget-edit-modal/planner-budget-edit-modal.min.js +6 -6
- package/dist/planner/planner-budget-gauge/planner-budget-gauge.css +1 -1
- package/dist/planner/planner-budget-gauge/planner-budget-gauge.min.js +1 -1
- package/dist/planner/planner-catalog/planner-catalog.min.js +2 -2
- package/dist/planner/planner-current-menu/planner-current-menu.min.js +1 -1
- package/dist/planner/planner-current-menu-modal/planner-current-menu-modal.min.js +1 -1
- package/dist/planner/planner-dashboard/planner-dashboard.min.js +1 -1
- package/dist/planner/planner-form/planner-form.min.js +1 -1
- package/dist/planner/planner-menu-option/planner-menu-option.min.js +1 -1
- package/dist/planner/planner-onboarding/planner-onboarding.min.js +1 -1
- package/dist/planner/planner-onboarding-modal/planner-onboarding-modal.min.js +6 -6
- package/dist/planner/planner-open-catalog-modal/planner-open-catalog-modal.min.js +1 -1
- package/dist/planner/planner-recipe-card/planner-recipe-card.min.js +1 -1
- package/dist/planner/planner-recipe-list/planner-recipe-list.min.js +1 -1
- package/dist/planner/planner-recipe-suggestion/planner-recipe-suggestion.min.js +1 -1
- package/dist/planner/planner-welcome-modal/planner-welcome-modal.min.js +2 -2
- package/dist/planner/to-basket-loader/to-basket-loader.min.js +2 -2
- package/dist/planner-entry/planner-entry.min.js +1 -1
- package/dist/preferences/preferences.min.js +21 -39
- package/dist/price/price.min.js +1 -1
- package/dist/product-addition/product-addition.css +1 -1
- package/dist/recipe-card/recipe-card.min.js +1 -1
- package/dist/recipe-card-cta/recipe-card-cta.min.js +1 -1
- package/dist/recipe-details/recipe-details.min.js +49 -41
- package/dist/recipe-pricing/recipe-pricing.min.js +1 -1
- package/dist/replace-item/replace-item-card/replace-item-card.min.js +5 -5
- package/dist/replace-item/replace-item.min.js +2 -2
- package/dist/replace-item-planner/replace-item-card-planner/replace-item-card-planner.min.js +1 -1
- package/dist/replace-item-planner/replace-item-planner.min.js +1 -1
- package/dist/select/select.min.js +1 -1
- package/dist/slider-tabs/slider-tabs.min.js +2 -2
- package/dist/store-indicator/store-indicator.min.js +1 -1
- package/dist/store-locator/store-locator.css +1 -1
- package/dist/store-locator/store-locator.min.js +97 -0
- package/dist/store-locator-drawer/store-locator-drawer.min.js +4 -37
- package/dist/store-locator.css +290 -0
- package/dist/supplier-selector/supplier-selector.css +1 -0
- package/dist/supplier-selector/supplier-selector.min.js +53 -0
- package/dist/supplier-selector.css +99 -0
- package/package.json +1 -1
- package/dist/add-to-cart-cta/add-to-cart-cta.css +0 -1
- package/dist/add-to-cart-cta/add-to-cart-cta.min.js +0 -7
- package/dist/assets/delay-DX2Gy1PY.js +0 -1
- package/dist/assets/empty-DhPhHznc.js +0 -1
- package/dist/assets/mapOneOrManyArgs-UKKoFfIU.js +0 -1
- package/dist/assets/merge-Cw-bwf6Z.js +0 -1
- package/dist/assets/mergeAll-9jcORGP2.js +0 -1
- package/dist/assets/store-locator-CQ_XQBby.js +0 -95
- package/dist/no-supplier-onboarding/no-supplier-onboarding.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
.mealz-store-locator{
|
|
1
|
+
.mealz-store-locator{height:100%;display:flex}.mealz-store-locator .mealz-store-locator__pos-selection{display:flex;width:320px;padding:40px var(--spacing-padding-16-px, 16px);flex-direction:column;align-items:stretch;gap:var(--spacing-padding-16-px, 16px);flex-shrink:0;background:var(--mealz-ds-color-neutral-white, #ffffff);box-shadow:2px 0 16px #00000026;z-index:1}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__title{color:var(--mealz-ds-color-neutral-black, #0f191f);font-size:28px;font-weight:700;line-height:120%}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__go-back-button{border-radius:100%;height:40px;width:40px;display:flex;justify-content:center;align-items:center}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__go-back-button img{width:15px;height:15px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form{display:flex;flex-direction:column;gap:8px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__address-input-container{display:flex;gap:8px;height:40px;position:relative}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__address-input-container .mealz-store-locator__locate-button{position:absolute;background:unset;border:unset;padding:0;top:8px;left:8px;width:24px;height:24px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__address-input-container .mealz-store-locator__locate-button .mealz-store-locator__geolocation-icon{cursor:pointer;width:24px;height:24px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__address-input-container .mealz-store-locator__locate-button+.mealz-store-locator__address-input{padding-left:40px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__address-input-container .mealz-store-locator__address-input{padding-left:8px;flex:1;border:1px solid var(--mealz-ds-color-neutral-200, #D9DDE1);border-radius:4px;font-size:14px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__select-supplier{display:flex}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__select-supplier .mealz-store-locator__select-supplier-select{flex:1;padding:10px;max-width:initial}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__pos-loader{flex:1;width:100%;display:flex;justify-content:center;align-items:center}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__pos-loader .mealz-ds-loader{margin:16px;display:flex;width:72px;height:72px;background-position-x:36px;background-size:36px 36px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__pos-list{flex-direction:column;align-items:flex-start;gap:var(--spacing-padding-12-px, 12px);align-self:stretch;overflow:auto}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__pos-list__visible,.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__pos-list__hidden{display:flex}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__no-pos-found{margin-bottom:16px;width:100%;flex:1;display:flex;justify-content:center;align-items:center;flex-direction:column}.mealz-store-locator #mealz-store-locator__view-swapper-button{display:none}.mealz-store-locator .mealz-store-locator__pos-item{display:flex;flex-direction:column;padding:8px;align-items:flex-start;gap:16px;align-self:stretch;border-radius:8px;border:1px solid var(--mealz-ds-color-neutral-200, #eff1f3)}.mealz-store-locator .mealz-store-locator__pos-item .mealz-store-locator__pos-data{display:flex;align-items:flex-start;gap:8px;align-self:stretch}.mealz-store-locator .mealz-store-locator__pos-item .mealz-store-locator__pos-data .mealz-store-locator__pos-picture{width:40px;height:40px;flex-shrink:0}.mealz-store-locator .mealz-store-locator__pos-item .mealz-store-locator__pos-data .mealz-store-locator__pos-name{color:var(--mealz-ds-color-neutral-black, #0f191f);font-size:14px;font-weight:700;line-height:150%}.mealz-store-locator .mealz-store-locator__pos-item .mealz-store-locator__pos-data .mealz-store-locator__pos-address{color:var(--mealz-ds-color-neutral-500, #8c96a2);font-size:12px;font-weight:600;line-height:150%}.mealz-store-locator .mealz-store-locator__pos-item .mealz-store-locator__pos-cta{display:flex;justify-content:flex-end;width:100%}.mealz-store-locator .mealz-store-locator__pos-item .mealz-store-locator__pos-cta .mealz-select-pos-button{border-radius:1000px}.mealz-store-locator #mealz-store-locator__map{z-index:0;flex:1 1 0;min-height:400px;width:100%}.mealz-store-locator #mealz-store-locator__map .mealz-store-locator__pos-item{border:none;padding:0}.mealz-store-locator #mealz-store-locator__map .leaflet-marker-pane .mealz-marker-icon{border-radius:50%;overflow:hidden;object-fit:cover;border:4px solid var(--mealz-ds-color-neutral-white, #FFFFFF);box-sizing:content-box}@media (max-width: 768px){.mealz-store-locator{position:absolute;flex-direction:column;top:0;right:0;bottom:0;left:0}.mealz-store-locator .mealz-store-locator__pos-selection{width:100%;padding:0;gap:0}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__go-back-button{position:absolute;z-index:1;top:12px;left:8px;width:32px;height:32px}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__title{position:relative;min-height:56px;font-size:16px;display:flex;align-items:center;justify-content:center;border-bottom:solid 1px var(--mealz-ds-color-neutral-200, #eff1f3)}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form{padding:24px 16px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__address-input-container .mealz-store-locator__address-input{width:calc(100% - 44px)}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__store-locator-form .mealz-store-locator__address-input-container .mealz-store-locator__search-address-button{width:36px}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__pos-list{padding:0 16px 12px;align-items:center}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__pos-list.mealz-store-locator__pos-list__visible{display:flex}.mealz-store-locator .mealz-store-locator__pos-selection #mealz-store-locator__pos-list.mealz-store-locator__pos-list__hidden{display:none}.mealz-store-locator .mealz-store-locator__pos-selection .mealz-store-locator__pos-loader{position:absolute;height:100%}.mealz-store-locator .mealz-store-locator__pos-selection.mealz-store-locator__pos-selection__height{height:100%}.mealz-store-locator #mealz-store-locator__view-swapper-button{width:100%;display:flex;justify-content:center;padding:12px 0}.mealz-store-locator #mealz-store-locator__view-swapper-button.mealz-store-locator__see-list-button{z-index:1;bottom:40px;position:absolute}.mealz-store-locator #mealz-store-locator__view-swapper-button.mealz-store-locator__see-map-button{box-shadow:-2px 0 18px #00000026;margin-top:auto}}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import{N as u,k as a}from"../assets/no-shadow-element-Dz9jgDtr.js";import{t as m}from"../assets/custom-element-BhZVzxrc.js";import{n as c}from"../assets/property-Bx8Yvr4_.js";import{r as _}from"../assets/state-C5zM4-Pq.js";import{e as p}from"../assets/query-BApjzB0v.js";import{a as h}from"../assets/mealz-sdk-E_fNZM-c.js";class g{get extId(){return this.attributes["ext-id"]}}var b=Object.defineProperty,f=Object.getOwnPropertyDescriptor,l=(t,e,s,i)=>{for(var o=i>1?void 0:i?f(e,s):e,n=t.length-1,d;n>=0;n--)(d=t[n])&&(o=(i?d(e,s,o):d(o))||o);return i&&o&&b(e,s,o),o};let r=class extends u{constructor(){var t,e,s,i,o,n;super(),this.selectedRadius=50,this.getByAddress=(e=(t=h)==null?void 0:t.pos)==null?void 0:e.getByAddress,this.getByCoordinates=(i=(s=h)==null?void 0:s.pos)==null?void 0:i.getByCoordinates,this.getAffiliateSuppliers=(n=(o=h)==null?void 0:o.supplier)==null?void 0:n.getAffiliateSuppliers,this._posList=[],this._suppliers=[],this._markers=[],this._searchingPos=!1,this._searchSubmitted=!1,this._selectedSuppliers=[],this._showPosList=!1,this._posSelected=!1,this.subscriptions=[],this.styleURL=new URL("/store-locator.css",import.meta.url)}get show(){return this._show}set show(t){this._show=t,this._show&&(this._posSelected=!1,this.initialSearch(),this._map&&this.ensureMapSize())}set geolocationCoordinates(t){var e,s;this._geolocationCoordinates=t,(e=t==null?void 0:t.coords)!=null&&e.latitude&&((s=t==null?void 0:t.coords)!=null&&s.longitude)&&this.setGeolocation()}get geolocationCoordinates(){return this._geolocationCoordinates}_nameOfStore(t){return`${t.supplier.attributes.name} - ${t.attributes.name}`}connectedCallback(){super.connectedCallback(),this.initLeaflet(),this.initEvents(),this.initResizeObserver()}disconnectedCallback(){this.subscriptions.forEach(t=>t.unsubscribe()),this._resizeObserver&&this._resizeObserver.disconnect(),super.disconnectedCallback(),this._leafletCss.remove(),this._miamDs.remove(),this._leafletJs.remove()}firstUpdated(){this._posSelected=!1,this.loadMap(),this.geolocationTimeout(),this.listenFormSubmit(),this._map&&this.ensureMapSize()}render(){if(this.show)return this.posSelectionTemplate()}posSelectionTemplate(){return a`
|
|
2
|
+
<div class="mealz-store-locator mealz-ds-body">
|
|
3
|
+
<div class="mealz-store-locator__pos-selection">
|
|
4
|
+
<button
|
|
5
|
+
class="mealz-store-locator__go-back-button mealz-ds-button square"
|
|
6
|
+
@click=${()=>this.dispatchShow(!1)}>
|
|
7
|
+
<img src="https://storage.googleapis.com/assets.miam.tech/generic/icons/ArrowLeft_dark.svg" alt="Retour"
|
|
8
|
+
aria-hidden="true">
|
|
9
|
+
</button>
|
|
10
|
+
<div class="mealz-store-locator__title">
|
|
11
|
+
<span>Sélectionner un magasin</span>
|
|
12
|
+
</div>
|
|
13
|
+
<form id="mealz-store-locator__store-locator-form">
|
|
14
|
+
<div class="mealz-store-locator__address-input-container">
|
|
15
|
+
${this.geolocationButtonTemplate()}
|
|
16
|
+
<input required class="mealz-store-locator__address-input" type="text" name="address"
|
|
17
|
+
placeholder="Votre code postal ou ville">
|
|
18
|
+
<button type="submit"
|
|
19
|
+
class="mealz-ds-button primary mealz-store-locator__search-address-button">
|
|
20
|
+
OK
|
|
21
|
+
</button>
|
|
22
|
+
</div>
|
|
23
|
+
</form>
|
|
24
|
+
${this.posListTemplate()}
|
|
25
|
+
${this._posList.length>0?a`
|
|
26
|
+
<div id="mealz-store-locator__view-swapper-button"
|
|
27
|
+
class="${this._showPosList?"mealz-store-locator__see-map-button":"mealz-store-locator__see-list-button"}">
|
|
28
|
+
<button @click=${()=>this.togglePosList(this._showPosList)}
|
|
29
|
+
class="mealz-ds-button primary hide-pos-button">
|
|
30
|
+
${this.getButtonLabel()}
|
|
31
|
+
</button>
|
|
32
|
+
</div>`:""}
|
|
33
|
+
</div>
|
|
34
|
+
${this.posMapTemplate()}
|
|
35
|
+
</div>
|
|
36
|
+
`}geolocationButtonTemplate(){var e,s,i,o;let t;if(this.geolocationCoordinates===void 0)t=a`
|
|
37
|
+
<div class="mealz-ds-loader"></div>`;else if((s=(e=this.geolocationCoordinates)==null?void 0:e.coords)!=null&&s.longitude&&((o=(i=this.geolocationCoordinates)==null?void 0:i.coords)!=null&&o.latitude))t=a`<img title="Votre position" class="mealz-store-locator__geolocation-icon"
|
|
38
|
+
src="https://storage.googleapis.com/assets.miam.tech/generic/icons/locate-primary.svg"
|
|
39
|
+
alt="Geolocaliser"/>`;else return a``;return a`
|
|
40
|
+
<button type="button" ?disabled=${this.geolocationCoordinates===void 0}
|
|
41
|
+
class="mealz-store-locator__locate-button mealz-ds-button square ghost locate-button"
|
|
42
|
+
@click=${this.setGeolocation}>
|
|
43
|
+
${t}
|
|
44
|
+
</button>
|
|
45
|
+
`}posMapTemplate(){return a`
|
|
46
|
+
<div id="mealz-store-locator__map"></div>
|
|
47
|
+
`}posListTemplate(){if(this._searchingPos)return a`
|
|
48
|
+
<div class="mealz-store-locator__pos-loader">
|
|
49
|
+
<div class="mealz-ds-loader"></div>
|
|
50
|
+
</div>
|
|
51
|
+
`;if(this._posList.length<1&&this._searchSubmitted)return a`
|
|
52
|
+
<div class="mealz-store-locator__no-pos-found">
|
|
53
|
+
<b>Aucun magasin trouvé à proximité.</b>
|
|
54
|
+
<span>Essayez une autre adresse.</span>
|
|
55
|
+
</div>
|
|
56
|
+
`;if(this._posList.length<1)return;const t=document.querySelector(".mealz-store-locator__pos-selection");return t&&t.classList.toggle("mealz-store-locator__pos-selection__height",this._showPosList),a`
|
|
57
|
+
<div id="mealz-store-locator__pos-list"
|
|
58
|
+
class="${this._showPosList?"mealz-store-locator__pos-list__visible":"mealz-store-locator__pos-list__hidden"}">
|
|
59
|
+
${this._posList.map(e=>a`
|
|
60
|
+
<div class="mealz-store-locator__pos-item">
|
|
61
|
+
<div class="mealz-store-locator__pos-data">
|
|
62
|
+
<img class="mealz-store-locator__pos-picture" src="${e.supplier.attributes.logo}"
|
|
63
|
+
alt="${e.supplier.attributes.name}"/>
|
|
64
|
+
<div>
|
|
65
|
+
<div class="mealz-store-locator__pos-name">${this._nameOfStore(e)}</div>
|
|
66
|
+
<div class="mealz-store-locator__pos-address">${e.attributes.address}</div>
|
|
67
|
+
</div>
|
|
68
|
+
</div>
|
|
69
|
+
<div class="mealz-store-locator__pos-cta">
|
|
70
|
+
<button @click=${()=>this.dispatchPos(e)}
|
|
71
|
+
class="mealz-ds-button primary small mealz-select-pos-button"
|
|
72
|
+
?disabled=${this._posSelected}>
|
|
73
|
+
${this._posSelected?a`
|
|
74
|
+
<div class="mealz-ds-loader"></div>`:"Sélectionner"}
|
|
75
|
+
</button>
|
|
76
|
+
</div>
|
|
77
|
+
</div>
|
|
78
|
+
`)}
|
|
79
|
+
</div>
|
|
80
|
+
`}addAddressMarker(){if(!this._map||!this._userLocation)return;this._userLocationMarker&&(this._map.removeLayer(this._userLocationMarker),this._userLocationMarker=void 0);const t=getComputedStyle(document.documentElement).getPropertyValue("--mealz-ds-color-primary").trim()||"#24748F";this._userLocationMarker=window.L.circleMarker([this._userLocation.latitude,this._userLocation.longitude],{stroke:!1,fillOpacity:1,fill:!0,color:t,className:"mealz-store-locator__address-marker"}).addTo(this._map)}getButtonLabel(){if(this._showPosList)return"Voir la carte";const t=this._posList.length;return t===1?"Voir le magasin":`Voir les ${t} magasins`}dispatchShow(t){const e={detail:{show:t},bubbles:!0,composed:!0};this.dispatchEvent(new CustomEvent("showChange",e))}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"),document.head.appendChild(this._miamDs),document.head.appendChild(this._leafletCss),document.head.appendChild(this._leafletJs)}waitForLeaflet(t){let i=50;console.debug("[Map] Checking for window.L");const o=setInterval(()=>{window.L!==void 0||i===0?(clearInterval(o),window.L!==void 0?(console.debug("[Map] window.L is defined"),t(!0)):(console.error("[Map] Failed to load Leaflet after",5e3,"ms"),t(!1))):i--},100)}loadMap(){this.waitForLeaflet(t=>{t&&(this._map&&(this._map.off(),this._map.remove()),this.setNewLocation(),window.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))})}initEvents(){this._filterEvent=new CustomEvent("filterChange",{detail:{supplierName:""},bubbles:!0,composed:!0})}initResizeObserver(){this._resizeObserver=new ResizeObserver(()=>{this._map&&this._map.invalidateSize()})}ensureMapSize(){!this._map||!this._mapElement||requestAnimationFrame(()=>{this._map&&this._mapElement.offsetWidth>0&&this._mapElement.offsetHeight>0?this._map.invalidateSize():requestAnimationFrame(()=>{this._map&&this._map.invalidateSize()})})}initialSearch(){var t,e,s,i;this.setSupplier(),!this._prevAddress&&((e=(t=this.geolocationCoordinates)==null?void 0:t.coords)!=null&&e.latitude)&&((i=(s=this.geolocationCoordinates)==null?void 0:s.coords)!=null&&i.longitude)?this.getPosByCoordinates():this.setAddress(!0)}setAddress(t=!1){var e;!t&&(!this._addressInput.value||this._addressInput.value.length<3||this._searchingPos)||!t&&this._prevAddress===this._addressInput.value+", France"||(this._prevAddress=(e=this._addressInput)!=null&&e.value?this._addressInput.value+", France":"Paris, France",this._searchingPos=!0,this.requestUpdate(),this.subscriptions.push(this.getByAddress(this._prevAddress,this.selectedRadius,this._selectedSuppliers).subscribe(s=>{this._userLocation=s["current-coordinates"],this.addAddressMarker(),this.setPosList(s),this.setNewLocation(),this.dispatchSearch(this._prevAddress,s.data.length),this._searchingPos=!1,this._searchSubmitted=!0,this.togglePosList(!1),this.requestUpdate()})))}setGeolocation(){this._prevAddress="",this.getPosByCoordinates()}getPosByCoordinates(){this._searchingPos=!0,this.requestUpdate(),this.subscriptions.push(this.getByCoordinates(this.geolocationCoordinates.coords.latitude,this.geolocationCoordinates.coords.longitude,this.selectedRadius,this._selectedSuppliers).subscribe(t=>{this._addressInput.value="",this._userLocation=t["current-coordinates"],this.addAddressMarker(),this.setPosList(t),this._searchingPos=!1,this.setNewLocation(),this._searchSubmitted=!0,this.togglePosList(!1),this.requestUpdate()}))}setPosList(t){this._posList=t.data.map(e=>{const s=Object.assign(new g,e);return s.supplier=t.included.find(i=>i.id===s.relationships.supplier.data.id),s}).sort((e,s)=>e.attributes.name.includes("onoprix")?-1:s.attributes.name.includes("onoprix")?1:0)}setNewLocation(){var e;const t=document.getElementById("mealz-store-locator__map");t&&(this._map?(this._markers.forEach(s=>{this._map.removeLayer(s)}),this._markers=[],this._map.panTo(this.getCoordinates())):(this._map=(e=window.L)==null?void 0:e.map(t).setView(this.getCoordinates(),13),this._resizeObserver&&this._resizeObserver.observe(t),this.ensureMapSize()),this.addMarkers())}getCoordinates(){var t,e;return(t=this._userLocation)!=null&&t.latitude&&((e=this._userLocation)!=null&&e.longitude)?[Number(this._userLocation.latitude),Number(this._userLocation.longitude)]:this._posList.length>0?[Number(this._posList[0].attributes.latitude),Number(this._posList[0].attributes.longitude)]:[48.866667,2.333333]}addMarkers(){this._posList.length>0&&this._posList.forEach((t,e)=>{this._markers.push(window.L.marker([t.attributes.latitude,t.attributes.longitude],{icon:this.buildIcon(t.supplier)}).addTo(this._map));const s=window.L.popup({content:`
|
|
81
|
+
<div class="mealz-store-locator__pos-item">
|
|
82
|
+
<div class="mealz-store-locator__pos-data">
|
|
83
|
+
<img class="mealz-store-locator__pos-picture" src="${t.supplier.attributes.logo}"
|
|
84
|
+
alt="${t.supplier.attributes.name}"/>
|
|
85
|
+
<div>
|
|
86
|
+
<div class="mealz-store-locator__pos-name">${this._nameOfStore(t)}</div>
|
|
87
|
+
<div class="mealz-store-locator__pos-address">${t.attributes.address}</div>
|
|
88
|
+
</div>
|
|
89
|
+
</div>
|
|
90
|
+
<div class="mealz-store-locator__pos-cta">
|
|
91
|
+
<button id="mealz-select"
|
|
92
|
+
class="mealz-ds-button primary small mealz-select-pos-button">
|
|
93
|
+
Sélectionner
|
|
94
|
+
</button>
|
|
95
|
+
</div>
|
|
96
|
+
</div>
|
|
97
|
+
`});this._markers[e].bindPopup(s).on("popupopen",i=>{var n,d;const o=(n=i.target.getPopup())==null?void 0:n.getElement();(d=o==null?void 0:o.querySelector("#mealz-select"))==null||d.addEventListener("click",()=>{this.dispatchPos(t)})})})}buildIcon(t){return window.L.icon({iconUrl:t.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(t){this._showPosList=!t;const e=document.getElementById("mealz-store-locator__pos-list"),s={bubbles:!0,composed:!0};e&&(t?(e.style.display="none",this.dispatchEvent(new CustomEvent("mapSelected",s))):(e.style.display="flex",this.dispatchEvent(new CustomEvent("listSelected",s))),this.requestUpdate())}geolocationTimeout(){setTimeout(()=>{this.geolocationCoordinates===void 0&&(this.geolocationCoordinates={})},2e4)}listenFormSubmit(){document.getElementById("mealz-store-locator__store-locator-form").addEventListener("submit",e=>{e.preventDefault(),this.setAddress()})}setSupplier(){const t=localStorage.getItem("_miam/selectedSupplierId");t&&(this._selectedSuppliers=[t])}dispatchPos(t){this._posSelected=!0,this.requestUpdate();const e={detail:{posId:t.id,posExtId:t.extId,supplierId:t.supplier.id,supplierName:t.supplier.attributes.name,posName:this._nameOfStore(t)},bubbles:!0,composed:!0};this.dispatchEvent(new CustomEvent("posIdChange",e))}resetPosSelection(){this._posSelected&&(this._posSelected=!1,this.requestUpdate())}dispatchSearch(t,e){const s={detail:{searchTerm:t,storesFoundCount:e},bubbles:!0,composed:!0};this.dispatchEvent(new CustomEvent("searchChange",s))}};l([c({type:Number})],r.prototype,"selectedRadius",2);l([c()],r.prototype,"getByAddress",2);l([c()],r.prototype,"getByCoordinates",2);l([c()],r.prototype,"getAffiliateSuppliers",2);l([c({type:Boolean})],r.prototype,"show",1);l([c({attribute:!1})],r.prototype,"geolocationCoordinates",1);l([_()],r.prototype,"_geolocationCoordinates",2);l([p("input")],r.prototype,"_addressInput",2);l([p("#mealz-store-locator__map")],r.prototype,"_mapElement",2);r=l([m("mealz-store-locator")],r);customElements.get("mealz-store-locator")||customElements.define("mealz-store-locator",r);
|
|
@@ -1,43 +1,10 @@
|
|
|
1
|
-
import{N as c,k as
|
|
2
|
-
|
|
3
|
-
<span class="mealz-no-supplier-onboarding__bold">“Mes courses”</span>`},{img:"https://storage.googleapis.com/assets.miam.tech/generic/images/8.7/noSupplierOnboardingStep2.png",title:"Choisissez votre drive",content:"Sélectionnez un magasin parmi les enseignes participantes et disponibles proches de vous"},{img:"https://storage.googleapis.com/assets.miam.tech/generic/images/8.7/noSupplierOnboardingStep3.png",title:"Une recette, des produits",content:"Ajoutez les produits de votre choix dans votre panier et ajustez les quantités."},{img:"https://storage.googleapis.com/assets.miam.tech/generic/images/8.7/noSupplierOnboardingStep4.png",title:"Commande en 1 clic",content:"Accédez à votre panier et passez votre commande dans le magasin sélectionné."}],this.analyticsPath="/onboarding",this.styleURL=new URL("./no-supplier-onboarding/no-supplier-onboarding.css",this.getBaseURL())}connectedCallback(){super.connectedCallback(),this.pageview(),this.listenToModalCloseEvent()}render(){const{img:e,title:s,content:n}=this.steps[this.step-1];return r`
|
|
4
|
-
<div class="mealz-no-supplier-onboarding">
|
|
5
|
-
<div class="mealz-no-supplier-onboarding__body">
|
|
6
|
-
<div class="mealz-no-supplier-onboarding__content step${this.step}">
|
|
7
|
-
<span class="mealz-no-supplier-onboarding__title mealz-ds-text size-xl weight-xl">
|
|
8
|
-
${s}
|
|
9
|
-
</span>
|
|
10
|
-
<span class="mealz-no-supplier-onboarding__text mealz-ds-text size-s weight-m">
|
|
11
|
-
${n}
|
|
12
|
-
</span>
|
|
13
|
-
<img class="mealz-no-supplier-onboarding__img" src="${e}">
|
|
14
|
-
</div>
|
|
15
|
-
<div class="mealz-no-supplier-onboarding__track">
|
|
16
|
-
${this.renderStepIndicators()}
|
|
17
|
-
</div>
|
|
18
|
-
<button class="mealz-ds-button primary mealz-no-supplier-onboarding__confirm" @click="${this.onConfirm}">
|
|
19
|
-
<span class="mealz-ds-text">Je choisis mon magasin ou mon drive</span>
|
|
20
|
-
</button>
|
|
21
|
-
</div>
|
|
22
|
-
${this.renderNavigationButtons()}
|
|
23
|
-
</div>
|
|
24
|
-
`}renderStepIndicators(){return this.steps.map((e,s)=>r`
|
|
25
|
-
<img class="${this.step===s+1?"active":""}"
|
|
26
|
-
src="https://storage.googleapis.com/assets.miam.tech/generic/icons/8.7/BulletPoint.svg" alt="step ${s+1}">
|
|
27
|
-
`)}renderNavigationButtons(){return r`
|
|
28
|
-
<button @click="${this.previousStep}"
|
|
29
|
-
class="mealz-no-supplier-onboarding__previous mealz-ds-button primary ghost square ${this.step===1?"hidden":""}">
|
|
30
|
-
<img src="https://storage.googleapis.com/assets.miam.tech/generic/icons/ArrowLeft_dark.svg" alt="previous step">
|
|
31
|
-
</button>
|
|
32
|
-
<button @click="${this.nextStep}"
|
|
33
|
-
class="mealz-no-supplier-onboarding__next mealz-ds-button primary ghost square${this.step===this.steps.length?"hidden":""}">
|
|
34
|
-
<img src="https://storage.googleapis.com/assets.miam.tech/generic/icons/ArrowLeft_dark.svg" alt="next step">
|
|
35
|
-
</button>
|
|
36
|
-
`}previousStep(){this.step=Math.max(this.step-1,1)}nextStep(){this.step=Math.min(this.step+1,this.steps.length)}onConfirm(){this.modalConfirmed=!0,this.sendConfirmEvent(),this.dispatchEvent(new CustomEvent("onboardingConfirmed",{bubbles:!0,composed:!0}))}listenToModalCloseEvent(){document.querySelector("mealz-modal").addEventListener("modalClosed",()=>{this.modalConfirmed||this.sendCloseEvent(),sessionStorage.setItem("_miam/noSupplier/onboarding","was-closed")})}pageview(){o.analytics.sendEvent("pageview",this.analyticsPath,{})}sendConfirmEvent(){o.analytics.sendEvent("onboarding.action",this.analyticsPath,{steps_completed:this.step.toString()})}sendCloseEvent(){o.analytics.sendEvent("onboarding.close",this.analyticsPath,{steps_completed:this.step.toString()})}};h([u()],d.prototype,"step",2);d=h([m("mealz-no-supplier-onboarding")],d);customElements.get("mealz-no-supplier-onboarding")||customElements.define("mealz-no-supplier-onboarding",d);var _=Object.getOwnPropertyDescriptor,f=(e,s,n,i)=>{for(var t=i>1?void 0:i?_(s,n):s,a=e.length-1,l;a>=0;a--)(l=e[a])&&(t=l(t)||t);return t};let p=class extends c{constructor(){super(...arguments),this.analyticsPath="/locator",this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.pageview(),this.listenToCloseEvent(),this.listenToUserCoordinates()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}render(){return this.shouldDisplayOnboarding()&&this.displayOnboardingModal(),r`
|
|
1
|
+
import{N as c,k as i}from"../assets/no-shadow-element-Dz9jgDtr.js";import{t as p}from"../assets/custom-element-BhZVzxrc.js";import{m as s}from"../assets/mealz-sdk-E_fNZM-c.js";import{s as h}from"../assets/skipWhile-BzDgmir5.js";import{s as u}from"../assets/switchMap-6Z80ObHE.js";import{m}from"../assets/map-DHslluWD.js";import{f as w}from"../assets/filter-DQ4vwAGj.js";import"../assets/OperatorSubscriber-DF1TYu__.js";import"../assets/innerFrom-FMZwm2mb.js";var S=Object.getOwnPropertyDescriptor,b=(e,t,o,l)=>{for(var r=l>1?void 0:l?S(t,o):t,a=e.length-1,d;a>=0;a--)(d=e[a])&&(r=d(r)||r);return r};let n=class extends c{constructor(){super(...arguments),this.analyticsPath="/locator",this.subscriptions=[]}connectedCallback(){super.connectedCallback(),this.listenToDrawerViewSwapper(),this.listenToCloseEvent(),this.listenToUserCoordinates()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}render(){return i`
|
|
2
|
+
<!-- NEED TO SET REAL VALUE TO .SHOW CONTINUE HERE -->
|
|
37
3
|
<mealz-store-locator
|
|
38
4
|
.show="${!0}"
|
|
39
5
|
.geolocationCoordinates="${this.hostCoordinates}"
|
|
40
6
|
@posIdChange=${e=>this.changePosAndSupplier(e)}
|
|
41
7
|
@searchChange=${e=>this.sendSearchEvent(e)}
|
|
8
|
+
@showChange=${()=>this.navigateBack()}
|
|
42
9
|
></mealz-store-locator>
|
|
43
|
-
`}listenToUserCoordinates(){var e,
|
|
10
|
+
`}listenToUserCoordinates(){var e,t;(t=(e=window.mealzInternal)==null?void 0:e.user)!=null&&t.userCoordinates$&&this.subscriptions.push(window.mealzInternal.user.userCoordinates$.subscribe(o=>{this.hostCoordinates=o,this.requestUpdate()}))}shouldDisplayOnboarding(){const e=sessionStorage.getItem("_miam/noSupplier/onboarding")==="was-closed",t=document.querySelector("mealz-drawer-view-swapper");return!e&&!!(t!=null&&t.displayStoreLocator$.value)}displayOnboardingModal(){const e=document.createElement("mealz-modal");e.titleSlot=i`<span class="mealz-no-supplier-onboarding__badge mealz-ds-badge size-l">NOUVEAU !</span>`,e.contentSlot=i`<mealz-no-supplier-onboarding></mealz-no-supplier-onboarding>`,document.body.appendChild(e)}changePosAndSupplier(e){const t=s.pos.currentPos().value;if((t==null?void 0:t.id)===e.detail.posId){this.closeStoreLocator();return}this.selectedPosId=e.detail.posId,localStorage.setItem("_miam/noSupplier/posId",this.selectedPosId),this.selectedSupplierName=e.detail.supplierName,this.changePos()}changePos(){this.selectedPosId&&this.subscriptions.push(s.pos.loadPos(this.selectedPosId).pipe(h(e=>!e||e.id!==this.selectedPosId),u(e=>(this.sendSelectedEvent(e),s.pos.basketLoadedForNewPos())),m(()=>(s.storeLocator.newStoreSelected(),this.closeStoreLocator()))).subscribe())}listenToCloseEvent(){const e=document.querySelector("mealz-drawer");e&&e.addEventListener("drawerClosed",()=>{this.closeStoreLocator(),this.sendCloseEvent()})}navigateBack(){var e,t,o;(o=(t=(e=s)==null?void 0:e.noSupplier)==null?void 0:t.displaySupplierSelector$)==null||o.next(!0),this.closeStoreLocator()}closeStoreLocator(){const e=document.querySelector("mealz-drawer-view-swapper");e&&e.displayStoreLocator$.next(!1);const t=this.querySelector("mealz-store-locator");t==null||t.resetPosSelection()}listenToDrawerViewSwapper(){const e=document.querySelector("mealz-drawer-view-swapper");e&&this.subscriptions.push(e.displayStoreLocator$.pipe(w(t=>t)).subscribe(()=>this.pageview()))}isHidden(){return this.classList.contains("hidden")}pageview(){this.isHidden()||s.analytics.sendEvent("pageview",this.analyticsPath,{})}sendSelectedEvent(e){this.isHidden()||s.analytics.sendEvent("locator.select",this.analyticsPath,{pos_name:e.attributes.name,pos_id:e.id,supplier_name:this.selectedSupplierName})}sendSearchEvent(e){this.isHidden()||s.analytics.sendEvent("locator.search",this.analyticsPath,{search_term:e.detail.searchTerm,stores_found_count:e.detail.storesFoundCount.toString()})}sendCloseEvent(){this.isHidden()||s.analytics.sendEvent("locator.close",this.analyticsPath,{})}};n=b([p("mealz-store-locator-drawer")],n);customElements.get("mealz-store-locator-drawer")||customElements.define("mealz-store-locator-drawer",n);
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
.mealz-store-locator {
|
|
2
|
+
height: 100%;
|
|
3
|
+
display: flex;
|
|
4
|
+
|
|
5
|
+
.mealz-store-locator__pos-selection {
|
|
6
|
+
display: flex;
|
|
7
|
+
width: 320px;
|
|
8
|
+
padding: 40px var(--spacing-padding-16-px, 16px);
|
|
9
|
+
flex-direction: column;
|
|
10
|
+
align-items: stretch;
|
|
11
|
+
gap: var(--spacing-padding-16-px, 16px);
|
|
12
|
+
flex-shrink: 0;
|
|
13
|
+
background: var(--mealz-ds-color-neutral-white, #ffffff);
|
|
14
|
+
box-shadow: 2px 0px 16px 0px rgba(0, 0, 0, 0.15);
|
|
15
|
+
z-index: 1;
|
|
16
|
+
|
|
17
|
+
.mealz-store-locator__title {
|
|
18
|
+
color: var(--mealz-ds-color-neutral-black, #0f191f);
|
|
19
|
+
font-size: 28px;
|
|
20
|
+
font-weight: 700;
|
|
21
|
+
line-height: 120%;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.mealz-store-locator__go-back-button {
|
|
25
|
+
border-radius: 100%;
|
|
26
|
+
height: 40px;
|
|
27
|
+
width: 40px;
|
|
28
|
+
display: flex;
|
|
29
|
+
justify-content: center;
|
|
30
|
+
align-items: center;
|
|
31
|
+
|
|
32
|
+
img {
|
|
33
|
+
width: 15px;
|
|
34
|
+
height: 15px;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
#mealz-store-locator__store-locator-form {
|
|
39
|
+
display: flex;
|
|
40
|
+
flex-direction: column;
|
|
41
|
+
gap: 8px;
|
|
42
|
+
|
|
43
|
+
.mealz-store-locator__address-input-container {
|
|
44
|
+
display: flex;
|
|
45
|
+
gap: 8px;
|
|
46
|
+
height: 40px;
|
|
47
|
+
position: relative;
|
|
48
|
+
|
|
49
|
+
.mealz-store-locator__locate-button {
|
|
50
|
+
position: absolute;
|
|
51
|
+
background: unset;
|
|
52
|
+
border: unset;
|
|
53
|
+
padding: 0;
|
|
54
|
+
top: 8px;
|
|
55
|
+
left: 8px;
|
|
56
|
+
width: 24px;
|
|
57
|
+
height: 24px;
|
|
58
|
+
|
|
59
|
+
.mealz-store-locator__geolocation-icon {
|
|
60
|
+
cursor: pointer;
|
|
61
|
+
width: 24px;
|
|
62
|
+
height: 24px;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.mealz-store-locator__locate-button
|
|
67
|
+
+ .mealz-store-locator__address-input {
|
|
68
|
+
padding-left: 40px;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.mealz-store-locator__address-input {
|
|
72
|
+
padding-left: 8px;
|
|
73
|
+
flex: 1;
|
|
74
|
+
border: 1px solid var(--mealz-ds-color-neutral-200, #D9DDE1);
|
|
75
|
+
border-radius: 4px;
|
|
76
|
+
font-size: 14px;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.mealz-store-locator__select-supplier {
|
|
81
|
+
display: flex;
|
|
82
|
+
|
|
83
|
+
.mealz-store-locator__select-supplier-select {
|
|
84
|
+
flex: 1;
|
|
85
|
+
padding: 10px;
|
|
86
|
+
max-width: initial;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.mealz-store-locator__pos-loader {
|
|
92
|
+
flex: 1;
|
|
93
|
+
width: 100%;
|
|
94
|
+
display: flex;
|
|
95
|
+
justify-content: center;
|
|
96
|
+
align-items: center;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.mealz-store-locator__pos-loader .mealz-ds-loader {
|
|
100
|
+
margin: 16px;
|
|
101
|
+
display: flex;
|
|
102
|
+
width: 72px;
|
|
103
|
+
height: 72px;
|
|
104
|
+
background-position-x: 36px;
|
|
105
|
+
background-size: 36px 36px;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
#mealz-store-locator__pos-list {
|
|
109
|
+
flex-direction: column;
|
|
110
|
+
align-items: flex-start;
|
|
111
|
+
gap: var(--spacing-padding-12-px, 12px);
|
|
112
|
+
align-self: stretch;
|
|
113
|
+
overflow: auto;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.mealz-store-locator__pos-list__visible,
|
|
117
|
+
.mealz-store-locator__pos-list__hidden {
|
|
118
|
+
display: flex;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.mealz-store-locator__no-pos-found {
|
|
122
|
+
margin-bottom: 16px;
|
|
123
|
+
width: 100%;
|
|
124
|
+
flex: 1;
|
|
125
|
+
display: flex;
|
|
126
|
+
justify-content: center;
|
|
127
|
+
align-items: center;
|
|
128
|
+
flex-direction: column;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
#mealz-store-locator__view-swapper-button {
|
|
133
|
+
display: none;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.mealz-store-locator__pos-item {
|
|
137
|
+
display: flex;
|
|
138
|
+
flex-direction: column;
|
|
139
|
+
padding: 8px;
|
|
140
|
+
align-items: flex-start;
|
|
141
|
+
gap: 16px;
|
|
142
|
+
align-self: stretch;
|
|
143
|
+
border-radius: 8px;
|
|
144
|
+
border: 1px solid var(--mealz-ds-color-neutral-200, #eff1f3);
|
|
145
|
+
|
|
146
|
+
.mealz-store-locator__pos-data {
|
|
147
|
+
display: flex;
|
|
148
|
+
align-items: flex-start;
|
|
149
|
+
gap: 8px;
|
|
150
|
+
align-self: stretch;
|
|
151
|
+
|
|
152
|
+
.mealz-store-locator__pos-picture {
|
|
153
|
+
width: 40px;
|
|
154
|
+
height: 40px;
|
|
155
|
+
flex-shrink: 0;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.mealz-store-locator__pos-name {
|
|
159
|
+
color: var(--mealz-ds-color-neutral-black, #0f191f);
|
|
160
|
+
font-size: 14px;
|
|
161
|
+
font-weight: 700;
|
|
162
|
+
line-height: 150%;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.mealz-store-locator__pos-address {
|
|
166
|
+
color: var(--mealz-ds-color-neutral-500, #8c96a2);
|
|
167
|
+
font-size: 12px;
|
|
168
|
+
font-weight: 600;
|
|
169
|
+
line-height: 150%;
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
.mealz-store-locator__pos-cta {
|
|
174
|
+
display: flex;
|
|
175
|
+
justify-content: flex-end;
|
|
176
|
+
width: 100%;
|
|
177
|
+
|
|
178
|
+
.mealz-select-pos-button {
|
|
179
|
+
border-radius: 1000px;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
#mealz-store-locator__map {
|
|
185
|
+
z-index: 0;
|
|
186
|
+
flex: 1 1 0;
|
|
187
|
+
min-height: 400px;
|
|
188
|
+
width: 100%;
|
|
189
|
+
|
|
190
|
+
.mealz-store-locator__pos-item {
|
|
191
|
+
border: none;
|
|
192
|
+
padding: 0;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
.leaflet-marker-pane .mealz-marker-icon {
|
|
196
|
+
border-radius: 50%;
|
|
197
|
+
overflow: hidden;
|
|
198
|
+
object-fit: cover;
|
|
199
|
+
border: 4px solid var(--mealz-ds-color-neutral-white, #FFFFFF);
|
|
200
|
+
box-sizing: content-box;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
@media (max-width: 768px) {
|
|
206
|
+
.mealz-store-locator {
|
|
207
|
+
position: absolute;
|
|
208
|
+
flex-direction: column;
|
|
209
|
+
inset: 0;
|
|
210
|
+
|
|
211
|
+
.mealz-store-locator__pos-selection {
|
|
212
|
+
width: 100%;
|
|
213
|
+
padding: 0;
|
|
214
|
+
gap: 0;
|
|
215
|
+
|
|
216
|
+
.mealz-store-locator__go-back-button {
|
|
217
|
+
position: absolute;
|
|
218
|
+
z-index: 1;
|
|
219
|
+
top: 12px;
|
|
220
|
+
left: 8px;
|
|
221
|
+
width: 32px;
|
|
222
|
+
height: 32px;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.mealz-store-locator__title {
|
|
226
|
+
position: relative;
|
|
227
|
+
min-height: 56px;
|
|
228
|
+
font-size: 16px;
|
|
229
|
+
display: flex;
|
|
230
|
+
align-items: center;
|
|
231
|
+
justify-content: center;
|
|
232
|
+
border-bottom: solid 1px var(--mealz-ds-color-neutral-200, #eff1f3);
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
#mealz-store-locator__store-locator-form {
|
|
236
|
+
padding: 24px 16px;
|
|
237
|
+
|
|
238
|
+
.mealz-store-locator__address-input-container {
|
|
239
|
+
.mealz-store-locator__address-input {
|
|
240
|
+
width: calc(100% - 44px);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.mealz-store-locator__search-address-button {
|
|
244
|
+
width: 36px;
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
#mealz-store-locator__pos-list {
|
|
250
|
+
padding: 0 16px 12px;
|
|
251
|
+
align-items: center;
|
|
252
|
+
|
|
253
|
+
&.mealz-store-locator__pos-list__visible {
|
|
254
|
+
display: flex;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
&.mealz-store-locator__pos-list__hidden {
|
|
258
|
+
display: none;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.mealz-store-locator__pos-loader {
|
|
263
|
+
position: absolute;
|
|
264
|
+
height: 100%;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
&.mealz-store-locator__pos-selection__height {
|
|
268
|
+
height: 100%;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
#mealz-store-locator__view-swapper-button {
|
|
273
|
+
width: 100%;
|
|
274
|
+
display: flex;
|
|
275
|
+
justify-content: center;
|
|
276
|
+
padding: 12px 0;
|
|
277
|
+
|
|
278
|
+
&.mealz-store-locator__see-list-button {
|
|
279
|
+
z-index: 1;
|
|
280
|
+
bottom: 40px;
|
|
281
|
+
position: absolute;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
&.mealz-store-locator__see-map-button {
|
|
285
|
+
box-shadow: -2px 0 18px 0 rgba(0, 0, 0, 0.15);
|
|
286
|
+
margin-top: auto;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.mealz-supplier-selector .mealz-supplier-selector__onboarding-container{padding:24px;background-color:var(--mealz-ds-color-primary-100, #e4eaec)}.mealz-supplier-selector .mealz-supplier-selector__onboarding-container .mealz-supplier-selector__onboarding-title{margin:0 0 8px}.mealz-supplier-selector .mealz-supplier-selector__onboarding-container .mealz-supplier-selector__onboarding-steps{overflow-y:scroll;margin-top:16px;display:flex}.mealz-supplier-selector .mealz-supplier-selector__onboarding-container .mealz-supplier-selector__onboarding-steps>*:not(:last-child){margin-right:16px}.mealz-supplier-selector .mealz-supplier-selector__onboarding-container .mealz-supplier-selector__onboarding-steps .mealz-supplier-selector__card{background-color:var(--mealz-ds-color-neutral-white, #fff);display:flex;align-items:center;padding:16px;border-radius:12px}.mealz-supplier-selector .mealz-supplier-selector__onboarding-container .mealz-supplier-selector__onboarding-steps .mealz-supplier-selector__card .mealz-supplier-selector__instructions{flex:1 1 0;margin-right:24px}.mealz-supplier-selector .mealz-supplier-selector__onboarding-container .mealz-supplier-selector__onboarding-steps .mealz-supplier-selector__card .mealz-supplier-selector__instructions .mealz-supplier-selector__step-counter{display:flex;justify-content:center;align-items:center;margin-bottom:8px;height:32px;width:32px;border-radius:50%;background-color:var(--mealz-ds-color-primary, #24748F);color:var(--mealz-ds-color-neutral-white, #fff)}.mealz-supplier-selector .mealz-supplier-selector__onboarding-container .mealz-supplier-selector__onboarding-steps .mealz-supplier-selector__card .mealz-supplier-selector__onboarding-step-image{flex:1 1 0}.mealz-supplier-selector .mealz-supplier-selector__suppliers-container{padding:24px}.mealz-supplier-selector .mealz-supplier-selector__suppliers-container .mealz-supplier-selector__supplier-list{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));margin:0 -6px -6px}.mealz-supplier-selector .mealz-supplier-selector__suppliers-container .mealz-supplier-selector__supplier-list .mealz-supplier-selector__supplier-button-card{border-radius:8px;background:none;border:none;padding:0;margin:6px;cursor:pointer;position:relative;overflow:hidden}.mealz-supplier-selector .mealz-supplier-selector__suppliers-container .mealz-supplier-selector__supplier-list .mealz-supplier-selector__supplier-button-card .mealz-supplier-selector__supplier-logo{display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:65%;max-height:100%;width:auto;height:auto;object-fit:contain}.mealz-supplier-selector .mealz-supplier-selector__suppliers-container .mealz-supplier-selector__supplier-list .mealz-supplier-selector__supplier-button-card .mealz-supplier-selector__supplier-bg{display:block}@media (max-width: 575px){.mealz-supplier-selector .mealz-supplier-selector__suppliers-container .mealz-supplier-selector__supplier-list{grid-template-columns:repeat(2,minmax(150px,1fr))}}@media (max-width: 375px){.mealz-supplier-selector .mealz-supplier-selector__suppliers-container .mealz-supplier-selector__supplier-list{grid-template-columns:repeat(1,minmax(150px,1fr))}}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import{N as p,k as l}from"../assets/no-shadow-element-Dz9jgDtr.js";import{t as c}from"../assets/custom-element-BhZVzxrc.js";import{w as u}from"../assets/mealz-sdk-E_fNZM-c.js";import{f as d}from"../assets/filter-DQ4vwAGj.js";import"../assets/OperatorSubscriber-DF1TYu__.js";var m=Object.getOwnPropertyDescriptor,g=(e,s,t,r)=>{for(var i=r>1?void 0:r?m(s,t):s,a=e.length-1,n;a>=0;a--)(n=e[a])&&(i=n(i)||i);return i};let o=class extends p{constructor(){super(),this.onboardingSteps=[{title:"Choisissez une recette",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingRecipe.png"},{title:"Sélectionnez votre magasin",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingDrive.png"},{title:"Commandez vos ingrédients",image:"https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/onboardingIngredients.png"}],this.subscriptions=[],this.supplierList=[],this.analyticsPath="/supplier-selector",this.styleURL=new URL("/supplier-selector.css",import.meta.url)}connectedCallback(){super.connectedCallback(),u().then(()=>this.loadAvailableSuppliers()).catch(e=>{console.warn("[MealzSupplierSelector] MealzInternal SDK not available, suppliers will not be loaded.",e)}),this.listenToDrawerViewSwapper(),this.listenToCloseEvent()}disconnectedCallback(){super.disconnectedCallback(),this.subscriptions.forEach(e=>e.unsubscribe())}loadAvailableSuppliers(){var r;const e=window.mealz,s=(r=e==null?void 0:e.supplier)==null?void 0:r.getAffiliateSuppliers;if(!s){console.warn("[MealzSupplierSelector] mealz.supplier.getAffiliateSuppliers is not available.");return}const t=s();if(!t||typeof t.subscribe!="function"){console.warn("[MealzSupplierSelector] getAffiliateSuppliers did not return a subscribable observable.");return}this.subscriptions.push(t.subscribe(i=>{this.supplierList=i,this.requestUpdate()}))}selectSupplier(e){localStorage.setItem("_miam/selectedSupplierId",e.id),this.sendSelectSupplierEvent(e);const s=this.closest("mealz-drawer-view-swapper"),t=document.querySelector("mealz-store-locator");s&&(s.displayStoreLocator$.next(!0),window.mealzInternal.noSupplier.displaySupplierSelector$.next(!1),t&&(t.show=!0))}listenToDrawerViewSwapper(){const e=document.querySelector("mealz-drawer-view-swapper");e&&this.subscriptions.push(e.displaySupplierSelector$.pipe(d(s=>s)).subscribe(()=>this.pageview()))}listenToCloseEvent(){const e=document.querySelector("mealz-drawer");e&&e.addEventListener("drawerClosed",()=>{this.sendCloseEvent()})}render(){return l`
|
|
2
|
+
<div class="mealz-supplier-selector">
|
|
3
|
+
${this.renderOnboarding()}
|
|
4
|
+
${this.renderSuppliers()}
|
|
5
|
+
</div>
|
|
6
|
+
`}renderOnboarding(){return l`
|
|
7
|
+
<div class="mealz-supplier-selector__onboarding-container">
|
|
8
|
+
<h3 class="mealz-supplier-selector__onboarding-title mealz-ds-text weight-xl">
|
|
9
|
+
✨ Nouveau ! Faites vos courses en un clic avec Marmiton.
|
|
10
|
+
</h3>
|
|
11
|
+
<span class="mealz-supplier-selector__onboarding-text mealz-ds-text">
|
|
12
|
+
Choisissez une recette, sélectionnez votre magasin, on s'occupe du reste !<br/>
|
|
13
|
+
Vos ingrédients sont ajoutés automatiquement dans votre panier, prêt à être commandés.
|
|
14
|
+
</span>
|
|
15
|
+
<div class="mealz-supplier-selector__onboarding-steps">
|
|
16
|
+
${this.onboardingSteps.map((e,s)=>l`
|
|
17
|
+
<div class="mealz-supplier-selector__card">
|
|
18
|
+
<div class="mealz-supplier-selector__instructions">
|
|
19
|
+
<div class="mealz-supplier-selector__step-counter">
|
|
20
|
+
<span class="mealz-ds-text weight-l">${s+1}</span>
|
|
21
|
+
</div>
|
|
22
|
+
<span class="mealz-supplier-selector__onboarding-step-text mealz-ds-text weight-xl">${e.title}</span>
|
|
23
|
+
</div>
|
|
24
|
+
<img class="mealz-supplier-selector__onboarding-step-image" src="${e.image}" alt="${e.title}"
|
|
25
|
+
aria-hidden="true">
|
|
26
|
+
</div>
|
|
27
|
+
`)}
|
|
28
|
+
</div>
|
|
29
|
+
</div>
|
|
30
|
+
`}renderSuppliers(){return l`
|
|
31
|
+
<div class="mealz-supplier-selector__suppliers-container">
|
|
32
|
+
<h3 class="mealz-supplier-selector__onboarding-title mealz-ds-text weight-xl">
|
|
33
|
+
Pour commencer, sélectionnez votre enseigne.
|
|
34
|
+
</h3>
|
|
35
|
+
<div class="mealz-supplier-selector__supplier-list">
|
|
36
|
+
${this.supplierList.map(e=>l`
|
|
37
|
+
<button class="mealz-supplier-selector__supplier-button-card"
|
|
38
|
+
@click="${()=>this.selectSupplier(e)}">
|
|
39
|
+
<img
|
|
40
|
+
class="mealz-supplier-selector__supplier-bg"
|
|
41
|
+
src="https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/retailer-bg-${e.id}.png"
|
|
42
|
+
alt="${e.name} background"
|
|
43
|
+
aria-hidden="true">
|
|
44
|
+
<img
|
|
45
|
+
class="mealz-supplier-selector__supplier-logo"
|
|
46
|
+
src="https://storage.googleapis.com/assets.miam.tech/generic/images/9.1/retailer-${e.id}.svg"
|
|
47
|
+
alt="${e.name}"
|
|
48
|
+
aria-hidden="true">
|
|
49
|
+
</button>
|
|
50
|
+
`)}
|
|
51
|
+
</div>
|
|
52
|
+
</div>
|
|
53
|
+
`}pageview(){window.mealzInternal.analytics.sendEvent("pageview",this.analyticsPath,{})}sendSelectSupplierEvent(e){window.mealzInternal.analytics.sendEvent("supplier-selector.select",this.analyticsPath,{supplier_id:e.id})}sendCloseEvent(){window.mealzInternal.analytics.sendEvent("supplier-selector.close",this.analyticsPath,{})}};o=g([c("mealz-supplier-selector")],o);customElements.get("mealz-supplier-selector")||customElements.define("mealz-supplier-selector",o);
|