(()=>{var __webpack_modules__={307:(e,t,i)=>{const r=i(650),o=i(827);e.exports={trackMetric:(e,t,i=void 0,n)=>{let s="offer-clicked"===e?localStorage:sessionStorage,a=s.getItem(`lb-${e}`);a=a?JSON.parse(a):{offers:{}};let l=t.recordType+("offer-viewed"===e?"#"+t.triggerItem?.id:"");const c=!!a.offers[l];let d={metricId:t.offerMetricId,configs:t.configs};a.offers[l]={...d,timestamp:(new Date).getTime(),variantIds:i?.map(e=>e.id)||[]};let u=n.accountMetricId,f={offers:a.offers,shop:n.myShopifyDomain,presentmentCurrency:{shopifyCurrency:window.Shopify?.currency,shopCurrencyCode:n.shopCurrencyCode},accountMetricId:u};s.setItem(`lb-${e}`,JSON.stringify(f)),!c&&o.apiRequest(`${r.HOST_NAME}/v2/metrics`,"POST",{type:e,offer:d,shop:n.myShopifyDomain,accountMetricId:u})}}},326:(e,t,i)=>{const r=i(307),o=i(827),n=i(343),s=i(343),a=i(650);let l,c,d,u=[],f=[],p=[],g=!1,w=[],m={},h=!1,y=!1,b=new WeakSet;const v=e.exports={type:(e,t)=>{switch(t){case"popup":return["widget#atcp","widget#atcf","widget#ccpa","widget#ccpf"].includes(e);case"trigger":return["widget#pal","widget#pac","widget#pag"].includes(e);case"stc":return["widget#cpal","widget#cpac","widget#cpag","widget#icuc"].includes(e)}},addActionOffer:(e=[],t)=>{u=[...u,...e.filter(e=>e)],l=l||t,u.some(e=>e.widget.includes("atc"))&&v.registerListeners("atc")},triggerOffer:e=>{d||(d=e);let t=[];w?.length?(w.forEach(e=>{v.type(e?.type,"trigger")&&t.push(e)}),t?.length?v.processWidgets(t):v.reset()):v.reset()},actionOffer:(e,t)=>{g=!0;let i=u.find(e=>t?e.widget.includes("atc"):["widget#ccpa","widget#ccpf"].includes(e.widget));if(i){let t=l.widgets.find(e=>e.recordType===i.widget),r=t?.configs?.TACSelector?.isEnabled&&document.querySelector(t?.configs?.TACSelector?.selector);d=e,!r||r?.checked?v.handleWidgets([i]):v.reset()}else v.triggerOffer(e)},registerMutationObserver:(e,t)=>{m[t]||(m[t]=!0,new MutationObserver(i=>{i?.length&&i.forEach(({addedNodes:i})=>{i?.length&&i.forEach(async i=>{if(!i?.querySelectorAll)return;const r=i.querySelectorAll(e);let n="[lb-custom-position]",s="lb-product-handle";if(i.matches(n)){let e=i.getAttribute(s),t=i.getAttribute("lb-widget"),r=await o.getProduct(e,l),a=await(window.lbHandlers?.offer(l,r,t,void 0,!0));a?.length&&v.handleWidgets(a,void 0,l,{selector:n+`[${s}="${e}"]`,insertPosition:"beforeend"})}(r.length||i.matches(e))&&v.registerListeners(t);let a=f.filter(e=>"widget#icuc"===e.widget);if(a?.length){let e=l.widgets.find(e=>"widget#icuc"===e.recordType);e?.position?.drawer?.isEnabled&&(()=>{let t=window.innerWidth<768?"mobile":"desktop",r=e?.position?.drawer?.[t]?.selector;if(i.querySelectorAll(r)?.length||i.matches(r)){let e=a.filter(e=>!document.querySelector(`lb-upsell-widget[offer="${e.recordType.split("-")[0]}"]`));e?.length&&v.handleWidgets(e,{isDrawer:!0})}})()}})})}).observe(document.body,{childList:!0,subtree:!0}))},getListeners:()=>({checkout:l?.commonConfig?.checkoutSelector||"button[name='checkout'], input[name='checkout'], a[href='/checkout']",atc:l?.commonConfig?.atcSelector||"button[name='add'], input[name='add']"}),registerActionListeners:(e,t)=>{v.registerMutationObserver(e,t);let i=document.querySelectorAll(e);i?.length&&i.forEach(e=>{b.has(e)||(b.add(e),e.setAttribute(`lb-${t}-listener`,!0),e.addEventListener("click",e=>(e=>{let i="function"!=typeof window.lbValidateCheckout||window.lbValidateCheckout();if("checkout"===t&&(!i||p.some(e=>["widget#ccpa","widget#ccpf"].includes(e.widget))))return;if(g)return void(g=!1);e.preventDefault(),e.stopImmediatePropagation(),e.stopPropagation();let r=e.target?.parentNode?.closest(`[lb-${t}-listener]`);v.actionOffer(r||e.target,"atc"===t)})(e),{capture:!0}))})},remove:(e,t="",i=!1)=>{if(i){const e=document.querySelector("#lb-upsell-dialog");e?.close(),e?.remove()}else{let i=document.querySelectorAll(`lb-upsell-widget[widget="${e}"]${t?`[${t}]`:""}`);i?.length&&i.forEach(e=>e.remove())}},reset:async e=>{await(window.lbPreCheckout?.(d)),v.type(e,"popup")?(v.remove("","",!0),v.triggerOffer(d)):d&&(d?.focus(),d?.click(),d=void 0)},registerListeners:(e,t=void 0)=>{switch(l=t||l,e){case"checkout":case"atc":v.registerActionListeners(v.getListeners()[e],e);break;case"event":window.addEventListener("lbPreviewProduct",async e=>{if(e.detail?.product){let t=f.find(t=>t.recordType.startsWith(e.detail.offerId)),i=t?.triggerItem?.lbId+"#"+e.detail.offerId,n=e.detail.product,s=n?.lb_config?.id||n?.variants[0]?.id;if(t&&r.trackMetric("offer-clicked",t,[{id:s}],l),e.detail.action&&"preview"!==e.detail.action){if(["open","newTab"].includes(e.detail.action)){let t=window.lbUseCleanRedirect?"":`?variant=${s}`,r=localStorage.getItem("lb-track-ids")||"{}";r=JSON.parse(r),r[n.product_id||n.id]=i,localStorage.setItem("lb-track-ids",JSON.stringify(r)),window.open(`https://${window.location.hostname}${window?.Shopify?.routes?.root||"/"}products/${n.handle}${t||""}`,"newTab"===e.detail.action?"_blank":"_self")}}else{const t=o.createDialog();(t||document?.body)?.insertAdjacentHTML("beforeend",``);let i=document.querySelector('lb-upsell-widget[widget="widget#preview"]'),r=l.widgets.find(e=>"widget#preview"===e.recordType),n=window.Shopify?.locale;i&&(i.lbPayload={widget:{offers:[e.detail.product],offerId:e.detail.offerId,contents:{actionText:(r?.translations?.[n]||r?.contents)?.actionText||"View more details",currency:{symbol:l.shopEmailCurrencyFormat,format:l.commonConfig?.currencyFormat||l.shopMoneyInEmailsFormat,rate:l.shopCurrencyCode!==Shopify?.currency?.active?Shopify?.currency:void 0}},configs:{...r?.configs,...l?.commonConfig},diy:r?.diy,type:"widget#preview"}})}}}),window.addEventListener("lbSECartUpdated",e=>{if(c=e.detail.cart,!e.detail?.isSelleasy&&(p=[]),e.detail?.cart?.items?.length){u=u.filter(e=>e?.widget.includes("atc"));let t=document.querySelector('lb-upsell-widget[widget="widget#icuc"]');t&&!e.detail.cart.items.some(e=>e.id===t.lbPayload?.widget?.triggers?.[0].id)&&v.remove("widget#icuc"),!d&&l?.offers?.length&&window.lbHandlers?.offer(l,void 0,["widget#icuc","widget#ccpa","widget#ccpf"]),!d&&!e.detail.isSelleasy&&n.mutateDiscount(window.lbupsellToken,e.detail.cart,e.detail.isAtc)}else v.remove("widget#icuc");window.lbSelleasyUtils?.renderHelper?.()}),window.addEventListener("lbWidgetCta",e=>{let t=e.detail.type.includes("atc"),i="end"===e.detail?.action?.key&&e.detail?.action?.value;i&&v.remove("","",!0),e.detail?.action?.isDismissed&&!t?g=!1:i?(document.body.classList.remove("lb-popup-prevent-scroll"),y=!0,!h&&(y=!1,t?v.triggerOffer():v.reset())):(h=!0,v.processWidgets([{widgetSrcElement:e.detail.widgetSrcElement}],e.detail.action?.product,t)),window.lbSelleasyUtils?.renderHelper?.()}),window.addEventListener("lbWidgetRendered",e=>{v.type(e.detail.type,"trigger")&&v.registerListeners("atc");let t=e.detail.widgetSrcElement?.getAttribute("offer");if(!w.some(e=>e.offer===t)&&w.push({...e.detail,offer:t}),t){let e=f.find(e=>e.recordType.startsWith(t));!p.some(e=>e.recordType.startsWith(t))&&p.push(e),e&&r.trackMetric("offer-viewed",e,void 0,l)}window.lbSelleasyUtils?.renderHelper?.()})}},processWidgets:(e,t,i=!1)=>{let r=e.map(e=>v.processV2Products(e.widgetSrcElement,t,i));return Promise.all(r).then(async t=>{let i=t.reduce((e,t)=>(t.items&&e.push(...t.items),e),[]);i.length&&await o.apiRequest(`https://${window.location.hostname}${window.Shopify?.routes?.root||"/"}cart/add.js?src=selleasy`,"POST",{items:i}),v.afterActions(t,e)})},afterActions:async(e,t)=>{let i=e.map(e=>e.callback).filter(e=>e);for(let e of i)await e();e.some(e=>e.reset)&&v.reset(),e.reduce((e,t)=>(t.afterAction&&!e.some(e=>e===t.afterAction)&&e.push(t.afterAction),e),[]).forEach(t=>{t&&"stay"!==t?"refresh"===t?location?.reload():window.location.href="/cart"+("checkout"===t?"/checkout":""):window.lbSelleasyUtils?.drawerRefresh(e.some(e=>e.isDrawer))})},processV2Products:async(e,t=void 0,i=!1)=>new Promise((o,a)=>{(t?Promise.resolve([t]):e?.getSelectedProducts()).then(async a=>{if(a?.length){let t=e?.getAttribute("offer"),d=f.find(e=>e.recordType.startsWith(t)),u={items:a.map(i=>({id:i.id,quantity:(i.quantity||1)*(e.lbPayload?.lb_config?.quantity||1),properties:{"_lb-product":d.triggerItem?.lbId+"#"+t},selling_plan:i.sellingPlanId}))},p=e.lbPayload?.widget?.overrides?.isDrawer,g=l.widgets.find(e=>e.recordType===d.widget),w=!g?.configs?.TACSelector?.isEnabled||document.querySelector(g?.configs?.TACSelector?.selector)?.checked;if(t&&d&&g&&w){["widget#atcf","widget#ccpf"].includes(d.widget)&&(a=[...(e.lbPayload?.funnelItems||[]).map(e=>e.lb_config),...a]),v.type(d.widget,"stc")&&(a=[...a,...s.getCode(d)?.discount?.products||[]]);let t=d.discounts?.method?n.handleDiscount(d,d.triggerItem,a,d.discounts,v.type(d.widget,"stc")):Promise.resolve(),f=await t;f&&await n.mutateDiscount(l.storeFrontAccessToken,c,!0),o({items:u.items,callback:async()=>{r.trackMetric("offer-clicked",d,a,l),f&&await n.mutateDiscount(l.storeFrontAccessToken,void 0,!0),e.updateWidgetState({isLoading:!1})},reset:(h=!1,!v.type(d.widget,"popup")||y&&(y=!1,!i||v.triggerOffer()&&!1)),afterAction:g?.configs?.[p?"drawerAfterAction":"afterAction"],isDrawer:p})}else o({reset:!0})}else e.updateWidgetState({isLoading:!1,product:t}),o({reset:!0})}).catch(e=>{o({reset:!0})})}),getPosition:e=>{const t=window.innerWidth<768;if(v.type(e.recordType,"popup"))return{selector:"body",insertPosition:"beforeend"};if("widget#icuc"===e.recordType&&!o.checkPage(!0))return e.position?.drawer?.isEnabled?e.position?.drawer?.[t?"mobile":"desktop"]:void 0;if("custom"===e?.position?.type){let i=e.position[t?"mobile":"desktop"];if(document.querySelector(i.selector))return i}return{selector:`.lb-widget-${e.recordType.split("#")[1]}`,insertPosition:"beforeend"}},formatWidgetContents:(e,t)=>{let i=e?.contents||{},r=t?.contents||{},o={...i,...r},n=window.Shopify?.locale;return l.shopLocales.find(e=>e.primary)?.locale!==n&&(o={...e?.translations?.[n]||i,...t?.translations?.[n]||r}),o},handleWidgets:(e,t,i,r=void 0)=>{try{l=l||i,f=f.filter(t=>!e.some(e=>e.recordType.startsWith(t.recordType))).concat(e),e=e.sort((e,t)=>(t.priority||0)-(e.priority||0));for(let i of e){let e=["widget#ba","widget#bl","widget#bac"].includes(i.widget),n=l.widgets.find(e=>e.recordType===i.widget);if(n&&!n.isDisabled&&i.isEnabled){let s=r||v.getPosition(n,i);if(!s)continue;i.id=i.recordType.split("-")[0],!n.configs?.showAll&&v.remove(n.recordType);let c=document.querySelector(s.selector);if(c){let r=i.triggerItem?.lbId,d=o.getOfferedProducts(i,l),u=v.type(i.widget,"popup"),f=e=>{e.insertAdjacentHTML(s.insertPosition,``)};!u&&f(c),d.then(async s=>{if(u){const e=o.createDialog();f(e||c)}s=(s||[]).reduce((e,t)=>(e.some(e=>e.id===t.id)||e.push(t),e),[]);let d=window.Shopify?.locale;if((e||v.type(i.widget,"trigger"))&&(i.triggerItem.variants=i.triggerItem.variants.filter(e=>e.available),!i.triggerItem.available||!i.triggerItem.variants.length))return;let p=await o.cart(),g=["widget#ccpf","widget#atcf"].includes(i.widget),w=i.offerItems?.configs?.ignoreAlreadyBought,m="variant"===i.offerItems.type;s=s.map(e=>{if(!e||!e?.available)return!1;if(e.variants=e.variants.filter(e=>e.available),m){let t=i.offerItems?.values?.find(t=>t.id.includes(e.id));e.variants=e.variants.filter(e=>(t.variants||[]).some(t=>t.id.includes(e.id)&&(!w||!p?.items?.some(t=>t.id===e.id))))}if(g){let t=i.offerItems?.values?.find(t=>t.id.includes(e.id));e.funnelId=t?.funnelId,e.contents={...t?.contents,...t?.translations?.[d]||{}}}return e.variants.length>0&&(m||!w||!p?.items?.some(t=>t.product_id===e.id))&&e}).filter(e=>e),i.offerItems?.configs?.isSortedRandomly&&(s=s.sort(()=>Math.random()-.5)),i.offerItems?.configs?.maxItems&&(s=s.slice(0,i.offerItems?.configs?.maxItems));let h=document.querySelector(`lb-upsell-widget[offer="${i.id}"][lb-trigger-product-id="${r}"]`),y={...n?.translations?.[d]||n?.contents,...i?.translations?.[d]||i?.contents};h&&s?.length&&(!g||s.find(e=>!e.funnelId))?(e&&(s=[i.triggerItem,...s]),h.lbPayload={widget:{triggers:[i.triggerItem],offers:s,offerId:i.id,offerCount:"auto"===i.offerItems?.type?i.offerItems?.count:i.offerItems?.values?.length,contents:{...y,currency:{symbol:l.shopEmailCurrencyFormat||l.shopCurrencyCode,format:l.commonConfig?.currencyFormat||l.shopMoneyInEmailsFormat,rate:l.shopCurrencyCode!==Shopify?.currency?.active?Shopify?.currency:void 0}},pitch:i.pitch,type:i.widget,discounts:"none"===i.discounts?.method||i.discounts?.isDisabled?void 0:{...i.discounts,text:y?.discountText||i.discounts?.text,tierLabel:y?.tierLabel||i.discounts?.tierLabel},diy:n?.diy,configs:{...i.offerItems?.configs,...n?.configs,...l?.commonConfig,integrations:l.integrations},overrides:t}},window.lbSelleasyUtils?.productReviews(h,l,a)):(h?.remove(),v.reset(i.widget))}).catch(e=>{v.reset(i.widget)})}else v.reset(i.widget)}else v.reset(i.widget)}}catch(e){v.reset()}}}},343:(e,t,i)=>{const r=i(650),o=i(827),n={handleDiscount:async(e,t,i,s,a=!1)=>new Promise(async(l,c)=>{if("none"===s.method||!i?.length)return void l(void 0);let d,u={trigger:{id:t?.lbCart&&t?.id,productId:t?.product_id||t?.id,check:!(s.configs?.ignoreTrigger||a)},products:i.map(e=>({id:e.id,productId:e.productId,price:e.price}))};if(["widget#bl","widget#ba","widget#bac"].includes(e.widget)){let t="auto"===e.offerItems?.type?e.offerItems?.count:e.offerItems?.values?.length;if(t=Math.min(t,e.offerItems?.configs?.maxItems||t)+1,!(t===i.length||(i?.find(e=>e.isTrigger)||s.configs?.ignoreTrigger)&&("function"===s.method&&"product"===s.class?Object.keys(s.tiers||{}).some(e=>Number(e)<=i.length):(s.configs?.minProducts||t)<=i.length)))return void l(void 0)}if(["function","custom"].includes(s?.method))d={discount:{code:e.discounts.code,...u},offer:e.recordType};else if("dynamic"===s?.method){let t=`${r.HOST_NAME}/processOffer`,n={myShopifyDomain:e.myShopifyDomain,widgetType:e.widget,recordType:e.recordType,triggerProduct:u.trigger?.id,products:i.map(e=>({id:e.id,productId:e.productId,price:e.price}))};d={discount:{...await o.apiRequest(t,"POST",n),...u},offer:e.recordType}}d&&n.stackCode(d),l(d)}),stackCode:async e=>{let t=localStorage.getItem("lb-offer-codes");if(t){t=JSON.parse(t);let i=(t||[]).findIndex(t=>t?.offer===e.offer);-1!==i&&(n.deleteCodes([t[i].discount.id]),t.splice(i,1)),t.push(e)}localStorage.setItem("lb-offer-codes",JSON.stringify(t||[e]))},getCode:e=>{let t=localStorage.getItem("lb-offer-codes");return t&&(t=JSON.parse(t)),t?.find(t=>t?.offer===e.recordType)},deleteCodes:e=>{e.filter(e=>e).length&&o.apiRequest(`${r.HOST_NAME}/processOffer`,"POST",{codes:e,type:"delete"})},validateCodes:(e,t=!1)=>{let i=localStorage.getItem("lb-offer-codes");if(i){i=JSON.parse(i);let r=[];return i?.length&&!t&&(i=i.filter(t=>{let i=t?.discount?.trigger;return!(!t?.discount?.products?.every(t=>e.items.some(e=>e.id===t.id))||i&&i?.check&&!e.items.find(e=>i?.id?e.id===i?.id:e.product_id===i?.productId))||(t?.discount?.id&&r.push(t?.discount?.id),!1)})),n.deleteCodes(r),i?.length?i:[]}return[]},mutateDiscount:async(e,t,i=!1)=>{if(!e)return Promise.resolve();let s=t||await o.cart(!0,!0),a=n.validateCodes(s,i);if(a?.length&&s?.token){localStorage.setItem("lb-offer-codes",JSON.stringify(a)),a=a.slice(-5).map(e=>e?.discount?.code).filter(e=>e&&!a.includes(e)),a=[...a,...(window.lbExDiscounts||[]).filter(e=>e)];let t=`gid://shopify/Cart/${s.token}`;if("function"==typeof window.lbDealeasy?.applyDiscountsToCart)return window.lbDealeasy.applyDiscountsToCart(a,"selleasy",t);let i="\n mutation cartDiscountCodesUpdate($id: ID!, $discountCodes:[String!]) {\n cartDiscountCodesUpdate(cartId: $id, discountCodes: $discountCodes) {\n cart { id }\n userErrors { field message }\n }\n }",n={discountCodes:a,id:t},l=`https://${window.location.hostname}/api/${r.API_VERSION}/graphql.json`;return o.apiRequest(l,"POST",{query:i,variables:n},{"X-Shopify-Storefront-Access-Token":e,"Access-Control-Allow-Origin":"*"})}return localStorage.removeItem("lb-offer-codes"),Promise.resolve()}};e.exports=n},410:(e,t,i)=>{const r=i(827),o=i(326);let n,s;const a={isOfferValid:async(e,t)=>{t.lbId=t.product_id||t.id;let i=!1;const o=e?.triggers?.conditions?.rules||[],s="collection"===e?.triggers?.type||o?.some(e=>"collection"===e.class);if((s&&!t.graphQLRes?.collections||o?.some(e=>["category","inventory"].includes(e.class)||["title","type"].includes(e.class)&&n?.shopLocales?.find(e=>1==e.primary)?.locale!==window.Shopify?.locale)&&!t.graphQLRes)&&(t.graphQLRes=await r.getGraphQLProducts([t.lbId],"id",s,void 0,r.getPrimaryLocale(n)).then(e=>e?._0||void 0)),"all"===e?.triggers?.type)i=!0;else{let r=JSON.parse(JSON.stringify(e?.triggers?.values||[]));if(["product","variant"].includes(e?.triggers?.type))i=r.some(i=>(i.handle===t.handle||i.id.includes(t.product_id||t.id))&&("variant"!==e?.triggers?.type||i?.variants?.some(e=>e.id.includes(t.variant_id))));else if("tags"===e?.triggers?.type)i=r.some(e=>t?.tags?.includes(e?.handle));else if("collection"===e?.triggers?.type){const e=t.graphQLRes?.collections?.nodes||[];i=r.some(t=>e.some(e=>e.handle===t.handle||e.id.includes(t.id)))}}return i&&a.validateOfferConfigs(e,t)},actionOffers:async function(e){let t,i,s=await r.cart(),l=(s?.items||[]).sort((e,t)=>e.line_price-t.line_price);for(let o of l||[])for(let n of e){const e=o;if("tags"===n?.triggers?.type||n?.triggers?.conditions?.rules?.length>0){const t=await r.getProduct(o.handle);e.tags=t?.tags,e.variants=t?.variants}"widget#icuc"===n.widget?(!i||i.priority!r||e.recordType===r).filter(e=>(i||[s.recordType]).includes(e.widget))?.sort((e,t)=>t.createdAt-e.createdAt);for(let i of n){if(!i.isEnabled)continue;let r=["widget#ccpa","widget#ccpf","widget#icuc"].includes(s.recordType)&&"checkout";if(r)"widget#icuc"===s.recordType?o.registerMutationObserver(void 0,"icuc"):o.registerListeners(r,e),c.push(i);else if(t){const e=d[s.recordType]||[];let r=await a.isOfferValid(i,t);(s.configs?.showAll||!e.length||e.every(e=>e.priorityd?.[e]?.[0]).filter(e=>e);o.addActionOffer(u.length>1?[u.reduce((e,t)=>e.priority>t.priority?e:t)]:u,n),["widget#atcp","widget#atcf"].forEach(e=>delete d[e]),a.actionOffers(c);let f=Object.values(d).reduce((e,t)=>e.concat(t),[]).filter(e=>e).reduce((e,t)=>(e.some(e=>e.recordType===t.recordType)||e.push(t),e),[]);return!l&&f.length&&o.handleWidgets(f,void 0,e),f},validateOfferConfigs:async(e,t)=>{const{triggers:i,schedule:o}=e||{},{rules:n=[],match:s}=i?.conditions||{},{startsAt:a,endsAt:l}=o||{},c=(new Date).getTime();if(a&&(cl))return!1;if(!n.length)return!0;const d=await r.cart();let u;for(const e of n){const i=r.validateRule(e,t,d);if("all"===s&&!i||"any"===s&&i)return i;u="all"===s&&void 0!==u?u&&i:u||i}return u}};e.exports=a},650:e=>{e.exports={HOST_NAME:"https://upsell-app.logbase.io",IS_LOGS_REQUIRED:"false",API_VERSION:"2025-07"}},827:(e,t,i)=>{const r=i(650);let o,n=[];const s={ROUTE:()=>window.location.origin+(window.Shopify?.routes?.root||"/"),getLocale:function(e){let t=e||Shopify?.locale,i=Shopify?.country;return t&&(t=t.toLocaleUpperCase(),t=["PT-","ZH-"].some(e=>t.startsWith(e))?t.replace("-","_"):t.split("-")[0]),{lang:t,country:i}},getPrimaryLocale:function(e){return e?.shopLocales?.find(e=>!0===e.primary)?.locale},checkPage:function(e){return window.location.pathname.indexOf(e?"/cart":"/products/")>-1},apiRequest:async function(e,t,i,r={}){return new Promise(async(o,n)=>{try{let n=await fetch(e,{method:t,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*",...r},keepalive:!0,...i?{body:JSON.stringify({...i,myShopifyDomain:window.lbShopDomain})}:{}});o(200===n.status?await n.json():void 0)}catch(e){o(void 0)}})},getHandle:function(e){return e.split("/").filter(e=>e).pop()},getProduct:async function(e,t={}){let i=s.ROUTE()+"products/"+e+".js";return await s.apiRequest(i,"GET",null).then(e=>({...e,...t})).catch(e=>{})},getGraphQLProducts:async function(e,t="handle",i=!1,o=!1,n=!1,a=[]){const{lang:l,country:c}=s.getLocale(n);if(!l&&!n)return e.map(e=>({identifier:e}));const d=s.ROUTE()+`api/${r.API_VERSION}/graphql.json`,u={"X-Shopify-Storefront-Access-Token":window.lbupsellToken},f=`query products @inContext(country: ${c}, language: ${l}) {\n ${e.map((e,r)=>`_${r}: product(${t}: "${"id"===t?`gid://shopify/Product/${e}`:e}") {\n title\n id\n handle\n productType\n category { id } \n totalInventory\n ${o?"variants(first: 250) {\n nodes {\n id\n price { amount currencyCode }\n availableForSale\n quantityAvailable\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }":""}\n ${i?"collections(first: 250) {\n nodes { handle id }\n }":""}\n ${a?.length?`metafields(identifiers: [${a.map(e=>`{key: "${e.key}", namespace: "${e.namespace}"}`).join(",")}]){\n value\n key\n type\n namespace\n }`:""}\n }`).join("\n")}\n }`,p=await s.apiRequest(d,"POST",{query:f},u);if(!p?.data)return null;const g=p.data;return o&&await Promise.all(Object.entries(g).map(async([e,t])=>{if(!t?.variants?.pageInfo?.hasNextPage)return;let i=t.variants.pageInfo.endCursor;const r=async i=>{if(!i)return;const o=`query {\n product(handle: "${t.handle}") {\n variants(first: 250, after: "${i}") {\n nodes {\n id\n price { amount currencyCode }\n availableForSale\n quantityAvailable\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n }\n }`,n=await s.apiRequest(d,"POST",{query:o},u),a=n?.data?.product?.variants;a&&(g[e].variants.nodes.push(...a.nodes),a.pageInfo.hasNextPage&&await r(a.pageInfo.endCursor))};await r(i)})),g},getOfferedProductsAuto:function(e,t,i,r,o){let n=s.ROUTE()+`recommendations/products.json?product_id=${e?.lbId}&limit=${t}`+(i?`&intent=${i}`:"");return s.apiRequest(n,"GET",null).then(e=>e?.products||[]).then(async e=>{const t=r?.offerItems?.conditions?.rules||[];return t?.length>0&&t.some(e=>["collection","category","inventory","type","title"].includes(e.class))&&await s.getGraphQLProducts(e.map(e=>e.handle),"handle",t.some(e=>"collection"===e.class),t.some(e=>"inventory"===e.class),o).then(t=>{t&&(t=Object.values(t),e=e.map((e,i)=>{let r=t.find(t=>t.handle===e.handle);return e.graphQLRes=r,e}))}),e}).catch(e=>{})},populateOfferedProducts:async function(e,t,i=!1){let o=e.offerItems.aiConfig.split("#")[1],a=t?.aiConfig?.useSeparateNamespace,l=await s.getGraphQLProducts([e.triggerItem?.handle],"handle",!1,!1,!1,[{key:o,namespace:"$app:selleasy-recommendations"}]),c=JSON.parse(l?._0?.metafields?.[0]?.value||"{}");if(c?.recommendationId){if(!c.products?.length)return;let r=c.products;if(0===(r||[]).filter(e=>e.handle).length){let e=await s.getGraphQLProducts(r.map(e=>e.id),"id",!1,void 0);r=r.map((t,i)=>({...e?.[`_${i}`],pitch:t.pitch}))}return e.pitch=Shopify?.locale===t?.shopLocales?.find(e=>!0===e.primary)?.locale?c?.pitch:void 0,e.configs={recommendationId:c?.recommendationId,rotatable:e.offerItems?.configs?.rotateRecos},i?void window.lbHandlers.offer(t,e.triggerItem,void 0,e.recordType):r.filter(Boolean)}if(!i)return(!a||!n.includes("stylist"))&&s.apiRequest(r.HOST_NAME+"/validate?shop="+window.lbShopDomain+"&id="+e.triggerItem?.lbId+`-${e.id.split("#")[1]}`,"GET",null),a&&n.push("stylist"),void[1,2,3,4,5,6].forEach(i=>{setTimeout(()=>{!document.querySelector(`[offer="${e.id}"]`)&&s.populateOfferedProducts(e,t,!0)},5e3*i)})},filterProductByRule:(e,t)=>("price"===t.class?e.variants=e.variants.filter(e=>{const i=100*Number(t.value)*Number(window.Shopify?.currency?.rate||1),r=Number(e.price);return"equal"===t.type?r===i:"greater"===t.type?r>i:r{const r=e.graphQLRes?.variants?.nodes?.find(e=>e.id.includes(i.id));if(!r?.availableForSale)return!1;const o=Number(t.value),n=Number(r.quantityAvailable);return"equal"===t.type?n===o:"greater"===t.type?n>o:n{let r;for(const o of t){let t;if(["price","inventory"].includes(o.class)?(e=s.filterProductByRule(e,o),t=e?.variants?.length>0):t=s.validateRule(o,e),"all"===i&&!t||"any"===i&&t)return t?e:void 0;r="all"===i&&void 0!==r?r&&t:r||t}return r?e:void 0},getOfferedProducts:async function(e,t){return new Promise(async(i,r)=>{let o=e.offerItems,n=o?.strategy||"default";if("auto"===o?.type&&"default"!==n&&o.aiConfig){let r=await s.populateOfferedProducts(e,t);if(!r)return void i([]);o.values=r}if("metafield"===o?.type){let t=await s.getGraphQLProducts([e.triggerItem?.handle],"handle",!1,!1,!1,e.offerItems?.values?.map(e=>({key:e.key,namespace:e.namespace}))),r=JSON.parse(t?._0?.metafields?.[0]?.value||"{}");if(!r.length)return void i([]);{let t=await s.getGraphQLProducts(r.map(e=>e?.split("/").pop()),"id",!1,void 0),i=r.map((e,i)=>({...t?.[`_${i}`]})).slice(0,e.offerItems?.count||2);o.values=i}}if("auto"===e.offerItems?.type&&"default"===n){const{rules:r,match:o}=e.offerItems?.conditions||{};await s.getOfferedProductsAuto(e.triggerItem,r?.length>0?10:e.offerItems?.count||2,e.offerItems?.intent,e,s.getPrimaryLocale(t)).then(t=>{r?.length>0&&(t=t?.map(e=>s.validateOfferProds(e,r,o))||[]),t=t?.filter(e=>void 0!==e)?.slice(0,e.offerItems?.count||2)||[],i(t)})}else{["icuc","ccp"].some(t=>e.widget.split("#")[1].startsWith(t))||(e.offerItems.values=e.offerItems?.values?.filter(t=>!t?.id?.includes(e.triggerItem?.id)));let r=e.offerItems?.values?.map(e=>e.handle),o=t?.handleMultiLangProductHandle?await s.getGraphQLProducts(r):void 0,n=e.offerItems?.values?.map((e,t)=>(e.handle=o?.[`_${t}`]?.handle||e.handle,s.getProduct(e.handle,{pitch:e.pitch}))),a=await Promise.all(n);i(a)}})},cart:async function(e=!1,t=!1,i=!1){return(e||!o)&&await s.apiRequest("/cart.js","GET",null).then(r=>{r&&(o=r,e&&window.dispatchEvent(new CustomEvent("lbSECartUpdated",{detail:{cart:r,isSelleasy:t,isAtc:i}})))}),o},registerCartListener:function(){const e=["/cart/add","/cart/change","/cart/update","/cart/clear"],t=window.XMLHttpRequest.prototype.open;window.XMLHttpRequest.prototype.open=function(){return this.addEventListener("load",function(){this._url&&e.some(e=>this._url.includes(e))&&s.cart(!0,this._url.includes("selleasy"),this._url.includes("/add"))}),t.apply(this,arguments)};const{fetch:i}=window;window.fetch=async(...t)=>{let[r,o]=t,n=await i(r,o);try{if("string"==typeof r&&e.some(e=>r.includes(e))){try{const e=n.clone();await e.json()}catch(e){}s.cart(!0,r.includes("selleasy"),r.includes("/add"))}}catch(e){}return n}},createDialog:()=>{if(!window.HTMLDialogElement||!HTMLDialogElement.prototype.showModal)return;let e=document.querySelector("#lb-upsell-dialog");return e||(e=Object.assign(document.createElement("dialog"),{id:"lb-upsell-dialog",style:"padding:0px;border:none;background:transparent;max-width:100vw;max-height:100dvh;"}),e.appendChild(document.createElement("lb-upsell-dialog")),document.body.appendChild(e)),e.open||e.showModal(),e.querySelector("lb-upsell-dialog")},validateRule:(e,t,i=void 0)=>{if(!e?.class)return!1;const{class:r,type:o,values:n,value:s}=e,a=(e,t,i)=>"equal"===t?e===i:"greater"===t?e>i:e{const r=t?.some(t=>e?.includes(t));return"has"===i?r:!r};switch(r){case"tags":return l(t?.tags,n?.map(e=>e.handle),o);case"collection":return l(t?.graphQLRes?.collections?.nodes?.map(e=>e.handle)||[],n?.map(e=>e.handle),o);case"title":return((e,t,i)=>{switch(t){case"start":return e?.toLowerCase().startsWith(i?.toLowerCase());case"end":return e?.toLowerCase().endsWith(i?.toLowerCase());case"equal":return e?.toLowerCase()===i?.toLowerCase();case"has":return e?.toLowerCase().includes(i?.toLowerCase());case"notHave":return!e?.toLowerCase().includes(i?.toLowerCase());default:return!1}})(t?.graphQLRes?.originalTitle||t?.graphQLRes?.title||t?.title,o,s?.trim());case"price":return a(t?.price/100,o,parseFloat(s)*("1.0"!==window.Shopify?.currency?.rate?parseFloat(window.Shopify.currency.rate):1));case"type":return l(t?.graphQLRes?.productType||t?.product_type||t?.type,n?.map(e=>e.handle),o);case"category":return l(t?.graphQLRes?.category?.id,n?.map(e=>e.id),o);case"inventory":return a(t?.graphQLRes?.totalInventory,o,Number(s));case"vendor":return l(t?.vendor,n?.map(e=>e.handle),o);case"customer":return l(window.lbUserInfo?.id,n?.map(e=>e.id),o);case"cTags":const e=n?.map(e=>e.handle)||[];return s&&e.push(s.trim()),l(window.lbUserInfo?.tags,e,o);case"b2b":return s?window.lbB2b:!window.lbB2b;case"user":return s?Boolean(window.lbUserInfo):!Boolean(window.lbUserInfo);case"country":return l(window.Shopify?.country,n?.map(e=>e.handle),o);case"cartValue":return a(i?.total_price/100,o,parseFloat(s)*("1.0"!==window.Shopify?.currency?.rate?parseFloat(window.Shopify.currency.rate):1));default:return!1}}};e.exports=s},879:(e,t,i)=>{const r=i(650),o=i(827);let n='offers:metaobjects(type: "$app:selleasy-offer", first: 250, after: $cursor, sortKey: "updated_at") {\n nodes {\n field(key: "selleasy-offer") {\n value\n }\n }\n pageInfo {\n hasNextPage\n endCursor\n }\n }',s=e.exports={cache:function(e,t){if("set"===e)localStorage.setItem("lb-upsell-setup",JSON.stringify(t)),localStorage.setItem("lb-upsell-setupFetchedAt",(new Date).getTime());else if("clear"===e)localStorage.removeItem("lb-upsell-setup"),localStorage.removeItem("lb-upsell-setupFetchedAt");else if("get"===e){let e=localStorage.getItem("lb-upsell-setup"),t=localStorage.getItem("lb-upsell-setupFetchedAt");return e&&t&&Number(t)>(new Date).getTime()-72e5?JSON.parse(e):void 0}},fetchObject:function(e,t,i=void 0){return new Promise((a,l)=>{try{let c={cursor:i||null};i&&(t=`query getMetaObjects($cursor: String){\n ${t}\n }`);let d=`https://${window.location.hostname}/api/${r.API_VERSION}/graphql.json`;o.apiRequest(d,"POST",{query:t,variables:c},{"X-Shopify-Storefront-Access-Token":e,"Access-Control-Allow-Origin":"*"}).then(async t=>{let{setup:i={},widgets:r=[],offers:o=[]}=t?.data;if(o?.pageInfo?.hasNextPage){let t=await s.fetchObject(e,n,o.pageInfo.endCursor);o.nodes=[...o.nodes,...t?.offers?.nodes]}a({setup:i,widgets:r,offers:o})}).catch(e=>{l(!1)})}catch(e){l(!1)}})},isCached:e=>!(e.createdAt>=(new Date).valueOf()-1728e5)&&(!e.lastAdminActiveAt||e.lastAdminActiveAt<(new Date).valueOf()-36e5),getSFSetup:async function(e,t=!1){return new Promise((i,r)=>{let o=`query getMetaObjects(${t?"":"$cursor: String"}){\n setup:metaobjects(type: "$app:selleasy-setup", first: 1, sortKey: "updated_at") {\n nodes {\n field(key: "selleasy-setup") {\n value\n }\n }\n }\n ${t?"":'widgets:metaobjects(type: "$app:selleasy-widget", first: 250, sortKey: "updated_at") {\n nodes {\n field(key: "selleasy-widget") {\n value\n }\n }\n }'+n}\n }`;s.fetchObject(e,o).then(e=>{["setup",...t?[]:["offers","widgets"]].forEach(t=>{e?.[t]?.nodes?.length&&(e[t].nodes=e[t].nodes.map(e=>e?.field?.value?.length&&JSON.parse(e?.field?.value)))});let r={...e?.setup?.nodes[0],offers:e?.offers?.nodes,widgets:e?.widgets?.nodes};s.cache(s.isCached(r)?t?"":"set":"clear",r),i(r)}).catch(e=>{i(!1)})})},fetchSetup:async function(e){let t=`${r.HOST_NAME}/setup?myShopifyDomain=${e}`;return o.apiRequest(t,"GET",null).then(e=>(window.lbupsellToken=e.storeFrontAccessToken,s.cache(e.isSetupCachedInClientSide?"set":"clear",e),e)).catch(e=>!1)},validateSetup:async function(e){if(window?.lbupsellToken)return void s.getSFSetup(window.lbupsellToken,!0);let t=`${r.HOST_NAME}/setupValidate?myShopifyDomain=${e}`;o.apiRequest(t,"GET",null).then(e=>{!e?.isSetupCachedInClientSide&&s.cache("clear")})},getSetup:async function(e){return new Promise(async(t,i)=>{let r=s.cache("get");r?s.validateSetup(e):r=await(window?.lbupsellToken?s.getSFSetup(window.lbupsellToken):s.fetchSetup(e)),t(r)})}}}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var i=__webpack_module_cache__[e]={exports:{}};return __webpack_modules__[e](i,i.exports,__webpack_require__),i.exports}const setupHandler=__webpack_require__(879),offerHandler=__webpack_require__(410),utils=__webpack_require__(827),widgetHandler=__webpack_require__(326),discountHandler=__webpack_require__(343),config=__webpack_require__(650);(function(window){window.lbShopDomain=window.Shopify.shop,window.lbShopDomain&&window.lbupsellVersion&&(utils.registerCartListener(),utils.cart(!0),widgetHandler.registerListeners("event"),setupHandler.getSetup(window.lbShopDomain).then(async setup=>{if(setup.isEnabled){if(window.lbComponentSrc){const e=document.createElement("script");e.src=window.lbComponentSrc,e.type="module",e.defer=!0,document.head.appendChild(e)}if(eval(setup.customJs),setup.customCSS){const e=document.createElement("style");e.textContent=setup.customCSS,document.head.appendChild(e)}if(discountHandler.mutateDiscount(setup.storeFrontAccessToken),setup.offers?.length){let e=utils.getHandle(window.location.pathname),t=utils.checkPage()?await utils.getProduct(e,setup):void 0;window.lbHandlers={triggers:widgetHandler.triggerOffer,action:widgetHandler.actionOffer,offer:offerHandler.getOffers,widget:widgetHandler,utils},window.lbSelleasyUtils?.init?.(),await offerHandler.getOffers(setup,t)}}}))})(window)})();