gw-customer-accounts 1.2.7 → 1.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.
@@ -1 +1 @@
1
- import{G as a,a as i}from"./assets/index-DI2a6rRk.js";customElements.define("gw-address-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.type=this.getAttribute("type"),this.addressId=this.getAttribute("address-id")}connectedCallback(){if(this._handleFormSubmit(),this.type==="edit"){const e=this.querySelector("[data-delete-address]");if(!e)return;e.addEventListener("click",()=>{this._deleteAddress()})}this.type}async _handleFormSubmit(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{this.form.addEventListener("sl-invalid",e=>{e.preventDefault(),this._clearErrorMessages(),this.form.querySelectorAll("sl-input").forEach(t=>{if(t.hasAttribute("data-invalid")){const r=document.createElement("div");r.slot="help-text",r.classList.add("gw-error-message"),r.textContent=t.validationMessage,t.appendChild(r)}}),e.target.focus()},{capture:!0}),this.form.addEventListener("submit",e=>{e.preventDefault();const t=new FormData(this.form),r=Object.fromEntries(t.entries());this._submitAddressForm(r)})})}async _submitAddressForm(e){try{this._clearErrorMessages(),this.form.querySelector("[data-loader]").hidden=!1,e.province&&(e.province=e.province.replaceAll("_"," ")),e.country=e.country.replaceAll("_"," ");let t=e.isDefault;delete e.isDefault;let r=null;if(this.type==="edit"?r=await a.request(i.ENDPOINTS.ADDRESS.EDIT,{address:e,addrID:this.addressId,isDefault:t}):r=await a.request(i.ENDPOINTS.ADDRESS.ADD,{address:e,isDefault:t}),r.error)throw new Error(r.error);this.form.closest("sl-drawer").hide(),a.updateAjaxContent(["[data-gw-addresses-list]","[data-gw-addresses-carousel]"])}catch(t){console.error(t)}finally{this.form.querySelector("[data-loader]").hidden=!0}}async _deleteAddress(){try{this.querySelector("[data-delete-address]").querySelector("[data-loader]").hidden=!1;let e=await a.request(i.ENDPOINTS.ADDRESS.REMOVE,{addrID:this.addressId});if(e.error)throw new Error(e.error);this.form.closest("sl-drawer").hide(),await a.app.updateContent(["[data-gw-addresses-list]","[data-gw-addresses-carousel]"])}catch(e){console.error(e)}}_handleSubmitButton(){const e=this.form.querySelectorAll("sl-input, sl-select, sl-checkbox"),t=this.form.querySelector('button[type="submit"]'),r=()=>Array.from(e).some(s=>{if(s.tagName==="SL-CHECKBOX"){const n=s.getAttribute("defaultChecked"),c=s.getAttribute("checked");return n!==c}const d=s.getAttribute("value"),l=s.value;return d!==l});e.forEach(o=>{o.addEventListener("sl-input",()=>{r()?t.hidden=!1:t.hidden=!0})})}_clearErrorMessages(){this.form.querySelectorAll(".gw-error-message").forEach(e=>e.remove())}});
1
+ import{G as a,a as i}from"./assets/index-DkUQsudo.js";customElements.define("gw-address-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.type=this.getAttribute("type"),this.addressId=this.getAttribute("address-id")}connectedCallback(){if(this._handleFormSubmit(),this.type==="edit"){const e=this.querySelector("[data-delete-address]");if(!e)return;e.addEventListener("click",()=>{this._deleteAddress()})}this.type}async _handleFormSubmit(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{this.form.addEventListener("sl-invalid",e=>{e.preventDefault(),this._clearErrorMessages(),this.form.querySelectorAll("sl-input").forEach(t=>{if(t.hasAttribute("data-invalid")){const r=document.createElement("div");r.slot="help-text",r.classList.add("gw-error-message"),r.textContent=t.validationMessage,t.appendChild(r)}}),e.target.focus()},{capture:!0}),this.form.addEventListener("submit",e=>{e.preventDefault();const t=new FormData(this.form),r=Object.fromEntries(t.entries());this._submitAddressForm(r)})})}async _submitAddressForm(e){try{this._clearErrorMessages(),this.form.querySelector("[data-loader]").hidden=!1,e.province&&(e.province=e.province.replaceAll("_"," ")),e.country=e.country.replaceAll("_"," ");let t=e.isDefault;delete e.isDefault;let r=null;if(this.type==="edit"?r=await a.request(i.ENDPOINTS.ADDRESS.EDIT,{address:e,addrID:this.addressId,isDefault:t}):r=await a.request(i.ENDPOINTS.ADDRESS.ADD,{address:e,isDefault:t}),r.error)throw new Error(r.error);this.form.closest("sl-drawer").hide(),a.updateAjaxContent(["[data-gw-addresses-list]","[data-gw-addresses-carousel]"])}catch(t){console.error(t)}finally{this.form.querySelector("[data-loader]").hidden=!0}}async _deleteAddress(){try{this.querySelector("[data-delete-address]").querySelector("[data-loader]").hidden=!1;let e=await a.request(i.ENDPOINTS.ADDRESS.REMOVE,{addrID:this.addressId});if(e.error)throw new Error(e.error);this.form.closest("sl-drawer").hide(),await a.app.updateContent(["[data-gw-addresses-list]","[data-gw-addresses-carousel]"])}catch(e){console.error(e)}}_handleSubmitButton(){const e=this.form.querySelectorAll("sl-input, sl-select, sl-checkbox"),t=this.form.querySelector('button[type="submit"]'),r=()=>Array.from(e).some(s=>{if(s.tagName==="SL-CHECKBOX"){const n=s.getAttribute("defaultChecked"),c=s.getAttribute("checked");return n!==c}const d=s.getAttribute("value"),l=s.value;return d!==l});e.forEach(o=>{o.addEventListener("sl-input",()=>{r()?t.hidden=!1:t.hidden=!0})})}_clearErrorMessages(){this.form.querySelectorAll(".gw-error-message").forEach(e=>e.remove())}});
@@ -0,0 +1 @@
1
+ const i=Object.freeze({MAP:{"#my-account":"dashboard","#my-orders":"orders","#my-profile":"profile","#my-favorites":"dashboard##favorites"},STORAGE_KEYS:{TOKEN:"i-shsgi--u0mihh3co1e3y9sns",EMAIL:"gw-customer-accounts-email",RECENTLY_VIEWED:"gw-recently-viewed",RECENTLY_VIEWED_COLLECTION:"gw-recently-viewed-collection",LOYALTY_POINTS:"gw-loyalty-points",YOTPO_POINTS:"gw-yotpo-points",WISHLIST_PRODUCT_IDS:"gw-wishlist-product-ids",RISE_POINTS:"gw-rise-points",REDIRECT_URL:"gw-customer-accounts-login-redirect",TEMP_WISHLIST_PRODUCTS:"gw-temp-wishlist-products",TEMP_CART_PRODUCTS:"gw-temp-cart-products",TEMP_RECENTLY_VIEWED_ITEMS:"gw-temp-recently-viewed-items",TEMP_PRODUCTS_UPDATED:"gw-temp-products-updated"},ENDPOINTS:{AUTH:{SIGN_IN:"/email-sign",SIGN_IN_TEST:"/email-sign-test",VERIFY_CODE:"/code-sign",GET_TOKEN:"/logged-sign",CUSTOMER_LOGGED:"/customer-logged",GET_CAPTCHA_TOKEN:"/get-token"},FAVORITES:{GET_ALL_IDS:"/get-all-favorites",GET:"/get-favorites",ADD:"/add-favorite",REMOVE:"/remove-favorite",ADD_BULK:"/add-favorites"},VIEWED_PRODUCTS:{GET:"/get-viewed-products",ADD:"/add-viewed-product",ADD_BULK:"/add-viewed-products"},CART:{GET:"/get-cart-products",ADD:"/add-cart-product",ADD_BULK:"/add-cart-products",REMOVE:"/remove-cart"},ADDRESS:{ADD:"/add-address",EDIT:"/edit-address",REMOVE:"/remove-address"},CUSTOMER:{UPDATE:"/update-customer"},LOYALTY:{GET_LL:"/get-ll-customer",GET_YOTPO_CUSTOMER:"/get-youtpo-customer",GET_RISE_CREDIT:"/get-rise-customer"},MISC:{GET_MALOMO_ORDER:"/get-malomo-order"}},TAGS_TO_HIDE:["accounts:hidden"],TEMPLATE_IDS:{PRODUCT_CARD:"gw-standard-product-card-template",FORM_PRODUCT_CARD:"gw-form-product-card-template"},CUSTOM_EVENTS:{FAVORITES_STORAGE_UPDATED:"gw:favorites-storage-updated",SAVED_ITEMS_FROM_CART:"gw:saved-items-from-cart"},DRAWER_IDS:{favorites:"#Drawer-Favorites"}});class u{constructor(){}get componentData(){const e=document.querySelector("gw-customer-accounts").shadowRoot.querySelector("[data-component-data]");return JSON.parse(e.textContent)}get customerId(){var t,e;return(e=(t=this.componentData)==null?void 0:t.customer)==null?void 0:e.id}get customerFirstName(){var t,e;return(e=(t=this.componentData)==null?void 0:t.customer)==null?void 0:e.firstName}get customerEmail(){return localStorage.getItem(i.STORAGE_KEYS.EMAIL)}get hasCustomer(){var t,e;return!!((e=(t=this.componentData)==null?void 0:t.customer)!=null&&e.id)}get customerToken(){return localStorage.getItem(i.STORAGE_KEYS.TOKEN)}get baseURL(){return this.componentData.baseUrl}get app(){return document.querySelector("gw-customer-accounts")}get appShadow(){return this.app.shadowRoot}get dashboard(){return this.appShadow.querySelector("gw-customer-accounts-dashboard")}get tabId(){return i.MAP[window.location.hash]||"dashboard"}async request(t,e={},s="POST"){const a=()=>{const o={method:s,mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"}};return s==="POST"&&(o.body=JSON.stringify(e)),o};if(s==="GET"){const o=new URLSearchParams(e);t=`${t}?${o}`}return s==="POST"&&(e.token=this.customerToken,e.email=this.customerEmail,e.customerID=this.customerId),await(await fetch(this.baseURL+t,a())).json()}notify(t,e="success",s=3e3){const a=document.querySelector("gw-customer-accounts"),r=a.shadowRoot.querySelector("[data-notification-alert]"),o=a.shadowRoot.querySelector("[data-notification-message]");o.innerHTML=t,r.open=!0}async updateAjaxContent(t){return await this.app.updateContent(t)}parseVariantId(t){return String(t).split("/").pop()}formatMoney(t){return(t/100).toLocaleString("en-US",{style:"currency",currency:"USD"})}addToStorage({key:t,values:e,storageType:s="local",position:a="start"}){const r=s==="local"?localStorage:sessionStorage,o=JSON.parse(r.getItem(t))||[];a==="start"?r.setItem(t,JSON.stringify([...e,...o])):r.setItem(t,JSON.stringify([...o,...e]))}removeFromStorage({key:t,values:e,storageType:s="local",nestedKey:a}){const r=s==="local"?localStorage:sessionStorage,o=JSON.parse(r.getItem(t))||[];if(a){const n=o.map(c=>e.includes(c[a])?null:c);r.setItem(t,JSON.stringify(n.filter(Boolean)))}else{const n=o.filter(c=>!e.includes(c));r.setItem(t,JSON.stringify(n))}}}const E=new u;export{E as G,i as a};
@@ -1 +1 @@
1
- import{G as i,a as e}from"./index-DI2a6rRk.js";class l extends HTMLElement{constructor(){var a;super(),this.tabData=this._parseTabData(),this.tabId=(a=this.tabData)==null?void 0:a.id,this.tabGroup=this.closest("sl-tab-group"),this.tabPanel=this.closest("sl-tab-panel"),this.mainDrawerLabel=i.appShadow.querySelector("[data-main-drawer-label]")}connectedCallback(){if(this._addAnimations(),this.tabGroup.addEventListener("sl-tab-show",n=>{n.detail.name===this.tabId?(this._playFadeInAnimations(),this._updateMainDrawerLabel(),this._updateSignInBlockHeading(),this._updateHash(),i.app.reinitializeCarousels()):this._resetAnimations()}),!e.MAP[window.location.hash])return;const a=window.location.hash===this.tabId,t=e.MAP[window.location.hash].includes(this.tabId);(a||t)&&this._playFadeInAnimations()}get animationElements(){const t=[...this.querySelectorAll("sl-animation")],n=i.appShadow.querySelector("[gw-sign-in-block-animation]");return n&&t.unshift(n),t}_parseTabData(){const a=this.querySelector("[data-tab-panel-data]");return a?JSON.parse(a.textContent):{}}_updateHash(){var n,s;const a=window.location.hash;(n=e.MAP[a])!=null&&n.includes("##")||(window.location.hash=(s=this.tabData)==null?void 0:s.hash)}_updateMainDrawerLabel(){var t;const a=(t=this.tabData)==null?void 0:t.label;a&&this.mainDrawerLabel&&(this.mainDrawerLabel.textContent=a)}_updateSignInBlockHeading(){var n;const a=(n=this.tabData)==null?void 0:n.signInBlockHeading,t=i.appShadow.querySelector("[data-sign-in-block-heading]");a&&t&&(t.textContent=a)}_playFadeInAnimations(){this.animationElements.forEach(a=>a.play=!0)}_addAnimations(){this.animationElements.forEach((a,t)=>{a.keyframes=[{offset:0,opacity:"0",transform:"translate3d(0, -10px, 0)",easing:"ease-in-out"},{offset:1,opacity:"1",transform:"translate3d(0, 0, 0)",easing:"ease-in-out"}],a.delay=t*80})}_resetAnimations(){this.animationElements.forEach(a=>{a.currentTime>0&&(a.currentTime=0)})}}export{l as G};
1
+ import{G as i,a as e}from"./index-DkUQsudo.js";class l extends HTMLElement{constructor(){var a;super(),this.tabData=this._parseTabData(),this.tabId=(a=this.tabData)==null?void 0:a.id,this.tabGroup=this.closest("sl-tab-group"),this.tabPanel=this.closest("sl-tab-panel"),this.mainDrawerLabel=i.appShadow.querySelector("[data-main-drawer-label]")}connectedCallback(){if(this._addAnimations(),this.tabGroup.addEventListener("sl-tab-show",n=>{n.detail.name===this.tabId?(this._playFadeInAnimations(),this._updateMainDrawerLabel(),this._updateSignInBlockHeading(),this._updateHash(),i.app.reinitializeCarousels()):this._resetAnimations()}),!e.MAP[window.location.hash])return;const a=window.location.hash===this.tabId,t=e.MAP[window.location.hash].includes(this.tabId);(a||t)&&this._playFadeInAnimations()}get animationElements(){const t=[...this.querySelectorAll("sl-animation")],n=i.appShadow.querySelector("[gw-sign-in-block-animation]");return n&&t.unshift(n),t}_parseTabData(){const a=this.querySelector("[data-tab-panel-data]");return a?JSON.parse(a.textContent):{}}_updateHash(){var n,s;const a=window.location.hash;(n=e.MAP[a])!=null&&n.includes("##")||(window.location.hash=(s=this.tabData)==null?void 0:s.hash)}_updateMainDrawerLabel(){var t;const a=(t=this.tabData)==null?void 0:t.label;a&&this.mainDrawerLabel&&(this.mainDrawerLabel.textContent=a)}_updateSignInBlockHeading(){var n;const a=(n=this.tabData)==null?void 0:n.signInBlockHeading,t=i.appShadow.querySelector("[data-sign-in-block-heading]");a&&t&&(t.textContent=a)}_playFadeInAnimations(){this.animationElements.forEach(a=>a.play=!0)}_addAnimations(){this.animationElements.forEach((a,t)=>{a.keyframes=[{offset:0,opacity:"0",transform:"translate3d(0, -10px, 0)",easing:"ease-in-out"},{offset:1,opacity:"1",transform:"translate3d(0, 0, 0)",easing:"ease-in-out"}],a.delay=t*80})}_resetAnimations(){this.animationElements.forEach(a=>{a.currentTime>0&&(a.currentTime=0)})}}export{l as G};
package/dist/dashboard.js CHANGED
@@ -1,4 +1,4 @@
1
- import{G as i,a as m}from"./assets/index-DI2a6rRk.js";import{G as f}from"./assets/tab-B7UDegaP.js";customElements.define("gw-customer-accounts-dashboard",class extends f{constructor(){super()}connectedCallback(){super.connectedCallback(),this._initDashboard()}async _initDashboard(){i.hasCustomer&&this._renderRecentlyViewedCollections(),this.loadSavedCartItems(),this.loadFavoriteItems(),this.loadRecentlyViewedItems()}async loadRecentlyViewedItems(e={}){const{preventDrawerRender:a=!1,preventCarouselRender:r=!1,page:t=1,limit:o=8}=e;try{const n=await this._getRecentlyViewedItems(t,o);this._renderRecentlyViewedItems(n,{preventDrawerRender:a,preventCarouselRender:r,page:t,limit:o})}catch(n){console.error("Error rendering recently viewed items:",n)}}async _getRecentlyViewedItems(e,a){if(!i.hasCustomer)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS))||[];const r=await i.request(m.ENDPOINTS.VIEWED_PRODUCTS.GET,{customerID:i.customerId,limit:a,page:e},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderRecentlyViewedItems(e,a){const r="[data-recently-viewed-container]",t="[data-recently-viewed-drawer-container]";if(i.appShadow.querySelector(r)){if(!e.length){this._renderEmptyState(r,t);return}a.preventCarouselRender||this._renderProductsToCarousel(e,r),a.preventDrawerRender||this._renderProductsToDrawer({products:e,containerSelector:t,productTemplateId:m.TEMPLATE_IDS.PRODUCT_CARD,currentPage:a.page,nextPage:null})}}async _getSavedCartItems(e,a){if(!i.customerId)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[];const r=await i.request(m.ENDPOINTS.CART.GET,{customerEmail:i.customerEmail,limit:a,page:e},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderSavedCartItems(e,a){const r="[data-saved-from-cart-items-container]",t="[data-saved-from-cart-drawer-container]";if(!this.querySelector(r))return;if(!e.length){this._renderEmptyState(r,t);return}const n=this._calculateNextPage({totalItems:e.length,currentPage:a.page,limit:a.limit});a.preventCarouselRender||this._renderProductsToCarousel(e,r),a.preventDrawerRender||this._renderProductsToDrawer({products:e,containerSelector:t,removeButtonAction:"data-saved-from-cart-remove",productTemplateId:m.TEMPLATE_IDS.FORM_PRODUCT_CARD,currentPage:a.page,nextPage:n})}async loadSavedCartItems(e={}){const{preventDrawerRender:a=!1,preventCarouselRender:r=!1,page:t=1,limit:o=10}=e;try{const n=await this._getSavedCartItems(t,o);this._renderSavedCartItems(n,{preventDrawerRender:a,preventCarouselRender:r,page:t,limit:o})}catch(n){console.error("Error rendering saved items from cart:",n)}}async _getFavoriteItems(e,a){if(!i.hasCustomer)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS))||[];const r=await i.request(m.ENDPOINTS.FAVORITES.GET,{limit:a,page:e,customerID:i.customerId},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderFavoriteItems(e,a){const r="[data-favorites-container]",t="[data-favorites-drawer-container]";if(!i.appShadow.querySelector(r))return;if(!e.length){this._renderEmptyState(r,t,"You have no favorite items.");return}const{preventDrawerRender:n=!1,preventCarouselRender:s=!1,page:d=1,limit:l=10}=a;s||this._renderProductsToCarousel(e,r);const c=this._calculateNextPage({totalItems:e.length,currentPage:d,limit:l});n||this._renderProductsToDrawer({products:e,containerSelector:t,removeButtonAction:"data-wishlist-remove",productTemplateId:m.TEMPLATE_IDS.FORM_PRODUCT_CARD,currentPage:d,nextPage:c})}_renderSingleFavoriteItem(e){const a="[data-favorites-container]",r="[data-favorites-drawer-container]",t=i.appShadow.querySelector(a),o=document.getElementById(m.TEMPLATE_IDS.PRODUCT_CARD);if(!o){console.warn("Product card template not found.");return}const n=o.content.cloneNode(!0),s=this._populateCarouselItem(n,e),d=t.querySelector("sl-carousel");if(d)d.prepend(s);else{const c=document.createElement("sl-carousel");c.setAttribute("navigation",""),c.setAttribute("slides-per-page","3"),c.setAttribute("slides-per-move","3"),c.setAttribute("style","--scroll-hint: 5%; --aspect-ratio: none"),c.appendChild(s),t.innerHTML="",t.appendChild(c)}const l=i.appShadow.querySelector(r);if(l){const c=document.getElementById(m.TEMPLATE_IDS.FORM_PRODUCT_CARD);if(!c){console.warn("Drawer product card template not found.");return}const p=this._createProductElement(e,c,"data-wishlist-remove");this._ensureDrawerNotEmpty(t),l.prepend(p)}}_removeFavoriteItem(e){const a="[data-favorites-container]",r="[data-favorites-drawer-container]",t=i.appShadow.querySelector(a),o=i.appShadow.querySelector(r);if(t){const n=t.querySelector(`[data-product-id="${e}"]`);n&&n.remove(),t.querySelector("sl-carousel-item")||this._renderEmptyState(a,r,"You have no favorite items.")}if(o){const n=o.querySelector(`[data-product-id="${e}"]`);n&&n.remove()}}async loadFavoriteItems(e={}){const{page:a=1,limit:r=10}=e;try{const t=await this._getFavoriteItems(a,r);this._renderFavoriteItems(t,e)}catch(t){console.error("Error rendering favorite items:",t)}}_renderRecentlyViewedCollections(){const e=m.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION,a=JSON.parse(localStorage.getItem(e))||[],r=this.querySelector("[data-recently-viewed-collections-container]");if(!r||(r.innerHTML="",!a.length))return;const t=document.createElement("sl-carousel");t.setAttribute("navigation",""),t.setAttribute("style","--scroll-hint: 5%; --aspect-ratio: none"),a.forEach(o=>{const n=document.createElement("sl-carousel-item");n.innerHTML=`
1
+ import{G as i,a as m}from"./assets/index-DkUQsudo.js";import{G as f}from"./assets/tab-D4kkRiyw.js";customElements.define("gw-customer-accounts-dashboard",class extends f{constructor(){super()}connectedCallback(){super.connectedCallback(),this._initDashboard()}async _initDashboard(){i.hasCustomer&&this._renderRecentlyViewedCollections(),this.loadSavedCartItems(),this.loadFavoriteItems(),this.loadRecentlyViewedItems()}async loadRecentlyViewedItems(e={}){const{preventDrawerRender:a=!1,preventCarouselRender:r=!1,page:t=1,limit:o=8}=e;try{const n=await this._getRecentlyViewedItems(t,o);this._renderRecentlyViewedItems(n,{preventDrawerRender:a,preventCarouselRender:r,page:t,limit:o})}catch(n){console.error("Error rendering recently viewed items:",n)}}async _getRecentlyViewedItems(e,a){if(!i.hasCustomer)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS))||[];const r=await i.request(m.ENDPOINTS.VIEWED_PRODUCTS.GET,{customerID:i.customerId,limit:a,page:e},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderRecentlyViewedItems(e,a){const r="[data-recently-viewed-container]",t="[data-recently-viewed-drawer-container]";if(i.appShadow.querySelector(r)){if(!e.length){this._renderEmptyState(r,t);return}a.preventCarouselRender||this._renderProductsToCarousel(e,r),a.preventDrawerRender||this._renderProductsToDrawer({products:e,containerSelector:t,productTemplateId:m.TEMPLATE_IDS.PRODUCT_CARD,currentPage:a.page,nextPage:null})}}async _getSavedCartItems(e,a){if(!i.customerId)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[];const r=await i.request(m.ENDPOINTS.CART.GET,{customerEmail:i.customerEmail,limit:a,page:e},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderSavedCartItems(e,a){const r="[data-saved-from-cart-items-container]",t="[data-saved-from-cart-drawer-container]";if(!this.querySelector(r))return;if(!e.length){this._renderEmptyState(r,t);return}const n=this._calculateNextPage({totalItems:e.length,currentPage:a.page,limit:a.limit});a.preventCarouselRender||this._renderProductsToCarousel(e,r),a.preventDrawerRender||this._renderProductsToDrawer({products:e,containerSelector:t,removeButtonAction:"data-saved-from-cart-remove",productTemplateId:m.TEMPLATE_IDS.FORM_PRODUCT_CARD,currentPage:a.page,nextPage:n})}async loadSavedCartItems(e={}){const{preventDrawerRender:a=!1,preventCarouselRender:r=!1,page:t=1,limit:o=10}=e;try{const n=await this._getSavedCartItems(t,o);this._renderSavedCartItems(n,{preventDrawerRender:a,preventCarouselRender:r,page:t,limit:o})}catch(n){console.error("Error rendering saved items from cart:",n)}}async _getFavoriteItems(e,a){if(!i.hasCustomer)return JSON.parse(localStorage.getItem(m.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS))||[];const r=await i.request(m.ENDPOINTS.FAVORITES.GET,{limit:a,page:e,customerID:i.customerId},"GET");if(r.error)throw new Error(r.error);return r.products||[]}_renderFavoriteItems(e,a){const r="[data-favorites-container]",t="[data-favorites-drawer-container]";if(!i.appShadow.querySelector(r))return;if(!e.length){this._renderEmptyState(r,t,"You have no favorite items.");return}const{preventDrawerRender:n=!1,preventCarouselRender:s=!1,page:d=1,limit:l=10}=a;s||this._renderProductsToCarousel(e,r);const c=this._calculateNextPage({totalItems:e.length,currentPage:d,limit:l});n||this._renderProductsToDrawer({products:e,containerSelector:t,removeButtonAction:"data-wishlist-remove",productTemplateId:m.TEMPLATE_IDS.FORM_PRODUCT_CARD,currentPage:d,nextPage:c})}_renderSingleFavoriteItem(e){const a="[data-favorites-container]",r="[data-favorites-drawer-container]",t=i.appShadow.querySelector(a),o=document.getElementById(m.TEMPLATE_IDS.PRODUCT_CARD);if(!o){console.warn("Product card template not found.");return}const n=o.content.cloneNode(!0),s=this._populateCarouselItem(n,e),d=t.querySelector("sl-carousel");if(d)d.prepend(s);else{const c=document.createElement("sl-carousel");c.setAttribute("navigation",""),c.setAttribute("slides-per-page","3"),c.setAttribute("slides-per-move","3"),c.setAttribute("style","--scroll-hint: 5%; --aspect-ratio: none"),c.appendChild(s),t.innerHTML="",t.appendChild(c)}const l=i.appShadow.querySelector(r);if(l){const c=document.getElementById(m.TEMPLATE_IDS.FORM_PRODUCT_CARD);if(!c){console.warn("Drawer product card template not found.");return}const p=this._createProductElement(e,c,"data-wishlist-remove");this._ensureDrawerNotEmpty(t),l.prepend(p)}}_removeFavoriteItem(e){const a="[data-favorites-container]",r="[data-favorites-drawer-container]",t=i.appShadow.querySelector(a),o=i.appShadow.querySelector(r);if(t){const n=t.querySelector(`[data-product-id="${e}"]`);n&&n.remove(),t.querySelector("sl-carousel-item")||this._renderEmptyState(a,r,"You have no favorite items.")}if(o){const n=o.querySelector(`[data-product-id="${e}"]`);n&&n.remove()}}async loadFavoriteItems(e={}){const{page:a=1,limit:r=10}=e;try{const t=await this._getFavoriteItems(a,r);this._renderFavoriteItems(t,e)}catch(t){console.error("Error rendering favorite items:",t)}}_renderRecentlyViewedCollections(){const e=m.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION,a=JSON.parse(localStorage.getItem(e))||[],r=this.querySelector("[data-recently-viewed-collections-container]");if(!r||(r.innerHTML="",!a.length))return;const t=document.createElement("sl-carousel");t.setAttribute("navigation",""),t.setAttribute("style","--scroll-hint: 5%; --aspect-ratio: none"),a.forEach(o=>{const n=document.createElement("sl-carousel-item");n.innerHTML=`
2
2
  <a href="${o.url}" class="gw-button-text gw-unstyled-link gw-recently-viewed-collection">
3
3
  ${o.title}
4
4
  </a>
@@ -1,4 +1,4 @@
1
- import{a as i,G as r}from"./assets/index-DI2a6rRk.js";customElements.define("gw-integrations-loyalty-points",class extends HTMLElement{constructor(){switch(super(),this.integration=this.getAttribute("integration"),this.loyaltyPageUrl=this.getAttribute("page-url"),this.pointsLabel=this.getAttribute("points-label"),this.linkLabel=this.getAttribute("link-label"),this.innerHTML=`
1
+ import{a as i,G as r}from"./assets/index-DkUQsudo.js";customElements.define("gw-integrations-loyalty-points",class extends HTMLElement{constructor(){switch(super(),this.integration=this.getAttribute("integration"),this.loyaltyPageUrl=this.getAttribute("page-url"),this.pointsLabel=this.getAttribute("points-label"),this.linkLabel=this.getAttribute("link-label"),this.innerHTML=`
2
2
  <a href="${this.loyaltyPageUrl}" class="gw-loyalty-points__link gw-unstyled-link">
3
3
  <span class="gw-loader" data-loader></span>
4
4
  <span class="gw-loyalty-points__points-value gw-header" data-points-container></span>
package/dist/main.css ADDED
@@ -0,0 +1 @@
1
+ @layer resets, tokens, utilities, components, shoelace, main, overrides;@layer shoelace{.sl-theme-light,:host,:root{color-scheme:light;--sl-color-gray-50:#f9f9f9;--sl-color-gray-100:#f4f4f5;--sl-color-gray-200:#e4e4e7;--sl-color-gray-300:#d4d4d8;--sl-color-gray-400:#a1a1aa;--sl-color-gray-500:#71717a;--sl-color-gray-600:#52525b;--sl-color-gray-700:#3f3f46;--sl-color-gray-800:#27272a;--sl-color-gray-900:#18181b;--sl-color-gray-950:#131316;--sl-color-red-50:#fef2f2;--sl-color-red-100:#fee2e2;--sl-color-red-200:#fecaca;--sl-color-red-300:#fca5a5;--sl-color-red-400:#f87171;--sl-color-red-500:#ef4444;--sl-color-red-600:#dc2626;--sl-color-red-700:#b91c1c;--sl-color-red-800:#991b1b;--sl-color-red-900:#7f1d1d;--sl-color-red-950:#501414;--sl-color-orange-50:#fff7ed;--sl-color-orange-100:#ffedd5;--sl-color-orange-200:#fed7aa;--sl-color-orange-300:#fdba74;--sl-color-orange-400:#fb923c;--sl-color-orange-500:#f97316;--sl-color-orange-600:#ea580c;--sl-color-orange-700:#c2410c;--sl-color-orange-800:#9a3412;--sl-color-orange-900:#7c2d12;--sl-color-orange-950:#52200f;--sl-color-amber-50:#fffbeb;--sl-color-amber-100:#fef3c7;--sl-color-amber-200:#fde68a;--sl-color-amber-300:#fcd34d;--sl-color-amber-400:#fbbf24;--sl-color-amber-500:#f59e0b;--sl-color-amber-600:#d97706;--sl-color-amber-700:#b45309;--sl-color-amber-800:#92400e;--sl-color-amber-900:#78350f;--sl-color-amber-950:#4a230b;--sl-color-yellow-50:#fefce8;--sl-color-yellow-100:#fef9c3;--sl-color-yellow-200:#fef08a;--sl-color-yellow-300:#fde047;--sl-color-yellow-400:#facc15;--sl-color-yellow-500:#eab308;--sl-color-yellow-600:#ca8a04;--sl-color-yellow-700:#a16207;--sl-color-yellow-800:#854d0e;--sl-color-yellow-900:#713f12;--sl-color-yellow-950:#3c260b;--sl-color-lime-50:#f7fee7;--sl-color-lime-100:#ecfccb;--sl-color-lime-200:#d9f99d;--sl-color-lime-300:#bef264;--sl-color-lime-400:#a3e635;--sl-color-lime-500:#84cc16;--sl-color-lime-600:#65a30d;--sl-color-lime-700:#4d7c0f;--sl-color-lime-800:#3f6212;--sl-color-lime-900:#365314;--sl-color-lime-950:#26390e;--sl-color-green-50:#f0fdf4;--sl-color-green-100:#dcfce7;--sl-color-green-200:#bbf7d0;--sl-color-green-300:#86efac;--sl-color-green-400:#4ade80;--sl-color-green-500:#22c55e;--sl-color-green-600:#16a34a;--sl-color-green-700:#15803d;--sl-color-green-800:#166534;--sl-color-green-900:#14532d;--sl-color-green-950:#0c311b;--sl-color-emerald-50:#ecfdf5;--sl-color-emerald-100:#d1fae5;--sl-color-emerald-200:#a7f3d0;--sl-color-emerald-300:#6ee7b7;--sl-color-emerald-400:#34d399;--sl-color-emerald-500:#10b981;--sl-color-emerald-600:#059669;--sl-color-emerald-700:#047857;--sl-color-emerald-800:#065f46;--sl-color-emerald-900:#064e3b;--sl-color-emerald-950:#032d22;--sl-color-teal-50:#f0fdfa;--sl-color-teal-100:#ccfbf1;--sl-color-teal-200:#99f6e4;--sl-color-teal-300:#5eead4;--sl-color-teal-400:#2dd4bf;--sl-color-teal-500:#14b8a6;--sl-color-teal-600:#0d9488;--sl-color-teal-700:#0f766e;--sl-color-teal-800:#115e59;--sl-color-teal-900:#134e4a;--sl-color-teal-950:#0c2e2c;--sl-color-cyan-50:#ecfeff;--sl-color-cyan-100:#cffafe;--sl-color-cyan-200:#a5f3fc;--sl-color-cyan-300:#67e8f9;--sl-color-cyan-400:#22d3ee;--sl-color-cyan-500:#06b6d4;--sl-color-cyan-600:#0891b2;--sl-color-cyan-700:#0e7490;--sl-color-cyan-800:#155e75;--sl-color-cyan-900:#164e63;--sl-color-cyan-950:#103442;--sl-color-sky-50:#f0f9ff;--sl-color-sky-100:#e0f2fe;--sl-color-sky-200:#bae6fd;--sl-color-sky-300:#7dd3fc;--sl-color-sky-400:#38bdf8;--sl-color-sky-500:#0ea5e9;--sl-color-sky-600:#0284c7;--sl-color-sky-700:#0369a1;--sl-color-sky-800:#075985;--sl-color-sky-900:#0c4a6e;--sl-color-sky-950:#0b3249;--sl-color-blue-50:#eff6ff;--sl-color-blue-100:#dbeafe;--sl-color-blue-200:#bfdbfe;--sl-color-blue-300:#93c5fd;--sl-color-blue-400:#60a5fa;--sl-color-blue-500:#3b82f6;--sl-color-blue-600:#2563eb;--sl-color-blue-700:#1d4ed8;--sl-color-blue-800:#1e40af;--sl-color-blue-900:#1e3a8a;--sl-color-blue-950:#152149;--sl-color-indigo-50:#eef2ff;--sl-color-indigo-100:#e0e7ff;--sl-color-indigo-200:#c7d2fe;--sl-color-indigo-300:#a5b4fc;--sl-color-indigo-400:#818cf8;--sl-color-indigo-500:#6366f1;--sl-color-indigo-600:#4f46e5;--sl-color-indigo-700:#4338ca;--sl-color-indigo-800:#3730a3;--sl-color-indigo-900:#312e81;--sl-color-indigo-950:#242154;--sl-color-violet-50:#f5f3ff;--sl-color-violet-100:#ede9fe;--sl-color-violet-200:#ddd6fe;--sl-color-violet-300:#c4b5fd;--sl-color-violet-400:#a78bfa;--sl-color-violet-500:#8b5cf6;--sl-color-violet-600:#7c3aed;--sl-color-violet-700:#6d28d9;--sl-color-violet-800:#5b21b6;--sl-color-violet-900:#4c1d95;--sl-color-violet-950:#311558;--sl-color-purple-50:#faf5ff;--sl-color-purple-100:#f3e8ff;--sl-color-purple-200:#e9d5ff;--sl-color-purple-300:#d8b4fe;--sl-color-purple-400:#c084fc;--sl-color-purple-500:#a855f7;--sl-color-purple-600:#9333ea;--sl-color-purple-700:#7e22ce;--sl-color-purple-800:#6b21a8;--sl-color-purple-900:#581c87;--sl-color-purple-950:#2f1143;--sl-color-fuchsia-50:#fdf4ff;--sl-color-fuchsia-100:#fae8ff;--sl-color-fuchsia-200:#f5d0fe;--sl-color-fuchsia-300:#f0abfc;--sl-color-fuchsia-400:#e879f9;--sl-color-fuchsia-500:#d946ef;--sl-color-fuchsia-600:#c026d3;--sl-color-fuchsia-700:#a21caf;--sl-color-fuchsia-800:#86198f;--sl-color-fuchsia-900:#701a75;--sl-color-fuchsia-950:#38103a;--sl-color-pink-50:#fdf2f8;--sl-color-pink-100:#fce7f3;--sl-color-pink-200:#fbcfe8;--sl-color-pink-300:#f9a8d4;--sl-color-pink-400:#f472b6;--sl-color-pink-500:#ec4899;--sl-color-pink-600:#db2777;--sl-color-pink-700:#be185d;--sl-color-pink-800:#9d174d;--sl-color-pink-900:#831843;--sl-color-pink-950:#430e23;--sl-color-rose-50:#fff1f2;--sl-color-rose-100:#ffe4e6;--sl-color-rose-200:#fecdd3;--sl-color-rose-300:#fda4af;--sl-color-rose-400:#fb7185;--sl-color-rose-500:#f43f5e;--sl-color-rose-600:#e11d48;--sl-color-rose-700:#be123c;--sl-color-rose-800:#9f1239;--sl-color-rose-900:#881337;--sl-color-rose-950:#4a0d20;--sl-color-primary-50:var(--sl-color-sky-50);--sl-color-primary-100:var(--sl-color-sky-100);--sl-color-primary-200:var(--sl-color-sky-200);--sl-color-primary-300:var(--sl-color-sky-300);--sl-color-primary-400:var(--sl-color-sky-400);--sl-color-primary-500:var(--sl-color-sky-500);--sl-color-primary-600:var(--sl-color-sky-600);--sl-color-primary-700:var(--sl-color-sky-700);--sl-color-primary-800:var(--sl-color-sky-800);--sl-color-primary-900:var(--sl-color-sky-900);--sl-color-primary-950:var(--sl-color-sky-950);--sl-color-success-50:var(--sl-color-green-50);--sl-color-success-100:var(--sl-color-green-100);--sl-color-success-200:var(--sl-color-green-200);--sl-color-success-300:var(--sl-color-green-300);--sl-color-success-400:var(--sl-color-green-400);--sl-color-success-500:var(--sl-color-green-500);--sl-color-success-600:var(--sl-color-green-600);--sl-color-success-700:var(--sl-color-green-700);--sl-color-success-800:var(--sl-color-green-800);--sl-color-success-900:var(--sl-color-green-900);--sl-color-success-950:var(--sl-color-green-950);--sl-color-warning-50:var(--sl-color-amber-50);--sl-color-warning-100:var(--sl-color-amber-100);--sl-color-warning-200:var(--sl-color-amber-200);--sl-color-warning-300:var(--sl-color-amber-300);--sl-color-warning-400:var(--sl-color-amber-400);--sl-color-warning-500:var(--sl-color-amber-500);--sl-color-warning-600:var(--sl-color-amber-600);--sl-color-warning-700:var(--sl-color-amber-700);--sl-color-warning-800:var(--sl-color-amber-800);--sl-color-warning-900:var(--sl-color-amber-900);--sl-color-warning-950:var(--sl-color-amber-950);--sl-color-danger-50:var(--sl-color-red-50);--sl-color-danger-100:var(--sl-color-red-100);--sl-color-danger-200:var(--sl-color-red-200);--sl-color-danger-300:var(--sl-color-red-300);--sl-color-danger-400:var(--sl-color-red-400);--sl-color-danger-500:var(--sl-color-red-500);--sl-color-danger-600:var(--sl-color-red-600);--sl-color-danger-700:var(--sl-color-red-700);--sl-color-danger-800:var(--sl-color-red-800);--sl-color-danger-900:var(--sl-color-red-900);--sl-color-danger-950:var(--sl-color-red-950);--sl-color-neutral-50:var(--sl-color-gray-50);--sl-color-neutral-100:var(--sl-color-gray-100);--sl-color-neutral-200:var(--sl-color-gray-200);--sl-color-neutral-300:var(--sl-color-gray-300);--sl-color-neutral-400:var(--sl-color-gray-400);--sl-color-neutral-500:var(--sl-color-gray-500);--sl-color-neutral-600:var(--sl-color-gray-600);--sl-color-neutral-700:var(--sl-color-gray-700);--sl-color-neutral-800:var(--sl-color-gray-800);--sl-color-neutral-900:var(--sl-color-gray-900);--sl-color-neutral-950:var(--sl-color-gray-950);--sl-color-neutral-0:#fff;--sl-color-neutral-1000:#000;--sl-border-radius-small:0.1875rem;--sl-border-radius-medium:0.25rem;--sl-border-radius-large:0.5rem;--sl-border-radius-x-large:1rem;--sl-border-radius-circle:50%;--sl-border-radius-pill:9999px;--sl-shadow-x-small:0 1px 2px hsla(240,4%,46%,.06);--sl-shadow-small:0 1px 2px hsla(240,4%,46%,.12);--sl-shadow-medium:0 2px 4px hsla(240,4%,46%,.12);--sl-shadow-large:0 2px 8px hsla(240,4%,46%,.12);--sl-shadow-x-large:0 4px 16px hsla(240,4%,46%,.12);--sl-spacing-3x-small:0.125rem;--sl-spacing-2x-small:0.25rem;--sl-spacing-x-small:0.5rem;--sl-spacing-small:0.75rem;--sl-spacing-medium:1rem;--sl-spacing-large:1.25rem;--sl-spacing-x-large:1.75rem;--sl-spacing-2x-large:2.25rem;--sl-spacing-3x-large:3rem;--sl-spacing-4x-large:4.5rem;--sl-transition-x-slow:1000ms;--sl-transition-slow:500ms;--sl-transition-medium:250ms;--sl-transition-fast:150ms;--sl-transition-x-fast:50ms;--sl-font-mono:SFMono-Regular,Consolas,"Liberation Mono",Menlo,monospace;--sl-font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--sl-font-serif:Georgia,"Times New Roman",serif;--sl-font-size-2x-small:0.625rem;--sl-font-size-x-small:0.75rem;--sl-font-size-small:0.875rem;--sl-font-size-medium:1rem;--sl-font-size-large:1.25rem;--sl-font-size-x-large:1.5rem;--sl-font-size-2x-large:2.25rem;--sl-font-size-3x-large:3rem;--sl-font-size-4x-large:4.5rem;--sl-font-weight-light:300;--sl-font-weight-normal:400;--sl-font-weight-semibold:500;--sl-font-weight-bold:700;--sl-letter-spacing-denser:-0.03em;--sl-letter-spacing-dense:-0.015em;--sl-letter-spacing-normal:normal;--sl-letter-spacing-loose:0.075em;--sl-letter-spacing-looser:0.15em;--sl-line-height-denser:1;--sl-line-height-dense:1.4;--sl-line-height-normal:1.8;--sl-line-height-loose:2.2;--sl-line-height-looser:2.6;--sl-focus-ring-color:var(--sl-color-primary-600);--sl-focus-ring-style:solid;--sl-focus-ring-width:3px;--sl-focus-ring:var(--sl-focus-ring-style) var(--sl-focus-ring-width) var(--sl-focus-ring-color);--sl-focus-ring-offset:1px;--sl-button-font-size-small:var(--sl-font-size-x-small);--sl-button-font-size-medium:var(--sl-font-size-small);--sl-button-font-size-large:var(--sl-font-size-medium);--sl-input-height-small:1.875rem;--sl-input-height-medium:2.5rem;--sl-input-height-large:3.125rem;--sl-input-background-color:var(--sl-color-neutral-0);--sl-input-background-color-hover:var(--sl-input-background-color);--sl-input-background-color-focus:var(--sl-input-background-color);--sl-input-background-color-disabled:var(--sl-color-neutral-100);--sl-input-border-color:var(--sl-color-neutral-300);--sl-input-border-color-hover:var(--sl-color-neutral-400);--sl-input-border-color-focus:var(--sl-color-primary-500);--sl-input-border-color-disabled:var(--sl-color-neutral-300);--sl-input-border-width:1px;--sl-input-required-content:"*";--sl-input-required-content-offset:-2px;--sl-input-required-content-color:var(--sl-input-label-color);--sl-input-border-radius-small:var(--sl-border-radius-medium);--sl-input-border-radius-medium:var(--sl-border-radius-medium);--sl-input-border-radius-large:var(--sl-border-radius-medium);--sl-input-font-family:var(--sl-font-sans);--sl-input-font-weight:var(--sl-font-weight-normal);--sl-input-font-size-small:var(--sl-font-size-small);--sl-input-font-size-medium:var(--sl-font-size-medium);--sl-input-font-size-large:var(--sl-font-size-large);--sl-input-letter-spacing:var(--sl-letter-spacing-normal);--sl-input-color:var(--sl-color-neutral-700);--sl-input-color-hover:var(--sl-color-neutral-700);--sl-input-color-focus:var(--sl-color-neutral-700);--sl-input-color-disabled:var(--sl-color-neutral-900);--sl-input-icon-color:var(--sl-color-neutral-500);--sl-input-icon-color-hover:var(--sl-color-neutral-600);--sl-input-icon-color-focus:var(--sl-color-neutral-600);--sl-input-placeholder-color:var(--sl-color-neutral-500);--sl-input-placeholder-color-disabled:var(--sl-color-neutral-600);--sl-input-spacing-small:var(--sl-spacing-small);--sl-input-spacing-medium:var(--sl-spacing-medium);--sl-input-spacing-large:var(--sl-spacing-large);--sl-input-focus-ring-color:rgba(14,165,233,.4);--sl-input-focus-ring-offset:0;--sl-input-filled-background-color:var(--sl-color-neutral-100);--sl-input-filled-background-color-hover:var(--sl-color-neutral-100);--sl-input-filled-background-color-focus:var(--sl-color-neutral-100);--sl-input-filled-background-color-disabled:var(--sl-color-neutral-100);--sl-input-filled-color:var(--sl-color-neutral-800);--sl-input-filled-color-hover:var(--sl-color-neutral-800);--sl-input-filled-color-focus:var(--sl-color-neutral-700);--sl-input-filled-color-disabled:var(--sl-color-neutral-800);--sl-input-label-font-size-small:var(--sl-font-size-small);--sl-input-label-font-size-medium:var(--sl-font-size-medium);--sl-input-label-font-size-large:var(--sl-font-size-large);--sl-input-label-color:inherit;--sl-input-help-text-font-size-small:var(--sl-font-size-x-small);--sl-input-help-text-font-size-medium:var(--sl-font-size-small);--sl-input-help-text-font-size-large:var(--sl-font-size-medium);--sl-input-help-text-color:var(--sl-color-neutral-500);--sl-toggle-size-small:0.875rem;--sl-toggle-size-medium:1.125rem;--sl-toggle-size-large:1.375rem;--sl-overlay-background-color:hsla(240,4%,46%,.33);--sl-panel-background-color:var(--sl-color-neutral-0);--sl-panel-border-color:var(--sl-color-neutral-200);--sl-panel-border-width:1px;--sl-tooltip-border-radius:var(--sl-border-radius-medium);--sl-tooltip-background-color:var(--sl-color-neutral-800);--sl-tooltip-color:var(--sl-color-neutral-0);--sl-tooltip-font-family:var(--sl-font-sans);--sl-tooltip-font-weight:var(--sl-font-weight-normal);--sl-tooltip-font-size:var(--sl-font-size-small);--sl-tooltip-line-height:var(--sl-line-height-dense);--sl-tooltip-padding:var(--sl-spacing-2x-small) var(--sl-spacing-x-small);--sl-tooltip-arrow-size:6px;--sl-z-index-drawer:700;--sl-z-index-dialog:800;--sl-z-index-dropdown:900;--sl-z-index-toast:950;--sl-z-index-tooltip:1000}@supports (scrollbar-gutter:stable){.sl-scroll-lock{scrollbar-gutter:var(--sl-scroll-lock-gutter)!important}.sl-scroll-lock body{overflow:hidden!important}}@supports not (scrollbar-gutter:stable){.sl-scroll-lock body{overflow:hidden!important;padding-right:var(--sl-scroll-lock-size)!important}}.sl-toast-stack{inset-inline-end:0;max-height:100%;max-width:100%;overflow:auto;position:fixed;top:0;width:28rem;z-index:var(--sl-z-index-toast)}.sl-toast-stack sl-alert{margin:var(--sl-spacing-medium)}.sl-toast-stack sl-alert::part(base){box-shadow:var(--sl-shadow-large)}}@layer resets{*{box-sizing:border-box}[hidden]{display:none!important}h1,h2,h3,h4,h5,h6,p{font-family:inherit;font-size:inherit;margin:0;padding:0}a{color:inherit;text-decoration:underline;text-underline-offset:2px}ul{list-style:none;margin:0}button svg{pointer-events:none}}@layer components{.gw-header{font-family:var(--header-font-family);font-size:18px;font-style:normal;font-weight:var(--header-font-weight);line-height:20px}.gw-header--large{font-size:24px;line-height:30px}.gw-body{font-size:14px;font-style:normal;font-weight:var(--body-font-weight);line-height:18px}.gw-body--strong{font-weight:600}.gw-body--small{font-size:12px}.gw-small-text{font-size:13px;font-style:normal;font-weight:var(--body-font-weight);line-height:1.2}.gw-uppercase-text{font-weight:var(--body-font-weight)}.gw-button-text,.gw-uppercase-text{font-size:11px;font-style:normal;line-height:14px;text-transform:uppercase}.gw-button,.gw-button-text{font-weight:var(--button-font-weight);letter-spacing:2.2px}.gw-button{border:none;border-radius:var(--corner-radius-button);cursor:pointer;font-family:var(--button-font-family);font-size:11px;font-style:normal;line-height:14px;padding:13px;text-transform:var(--text-case-button);width:100%}.gw-button--solid{background-color:var(--color-solid-button-background);border:var(--thickness-button) solid var(--color-solid-button-border);color:var(--color-solid-button-text);transition:background-color .3s,color .3s,border-color .3s}.gw-button--solid:hover{background-color:var(--color-solid-button-hover-background);border-color:var(--color-solid-button-hover-border);color:var(--color-solid-button-hover-text)}.gw-button--stroke{background-color:var(--color-stroke-button-background);border:var(--thickness-button) solid var(--color-stroke-button-border);color:var(--color-stroke-button-text);transition:background-color .3s,color .3s,border-color .3s}.gw-button--stroke:hover{background-color:var(--color-stroke-button-hover-background);border-color:var(--color-stroke-button-hover-border);color:var(--color-stroke-button-hover-text)}.gw-button--disabled{background-color:var(--color-disabled-button-background);color:var(--color-disabled-button-text);cursor:not-allowed}.gw-button--text{background-color:transparent;color:var(--color-text-subdued);padding:5px;text-decoration-line:underline}.gw-button svg{pointer-events:none}}@layer utilities{.gw-unstyled-link{color:inherit;text-decoration:none}.gw-button[href]{display:block;text-align:center;text-decoration:none}.gw-empty-button{background:transparent;border:none;cursor:pointer}.gw-main-content-container{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding-bottom:var(--tab-panel-vertical-gap)}.gw-main-content-container--small-gap{--tab-panel-vertical-gap:16px}.gw-empty-list{padding:0 var(--tab-panel-edge-padding);text-align:center}.gw-empty-list-inner{border:1px solid var(--border-color);border-radius:var(--border-radius);padding:30px}.gw-error-message{color:#a50000;font-size:13px;margin-top:8px}.gw-loader-container{--loader-size:14px;--loader-border-weight:1px;position:relative}.gw-loader-container--block{display:block;height:var(--loader-size);margin:24px auto;width:var(--loader-size)}.gw-loader-container--large{--loader-size:24px;--loader-border-weight:3px}.gw-loader{animation:rotation 1s linear infinite;border:var(--loader-border-weight) solid transparent;border-bottom-color:inherit;border-radius:50%;box-sizing:border-box;display:inline-block;height:var(--loader-size);left:8px;position:absolute;width:var(--loader-size)}.gw-loader-container--block .gw-loader{left:0}.gw-loader--white{border:2px solid var(--border-color);border-bottom-color:var(--color-text)}.visually-hidden{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0,0,0,0);border:0}@keyframes rotation{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}}@layer main{:host{--sl-input-font-size-medium:14px;--sl-font-size-medium:14px;--tab-panel-edge-padding:20px;--tab-panel-vertical-gap:24px;all:initial;color:var(--color-text);font-family:var(--body-font-family);font-size:14px;font-style:normal;font-weight:var(--body-font-weight);line-height:18px;position:relative;z-index:2147483647}sl-drawer{--size:var(--drawer-width);--body-spacing:0;--header-spacing:20px}sl-drawer::part(close-button){display:none}sl-drawer[main-drawer]::part(body){background-color:var(--color-drawer-background);display:flex;flex-direction:column}sl-drawer[main-drawer]::part(header){background-color:var(--color-drawer-header-background)}sl-drawer[main-drawer].inner-drawer-open::part(header){display:none}sl-drawer[main-drawer].inner-drawer-open sl-tab-group::part(nav){display:none}sl-drawer[main-drawer].inner-drawer-open gw-customer-accounts-sign-in{display:none}sl-drawer[main-drawer] sl-tab{background-color:var(--color-drawer-footer-background)}.gw-customer-accounts-drawer__header,.gw-secondary-drawer__header{align-items:center;display:flex;gap:8px}.gw-secondary-drawer__header{background-color:transparent;border:none;color:var(--color-text);cursor:pointer;padding:0}.gw-product-card{position:relative;width:100%}.gw-product-card--splitted{align-items:center;display:flex;flex-direction:row-reverse;gap:16px}.gw-product-card--splitted .gw-product-card__image-container{flex-shrink:0}.gw-product-card--reversed{display:flex;flex-direction:column-reverse}.gw-product-card--removing:after{background:hsla(0,0%,100%,.5);content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:1}.gw-product-card--splitted .gw-product-card__image-container{width:120px}.gw-product-card__image-container:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}.gw-product-card__info{display:flex;flex:1;flex-direction:column;gap:8px}.gw-product-card__info--no-gap{gap:0}.gw-product-card__link{display:block;width:100%}.gw-product-card__link:focus{outline:2px solid #005fcc}.gw-product-card__link:after{content:"";height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}.gw-product-card__link--hide-after:after{content:none}.gw-product-card__image-container{border:1px solid var(--border-color);position:relative;width:100%}.gw-product-card__image{height:100%;left:0;object-fit:contain;position:absolute;top:0;width:100%}.gw-product-card__info{margin-top:8px}.gw-product-card__form{display:flex;flex-direction:column;gap:10px}.gw-product-card__actions{display:flex}.gw-product-card__variant-selector{border:1px solid var(--border-color);border-radius:0;color:var(--color-text);padding:4px 8px;width:100%}.gw-product-card__price{display:flex;font-size:13px;font-style:normal;font-weight:var(--body-font-weight);gap:4px;line-height:1.2}.gw-product-card__price-compare{text-decoration:line-through}.gw-product-card__price--sale{color:#c70100}.gw-notifications{bottom:54px;left:20px;position:fixed;z-index:900}.gw-notifications sl-alert::part(base){background-color:var(--color-notifications-background);border:none;border-radius:var(--border-radius);min-width:300px;width:100%}.gw-notifications *{color:var(--color-notifications-label);font-family:var(--body-font-family);font-size:16px}.gw-notifications [data-notification-message]{align-items:center;display:flex;gap:8px;justify-content:space-between}.gw-customer-accounts-orders__empty{padding:40px var(--tab-panel-edge-padding) 0;text-align:center}.gw-customer-accounts-order__carousel::part(base){display:block}.gw-customer-accounts-order__header{align-items:center;cursor:pointer;display:flex;gap:8px;margin-bottom:16px;padding:0 var(--tab-panel-edge-padding)}.gw-order-detail{padding-bottom:var(--tab-panel-vertical-gap)}.gw-order-detail__delivery,.gw-order-detail__integrations,.gw-order-detail__line-items,.gw-order-detail__payment{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding:0 var(--tab-panel-edge-padding)}.gw-order-detail__integrations{gap:8px}.gw-order-detail__line-item{align-items:center;display:flex;gap:16px}.gw-order-detail__line-item:first-child{margin-top:16px}.gw-order-detail__status{align-items:center;background-color:#a13818;color:#fff;display:flex;gap:8px;padding:12px var(--tab-panel-edge-padding)}.gw-order-detail__line-item-image-container{border:1px solid var(--border-color);flex-shrink:0;position:relative;width:120px}.gw-order-detail__line-item-image-container:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}.gw-order-detail__line-item-image{border-radius:var(--border-radius);height:100%;left:0;object-fit:contain;position:absolute;top:0;width:100%}.gw-order-detail__line-item-quantity{background-color:var(--color-text);border-radius:50%;color:#fff;font-size:10px;font-weight:600;line-height:14px;padding:2px 7px;position:absolute;right:0;top:0;transform:translate(50%,-50%)}.gw-order-detail__line-item-price{margin-left:auto}.gw-order-detail__price-breakdown{border-bottom:1px solid var(--border-color);border-top:1px solid var(--border-color);display:flex;flex-direction:column;padding:var(--tab-panel-vertical-gap) var(--tab-panel-edge-padding) 0}.gw-order-detail__price-breakdown-item{align-items:center;display:flex;justify-content:space-between}.gw-order-detail__price-breakdown-item+.gw-order-detail__price-breakdown-item{margin-top:14px}.gw-order-detail__price-breakdown-item--total{border-top:1px solid var(--border-color);margin-top:var(--tab-panel-vertical-gap)!important;padding:var(--tab-panel-vertical-gap) 0}.gw-order-detail__discount-title{text-transform:uppercase}.gw-order-detail__delivery-info p:first-child,.gw-order-detail__payment-info p:first-child{margin-bottom:10px}.gw-order-detail__additional-info{padding:0 var(--tab-panel-edge-padding)}.gw-order-detail__additional-info p:not(:last-child){margin-bottom:8px}.gw-icon--close{align-items:center;display:flex;height:18px;justify-content:center;width:18px}sl-input,sl-select{color:var(--color-text);font-family:var(--form-font-family);font-weight:var(--form-font-weight);position:relative;text-transform:var(--form-elements-text-case)}sl-input.input--empty::part(form-control-label),sl-select.input--empty::part(form-control-label){font-size:14px;padding-top:17px}sl-input.input--focus::part(form-control-label),sl-input::part(form-control-label),sl-select::part(form-control-label){font-size:10px;padding-left:12px;padding-top:6px;position:absolute;transition:all .3s ease;z-index:1}sl-input::part(base){border:var(--form-elements-thickness) solid var(--border-color);border-radius:var(--form-elements-corner-radius);height:50px;position:relative}sl-input::part(input){height:50px;padding-left:12px;padding-top:12px}sl-input[data-user-invalid]::part(base){--border-color:#a50000}sl-select::part(combobox){border:var(--form-elements-thickness) solid var(--border-color);border-radius:var(--form-elements-corner-radius);height:50px}sl-select::part(display-input){top:8px}sl-checkbox::part(base){align-items:center}sl-checkbox::part(control){--toggle-size:16px;--sl-focus-ring:solid 2px #000;border-color:#181818;border-radius:0}sl-checkbox[checked]::part(control){background-color:#000;color:#fff}sl-option[value="---"]{display:none}.gw-recently-viewed-collections sl-carousel::part(scroll-container){grid-auto-columns:auto;justify-content:flex-start}.gw-recently-viewed-collection{border:1px solid #000;padding:8px 18px;white-space:nowrap}.gw-favorites-tab,.gw-saved-from-cart-tab{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding:0 var(--tab-panel-edge-padding) var(--tab-panel-vertical-gap)}.gw-recently-viewed-items-tab{display:grid;gap:24px 16px;grid-template-columns:1fr 1fr;padding:0 var(--tab-panel-edge-padding) var(--tab-panel-vertical-gap)}.gw-quick-links{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0 var(--tab-panel-edge-padding)}.gw-quick-link{align-items:center;display:flex;gap:8px}.gw-card__item{display:flex;flex-direction:column;gap:8px;padding:0 var(--tab-panel-edge-padding);position:relative}.gw-card__item a{height:100%;left:0;position:absolute;top:0;width:100%;z-index:10}.gw-card__item-image-wrapper{overflow:hidden;width:100%}.gw-card__item-image{display:block;height:100%;object-fit:cover;transition:transform .5s ease;width:100%}.gw-card__item:hover .gw-card__item-image{transform:scale(1.05)}.gw-sign-in{display:flex;flex-direction:column;gap:14px;margin-bottom:24px;padding:0 var(--tab-panel-edge-padding)}.gw-sign-in__form button[type=submit]{margin-top:16px}.gw-sign-in__link{margin-bottom:24px;padding:0 var(--tab-panel-edge-padding)}.gw-verify-code{margin-bottom:24px;text-align:center}.gw-verify-code .input-code-group{display:flex;gap:8px;justify-content:center;margin:35px 0 16px}.gw-verify-code .code-input{appearance:textfield;-moz-appearance:textfield;background:#fff;border:1px solid var(--border-color);font-family:var(--form-font-family);font-size:22px;font-weight:600;height:68px;text-align:center;width:56px}.gw-verify-code .code-input::-webkit-inner-spin-button,.gw-verify-code .code-input::-webkit-outer-spin-button{-webkit-appearance:none}.gw-verify-code__actions .gw-error-message{margin:16px 0}.my-preferences{padding:0 var(--tab-panel-edge-padding)}.my-preferences__header{align-items:center;cursor:pointer;display:flex;gap:8px;margin-bottom:22px}.my-preferences__field{border:1px solid var(--border-color);display:flex;flex-direction:column;padding:16px 20px}.my-preferences__field+.my-preferences__field{border-top:0}.my-preferences__fields+.my-preferences__fields{margin-top:22px}.my-preferences__fields{cursor:pointer}.gw-preference-details__notification{border-bottom:1px solid var(--border-color);display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap);padding:0 var(--tab-panel-edge-padding) var(--tab-panel-vertical-gap)}.gw-preference-details__email{display:flex;flex-direction:column;gap:16px}.gw-preference-details__email sl-input::part(form-control-help-text){margin-top:8px}.gw-preference-details__email sl-checkbox::part(base){align-items:center}.gw-preference-details__email sl-checkbox::part(control){--sl-focus-ring:solid 2px #000;border-color:#181818;border-radius:0}.gw-preference-details__email sl-checkbox[checked]::part(control){background-color:#000;color:#fff}.gw-preference-details__phone{display:flex;flex-direction:column;gap:16px}.gw-preference-details__phone sl-checkbox::part(form-control-help-text){margin-top:8px}.gw-preference-details__personal-info{display:flex;flex-direction:column;gap:var(--tab-panel-vertical-gap)}.gw-address,.gw-preference-details__personal-info{padding:var(--tab-panel-vertical-gap) var(--tab-panel-edge-padding)}.gw-address{border-bottom:1px solid var(--border-color);cursor:pointer}.gw-address p:first-child{margin-bottom:8px}.gw-address-add,.gw-address-edit{padding:var(--tab-panel-vertical-gap) var(--tab-panel-edge-padding)}.gw-address__icon{position:absolute;right:16px;top:50%;transform:translateY(-50%)}.gw-button-wrapper{padding:0 var(--tab-panel-edge-padding)}.my-addresses{cursor:pointer}.my-addresses sl-carousel::part(scroll-container){grid-auto-columns:auto}.my-addresses__header{align-items:center;cursor:pointer;display:flex;gap:8px;margin-bottom:22px}.my-addresses__header,.my-addresses__list--single{padding:0 var(--tab-panel-edge-padding)}.my-addresses__address{border:1px solid var(--border-color);min-height:160px;min-width:270px;padding:16px 20px}.my-addresses__address p:first-child{margin-bottom:8px}.my-addresses__default-badge{background-color:var(--border-color);padding:2px 8px;white-space:nowrap}.gw-latest-order-wrapper{padding:0 20px}.gw-latest-order{background:#fff;border:1px solid rgba(0,0,0,.1);box-shadow:0 0 20px 0 rgba(0,0,0,.1);cursor:pointer;display:flex;gap:16px;padding:16px}.gw-latest-order__image-container{flex-shrink:0;position:relative;width:56px}.gw-latest-order__image-container:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}.gw-latest-order__image{height:100%;left:0;object-fit:cover;position:absolute;top:0;width:100%}.gw-latest-order__info{display:flex;flex-direction:column;gap:4px;justify-content:center}sl-tab-group{--indicator-color:var(--color-text);--track-color:var(--border-color);--track-width:2px;--sign-in-block-height:202px;--sign-in-block-margin-bottom:24px;flex:1;max-height:calc(100% - var(--sign-in-block-height) - var(--sign-in-block-margin-bottom))}sl-tab-group[sign-in-type-password]{--sign-in-block-height:70px}sl-tab-group[has-customer]{max-height:100%}sl-tab-group::part(base),sl-tab-group::part(body){height:100%}sl-tab-group::part(nav){padding:0}sl-tab-group sl-tab-panel{height:100%}sl-tab-group sl-tab-panel::part(base){height:100%;padding:0}sl-tab-group sl-tab{cursor:pointer;padding:16px 0;text-align:center;width:33.33333%}sl-tab-group sl-tab::part(base){all:unset}.gw-collections{display:flex;gap:8px}.gw-collections sl-skeleton{--border-radius:0;flex-shrink:0;height:30px;width:90px}.gw-collections sl-skeleton:nth-child(odd){width:120px}.gw-products-carousel{display:flex;flex-direction:column;gap:24px}.gw-products-carousel__header-wrapper{padding:0 20px}.gw-products-carousel__header{align-items:center;cursor:pointer;display:flex;gap:8px}.gw-products-carousel__feed{display:flex;gap:8px;padding:0 0 0 20px}.gw-products-carousel sl-skeleton{--border-radius:0;flex-shrink:0;width:115px}.gw-products-carousel sl-skeleton:after{content:"";display:block;padding-bottom:var(--product-card-image-ratio);width:100%}sl-carousel::part(base){gap:0}sl-carousel::part(navigation-button){align-items:center;background-color:#fff;display:flex;height:42px;justify-content:center;opacity:0;position:absolute;transition:all .3s ease;width:32px;z-index:10}sl-carousel::part(navigation-button):hover{scale:1.1}sl-carousel::part(navigation-button--previous){border:1px solid var(--border-color);border-left:none;border-radius:0 8px 8px 0;left:0}sl-carousel::part(navigation-button--next){border-right:none;border:1px solid var(--border-color);border-radius:8px 0 0 8px;right:0}sl-carousel:focus-within::part(navigation-button),sl-carousel:focus::part(navigation-button),sl-carousel:hover::part(navigation-button){opacity:1}gw-wishlist-button{bottom:0;position:absolute;right:4px;z-index:10}gw-wishlist-button[processing]::part(button){opacity:.5;pointer-events:none}gw-wishlist-button:active::part(button){transform:scale(.9)}gw-wishlist-button::part(button){background-color:transparent;border:none;color:var(--color-text);cursor:pointer;height:14px;padding:0;transition:.2s cubic-bezier(.39,.575,.565,1);width:14px}gw-wishlist-button::part(filled-icon),gw-wishlist-button::part(icon){display:block;left:0;position:absolute;top:0;transition:opacity .3s}gw-wishlist-button::part(filled-icon),gw-wishlist-button:hover::part(icon){opacity:0}gw-wishlist-button:hover::part(filled-icon),gw-wishlist-button[saved]::part(filled-icon){opacity:1}gw-integrations-loyalty-points{padding:0 var(--tab-panel-edge-padding)}.gw-loyalty-points__link{align-items:center;background-color:var(--background-color);border-radius:var(--border-radius);color:var(--text-color);display:flex;gap:8px;min-height:54px;padding:16px}.gw-loyalty-points__link:hover .gw-loyalty-points__link-label{transform:translateX(0)}.gw-loyalty-points__link-label{align-items:center;display:flex;gap:4px;margin-left:auto;transform:translateX(-5px);transition:transform .3s ease-in-out}.gw-loyalty-points__id-container{align-items:center;display:flex;gap:8px;justify-content:space-between;padding:16px 20px}.gw-loyalty-points__copy-button{align-items:center;background-color:transparent;border:none;color:var(--color-text);cursor:pointer;display:flex;font-family:var(--body-font-family);gap:4px}.gw-loyalty-points__copy-button svg{height:12px;width:12px}}
package/dist/main.js CHANGED
@@ -1 +1 @@
1
- import{G as i,a as s}from"./assets/index-DI2a6rRk.js";customElements.define("gw-customer-accounts",class extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"open"});const t=document.getElementById("gw-customer-accounts-template");this.shadow.appendChild(t.content.cloneNode(!0)),t.remove(),this.drawer=this.shadowRoot.querySelector("sl-drawer"),this.tabGroup=this.shadowRoot.querySelector("sl-tab-group"),this.closeButtons=this.drawer.querySelectorAll("[data-main-drawer-close]")}connectedCallback(){this._checkCustomerStatus(),this._watchSavedItemsFromCart(),i.hasCustomer&&(this._saveTempWishlistProducts(),this._saveTempCartProducts(),this._saveTempRecentlyViewedProducts()),Promise.all([customElements.whenDefined("sl-drawer")]).then(()=>this.init())}init(){this.drawer.removeAttribute("hidden"),window.location.search.includes("my-account-open")&&!window.location.pathname.includes("/account")&&(window.history.replaceState({},document.title,window.location.pathname),window.location.hash="#my-account"),window.addEventListener("hashchange",()=>{this._handleHashChange(),this.reinitializeCarousels()}),this._handleHashChange(),this.closeButtons.forEach(t=>{t.addEventListener("click",()=>{this._closeDrawer()})}),this.drawer.addEventListener("sl-hide",t=>{t.target===this.drawer&&(window.location.hash="")}),this._updateAccountLinks(),this._handleInputElements(),this._addRecentlyViewedProducts(),i.hasCustomer&&this._updateRecentlyViewedCollection(),this.reinitializeCarousels(),this.shadowRoot.addEventListener("click",t=>{if(!t.target.closest("[data-drawer-id]"))return;const o=t.target.closest("[data-drawer-id]").getAttribute("data-drawer-id"),r=this.shadowRoot.querySelector(`#${o}`);r.hasAttribute("empty")||(r.open=!0,navigator.userAgent.indexOf("iPhone")>-1&&setTimeout(()=>{this.drawer.classList.add("inner-drawer-open")},150))}),this.shadowRoot.addEventListener("click",t=>{t.target.closest("[data-inner-drawer-close]")&&(t.target.closest("sl-drawer").open=!1,navigator.userAgent.indexOf("iPhone")>-1&&this.drawer.classList.remove("inner-drawer-open"))}),i.hasCustomer&&this.updateFavoriteItemsStorage(),!i.hasCustomer&&sessionStorage.getItem(s.STORAGE_KEYS.TEMP_PRODUCTS_UPDATED)!=="true"&&this._syncTempProducts()}reinitializeCarousels(){Promise.all([customElements.whenDefined("sl-carousel"),customElements.whenDefined("sl-carousel-item")]).then(()=>{setTimeout(()=>{this.shadowRoot.querySelectorAll("sl-carousel").forEach(t=>{t.initializeSlides()})},1e3)})}_updateAccountLinks(){const t=document.querySelectorAll("a[href]");Array.from(t).filter(r=>r.getAttribute("href").includes("/account")||r.getAttribute("href").startsWith("#status")).forEach(r=>{r.hasAttribute("data-ignore-account-link")||(r.getAttribute("href").includes("logout")?r.href="#my-profile":r.href="#my-account",Shopify.designMode&&r.addEventListener("click",()=>{this._openDrawer()}))})}_handleInputElements(){const t=e=>{!e.value&&!e.getAttribute("value")?e.classList.add("input--empty"):e.classList.remove("input--empty")},o=e=>{e.classList.add("input--focus")},r=e=>{e.classList.remove("input--focus")};this.shadowRoot.querySelectorAll("sl-input").forEach(e=>{e.addEventListener("sl-input",()=>t(e)),e.addEventListener("sl-focus",()=>o(e)),e.addEventListener("sl-blur",()=>r(e)),t(e)})}async _handleHashChange(){const t=window.location.hash;if(s.MAP[t]){if(await this._fetchComponents(),s.MAP[t].includes("##")){const[o,r]=s.MAP[t].split("##");this._renderTab(o),setTimeout(()=>{this._renderSubTab(r),this._openDrawer()},100);return}else this.shadowRoot.querySelectorAll("sl-drawer").forEach(o=>{o.open=!1});this._renderTab(),this._openDrawer()}}async _openDrawer(){this.drawer.open||this.drawer.show()}_closeDrawer(){this.drawer.open&&this.drawer.hide()}_fetchComponents(){const t="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.19.1/cdn/components/",r=["tab-group","tab-panel","tab","animation","skeleton","select","input","checkbox","carousel","carousel-item","popup","option","alert"].map(e=>new Promise((n,a)=>{if(customElements.get(`sl-${e}`)){n();return}const c=document.createElement("script");c.type="module",c.src=`${t}${e}/${e}.js`,c.onload=n,c.onerror=a,document.body.appendChild(c)}));return Promise.all(r)}async _addRecentlyViewedProducts(){if(!window.location.pathname.includes("/products/"))return;const{product:o}=i.componentData;if(!o||!(o!=null&&o.id))return;const{id:r}=o;if(i.hasCustomer)try{const e=await i.request(s.ENDPOINTS.VIEWED_PRODUCTS.ADD,{prodID:r});if(e.error)throw new Error(e.error);return e}catch(e){console.error(e)}else{if(JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS)||"[]").some(n=>n.id===r))return;i.addToStorage({key:s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS,values:[{...o}]})}}_updateRecentlyViewedCollection(){if(!window.location.pathname.includes("/collections/"))return;const{collection:o}=i.componentData;if(!o)return;const{url:r,title:e}=o,n=localStorage.getItem(s.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION),c=(JSON.parse(n)||[]).filter(l=>l.url!==r),d=[{url:r,title:e},...c];localStorage.setItem(s.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION,JSON.stringify(d))}_renderTab(t){Promise.all([(customElements.whenDefined("sl-tab-group"),customElements.whenDefined("sl-tab-panel"),customElements.whenDefined("sl-tab"))]).then(()=>{this.tabGroup.show(t||i.tabId)})}_renderSubTab(t){const o=s.DRAWER_IDS[t];if(!o)return;const r=this.shadowRoot.querySelector(o);r&&(r.open=!0,navigator.userAgent.indexOf("iPhone")>-1&&setTimeout(()=>{this.drawer.classList.add("inner-drawer-open")},150))}async updateContent(t=[]){const o=this.getAttribute("data-section-id"),r=await this._fetchContent(o);t.forEach(e=>{const n=this.shadow.querySelector(e);if(n){const c=r.querySelector("#gw-customer-accounts-template").content.querySelector(e);n.innerHTML=c.innerHTML}})}async _fetchContent(t){const r=await(await fetch(window.location.pathname+`?section_id=${t}`)).text();return new DOMParser().parseFromString(r,"text/html")}async updateFavoriteItemsStorage(t){const{removeIds:o,addIds:r}=t||{};let e=!1;if(r!=null&&r.length&&(i.addToStorage({key:s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,values:r,storageType:"session"}),e=!0),o!=null&&o.length&&(i.removeFromStorage({key:s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,values:o,storageType:"session"}),e=!0),e){this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED));return}try{const n=await i.request(s.ENDPOINTS.FAVORITES.GET_ALL_IDS,{customerID:i.customerId},"GET");if(n.error)throw new Error(n.error);sessionStorage.setItem(s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,JSON.stringify(n.products)),this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED))}catch(n){console.error("Error initializing wishlist:",n)}}async _checkCustomerStatus(){const t=i.customerToken,{id_sha256:o,email:r,tags:e,id:n}=i.componentData.customer;if(!t&&n)try{const a=await i.request(s.ENDPOINTS.AUTH.GET_TOKEN,{customerEmail:r,encode:o},"POST");if(a.error)throw new Error(a.error);a.token&&(localStorage.setItem(s.STORAGE_KEYS.TOKEN,a.token),localStorage.setItem(s.STORAGE_KEYS.EMAIL,r))}catch(a){console.error("Error checking customer status:",a)}if(e&&!e.includes("gw-customer"))try{const a=await i.request(s.ENDPOINTS.AUTH.CUSTOMER_LOGGED,{});if(a.error)throw new Error(a.error)}catch(a){console.error("Error checking customer status:",a)}}async _saveTempWishlistProducts(){var r;const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS));if(!(t!=null&&t.length))return;const o={products:t.map(e=>{const{id:n,variantId:a}=e;return{prodID:n,varID:a}})};try{const e=await i.request(s.ENDPOINTS.FAVORITES.ADD_BULK,o);if(e.error)throw new Error(e.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS),(r=e.products)!=null&&r.length&&(sessionStorage.setItem(s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,JSON.stringify(e.products)),this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED))),i.dashboard.loadFavoriteItems()}catch(e){console.error("Error saving temp wishlist products:",e)}}async _saveTempCartProducts(){const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS));if(!(t!=null&&t.length))return;const o={products:t.map(r=>{const{id:e,variantId:n}=r;return{prodID:e,varID:n}})};try{const r=await i.request(s.ENDPOINTS.CART.ADD_BULK,o);if(r.error)throw new Error(r.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS),i.dashboard.loadSavedCartItems()}catch(r){console.error("Error saving temp cart products:",r)}}async _saveTempRecentlyViewedProducts(){const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS));if(!(t!=null&&t.length))return;const o={products:t.map(r=>{const{id:e}=r;return{prodID:e}})};try{const r=await i.request(s.ENDPOINTS.VIEWED_PRODUCTS.ADD_BULK,o);if(r.error)throw new Error(r.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS),console.log("Saved temp recently viewed products:",r),i.dashboard.loadRecentlyViewedItems()}catch(r){console.error("Error saving temp recently viewed products:",r)}}async _watchSavedItemsFromCart(){this.addEventListener(s.CUSTOM_EVENTS.SAVED_ITEMS_FROM_CART,async t=>{i.hasCustomer?await this._handleAuthedCartEvent(t):this._handleGuestCartEvent(t)})}async _handleGuestCartEvent(t){const o=t.detail.extra,r=o.handle,e={};try{const n=await fetch(`/products/${r}.js`);if(!n.ok)throw new Error("Product not found");const a=await n.json();e.variant_id=o.variant_id,e.featuredImage=o.featured_image,e.title=o.title,e.variants={},e.variants.nodes=a.variants,e.id=a.id,e.tags=a.tags,e.handle=a.handle;const d=(JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[]).filter(u=>u.id!==a.id),l=[e,...d];localStorage.setItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS,JSON.stringify(l)),i.dashboard.loadSavedCartItems()}catch(n){console.error("Error adding product to cart:",n)}}async _handleAuthedCartEvent(t){try{const{productId:o,variantId:r}=t.detail||{};if(!o||!r)return;const e=await i.request(s.ENDPOINTS.CART.ADD,{prodID:o,varID:r});if(e.error)throw new Error(e.error);i.dashboard.loadSavedCartItems()}catch(o){console.error("Error adding product to cart:",o)}}async _syncTempProducts(){const t=[s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,s.STORAGE_KEYS.TEMP_CART_PRODUCTS,s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS],o=t.flatMap(a=>(JSON.parse(localStorage.getItem(a))||[]).filter(Boolean)),r=[...new Map(o.map(a=>[a.id,a])).values()];console.log("Unique products:",r);const n=(await Promise.all(r.map(async({id:a,handle:c})=>{try{const d=await fetch(`/products/${c}.js`);return d.ok?await d.json():null}catch{return null}}))).reduce((a,c)=>(c&&c.available&&(a[c.id]=c),a),{});t.forEach(a=>{const d=(JSON.parse(localStorage.getItem(a))||[]).map(l=>{if(!l)return null;const u=n[l.id];return u?(l.variants.nodes=u.variants,l):null}).filter(Boolean);localStorage.setItem(a,JSON.stringify(d))}),sessionStorage.setItem(s.STORAGE_KEYS.TEMP_PRODUCTS_UPDATED,"true")}});
1
+ import{G as i,a as s}from"./assets/index-DkUQsudo.js";customElements.define("gw-customer-accounts",class extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"open"});const t=document.getElementById("gw-customer-accounts-template");this.shadow.appendChild(t.content.cloneNode(!0)),t.remove(),this.drawer=this.shadowRoot.querySelector("sl-drawer"),this.tabGroup=this.shadowRoot.querySelector("sl-tab-group"),this.closeButtons=this.drawer.querySelectorAll("[data-main-drawer-close]")}connectedCallback(){this._checkCustomerStatus(),this._watchSavedItemsFromCart(),i.hasCustomer&&(this._saveTempWishlistProducts(),this._saveTempCartProducts(),this._saveTempRecentlyViewedProducts()),Promise.all([customElements.whenDefined("sl-drawer")]).then(()=>this.init())}init(){this.drawer.removeAttribute("hidden"),window.location.search.includes("my-account-open")&&!window.location.pathname.includes("/account")&&(window.history.replaceState({},document.title,window.location.pathname),window.location.hash="#my-account"),window.addEventListener("hashchange",()=>{this._handleHashChange(),this.reinitializeCarousels()}),this._handleHashChange(),this.closeButtons.forEach(t=>{t.addEventListener("click",()=>{this._closeDrawer()})}),this.drawer.addEventListener("sl-hide",t=>{t.target===this.drawer&&(window.location.hash="")}),this._updateAccountLinks(),this._handleInputElements(),this._addRecentlyViewedProducts(),i.hasCustomer&&this._updateRecentlyViewedCollection(),this.reinitializeCarousels(),this.shadowRoot.addEventListener("click",t=>{if(!t.target.closest("[data-drawer-id]"))return;const o=t.target.closest("[data-drawer-id]").getAttribute("data-drawer-id"),r=this.shadowRoot.querySelector(`#${o}`);r.hasAttribute("empty")||(r.open=!0,navigator.userAgent.indexOf("iPhone")>-1&&setTimeout(()=>{this.drawer.classList.add("inner-drawer-open")},150))}),this.shadowRoot.addEventListener("click",t=>{t.target.closest("[data-inner-drawer-close]")&&(t.target.closest("sl-drawer").open=!1,navigator.userAgent.indexOf("iPhone")>-1&&this.drawer.classList.remove("inner-drawer-open"))}),i.hasCustomer&&this.updateFavoriteItemsStorage(),!i.hasCustomer&&sessionStorage.getItem(s.STORAGE_KEYS.TEMP_PRODUCTS_UPDATED)!=="true"&&this._syncTempProducts()}reinitializeCarousels(){Promise.all([customElements.whenDefined("sl-carousel"),customElements.whenDefined("sl-carousel-item")]).then(()=>{setTimeout(()=>{this.shadowRoot.querySelectorAll("sl-carousel").forEach(t=>{t.initializeSlides()})},1e3)})}_updateAccountLinks(){const t=document.querySelectorAll("a[href]");Array.from(t).filter(r=>r.getAttribute("href").includes("/account")||r.getAttribute("href").startsWith("#status")).forEach(r=>{r.hasAttribute("data-ignore-account-link")||(r.getAttribute("href").includes("logout")?r.href="#my-profile":r.href="#my-account",Shopify.designMode&&r.addEventListener("click",()=>{this._openDrawer()}))})}_handleInputElements(){const t=e=>{!e.value&&!e.getAttribute("value")?e.classList.add("input--empty"):e.classList.remove("input--empty")},o=e=>{e.classList.add("input--focus")},r=e=>{e.classList.remove("input--focus")};this.shadowRoot.querySelectorAll("sl-input").forEach(e=>{e.addEventListener("sl-input",()=>t(e)),e.addEventListener("sl-focus",()=>o(e)),e.addEventListener("sl-blur",()=>r(e)),t(e)})}async _handleHashChange(){const t=window.location.hash;if(s.MAP[t]){if(await this._fetchComponents(),s.MAP[t].includes("##")){const[o,r]=s.MAP[t].split("##");this._renderTab(o),setTimeout(()=>{this._renderSubTab(r),this._openDrawer()},100);return}else this.shadowRoot.querySelectorAll("sl-drawer").forEach(o=>{o.open=!1});this._renderTab(),this._openDrawer()}}async _openDrawer(){this.drawer.open||this.drawer.show()}_closeDrawer(){this.drawer.open&&this.drawer.hide()}_fetchComponents(){const t="https://cdn.jsdelivr.net/npm/@shoelace-style/shoelace@2.19.1/cdn/components/",r=["tab-group","tab-panel","tab","animation","skeleton","select","input","checkbox","carousel","carousel-item","popup","option","alert"].map(e=>new Promise((n,a)=>{if(customElements.get(`sl-${e}`)){n();return}const c=document.createElement("script");c.type="module",c.src=`${t}${e}/${e}.js`,c.onload=n,c.onerror=a,document.body.appendChild(c)}));return Promise.all(r)}async _addRecentlyViewedProducts(){if(!window.location.pathname.includes("/products/"))return;const{product:o}=i.componentData;if(!o||!(o!=null&&o.id))return;const{id:r}=o;if(i.hasCustomer)try{const e=await i.request(s.ENDPOINTS.VIEWED_PRODUCTS.ADD,{prodID:r});if(e.error)throw new Error(e.error);return e}catch(e){console.error(e)}else{if(JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS)||"[]").some(n=>n.id===r))return;i.addToStorage({key:s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS,values:[{...o}]})}}_updateRecentlyViewedCollection(){if(!window.location.pathname.includes("/collections/"))return;const{collection:o}=i.componentData;if(!o)return;const{url:r,title:e}=o,n=localStorage.getItem(s.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION),c=(JSON.parse(n)||[]).filter(l=>l.url!==r),d=[{url:r,title:e},...c];localStorage.setItem(s.STORAGE_KEYS.RECENTLY_VIEWED_COLLECTION,JSON.stringify(d))}_renderTab(t){Promise.all([(customElements.whenDefined("sl-tab-group"),customElements.whenDefined("sl-tab-panel"),customElements.whenDefined("sl-tab"))]).then(()=>{this.tabGroup.show(t||i.tabId)})}_renderSubTab(t){const o=s.DRAWER_IDS[t];if(!o)return;const r=this.shadowRoot.querySelector(o);r&&(r.open=!0,navigator.userAgent.indexOf("iPhone")>-1&&setTimeout(()=>{this.drawer.classList.add("inner-drawer-open")},150))}async updateContent(t=[]){const o=this.getAttribute("data-section-id"),r=await this._fetchContent(o);t.forEach(e=>{const n=this.shadow.querySelector(e);if(n){const c=r.querySelector("#gw-customer-accounts-template").content.querySelector(e);n.innerHTML=c.innerHTML}})}async _fetchContent(t){const r=await(await fetch(window.location.pathname+`?section_id=${t}`)).text();return new DOMParser().parseFromString(r,"text/html")}async updateFavoriteItemsStorage(t){const{removeIds:o,addIds:r}=t||{};let e=!1;if(r!=null&&r.length&&(i.addToStorage({key:s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,values:r,storageType:"session"}),e=!0),o!=null&&o.length&&(i.removeFromStorage({key:s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,values:o,storageType:"session"}),e=!0),e){this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED));return}try{const n=await i.request(s.ENDPOINTS.FAVORITES.GET_ALL_IDS,{customerID:i.customerId},"GET");if(n.error)throw new Error(n.error);sessionStorage.setItem(s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,JSON.stringify(n.products)),this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED))}catch(n){console.error("Error initializing wishlist:",n)}}async _checkCustomerStatus(){const t=i.customerToken,{id_sha256:o,email:r,tags:e,id:n}=i.componentData.customer;if(!t&&n)try{const a=await i.request(s.ENDPOINTS.AUTH.GET_TOKEN,{customerEmail:r,encode:o},"POST");if(a.error)throw new Error(a.error);a.token&&(localStorage.setItem(s.STORAGE_KEYS.TOKEN,a.token),localStorage.setItem(s.STORAGE_KEYS.EMAIL,r))}catch(a){console.error("Error checking customer status:",a)}if(e&&!e.includes("gw-customer"))try{const a=await i.request(s.ENDPOINTS.AUTH.CUSTOMER_LOGGED,{});if(a.error)throw new Error(a.error)}catch(a){console.error("Error checking customer status:",a)}}async _saveTempWishlistProducts(){var r;const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS));if(!(t!=null&&t.length))return;const o={products:t.map(e=>{const{id:n,variantId:a}=e;return{prodID:n,varID:a}})};try{const e=await i.request(s.ENDPOINTS.FAVORITES.ADD_BULK,o);if(e.error)throw new Error(e.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS),(r=e.products)!=null&&r.length&&(sessionStorage.setItem(s.STORAGE_KEYS.WISHLIST_PRODUCT_IDS,JSON.stringify(e.products)),this.dispatchEvent(new CustomEvent(s.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED))),i.dashboard.loadFavoriteItems()}catch(e){console.error("Error saving temp wishlist products:",e)}}async _saveTempCartProducts(){const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS));if(!(t!=null&&t.length))return;const o={products:t.map(r=>{const{id:e,variantId:n}=r;return{prodID:e,varID:n}})};try{const r=await i.request(s.ENDPOINTS.CART.ADD_BULK,o);if(r.error)throw new Error(r.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS),i.dashboard.loadSavedCartItems()}catch(r){console.error("Error saving temp cart products:",r)}}async _saveTempRecentlyViewedProducts(){const t=JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS));if(!(t!=null&&t.length))return;const o={products:t.map(r=>{const{id:e}=r;return{prodID:e}})};try{const r=await i.request(s.ENDPOINTS.VIEWED_PRODUCTS.ADD_BULK,o);if(r.error)throw new Error(r.error);localStorage.removeItem(s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS),console.log("Saved temp recently viewed products:",r),i.dashboard.loadRecentlyViewedItems()}catch(r){console.error("Error saving temp recently viewed products:",r)}}async _watchSavedItemsFromCart(){this.addEventListener(s.CUSTOM_EVENTS.SAVED_ITEMS_FROM_CART,async t=>{i.hasCustomer?await this._handleAuthedCartEvent(t):this._handleGuestCartEvent(t)})}async _handleGuestCartEvent(t){const o=t.detail.extra,r=o.handle,e={};try{const n=await fetch(`/products/${r}.js`);if(!n.ok)throw new Error("Product not found");const a=await n.json();e.variant_id=o.variant_id,e.featuredImage=o.featured_image,e.title=o.title,e.variants={},e.variants.nodes=a.variants,e.id=a.id,e.tags=a.tags,e.handle=a.handle;const d=(JSON.parse(localStorage.getItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[]).filter(u=>u.id!==a.id),l=[e,...d];localStorage.setItem(s.STORAGE_KEYS.TEMP_CART_PRODUCTS,JSON.stringify(l)),i.dashboard.loadSavedCartItems()}catch(n){console.error("Error adding product to cart:",n)}}async _handleAuthedCartEvent(t){try{const{productId:o,variantId:r}=t.detail||{};if(!o||!r)return;const e=await i.request(s.ENDPOINTS.CART.ADD,{prodID:o,varID:r});if(e.error)throw new Error(e.error);i.dashboard.loadSavedCartItems()}catch(o){console.error("Error adding product to cart:",o)}}async _syncTempProducts(){const t=[s.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,s.STORAGE_KEYS.TEMP_CART_PRODUCTS,s.STORAGE_KEYS.TEMP_RECENTLY_VIEWED_ITEMS],o=t.flatMap(a=>(JSON.parse(localStorage.getItem(a))||[]).filter(Boolean)),r=[...new Map(o.map(a=>[a.id,a])).values()];console.log("Unique products:",r);const n=(await Promise.all(r.map(async({id:a,handle:c})=>{try{const d=await fetch(`/products/${c}.js`);return d.ok?await d.json():null}catch{return null}}))).reduce((a,c)=>(c&&c.available&&(a[c.id]=c),a),{});t.forEach(a=>{const d=(JSON.parse(localStorage.getItem(a))||[]).map(l=>{if(!l)return null;const u=n[l.id];return u?(l.variants.nodes=u.variants,l):null}).filter(Boolean);localStorage.setItem(a,JSON.stringify(d))}),sessionStorage.setItem(s.STORAGE_KEYS.TEMP_PRODUCTS_UPDATED,"true")}});
@@ -1 +1 @@
1
- import{G as o,a as s}from"./assets/index-DI2a6rRk.js";customElements.define("gw-malomo-button",class extends HTMLElement{constructor(){super(),this.trackingPageUrl=this.getAttribute("tracking-page-url"),this.orderId=this.getAttribute("order-id")}connectedCallback(){this._initMalomoButton()}async _initMalomoButton(){var r;const t=await o.request(s.ENDPOINTS.MISC.GET_MALOMO_ORDER,{orderID:this.orderId});if(t.error){console.error(t.error);return}if((r=t.order)!=null&&r.url){const e=this.querySelector("a");e.href=t.order.url}else this.remove()}});
1
+ import{G as o,a as s}from"./assets/index-DkUQsudo.js";customElements.define("gw-malomo-button",class extends HTMLElement{constructor(){super(),this.trackingPageUrl=this.getAttribute("tracking-page-url"),this.orderId=this.getAttribute("order-id")}connectedCallback(){this._initMalomoButton()}async _initMalomoButton(){var r;const t=await o.request(s.ENDPOINTS.MISC.GET_MALOMO_ORDER,{orderID:this.orderId});if(t.error){console.error(t.error);return}if((r=t.order)!=null&&r.url){const e=this.querySelector("a");e.href=t.order.url}else this.remove()}});
package/dist/orders.js CHANGED
@@ -1 +1 @@
1
- import{G as c}from"./assets/tab-B7UDegaP.js";import"./assets/index-DI2a6rRk.js";customElements.define("gw-customer-accounts-orders",class extends c{constructor(){super()}connectedCallback(){super.connectedCallback()}});
1
+ import{G as c}from"./assets/tab-D4kkRiyw.js";import"./assets/index-DkUQsudo.js";customElements.define("gw-customer-accounts-orders",class extends c{constructor(){super()}connectedCallback(){super.connectedCallback()}});
@@ -1 +1 @@
1
- import{G as a,a as o}from"./assets/index-DI2a6rRk.js";customElements.define("gw-preferences-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form")}connectedCallback(){this._handleFormSubmit()}async _handleFormSubmit(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{this.form.addEventListener("sl-invalid",e=>{e.preventDefault(),this._clearErrorMessages(),this.form.querySelectorAll("sl-input").forEach(r=>{if(r.hasAttribute("data-invalid")){const t=document.createElement("div");t.slot="help-text",t.classList.add("gw-error-message"),t.textContent=r.validationMessage,r.appendChild(t)}})},{capture:!0}),this.form.addEventListener("submit",e=>{e.preventDefault();const r=new FormData(this.form),t=Object.fromEntries(r.entries());this._submitPreferencesForm(t)})})}async _submitPreferencesForm(e){try{this._clearErrorMessages(),this.form.querySelector("[data-loader]").hidden=!1;let r=await a.request(o.ENDPOINTS.CUSTOMER.UPDATE,e);if(r.error)throw new Error(r.error);this.form.closest("sl-drawer").hide(),a.updateAjaxContent(["[data-main-drawer-label]","[data-my-preference-fields]"])}catch(r){this._handleErrors(r)}finally{this.form.querySelector("[data-loader]").hidden=!0}}_clearErrorMessages(){this.form.querySelectorAll(".gw-error-message").forEach(e=>e.remove())}_handleErrors(e){e.message.includes("valid phone number")&&this._displayErrorMessage('[name="phone"]',e.message)}_displayErrorMessage(e,r){let t=e;typeof e=="string"&&(t=this.form.querySelector(e));const s=document.createElement("div");s.slot="help-text",s.classList.add("gw-error-message"),s.textContent=r,t.appendChild(s),t.focus()}});
1
+ import{G as a,a as o}from"./assets/index-DkUQsudo.js";customElements.define("gw-preferences-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form")}connectedCallback(){this._handleFormSubmit()}async _handleFormSubmit(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{this.form.addEventListener("sl-invalid",e=>{e.preventDefault(),this._clearErrorMessages(),this.form.querySelectorAll("sl-input").forEach(r=>{if(r.hasAttribute("data-invalid")){const t=document.createElement("div");t.slot="help-text",t.classList.add("gw-error-message"),t.textContent=r.validationMessage,r.appendChild(t)}})},{capture:!0}),this.form.addEventListener("submit",e=>{e.preventDefault();const r=new FormData(this.form),t=Object.fromEntries(r.entries());this._submitPreferencesForm(t)})})}async _submitPreferencesForm(e){try{this._clearErrorMessages(),this.form.querySelector("[data-loader]").hidden=!1;let r=await a.request(o.ENDPOINTS.CUSTOMER.UPDATE,e);if(r.error)throw new Error(r.error);this.form.closest("sl-drawer").hide(),a.updateAjaxContent(["[data-main-drawer-label]","[data-my-preference-fields]"])}catch(r){this._handleErrors(r)}finally{this.form.querySelector("[data-loader]").hidden=!0}}_clearErrorMessages(){this.form.querySelectorAll(".gw-error-message").forEach(e=>e.remove())}_handleErrors(e){e.message.includes("valid phone number")&&this._displayErrorMessage('[name="phone"]',e.message)}_displayErrorMessage(e,r){let t=e;typeof e=="string"&&(t=this.form.querySelector(e));const s=document.createElement("div");s.slot="help-text",s.classList.add("gw-error-message"),s.textContent=r,t.appendChild(s),t.focus()}});
package/dist/profile.js CHANGED
@@ -1 +1 @@
1
- import{a as t}from"./assets/index-DI2a6rRk.js";import{G as c}from"./assets/tab-B7UDegaP.js";customElements.define("gw-customer-accounts-profile",class extends c{constructor(){super()}connectedCallback(){var e;super.connectedCallback(),(e=this.querySelector("[data-logout-button]"))==null||e.addEventListener("click",function(o){o.preventDefault(),this.querySelector("[data-loader]").hidden=!1,localStorage.removeItem(t.STORAGE_KEYS.TOKEN),localStorage.removeItem(t.STORAGE_KEYS.EMAIL),document.dispatchEvent(new CustomEvent("gw-customer-accounts:logout")),window.location.href="/account/logout"})}});
1
+ import{a as t}from"./assets/index-DkUQsudo.js";import{G as c}from"./assets/tab-D4kkRiyw.js";customElements.define("gw-customer-accounts-profile",class extends c{constructor(){super()}connectedCallback(){var e;super.connectedCallback(),(e=this.querySelector("[data-logout-button]"))==null||e.addEventListener("click",function(o){o.preventDefault(),this.querySelector("[data-loader]").hidden=!1,localStorage.removeItem(t.STORAGE_KEYS.TOKEN),localStorage.removeItem(t.STORAGE_KEYS.EMAIL),document.dispatchEvent(new CustomEvent("gw-customer-accounts:logout")),window.location.href="/account/logout"})}});
@@ -1,4 +1,4 @@
1
- import{G as a,a as d}from"./assets/index-DI2a6rRk.js";customElements.define("gw-quick-add-to-cart-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.productId=this.getAttribute("product-id")}connectedCallback(){this.form.addEventListener("submit",async e=>{e.preventDefault(),this._handleFormSubmit()}),this.addEventListener("click",e=>{e.target.matches("[data-wishlist-remove]")&&this.closest(".gw-product-card").querySelector("gw-wishlist-button").dispatchEvent(new Event("click")),e.target.matches("[data-saved-from-cart-remove]")&&this._handleRemoveFromSavedItems()})}async _handleFormSubmit(){this.form.querySelector("[data-loader]").hidden=!1;const r={method:"POST",body:new FormData(this.form),headers:{Accept:"application/javascript"}};try{const t=await fetch(routes.cart_add_url,r);if(t.error)throw new Error(t.error);const s=[await t.json()];document.dispatchEvent(new CustomEvent("CART_UPDATED",{detail:{added:s}})),a.notify(`
1
+ import{G as a,a as d}from"./assets/index-DkUQsudo.js";customElements.define("gw-quick-add-to-cart-form",class extends HTMLElement{constructor(){super(),this.form=this.querySelector("form"),this.productId=this.getAttribute("product-id")}connectedCallback(){this.form.addEventListener("submit",async e=>{e.preventDefault(),this._handleFormSubmit()}),this.addEventListener("click",e=>{e.target.matches("[data-wishlist-remove]")&&this.closest(".gw-product-card").querySelector("gw-wishlist-button").dispatchEvent(new Event("click")),e.target.matches("[data-saved-from-cart-remove]")&&this._handleRemoveFromSavedItems()})}async _handleFormSubmit(){this.form.querySelector("[data-loader]").hidden=!1;const r={method:"POST",body:new FormData(this.form),headers:{Accept:"application/javascript"}};try{const t=await fetch(routes.cart_add_url,r);if(t.error)throw new Error(t.error);const s=[await t.json()];document.dispatchEvent(new CustomEvent("CART_UPDATED",{detail:{added:s}})),a.notify(`
2
2
  <span>Product added to cart</span>
3
3
  <a href="/cart" class="gw-notification__link">View</a>
4
4
  `)}catch(t){console.error(t)}finally{if(this.form.querySelector("[data-loader]").hidden=!0,!this.closest("[data-favorites-drawer-container]"))return;const t=this.form.querySelector('[name="productId"]').value,o=this.form.querySelector('[name="id"]').value;if(!t||!o)return;const s=new CustomEvent(d.CUSTOM_EVENTS.SAVED_ITEMS_FROM_CART,{detail:{productId:t,variantId:o,target:this}});a.app.dispatchEvent(s)}}async _handleRemoveFromSavedItems(){if(!a.hasCustomer){const r=this.form.querySelector('[name="productId"]').value,o=(JSON.parse(localStorage.getItem(d.STORAGE_KEYS.TEMP_CART_PRODUCTS))||[]).filter(s=>s.id!=r);localStorage.setItem(d.STORAGE_KEYS.TEMP_CART_PRODUCTS,JSON.stringify(o)),a.dashboard.loadSavedCartItems();return}this.form.closest(".gw-product-card").classList.add("gw-product-card--removing");const e={prodID:this.form.querySelector('[name="productId"]').value};try{const r=await a.request(d.ENDPOINTS.CART.REMOVE,e);if(r.error)throw new Error(r.error);await a.dashboard.loadSavedCartItems()}catch(r){console.error(r)}}});
package/dist/sign-in.js CHANGED
@@ -1 +1 @@
1
- import{G as f,a}from"./assets/index-DI2a6rRk.js";customElements.define("gw-customer-accounts-sign-in",class extends HTMLElement{constructor(){super(),this.signInType=this.getAttribute("type"),this.signInBlock=this.querySelector("[data-sign-in-block]"),this.signInType!=="password"&&(this.verifyCodeBlock=this.querySelector("[data-verify-code-block]"),this.tryAnotherEmailButton=this.querySelector("[data-try-another-email]"),this.sendAnotherCodeButton=this.querySelector("[data-send-another-code]"),this.inputtedEmail="",this.inputtedCode="")}connectedCallback(){if(this.signInType==="password"){const t=this.querySelector("[data-sign-in-button]"),i=t.getAttribute("href");t.addEventListener("click",n=>{n.preventDefault();let e=i;e.includes("?")&&(e+="&return_url="+window.location.pathname+"?my-account-open=true"),window.location.href=e})}else this._handleEmailSubmitForm(),this._handleInputCodeGroup(),this.tryAnotherEmailButton.addEventListener("click",()=>{this.signInBlock.removeAttribute("hidden"),this.verifyCodeBlock.setAttribute("hidden",""),this.signInBlock.querySelector("sl-input").value="",this.signInBlock.querySelector("sl-input").focus(),this.inputtedEmail="",this.inputtedCode=""}),this.sendAnotherCodeButton.addEventListener("click",()=>{this._submitEmailForm(this.querySelector("[data-sign-in-form]")),f.notify("Another code has been sent to your email.")})}async _handleEmailSubmitForm(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{const t=this.querySelector("[data-sign-in-form]"),i=this.querySelector("[data-email-error]");t.addEventListener("sl-invalid",n=>{n.preventDefault(),i.textContent=n.target.validationMessage,i.hidden=!1,n.target.focus()},{capture:!0}),t.addEventListener("submit",n=>{n.preventDefault(),i.hidden=!0,i.textContent="",this._submitEmailForm(t).then(()=>{const e=this.verifyCodeBlock.querySelector(".code-input");e&&e.focus()})})})}async _submitEmailForm(t){const i=t.querySelector('button[type="submit"]');i.disabled=!0,i.querySelector("[data-loader]").hidden=!1;const n=new FormData(t);this.inputtedEmail=n.get("email");try{const e=await this._request({customerEmail:this.inputtedEmail},a.ENDPOINTS.AUTH.SIGN_IN);if(e.error){console.error(e.error);return}const r=this.querySelector("[data-code-sent-to]");return r&&(r.textContent=this.inputtedEmail),this.signInBlock.setAttribute("hidden",""),this.verifyCodeBlock.removeAttribute("hidden"),e}catch(e){console.error(e),alert("An error occurred. Please try again later.")}finally{i.disabled=!1,i.querySelector("[data-loader]").hidden=!0}}async _submitVerificationCode(){var l,c;const t=this.querySelector(".gw-verify-code__actions"),i=t.querySelectorAll("button, a"),n=t.querySelector("[data-verify-error]"),e=t.querySelector("[data-loader]"),r=this.querySelectorAll("input.code-input");try{r.forEach(d=>{d.disabled=!0}),i.forEach(d=>{d.disabled=!0,d.hidden=!0}),n.hidden=!0,e.hidden=!1;const o=await this._request({customerEmail:this.inputtedEmail,code:this.inputtedCode},a.ENDPOINTS.AUTH.VERIFY_CODE);if(!o.url)throw new Error("Verification failed");localStorage.setItem(a.STORAGE_KEYS.TOKEN,o.token),localStorage.setItem(a.STORAGE_KEYS.EMAIL,this.inputtedEmail);const s=await fetch(o.url);if(s.error)throw new Error(s.error);const y=await(await fetch(window.location.href)).text(),u=new DOMParser().parseFromString(y,"text/html"),h=(c=(l=u.querySelector("#gw-customer-accounts-template").content)==null?void 0:l.querySelector("gw-integrations-loyalty-points"))==null?void 0:c.getAttribute("page-url");document.documentElement.innerHTML=u.documentElement.innerHTML,document.dispatchEvent(new CustomEvent("gw-customer-accounts:login"));const m=sessionStorage.getItem(a.STORAGE_KEYS.REDIRECT_URL);if(m&&(sessionStorage.removeItem(a.STORAGE_KEYS.REDIRECT_URL),window.location.href=m),!h)return;window.location.pathname.includes(h)&&window.location.reload()}catch(o){console.error(o),setTimeout(()=>{r[r.length-1].focus()})}finally{r.forEach(o=>{o.disabled=!1}),i.forEach(o=>{o.disabled=!1,o.hidden=!1}),n.hidden=!1,e.hidden=!0}}async _request(t,i,n="POST"){return await(await fetch(f.baseURL+i,{method:n,body:JSON.stringify(t),mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"}})).json()}_handleInputCodeGroup(){const t=[...this.querySelectorAll("input.code-input")];t.forEach((i,n)=>{i.addEventListener("keydown",e=>{(e.ctrlKey||e.metaKey)&&e.keyCode===86||(e.keyCode!==8&&(e.keyCode<48||e.keyCode>57)&&e.preventDefault(),e.keyCode===8&&e.target.value===""&&t[Math.max(0,n-1)].focus())}),i.addEventListener("input",e=>{const[r,...l]=e.target.value;e.target.value=r??"";const c=n===t.length-1,o=r!==void 0;o&&!c&&(t[n+1].focus(),t[n+1].value=l.join(""),t[n+1].dispatchEvent(new Event("input"))),o&&c&&t.every(s=>s.value)&&(this.inputtedCode=t.map(s=>s.value).join(""),this._submitVerificationCode())})})}});
1
+ import{G as u,a as c}from"./assets/index-DkUQsudo.js";customElements.define("gw-customer-accounts-sign-in",class extends HTMLElement{constructor(){super(),this.signInType=this.getAttribute("type"),this.signInBlock=this.querySelector("[data-sign-in-block]"),this.signInType!=="password"&&(this.verifyCodeBlock=this.querySelector("[data-verify-code-block]"),this.tryAnotherEmailButton=this.querySelector("[data-try-another-email]"),this.sendAnotherCodeButton=this.querySelector("[data-send-another-code]"),this.inputtedEmail="",this.inputtedCode="")}connectedCallback(){if(this.signInType==="password"){const t=this.querySelector("[data-sign-in-button]"),n=t.getAttribute("href");t.addEventListener("click",o=>{o.preventDefault();let e=n;e.includes("?")&&(e+="&return_url="+window.location.pathname+"?my-account-open=true"),window.location.href=e})}else this._handleEmailSubmitForm(),this._handleInputCodeGroup(),this.tryAnotherEmailButton.addEventListener("click",()=>{this.signInBlock.removeAttribute("hidden"),this.verifyCodeBlock.setAttribute("hidden",""),this.signInBlock.querySelector("sl-input").value="",this.signInBlock.querySelector("sl-input").focus(),this.inputtedEmail="",this.inputtedCode=""}),this.sendAnotherCodeButton.addEventListener("click",()=>{this._submitEmailForm(this.querySelector("[data-sign-in-form]")),u.notify("Another code has been sent to your email.")})}async _handleEmailSubmitForm(){await Promise.all([customElements.whenDefined("sl-input")]).then(()=>{const t=this.querySelector("[data-sign-in-form]"),n=this.querySelector("[data-email-error]");t.addEventListener("sl-invalid",o=>{o.preventDefault(),n.textContent=o.target.validationMessage,n.hidden=!1,o.target.focus()},{capture:!0}),t.addEventListener("submit",o=>{o.preventDefault(),n.hidden=!0,n.textContent="",this._submitEmailForm(t).then(()=>{const e=this.verifyCodeBlock.querySelector(".code-input");e&&e.focus()})})})}async _submitEmailForm(t){const n=t.querySelector('button[type="submit"]');n.disabled=!0,n.querySelector("[data-loader]").hidden=!1;const o=new FormData(t);this.inputtedEmail=o.get("email");let e="";const r=await this._fetchCaptchaToken();r&&(e=r);try{const s=await this._request({customerEmail:this.inputtedEmail,token:e},c.ENDPOINTS.AUTH.SIGN_IN);if(s.error){console.error(s.error);return}const a=this.querySelector("[data-code-sent-to]");return a&&(a.textContent=this.inputtedEmail),this.signInBlock.setAttribute("hidden",""),this.verifyCodeBlock.removeAttribute("hidden"),s}catch(s){console.error(s),alert("An error occurred. Please try again later.")}finally{n.disabled=!1,n.querySelector("[data-loader]").hidden=!0}}async _submitVerificationCode(){var s,a;const t=this.querySelector(".gw-verify-code__actions"),n=t.querySelectorAll("button, a"),o=t.querySelector("[data-verify-error]"),e=t.querySelector("[data-loader]"),r=this.querySelectorAll("input.code-input");try{r.forEach(d=>{d.disabled=!0}),n.forEach(d=>{d.disabled=!0,d.hidden=!0}),o.hidden=!0,e.hidden=!1;const i=await this._request({customerEmail:this.inputtedEmail,code:this.inputtedCode},c.ENDPOINTS.AUTH.VERIFY_CODE);if(!i.url)throw new Error("Verification failed");localStorage.setItem(c.STORAGE_KEYS.TOKEN,i.token),localStorage.setItem(c.STORAGE_KEYS.EMAIL,this.inputtedEmail);const l=await fetch(i.url);if(l.error)throw new Error(l.error);const p=await(await fetch(window.location.href)).text(),h=new DOMParser().parseFromString(p,"text/html"),m=(a=(s=h.querySelector("#gw-customer-accounts-template").content)==null?void 0:s.querySelector("gw-integrations-loyalty-points"))==null?void 0:a.getAttribute("page-url");document.documentElement.innerHTML=h.documentElement.innerHTML,document.dispatchEvent(new CustomEvent("gw-customer-accounts:login"));const f=sessionStorage.getItem(c.STORAGE_KEYS.REDIRECT_URL);if(f&&(sessionStorage.removeItem(c.STORAGE_KEYS.REDIRECT_URL),window.location.href=f),!m)return;window.location.pathname.includes(m)&&window.location.reload()}catch(i){console.error(i),setTimeout(()=>{r[r.length-1].focus()})}finally{r.forEach(i=>{i.disabled=!1}),n.forEach(i=>{i.disabled=!1,i.hidden=!1}),o.hidden=!1,e.hidden=!0}}async _request(t,n,o="POST"){return await(await fetch(u.baseURL+n,{method:o,body:JSON.stringify(t),mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"}})).json()}_handleInputCodeGroup(){const t=[...this.querySelectorAll("input.code-input")];t.forEach((n,o)=>{n.addEventListener("keydown",e=>{(e.ctrlKey||e.metaKey)&&e.keyCode===86||(e.keyCode!==8&&(e.keyCode<48||e.keyCode>57)&&e.preventDefault(),e.keyCode===8&&e.target.value===""&&t[Math.max(0,o-1)].focus())}),n.addEventListener("input",e=>{const[r,...s]=e.target.value;e.target.value=r??"";const a=o===t.length-1,i=r!==void 0;i&&!a&&(t[o+1].focus(),t[o+1].value=s.join(""),t[o+1].dispatchEvent(new Event("input"))),i&&a&&t.every(l=>l.value)&&(this.inputtedCode=t.map(l=>l.value).join(""),this._submitVerificationCode())})})}async _fetchCaptchaToken(){const n=await(await fetch(u.baseURL+c.ENDPOINTS.AUTH.GET_CAPTCHA_TOKEN)).json();return n==null?void 0:n.token}});
@@ -1,4 +1,4 @@
1
- import{G as s,a}from"./assets/index-DI2a6rRk.js";customElements.whenDefined("gw-customer-accounts").then(()=>{class c extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}set variantId(t){this.setAttribute("variant-id",t)}get variantId(){return this.getAttribute("variant-id")}get productId(){return this.getAttribute("product-id")}connectedCallback(){this.renderButton(),this.button=this.shadowRoot.querySelector("button"),this.loader=this.shadowRoot.querySelector("[data-loader]"),this.addEventListener("click",t=>this._handleFavoriteButtonClick(t)),this._activateButton(this._isProductInFavorites()),document.addEventListener("variant:change",({detail:{productId:t,variant:e}})=>{t!==this.productId||!e||(this.variantId=e.id)}),s.app.addEventListener(a.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED,()=>{this._activateButton(this._isProductInFavorites())})}log(t){const e="[GW_WISHLIST_BUTTON] Product ID: "+this.productId;console.log(e,t)}renderButton(){if(this.iconEl=this._createIcon("icon"),this.filledIconEl=this._createIcon("filled-icon"),this.hasAttribute("icon-only")){this.shadowRoot.innerHTML=`
1
+ import{G as s,a}from"./assets/index-DkUQsudo.js";customElements.whenDefined("gw-customer-accounts").then(()=>{class c extends HTMLElement{constructor(){super(),this.shadow=this.attachShadow({mode:"open"})}set variantId(t){this.setAttribute("variant-id",t)}get variantId(){return this.getAttribute("variant-id")}get productId(){return this.getAttribute("product-id")}connectedCallback(){this.renderButton(),this.button=this.shadowRoot.querySelector("button"),this.loader=this.shadowRoot.querySelector("[data-loader]"),this.addEventListener("click",t=>this._handleFavoriteButtonClick(t)),this._activateButton(this._isProductInFavorites()),document.addEventListener("variant:change",({detail:{productId:t,variant:e}})=>{t!==this.productId||!e||(this.variantId=e.id)}),s.app.addEventListener(a.CUSTOM_EVENTS.FAVORITES_STORAGE_UPDATED,()=>{this._activateButton(this._isProductInFavorites())})}log(t){const e="[GW_WISHLIST_BUTTON] Product ID: "+this.productId;console.log(e,t)}renderButton(){if(this.iconEl=this._createIcon("icon"),this.filledIconEl=this._createIcon("filled-icon"),this.hasAttribute("icon-only")){this.shadowRoot.innerHTML=`
2
2
  <button class="wishlist-button wishlist-button--icon-only" part="button">
3
3
  ${this.iconEl}
4
4
  ${this.filledIconEl}
@@ -18,4 +18,4 @@ import{G as s,a}from"./assets/index-DI2a6rRk.js";customElements.whenDefined("gw-
18
18
  `)}catch(e){console.error(e),this._activateButton(!0),s.notify("An error occurred. Please try again later.")}}else{this._activateButton(!0);try{const e=await this._addToFavorites();if(e.error)throw new Error(e.error);const r=e.products;if(!r)throw new Error("Product not found");s.app.updateFavoriteItemsStorage({addIds:[s.parseVariantId(r.id)]}),s.dashboard._renderSingleFavoriteItem(r);const o=s.customerFirstName?`${s.customerFirstName}'s`:"Your";s.notify(`
19
19
  <span>Added to ${o} favorites</span>
20
20
  <a href="#my-favorites" class="gw-notification__link">View</a>
21
- `),document.dispatchEvent(new CustomEvent("wishlist:add",{detail:{product:{id:this.productData.id,title:this.productData.title},variant:this.currentVariant}}))}catch(e){console.error(e),this._activateButton(!1),s.notify("An error occurred. Please try again later.")}}this.loader&&(this.loader.hidden=!0),this.button.disabled=!1,this.button.removeAttribute("aria-disabled"),this.removeAttribute("Processing")}get productData(){if(!this._productData){const t=this.querySelector("[data-product-data]");this._productData=JSON.parse(t.textContent)}return this._productData}get productVariants(){var t;return((t=this.productData.variants)==null?void 0:t.nodes)||[]}get currentVariant(){return this.productVariants.find(t=>t.id==this.variantId)}async _addToFavorites(){if(!s.hasCustomer){const e=this.querySelector("[data-product-data]"),r=JSON.parse(e.textContent),o=localStorage.getItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS)||"[]",i=JSON.parse(o).filter(d=>d.id!==r.id);return i.push(r),localStorage.setItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,JSON.stringify(i)),{success:!0,products:r}}const t=await s.request(a.ENDPOINTS.FAVORITES.ADD,{prodID:this.productId,varID:this.variantId||this._getVariantId()});if(t.error)throw new Error(t.error);return t}async _removeFromFavorites(){if(!s.hasCustomer){const e=this.querySelector("[data-product-data]"),r=JSON.parse(e.textContent),o=localStorage.getItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS)||"[]",i=JSON.parse(o).filter(d=>d.id!==r.id);return localStorage.setItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,JSON.stringify(i)),{success:!0,products:r}}const t=await s.request(a.ENDPOINTS.FAVORITES.REMOVE,{prodID:this.productId});if(t.error)throw new Error(t.error);return t}_activateButton(t){var n,i;const e=this.shadowRoot.querySelectorAll("[data-button-icon]"),r=this.shadowRoot.querySelector("[data-button-label]"),o={inactive:((n=s.componentData.wishlist)==null?void 0:n.addToWishlistLabel)||"Add to wishlist",active:((i=s.componentData.wishlist)==null?void 0:i.addedToWishlistLabel)||"Added to wishlist"};e.length&&e.forEach(d=>d.removeAttribute("hidden")),this.loader&&this.loader.setAttribute("hidden",""),t?(this.setAttribute("saved",""),this.button.setAttribute("aria-label",o.active),r&&(r.textContent=o.active)):(this.removeAttribute("saved"),this.button.setAttribute("aria-label",o.inactive),r&&(r.textContent=o.inactive))}_isProductInFavorites(){if(!s.hasCustomer){const r=localStorage.getItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS);return(r?JSON.parse(r):[]).some(n=>n.id===this.productId)}const t=sessionStorage.getItem(a.STORAGE_KEYS.WISHLIST_PRODUCT_IDS);return(t?JSON.parse(t):[]).includes(this.productId)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{}):customElements.define("gw-wishlist-button",c)});
21
+ `),document.dispatchEvent(new CustomEvent("wishlist:add",{detail:{product:{id:this.productData.id,title:this.productData.title},variant:this.currentVariant}}))}catch(e){console.error(e),this._activateButton(!1),s.notify("An error occurred. Please try again later.")}}this.loader&&(this.loader.hidden=!0),this.button.disabled=!1,this.button.removeAttribute("aria-disabled"),this.removeAttribute("Processing")}get productData(){if(!this._productData){const t=this.querySelector("[data-product-data]");this._productData=JSON.parse(t.textContent)}return this._productData}get productVariants(){var t;return((t=this.productData.variants)==null?void 0:t.nodes)||[]}get currentVariant(){return this.productVariants.find(t=>t.id==this.variantId)}async _addToFavorites(){if(!s.hasCustomer){const e=this.querySelector("[data-product-data]"),r=JSON.parse(e.textContent),o=localStorage.getItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS)||"[]",i=JSON.parse(o).filter(d=>d.id!==r.id);return i.push(r),localStorage.setItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,JSON.stringify(i)),{success:!0,products:r}}const t=await s.request(a.ENDPOINTS.FAVORITES.ADD,{prodID:this.productId,varID:this.variantId||this._getVariantId()});if(t.error)throw new Error(t.error);return t}async _removeFromFavorites(){if(!s.hasCustomer){const e=this.querySelector("[data-product-data]"),r=JSON.parse(e.textContent),o=localStorage.getItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS)||"[]",i=JSON.parse(o).filter(d=>d.id!==r.id);return localStorage.setItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS,JSON.stringify(i)),{success:!0,products:r}}const t=await s.request(a.ENDPOINTS.FAVORITES.REMOVE,{prodID:this.productId});if(t.error)throw new Error(t.error);return t}_activateButton(t){var n,i;const e=this.shadowRoot.querySelectorAll("[data-button-icon]"),r=this.shadowRoot.querySelector("[data-button-label]"),o={inactive:((n=s.componentData.wishlist)==null?void 0:n.addToWishlistLabel)||"Add to wishlist",active:((i=s.componentData.wishlist)==null?void 0:i.addedToWishlistLabel)||"Added to wishlist"};e.length&&e.forEach(d=>d.removeAttribute("hidden")),this.loader&&this.loader.setAttribute("hidden",""),t?(this.setAttribute("saved",""),this.button.setAttribute("aria-label",o.active),r&&(r.textContent=o.active)):(this.removeAttribute("saved"),this.button.setAttribute("aria-label",o.inactive),r&&(r.textContent=o.inactive))}_isProductInFavorites(){if(!s.hasCustomer){const r=localStorage.getItem(a.STORAGE_KEYS.TEMP_WISHLIST_PRODUCTS);return(r?JSON.parse(r):[]).some(n=>n.id===this.productId)}const t=sessionStorage.getItem(a.STORAGE_KEYS.WISHLIST_PRODUCT_IDS);return(t?JSON.parse(t):[]).includes(this.productId)}}document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>{customElements.define("gw-wishlist-button",c)}):customElements.define("gw-wishlist-button",c)});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gw-customer-accounts",
3
- "version": "1.2.7",
3
+ "version": "1.3.0",
4
4
  "description": "",
5
5
  "main": "gw-customer-accounts.js",
6
6
  "type": "module",
@@ -114,9 +114,16 @@ customElements.define(
114
114
  const formData = new FormData(form);
115
115
  this.inputtedEmail = formData.get('email');
116
116
 
117
+ // Fetch hidden captcha token
118
+ let token = '';
119
+ const captchaToken = await this._fetchCaptchaToken();
120
+ if (captchaToken) {
121
+ token = captchaToken;
122
+ }
123
+
117
124
  try {
118
125
  const response = await this._request(
119
- { customerEmail: this.inputtedEmail },
126
+ { customerEmail: this.inputtedEmail, token: token },
120
127
  GWCA.ENDPOINTS.AUTH.SIGN_IN
121
128
  );
122
129
 
@@ -327,5 +334,17 @@ customElements.define(
327
334
  });
328
335
  });
329
336
  }
337
+
338
+ /**
339
+ * Fetches the captcha token.
340
+ * @returns {Promise<string>}
341
+ */
342
+ async _fetchCaptchaToken() {
343
+ const response = await fetch(
344
+ GWUtils.baseURL + GWCA.ENDPOINTS.AUTH.GET_CAPTCHA_TOKEN
345
+ );
346
+ const data = await response.json();
347
+ return data?.token;
348
+ }
330
349
  }
331
350
  );
@@ -384,7 +384,7 @@ customElements.whenDefined('gw-customer-accounts').then(() => {
384
384
 
385
385
  if (document.readyState === 'loading') {
386
386
  document.addEventListener('DOMContentLoaded', () => {
387
- 'gw-wishlist-button', GWWishlistButton;
387
+ customElements.define('gw-wishlist-button', GWWishlistButton);
388
388
  });
389
389
  } else {
390
390
  customElements.define('gw-wishlist-button', GWWishlistButton);
@@ -25,9 +25,11 @@ export const GWCA = Object.freeze({
25
25
  ENDPOINTS: {
26
26
  AUTH: {
27
27
  SIGN_IN: '/email-sign',
28
+ SIGN_IN_TEST: '/email-sign-test',
28
29
  VERIFY_CODE: '/code-sign',
29
30
  GET_TOKEN: '/logged-sign',
30
31
  CUSTOMER_LOGGED: '/customer-logged',
32
+ GET_CAPTCHA_TOKEN: '/get-token',
31
33
  },
32
34
  FAVORITES: {
33
35
  GET_ALL_IDS: '/get-all-favorites',
@@ -1 +0,0 @@
1
- const i=Object.freeze({MAP:{"#my-account":"dashboard","#my-orders":"orders","#my-profile":"profile","#my-favorites":"dashboard##favorites"},STORAGE_KEYS:{TOKEN:"i-shsgi--u0mihh3co1e3y9sns",EMAIL:"gw-customer-accounts-email",RECENTLY_VIEWED:"gw-recently-viewed",RECENTLY_VIEWED_COLLECTION:"gw-recently-viewed-collection",LOYALTY_POINTS:"gw-loyalty-points",YOTPO_POINTS:"gw-yotpo-points",WISHLIST_PRODUCT_IDS:"gw-wishlist-product-ids",RISE_POINTS:"gw-rise-points",REDIRECT_URL:"gw-customer-accounts-login-redirect",TEMP_WISHLIST_PRODUCTS:"gw-temp-wishlist-products",TEMP_CART_PRODUCTS:"gw-temp-cart-products",TEMP_RECENTLY_VIEWED_ITEMS:"gw-temp-recently-viewed-items",TEMP_PRODUCTS_UPDATED:"gw-temp-products-updated"},ENDPOINTS:{AUTH:{SIGN_IN:"/email-sign",VERIFY_CODE:"/code-sign",GET_TOKEN:"/logged-sign",CUSTOMER_LOGGED:"/customer-logged"},FAVORITES:{GET_ALL_IDS:"/get-all-favorites",GET:"/get-favorites",ADD:"/add-favorite",REMOVE:"/remove-favorite",ADD_BULK:"/add-favorites"},VIEWED_PRODUCTS:{GET:"/get-viewed-products",ADD:"/add-viewed-product",ADD_BULK:"/add-viewed-products"},CART:{GET:"/get-cart-products",ADD:"/add-cart-product",ADD_BULK:"/add-cart-products",REMOVE:"/remove-cart"},ADDRESS:{ADD:"/add-address",EDIT:"/edit-address",REMOVE:"/remove-address"},CUSTOMER:{UPDATE:"/update-customer"},LOYALTY:{GET_LL:"/get-ll-customer",GET_YOTPO_CUSTOMER:"/get-youtpo-customer",GET_RISE_CREDIT:"/get-rise-customer"},MISC:{GET_MALOMO_ORDER:"/get-malomo-order"}},TAGS_TO_HIDE:["accounts:hidden"],TEMPLATE_IDS:{PRODUCT_CARD:"gw-standard-product-card-template",FORM_PRODUCT_CARD:"gw-form-product-card-template"},CUSTOM_EVENTS:{FAVORITES_STORAGE_UPDATED:"gw:favorites-storage-updated",SAVED_ITEMS_FROM_CART:"gw:saved-items-from-cart"},DRAWER_IDS:{favorites:"#Drawer-Favorites"}});class u{constructor(){}get componentData(){const e=document.querySelector("gw-customer-accounts").shadowRoot.querySelector("[data-component-data]");return JSON.parse(e.textContent)}get customerId(){var t,e;return(e=(t=this.componentData)==null?void 0:t.customer)==null?void 0:e.id}get customerFirstName(){var t,e;return(e=(t=this.componentData)==null?void 0:t.customer)==null?void 0:e.firstName}get customerEmail(){return localStorage.getItem(i.STORAGE_KEYS.EMAIL)}get hasCustomer(){var t,e;return!!((e=(t=this.componentData)==null?void 0:t.customer)!=null&&e.id)}get customerToken(){return localStorage.getItem(i.STORAGE_KEYS.TOKEN)}get baseURL(){return this.componentData.baseUrl}get app(){return document.querySelector("gw-customer-accounts")}get appShadow(){return this.app.shadowRoot}get dashboard(){return this.appShadow.querySelector("gw-customer-accounts-dashboard")}get tabId(){return i.MAP[window.location.hash]||"dashboard"}async request(t,e={},s="POST"){const a=()=>{const o={method:s,mode:"cors",cache:"no-cache",headers:{"Content-Type":"application/json"}};return s==="POST"&&(o.body=JSON.stringify(e)),o};if(s==="GET"){const o=new URLSearchParams(e);t=`${t}?${o}`}return s==="POST"&&(e.token=this.customerToken,e.email=this.customerEmail,e.customerID=this.customerId),await(await fetch(this.baseURL+t,a())).json()}notify(t,e="success",s=3e3){const a=document.querySelector("gw-customer-accounts"),r=a.shadowRoot.querySelector("[data-notification-alert]"),o=a.shadowRoot.querySelector("[data-notification-message]");o.innerHTML=t,r.open=!0}async updateAjaxContent(t){return await this.app.updateContent(t)}parseVariantId(t){return String(t).split("/").pop()}formatMoney(t){return(t/100).toLocaleString("en-US",{style:"currency",currency:"USD"})}addToStorage({key:t,values:e,storageType:s="local",position:a="start"}){const r=s==="local"?localStorage:sessionStorage,o=JSON.parse(r.getItem(t))||[];a==="start"?r.setItem(t,JSON.stringify([...e,...o])):r.setItem(t,JSON.stringify([...o,...e]))}removeFromStorage({key:t,values:e,storageType:s="local",nestedKey:a}){const r=s==="local"?localStorage:sessionStorage,o=JSON.parse(r.getItem(t))||[];if(a){const n=o.map(c=>e.includes(c[a])?null:c);r.setItem(t,JSON.stringify(n.filter(Boolean)))}else{const n=o.filter(c=>!e.includes(c));r.setItem(t,JSON.stringify(n))}}}const g=new u;export{g as G,i as a};