ui.shipaid.com 0.2.19 → 0.2.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/widget.es.js +14 -17
- package/dist/widget.iife.js +4 -4
- package/dist/widget.umd.js +9 -9
- package/package.json +1 -1
package/dist/widget.es.js
CHANGED
|
@@ -668,7 +668,7 @@ const styles$1 = i$1`
|
|
|
668
668
|
--shipaid-font-sm: 14px;
|
|
669
669
|
--shipaid-font-base: 16px;
|
|
670
670
|
--shipaid-font-lg: 18px;
|
|
671
|
-
--shipaid-font-display:
|
|
671
|
+
--shipaid-font-display: 24px;
|
|
672
672
|
--shipaid-font-regular: 400;
|
|
673
673
|
--shipaid-font-heavy: 700;
|
|
674
674
|
}
|
|
@@ -745,7 +745,7 @@ const styles$1 = i$1`
|
|
|
745
745
|
}
|
|
746
746
|
|
|
747
747
|
.shipaid-popup p {
|
|
748
|
-
font-size: var(--shipaid-font-
|
|
748
|
+
font-size: var(--shipaid-font-base);
|
|
749
749
|
margin: 0;
|
|
750
750
|
}
|
|
751
751
|
|
|
@@ -1278,7 +1278,7 @@ let ShipAidWidget = class extends s {
|
|
|
1278
1278
|
});
|
|
1279
1279
|
}
|
|
1280
1280
|
async calculateProtectionTotal(cart) {
|
|
1281
|
-
var _a, _b, _c, _d, _e;
|
|
1281
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
1282
1282
|
if (!cart)
|
|
1283
1283
|
cart = await this._fetchCart();
|
|
1284
1284
|
if (!cart)
|
|
@@ -1289,25 +1289,23 @@ let ShipAidWidget = class extends s {
|
|
|
1289
1289
|
if (!settings || !this._protectionProduct) {
|
|
1290
1290
|
throw new Error("Tried to find protection variant, but protection settings for this store are missing.");
|
|
1291
1291
|
}
|
|
1292
|
-
const
|
|
1292
|
+
const excludedProductSkus = Array.isArray((_b = this._store) == null ? void 0 : _b.excludedProductSkus) ? (_c = this._store) == null ? void 0 : _c.excludedProductSkus.map((sku) => sku.trim()) : [];
|
|
1293
|
+
const itemTotal = (_e = (_d = cart.items) == null ? void 0 : _d.reduce((total, item) => {
|
|
1293
1294
|
if (!item.sku)
|
|
1294
1295
|
return total;
|
|
1295
|
-
const itemIsExcluded =
|
|
1296
|
-
return itemIsExcluded ? total - item.
|
|
1297
|
-
}, cart.total_price) : cart.total_price;
|
|
1298
|
-
const protectionVariantsInCart = (
|
|
1296
|
+
const itemIsExcluded = excludedProductSkus.some((sku) => sku === item.sku.trim());
|
|
1297
|
+
return itemIsExcluded ? total - item.final_line_price : total;
|
|
1298
|
+
}, cart.total_price)) != null ? _e : cart.total_price;
|
|
1299
|
+
const protectionVariantsInCart = (_g = (_f = cart.items) == null ? void 0 : _f.filter((item) => {
|
|
1299
1300
|
var _a2, _b2;
|
|
1300
1301
|
return (_b2 = (_a2 = this._protectionProduct) == null ? void 0 : _a2.variants) == null ? void 0 : _b2.some((variant) => variant.id === item.variant_id);
|
|
1301
|
-
})) != null ?
|
|
1302
|
-
const protectionVariantsInCartTotal = protectionVariantsInCart.reduce((total, item) =>
|
|
1303
|
-
const updatedTotal = total += item.final_line_price;
|
|
1304
|
-
return updatedTotal;
|
|
1305
|
-
}, 0);
|
|
1302
|
+
})) != null ? _g : [];
|
|
1303
|
+
const protectionVariantsInCartTotal = protectionVariantsInCart.reduce((total, item) => total + item.final_line_price, 0);
|
|
1306
1304
|
const cartTotal = itemTotal - protectionVariantsInCartTotal;
|
|
1307
1305
|
if (settings.protectionType === "FIXED") {
|
|
1308
1306
|
if (typeof settings.defaultFee !== "number")
|
|
1309
1307
|
throw new Error("Missing default fee amount.");
|
|
1310
|
-
if (!((
|
|
1308
|
+
if (!((_h = settings.rules) == null ? void 0 : _h.length))
|
|
1311
1309
|
return settings.defaultFee;
|
|
1312
1310
|
const formattedCartTotal = cartTotal / 100;
|
|
1313
1311
|
const sortedRules = settings.rules.sort((a2, b2) => {
|
|
@@ -1316,9 +1314,7 @@ let ShipAidWidget = class extends s {
|
|
|
1316
1314
|
return a2.rangeLower - b2.rangeLower;
|
|
1317
1315
|
});
|
|
1318
1316
|
const rule = sortedRules.find((rule2) => {
|
|
1319
|
-
const lower = Boolean(
|
|
1320
|
-
rule2.rangeLower && rule2.rangeLower < formattedCartTotal
|
|
1321
|
-
);
|
|
1317
|
+
const lower = Boolean(rule2.rangeLower && rule2.rangeLower < formattedCartTotal);
|
|
1322
1318
|
if (!rule2.rangeUpper)
|
|
1323
1319
|
return lower;
|
|
1324
1320
|
return lower && rule2.rangeUpper >= formattedCartTotal;
|
|
@@ -1639,6 +1635,7 @@ let ShipAidWidget = class extends s {
|
|
|
1639
1635
|
return await this._handleRefresh(cart2);
|
|
1640
1636
|
}
|
|
1641
1637
|
const protectionFee = await this.calculateProtectionTotal(this._cart);
|
|
1638
|
+
console.log({ protectionFee });
|
|
1642
1639
|
const protectionVariant = this._findProtectionVariant(protectionFee);
|
|
1643
1640
|
this._protectionVariant = protectionVariant;
|
|
1644
1641
|
if (!(protectionVariant == null ? void 0 : protectionVariant.id)) {
|
package/dist/widget.iife.js
CHANGED
|
@@ -60,7 +60,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
60
60
|
--shipaid-font-sm: 14px;
|
|
61
61
|
--shipaid-font-base: 16px;
|
|
62
62
|
--shipaid-font-lg: 18px;
|
|
63
|
-
--shipaid-font-display:
|
|
63
|
+
--shipaid-font-display: 24px;
|
|
64
64
|
--shipaid-font-regular: 400;
|
|
65
65
|
--shipaid-font-heavy: 700;
|
|
66
66
|
}
|
|
@@ -137,7 +137,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
.shipaid-popup p {
|
|
140
|
-
font-size: var(--shipaid-font-
|
|
140
|
+
font-size: var(--shipaid-font-base);
|
|
141
141
|
margin: 0;
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -519,7 +519,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
519
519
|
/>
|
|
520
520
|
</g>
|
|
521
521
|
</svg>
|
|
522
|
-
`;var wt=(t=>(t.LOADED="shipaid-loaded",t.STATUS_UPDATE="shipaid-protection-status",t))(wt||{}),$t=Object.defineProperty,bt=Object.getOwnPropertyDescriptor,Lt=(t,e,i,o)=>{for(var r,s=o>1?void 0:o?bt(e,i):e,n=t.length-1;n>=0;n--)(r=t[n])&&(s=(o?r(e,i,s):r(s))||s);return o&&s&&$t(e,i,s),s};const At=async(t,e)=>{try{const i=await fetch(t,e);if(!i.ok)throw new Error(await i.text());return await i.json()}catch(i){throw console.error(i),new Error("Failed to complete fetch request.")}},St=t=>console.warn(`[ShipAid] ${t}`),xt=t=>console.error(`[ShipAid] ${t}`),Et="shipaid-protection";return t.ShipAidWidget=class extends nt{constructor(){var t,e,i,o;super(...arguments),this.disablePolling=!1,this.pollingInterval=2500,this.disableRefresh=!1,this._apiEndpoint="/apps/shipaid",this._storeDomain=null!=(o=null==(t=window.Shopify)?void 0:t.shop)?o:null==(i=null==(e=window.Shopify)?void 0:e.Checkout)?void 0:i.apiHost,this._hasFinishedSetup=!1,this._shouldShowWidget=!0,this._hasProtectionInCart=!1,this._state={loading:!1,success:null,error:!1},this._popup=null,this._fetch={get:t=>At(t),post:(t,e)=>At(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}get shouldRefreshOnUpdate(){return!this.disablePolling&&!this.disableRefresh}get planActive(){var t,e;const{searchParams:i}=new URL(window.location.href);return(null==(t=window.Shopify)?void 0:t.designMode)||i.has("shipaid-test")?(St("Currently in preview mode."),!0):!!(null==(e=this._store)?void 0:e.planActive)}_currencyFormat(t){var e,i,o,r,s;return new Intl.NumberFormat(null!=(i=null==(e=window.Shopify)?void 0:e.locale)?i:void 0,{currency:(null==(o=this._store)?void 0:o.currency)||(null==(s=null==(r=window.Shopify)?void 0:r.currency)?void 0:s.active)||"USD",style:"currency"}).format(Number(t))}_dispatchEvent(t,e={}){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}async _handleRefresh(t){const e=Reflect.has(t,"items");if(this.shouldRefreshOnUpdate)return window.location.reload();e||await this.updateCart(),this._dispatchEvent(wt.STATUS_UPDATE,{protection:this._hasProtectionInCart,cart:e?t:this._cart,lineItem:e?this._protectionCartItem:t})}async calculateProtectionTotal(t){var e,i,o,r,s;if(t||(t=await this._fetchCart()),!t)throw new Error("Could not fetch cart.");if(!this._store)throw new Error("Missing store settings.");const
|
|
522
|
+
`;var wt=(t=>(t.LOADED="shipaid-loaded",t.STATUS_UPDATE="shipaid-protection-status",t))(wt||{}),$t=Object.defineProperty,bt=Object.getOwnPropertyDescriptor,Lt=(t,e,i,o)=>{for(var r,s=o>1?void 0:o?bt(e,i):e,n=t.length-1;n>=0;n--)(r=t[n])&&(s=(o?r(e,i,s):r(s))||s);return o&&s&&$t(e,i,s),s};const At=async(t,e)=>{try{const i=await fetch(t,e);if(!i.ok)throw new Error(await i.text());return await i.json()}catch(i){throw console.error(i),new Error("Failed to complete fetch request.")}},St=t=>console.warn(`[ShipAid] ${t}`),xt=t=>console.error(`[ShipAid] ${t}`),Et="shipaid-protection";return t.ShipAidWidget=class extends nt{constructor(){var t,e,i,o;super(...arguments),this.disablePolling=!1,this.pollingInterval=2500,this.disableRefresh=!1,this._apiEndpoint="/apps/shipaid",this._storeDomain=null!=(o=null==(t=window.Shopify)?void 0:t.shop)?o:null==(i=null==(e=window.Shopify)?void 0:e.Checkout)?void 0:i.apiHost,this._hasFinishedSetup=!1,this._shouldShowWidget=!0,this._hasProtectionInCart=!1,this._state={loading:!1,success:null,error:!1},this._popup=null,this._fetch={get:t=>At(t),post:(t,e)=>At(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}get shouldRefreshOnUpdate(){return!this.disablePolling&&!this.disableRefresh}get planActive(){var t,e;const{searchParams:i}=new URL(window.location.href);return(null==(t=window.Shopify)?void 0:t.designMode)||i.has("shipaid-test")?(St("Currently in preview mode."),!0):!!(null==(e=this._store)?void 0:e.planActive)}_currencyFormat(t){var e,i,o,r,s;return new Intl.NumberFormat(null!=(i=null==(e=window.Shopify)?void 0:e.locale)?i:void 0,{currency:(null==(o=this._store)?void 0:o.currency)||(null==(s=null==(r=window.Shopify)?void 0:r.currency)?void 0:s.active)||"USD",style:"currency"}).format(Number(t))}_dispatchEvent(t,e={}){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}async _handleRefresh(t){const e=Reflect.has(t,"items");if(this.shouldRefreshOnUpdate)return window.location.reload();e||await this.updateCart(),this._dispatchEvent(wt.STATUS_UPDATE,{protection:this._hasProtectionInCart,cart:e?t:this._cart,lineItem:e?this._protectionCartItem:t})}async calculateProtectionTotal(t){var e,i,o,r,s,n,a,p;if(t||(t=await this._fetchCart()),!t)throw new Error("Could not fetch cart.");if(!this._store)throw new Error("Missing store settings.");const l=null==(e=this._store)?void 0:e.protectionSettings;if(!l||!this._protectionProduct)throw new Error("Tried to find protection variant, but protection settings for this store are missing.");const d=Array.isArray(null==(i=this._store)?void 0:i.excludedProductSkus)?null==(o=this._store)?void 0:o.excludedProductSkus.map((t=>t.trim())):[],h=(null!=(s=null==(r=t.items)?void 0:r.reduce(((t,e)=>{if(!e.sku)return t;return d.some((t=>t===e.sku.trim()))?t-e.final_line_price:t}),t.total_price))?s:t.total_price)-(null!=(a=null==(n=t.items)?void 0:n.filter((t=>{var e,i;return null==(i=null==(e=this._protectionProduct)?void 0:e.variants)?void 0:i.some((e=>e.id===t.variant_id))})))?a:[]).reduce(((t,e)=>t+e.final_line_price),0);if("FIXED"===l.protectionType){if("number"!=typeof l.defaultFee)throw new Error("Missing default fee amount.");if(!(null==(p=l.rules)?void 0:p.length))return l.defaultFee;const t=h/100,e=l.rules.sort(((t,e)=>t.rangeLower&&e.rangeLower?t.rangeLower-e.rangeLower:0)).find((e=>{const i=Boolean(e.rangeLower&&e.rangeLower<t);return e.rangeUpper?i&&e.rangeUpper>=t:i}));return"number"==typeof(null==e?void 0:e.fee)?e.fee:l.defaultFee}if("PERCENTAGE"===l.protectionType){const t=h*l.percentage/100;return t>=l.minimumFee?t:l.minimumFee}throw new Error("No protection type handler found for this store.")}_findProtectionVariant(t){var e,i,o,r;if(!(null==(e=this._store)?void 0:e.protectionSettings)||!(null==(o=null==(i=this._protectionProduct)?void 0:i.variants)?void 0:o.length))throw new Error("Missing product and variants from protection settings.");const s=null==(r=this._protectionProduct)?void 0:r.variants.flatMap((t=>{if(!t||!t.price)return[];const e=Number(t.price);return[{...t,formattedPrice:e}]})).sort(((t,e)=>t.formattedPrice-e.formattedPrice)),n=s.find((e=>e.formattedPrice>=t));return n||s[s.length-1]}_setState(t,e){this._state={loading:"loading"===t,success:"success"===t,error:"error"===t&&(e||!0)}}async _updateProtection(){return this._hasProtectionInCart?this.removeProtection():this.addProtection()}async _fetchShipAidData(){var t,e,i,o,r,s;const n=null!=(o=null==(t=window.Shopify)?void 0:t.shop)?o:null==(i=null==(e=window.Shopify)?void 0:e.Checkout)?void 0:i.apiHost;if(!n)throw new Error("No shop found in Shopify object.");try{const t=new URL(window.location.href);t.pathname=this._apiEndpoint;const e={query:"query StoreByDomain ($store: String!) {\n store: storeByDomain (input: {store: $store}) {\n currency\n planActive\n store\n widgetAutoOptIn\n widgetShowCart\n excludedProductSkus\n protectionSettings\n }\n}",variables:{store:n}},i=await this._fetch.post(t.toString(),e);if(!i)throw new Error("Missing response for store query.");if(null==(r=i.errors)?void 0:r.length)throw new Error(i.errors[0].message);if(!(null==(s=i.data)?void 0:s.store))throw new Error("Missing store from store query response.");return i.data.store}catch(a){throw console.error(a),new Error(`Could not find a store for ${this._storeDomain}`)}}async _fetchCart(){try{return await this._fetch.get("/cart.js")}catch(t){throw xt(t.message),new Error("Could not fetch cart for current domain.")}}async _fetchProduct(){try{const{product:t}=await this._fetch.get("/products/shipaid-protection.json");return t}catch(t){throw xt(t.message),new Error("Could not fetch protection product for current domain.")}}hasProtection(){return this._hasProtectionInCart}async updateCart(t){t||(t=await this._fetchCart()),this._cart=t}async addProtection(){var t,e;try{if(!this._store)throw new Error("Store has not been loaded.");if(!(null==(t=this._cart)?void 0:t.items))throw new Error("Cart has not been loaded.");if(!(null==(e=this._protectionVariant)?void 0:e.id))throw new Error("No protection variant found.");this._setState("loading");const i={quantity:1,id:this._protectionVariant.id},o=await this._fetch.post("/cart/add.js",i);await this._handleRefresh(o),this._setState("success")}catch(i){xt(i.message),this._setState("error","Failed to add protection to cart - please try again, or contact us for help.")}}async removeProtection(){try{if(!this._store)throw new Error("Store has not been loaded.");if(!this._protectionCartItem)throw new Error("Protection product not found.");this._setState("loading");const t={quantity:0,id:this._protectionCartItem.key},e=await this._fetch.post("/cart/change.js",t);await this._handleRefresh(e),this._cart=e,this._setState("success")}catch(t){xt(t.message),this._setState("error","Failed to add protection to cart - please try again, or contact us for help.")}}learnMorePopupTemplate(){return H`
|
|
523
523
|
<shipaid-popup-learn-more ?active=${"learn-more"===this._popup} @close=${()=>{this._popup=null}}></shipaid-popup-learn-more>
|
|
524
524
|
`}promptTemplate(){var t;return H`
|
|
525
525
|
<div class="shipaid-prompt">
|
|
@@ -565,7 +565,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
565
565
|
</button>
|
|
566
566
|
</div>
|
|
567
567
|
</div>
|
|
568
|
-
`}render(){return dt(this,(async()=>{var t,e;const i=document.createElement("link");i.setAttribute("href","https://fonts.googleapis.com/css2?family=Lato&display=swap"),i.setAttribute("rel","stylesheet"),document.head.appendChild(i);try{const[t,e,i]=await Promise.all([this._fetchShipAidData(),this._fetchCart(),this._fetchProduct()]);this._store=t,this._cart=e,this._protectionProduct=i}catch(o){return xt(o.message),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)}return this.planActive?(null==(e=null==(t=this._store)?void 0:t.protectionSettings)?void 0:e.protectionType)?this._protectionProduct?(this._hasFinishedSetup=!0,this._shouldShowWidget=!0,this._dispatchEvent(wt.LOADED,this._store),setTimeout((async()=>{var t,e,i;(null==(t=this._store)?void 0:t.widgetAutoOptIn)&&(null==(e=this._cart)?void 0:e.item_count)&&(sessionStorage.getItem(Et)||(sessionStorage.setItem(Et,JSON.stringify({loaded:!0})),!this._hasProtectionInCart&&(null==(i=this._cart)?void 0:i.item_count)&&this._store.widgetShowCart&&await this.addProtection()))}),500),void(this.disablePolling||setInterval((async()=>{const t=this._cartLastUpdated;t&&(new Date).getTime()-t.getTime()<this.pollingInterval||await this.updateCart()}),this.pollingInterval))):(St("No protection settings product for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No protection settings for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No plan is active for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1))}),[]),dt(this,(async()=>{var t,e,i;if(this._cartLastUpdated=new Date,!(null==(t=this._cart)?void 0:t.items))return;const o=null==(e=this._cart.items)?void 0:e.findIndex((t=>{var e,i;return null==(i=null==(e=this._protectionProduct)?void 0:e.variants)?void 0:i.some((e=>e.id===t.variant_id))})),r=null==(i=this._cart)?void 0:i.items[o];if(this._hasProtectionInCart=!!r,1===this._cart.item_count&&r){const t={id:r.key,quantity:0},e=await this._fetch.post("/cart/change.js",t);return await this._handleRefresh(e)}const s=await this.calculateProtectionTotal(this._cart)
|
|
568
|
+
`}render(){return dt(this,(async()=>{var t,e;const i=document.createElement("link");i.setAttribute("href","https://fonts.googleapis.com/css2?family=Lato&display=swap"),i.setAttribute("rel","stylesheet"),document.head.appendChild(i);try{const[t,e,i]=await Promise.all([this._fetchShipAidData(),this._fetchCart(),this._fetchProduct()]);this._store=t,this._cart=e,this._protectionProduct=i}catch(o){return xt(o.message),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)}return this.planActive?(null==(e=null==(t=this._store)?void 0:t.protectionSettings)?void 0:e.protectionType)?this._protectionProduct?(this._hasFinishedSetup=!0,this._shouldShowWidget=!0,this._dispatchEvent(wt.LOADED,this._store),setTimeout((async()=>{var t,e,i;(null==(t=this._store)?void 0:t.widgetAutoOptIn)&&(null==(e=this._cart)?void 0:e.item_count)&&(sessionStorage.getItem(Et)||(sessionStorage.setItem(Et,JSON.stringify({loaded:!0})),!this._hasProtectionInCart&&(null==(i=this._cart)?void 0:i.item_count)&&this._store.widgetShowCart&&await this.addProtection()))}),500),void(this.disablePolling||setInterval((async()=>{const t=this._cartLastUpdated;t&&(new Date).getTime()-t.getTime()<this.pollingInterval||await this.updateCart()}),this.pollingInterval))):(St("No protection settings product for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No protection settings for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No plan is active for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1))}),[]),dt(this,(async()=>{var t,e,i;if(this._cartLastUpdated=new Date,!(null==(t=this._cart)?void 0:t.items))return;const o=null==(e=this._cart.items)?void 0:e.findIndex((t=>{var e,i;return null==(i=null==(e=this._protectionProduct)?void 0:e.variants)?void 0:i.some((e=>e.id===t.variant_id))})),r=null==(i=this._cart)?void 0:i.items[o];if(this._hasProtectionInCart=!!r,1===this._cart.item_count&&r){const t={id:r.key,quantity:0},e=await this._fetch.post("/cart/change.js",t);return await this._handleRefresh(e)}const s=await this.calculateProtectionTotal(this._cart);console.log({protectionFee:s});const n=this._findProtectionVariant(s);if(this._protectionVariant=n,!(null==n?void 0:n.id))return this._shouldShowWidget=!1,void xt("No matching protection variant found.");if(!r)return;if(n.id===r.id){if(this._protectionCartItem={...r,index:o,position:o+1},1===r.quantity)return;const t={id:r.key,quantity:1},e=await this._fetch.post("/cart/change.js",t);return await this._handleRefresh(e)}const a={updates:{[r.variant_id]:0,[n.id]:1}},p=await this._fetch.post("/cart/update.js",a);await this._handleRefresh(p)}),[this._store,this._cart]),ot(this.learnMorePopupTemplate(),document.body),H`
|
|
569
569
|
<div class="shipaid">
|
|
570
570
|
${ht(this._hasFinishedSetup,(()=>{var t;return ht(this._shouldShowWidget&&this.planActive&&(null==(t=this._store)?void 0:t.widgetShowCart),(()=>this.promptTemplate()),(()=>D))}),(()=>H`<p><slot name="loading" default>Loading ShipAid Widget...</slot></p>`))}
|
|
571
571
|
</div>
|
package/dist/widget.umd.js
CHANGED
|
@@ -29,7 +29,7 @@ const n=window,a=n.ShadowRoot&&(void 0===n.ShadyCSS||n.ShadyCSS.nativeShadow)&&"
|
|
|
29
29
|
* @license
|
|
30
30
|
* Copyright 2017 Google LLC
|
|
31
31
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
32
|
-
*/;var u;const f=window,v=f.trustedTypes,m=v?v.emptyScript:"",g=f.reactiveElementPolyfillSupport,_={toAttribute(t,e){switch(e){case Boolean:t=t?m:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(o){i=null}}return i}},
|
|
32
|
+
*/;var u;const f=window,v=f.trustedTypes,m=v?v.emptyScript:"",g=f.reactiveElementPolyfillSupport,_={toAttribute(t,e){switch(e){case Boolean:t=t?m:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,e){let i=t;switch(e){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(o){i=null}}return i}},y=(t,e)=>e!==t&&(e==e||t==t),C={attribute:!0,type:String,converter:_,reflect:!1,hasChanged:y};class w extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var e;null!==(e=this.h)&&void 0!==e||(this.h=[]),this.h.push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((e,i)=>{const o=this._$Ep(i,e);void 0!==o&&(this._$Ev.set(o,i),t.push(o))})),t}static createProperty(t,e=C){if(e.state&&(e.attribute=!1),this.finalize(),this.elementProperties.set(t,e),!e.noAccessor&&!this.prototype.hasOwnProperty(t)){const i="symbol"==typeof t?Symbol():"__"+t,o=this.getPropertyDescriptor(t,i,e);void 0!==o&&Object.defineProperty(this.prototype,t,o)}}static getPropertyDescriptor(t,e,i){return{get(){return this[e]},set(o){const r=this[t];this[e]=o,this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||C}static finalize(){if(this.hasOwnProperty("finalized"))return!1;this.finalized=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty("properties")){const t=this.properties,e=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const i of e)this.createProperty(i,t[i])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(t){const e=[];if(Array.isArray(t)){const i=new Set(t.flat(1/0).reverse());for(const t of i)e.unshift(c(t))}else void 0!==t&&e.push(c(t));return e}static _$Ep(t,e){const i=e.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var e,i;(null!==(e=this._$ES)&&void 0!==e?e:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(i=t.hostConnected)||void 0===i||i.call(t))}removeController(t){var e;null===(e=this._$ES)||void 0===e||e.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,e)=>{this.hasOwnProperty(e)&&(this._$Ei.set(e,this[e]),delete this[e])}))}createRenderRoot(){var t;const e=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return((t,e)=>{a?t.adoptedStyleSheets=e.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):e.forEach((e=>{const i=document.createElement("style"),o=n.litNonce;void 0!==o&&i.setAttribute("nonce",o),i.textContent=e.cssText,t.appendChild(i)}))})(e,this.constructor.elementStyles),e}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostConnected)||void 0===e?void 0:e.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostDisconnected)||void 0===e?void 0:e.call(t)}))}attributeChangedCallback(t,e,i){this._$AK(t,i)}_$EO(t,e,i=C){var o;const r=this.constructor._$Ep(t,i);if(void 0!==r&&!0===i.reflect){const s=(void 0!==(null===(o=i.converter)||void 0===o?void 0:o.toAttribute)?i.converter:_).toAttribute(e,i.type);this._$El=t,null==s?this.removeAttribute(r):this.setAttribute(r,s),this._$El=null}}_$AK(t,e){var i;const o=this.constructor,r=o._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=o.getPropertyOptions(r),s="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(i=t.converter)||void 0===i?void 0:i.fromAttribute)?t.converter:_;this._$El=r,this[r]=s.fromAttribute(e,t.type),this._$El=null}}requestUpdate(t,e,i){let o=!0;void 0!==t&&(((i=i||this.constructor.getPropertyOptions(t)).hasChanged||y)(this[t],e)?(this._$AL.has(t)||this._$AL.set(t,e),!0===i.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,i))):o=!1),!this.isUpdatePending&&o&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(e){Promise.reject(e)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,e)=>this[e]=t)),this._$Ei=void 0);let e=!1;const i=this._$AL;try{e=this.shouldUpdate(i),e?(this.willUpdate(i),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var e;return null===(e=t.hostUpdate)||void 0===e?void 0:e.call(t)})),this.update(i)):this._$Ek()}catch(o){throw e=!1,this._$Ek(),o}e&&this._$AE(i)}willUpdate(t){}_$AE(t){var e;null===(e=this._$ES)||void 0===e||e.forEach((t=>{var e;return null===(e=t.hostUpdated)||void 0===e?void 0:e.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,e)=>this._$EO(e,this[e],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}
|
|
33
33
|
/**
|
|
34
34
|
* @license
|
|
35
35
|
* Copyright 2017 Google LLC
|
|
@@ -60,7 +60,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
60
60
|
--shipaid-font-sm: 14px;
|
|
61
61
|
--shipaid-font-base: 16px;
|
|
62
62
|
--shipaid-font-lg: 18px;
|
|
63
|
-
--shipaid-font-display:
|
|
63
|
+
--shipaid-font-display: 24px;
|
|
64
64
|
--shipaid-font-regular: 400;
|
|
65
65
|
--shipaid-font-heavy: 700;
|
|
66
66
|
}
|
|
@@ -137,7 +137,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
.shipaid-popup p {
|
|
140
|
-
font-size: var(--shipaid-font-
|
|
140
|
+
font-size: var(--shipaid-font-base);
|
|
141
141
|
margin: 0;
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -395,7 +395,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
395
395
|
<path d="M256.01,120.969C286.193,120.969 314.057,130.87 336.536,147.604L309.406,174.656C294.073,164.573 275.729,158.708 256.01,158.708C229.141,158.708 204.823,169.604 187.214,187.198C169.615,204.797 158.719,229.125 158.719,255.995C158.719,282.865 169.615,307.182 187.214,324.792C204.813,342.406 229.141,353.286 256.01,353.286C282.88,353.286 307.208,342.406 324.807,324.792C342.406,307.193 353.297,282.865 353.297,255.995C353.297,251.818 353.036,247.719 352.526,243.688L383.859,212.458C388.51,226.115 391.036,240.766 391.036,255.995C391.036,293.286 375.927,327.047 351.49,351.479C327.057,375.911 293.302,391.021 256.01,391.021C218.729,391.021 184.964,375.911 160.526,351.479C136.094,327.047 120.984,293.286 120.984,255.995C120.984,218.719 136.094,184.948 160.526,160.516C184.964,136.083 218.719,120.969 256.01,120.969ZM218.141,220.906L253.615,259.729L354.844,158.813L381.375,185.484L252.396,314.068L190.422,246.255L218.13,220.906L218.141,220.906Z" style="fill:white;fill-rule:nonzero;"/>
|
|
396
396
|
</g>
|
|
397
397
|
</svg>
|
|
398
|
-
`,
|
|
398
|
+
`,yt=H`
|
|
399
399
|
<svg
|
|
400
400
|
viewBox="0 0 384 383.999986"
|
|
401
401
|
preserveAspectRatio="xMidYMid meet"
|
|
@@ -437,7 +437,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
437
437
|
/>
|
|
438
438
|
</g>
|
|
439
439
|
</svg>
|
|
440
|
-
`,
|
|
440
|
+
`,Ct=H`
|
|
441
441
|
<svg
|
|
442
442
|
viewBox="0 0 423 62"
|
|
443
443
|
version="1.1"
|
|
@@ -519,13 +519,13 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
519
519
|
/>
|
|
520
520
|
</g>
|
|
521
521
|
</svg>
|
|
522
|
-
`;var wt=(t=>(t.LOADED="shipaid-loaded",t.STATUS_UPDATE="shipaid-protection-status",t))(wt||{}),$t=Object.defineProperty,bt=Object.getOwnPropertyDescriptor,Lt=(t,e,i,o)=>{for(var r,s=o>1?void 0:o?bt(e,i):e,n=t.length-1;n>=0;n--)(r=t[n])&&(s=(o?r(e,i,s):r(s))||s);return o&&s&&$t(e,i,s),s};const At=async(t,e)=>{try{const i=await fetch(t,e);if(!i.ok)throw new Error(await i.text());return await i.json()}catch(i){throw console.error(i),new Error("Failed to complete fetch request.")}},St=t=>console.warn(`[ShipAid] ${t}`),xt=t=>console.error(`[ShipAid] ${t}`),Et="shipaid-protection";t.ShipAidWidget=class extends nt{constructor(){var t,e,i,o;super(...arguments),this.disablePolling=!1,this.pollingInterval=2500,this.disableRefresh=!1,this._apiEndpoint="/apps/shipaid",this._storeDomain=null!=(o=null==(t=window.Shopify)?void 0:t.shop)?o:null==(i=null==(e=window.Shopify)?void 0:e.Checkout)?void 0:i.apiHost,this._hasFinishedSetup=!1,this._shouldShowWidget=!0,this._hasProtectionInCart=!1,this._state={loading:!1,success:null,error:!1},this._popup=null,this._fetch={get:t=>At(t),post:(t,e)=>At(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}get shouldRefreshOnUpdate(){return!this.disablePolling&&!this.disableRefresh}get planActive(){var t,e;const{searchParams:i}=new URL(window.location.href);return(null==(t=window.Shopify)?void 0:t.designMode)||i.has("shipaid-test")?(St("Currently in preview mode."),!0):!!(null==(e=this._store)?void 0:e.planActive)}_currencyFormat(t){var e,i,o,r,s;return new Intl.NumberFormat(null!=(i=null==(e=window.Shopify)?void 0:e.locale)?i:void 0,{currency:(null==(o=this._store)?void 0:o.currency)||(null==(s=null==(r=window.Shopify)?void 0:r.currency)?void 0:s.active)||"USD",style:"currency"}).format(Number(t))}_dispatchEvent(t,e={}){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}async _handleRefresh(t){const e=Reflect.has(t,"items");if(this.shouldRefreshOnUpdate)return window.location.reload();e||await this.updateCart(),this._dispatchEvent(wt.STATUS_UPDATE,{protection:this._hasProtectionInCart,cart:e?t:this._cart,lineItem:e?this._protectionCartItem:t})}async calculateProtectionTotal(t){var e,i,o,r,s;if(t||(t=await this._fetchCart()),!t)throw new Error("Could not fetch cart.");if(!this._store)throw new Error("Missing store settings.");const
|
|
522
|
+
`;var wt=(t=>(t.LOADED="shipaid-loaded",t.STATUS_UPDATE="shipaid-protection-status",t))(wt||{}),$t=Object.defineProperty,bt=Object.getOwnPropertyDescriptor,Lt=(t,e,i,o)=>{for(var r,s=o>1?void 0:o?bt(e,i):e,n=t.length-1;n>=0;n--)(r=t[n])&&(s=(o?r(e,i,s):r(s))||s);return o&&s&&$t(e,i,s),s};const At=async(t,e)=>{try{const i=await fetch(t,e);if(!i.ok)throw new Error(await i.text());return await i.json()}catch(i){throw console.error(i),new Error("Failed to complete fetch request.")}},St=t=>console.warn(`[ShipAid] ${t}`),xt=t=>console.error(`[ShipAid] ${t}`),Et="shipaid-protection";t.ShipAidWidget=class extends nt{constructor(){var t,e,i,o;super(...arguments),this.disablePolling=!1,this.pollingInterval=2500,this.disableRefresh=!1,this._apiEndpoint="/apps/shipaid",this._storeDomain=null!=(o=null==(t=window.Shopify)?void 0:t.shop)?o:null==(i=null==(e=window.Shopify)?void 0:e.Checkout)?void 0:i.apiHost,this._hasFinishedSetup=!1,this._shouldShowWidget=!0,this._hasProtectionInCart=!1,this._state={loading:!1,success:null,error:!1},this._popup=null,this._fetch={get:t=>At(t),post:(t,e)=>At(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})}}get shouldRefreshOnUpdate(){return!this.disablePolling&&!this.disableRefresh}get planActive(){var t,e;const{searchParams:i}=new URL(window.location.href);return(null==(t=window.Shopify)?void 0:t.designMode)||i.has("shipaid-test")?(St("Currently in preview mode."),!0):!!(null==(e=this._store)?void 0:e.planActive)}_currencyFormat(t){var e,i,o,r,s;return new Intl.NumberFormat(null!=(i=null==(e=window.Shopify)?void 0:e.locale)?i:void 0,{currency:(null==(o=this._store)?void 0:o.currency)||(null==(s=null==(r=window.Shopify)?void 0:r.currency)?void 0:s.active)||"USD",style:"currency"}).format(Number(t))}_dispatchEvent(t,e={}){this.dispatchEvent(new CustomEvent(t,{bubbles:!0,composed:!0,detail:e}))}async _handleRefresh(t){const e=Reflect.has(t,"items");if(this.shouldRefreshOnUpdate)return window.location.reload();e||await this.updateCart(),this._dispatchEvent(wt.STATUS_UPDATE,{protection:this._hasProtectionInCart,cart:e?t:this._cart,lineItem:e?this._protectionCartItem:t})}async calculateProtectionTotal(t){var e,i,o,r,s,n,a,p;if(t||(t=await this._fetchCart()),!t)throw new Error("Could not fetch cart.");if(!this._store)throw new Error("Missing store settings.");const l=null==(e=this._store)?void 0:e.protectionSettings;if(!l||!this._protectionProduct)throw new Error("Tried to find protection variant, but protection settings for this store are missing.");const d=Array.isArray(null==(i=this._store)?void 0:i.excludedProductSkus)?null==(o=this._store)?void 0:o.excludedProductSkus.map((t=>t.trim())):[],h=(null!=(s=null==(r=t.items)?void 0:r.reduce(((t,e)=>{if(!e.sku)return t;return d.some((t=>t===e.sku.trim()))?t-e.final_line_price:t}),t.total_price))?s:t.total_price)-(null!=(a=null==(n=t.items)?void 0:n.filter((t=>{var e,i;return null==(i=null==(e=this._protectionProduct)?void 0:e.variants)?void 0:i.some((e=>e.id===t.variant_id))})))?a:[]).reduce(((t,e)=>t+e.final_line_price),0);if("FIXED"===l.protectionType){if("number"!=typeof l.defaultFee)throw new Error("Missing default fee amount.");if(!(null==(p=l.rules)?void 0:p.length))return l.defaultFee;const t=h/100,e=l.rules.sort(((t,e)=>t.rangeLower&&e.rangeLower?t.rangeLower-e.rangeLower:0)).find((e=>{const i=Boolean(e.rangeLower&&e.rangeLower<t);return e.rangeUpper?i&&e.rangeUpper>=t:i}));return"number"==typeof(null==e?void 0:e.fee)?e.fee:l.defaultFee}if("PERCENTAGE"===l.protectionType){const t=h*l.percentage/100;return t>=l.minimumFee?t:l.minimumFee}throw new Error("No protection type handler found for this store.")}_findProtectionVariant(t){var e,i,o,r;if(!(null==(e=this._store)?void 0:e.protectionSettings)||!(null==(o=null==(i=this._protectionProduct)?void 0:i.variants)?void 0:o.length))throw new Error("Missing product and variants from protection settings.");const s=null==(r=this._protectionProduct)?void 0:r.variants.flatMap((t=>{if(!t||!t.price)return[];const e=Number(t.price);return[{...t,formattedPrice:e}]})).sort(((t,e)=>t.formattedPrice-e.formattedPrice)),n=s.find((e=>e.formattedPrice>=t));return n||s[s.length-1]}_setState(t,e){this._state={loading:"loading"===t,success:"success"===t,error:"error"===t&&(e||!0)}}async _updateProtection(){return this._hasProtectionInCart?this.removeProtection():this.addProtection()}async _fetchShipAidData(){var t,e,i,o,r,s;const n=null!=(o=null==(t=window.Shopify)?void 0:t.shop)?o:null==(i=null==(e=window.Shopify)?void 0:e.Checkout)?void 0:i.apiHost;if(!n)throw new Error("No shop found in Shopify object.");try{const t=new URL(window.location.href);t.pathname=this._apiEndpoint;const e={query:"query StoreByDomain ($store: String!) {\n store: storeByDomain (input: {store: $store}) {\n currency\n planActive\n store\n widgetAutoOptIn\n widgetShowCart\n excludedProductSkus\n protectionSettings\n }\n}",variables:{store:n}},i=await this._fetch.post(t.toString(),e);if(!i)throw new Error("Missing response for store query.");if(null==(r=i.errors)?void 0:r.length)throw new Error(i.errors[0].message);if(!(null==(s=i.data)?void 0:s.store))throw new Error("Missing store from store query response.");return i.data.store}catch(a){throw console.error(a),new Error(`Could not find a store for ${this._storeDomain}`)}}async _fetchCart(){try{return await this._fetch.get("/cart.js")}catch(t){throw xt(t.message),new Error("Could not fetch cart for current domain.")}}async _fetchProduct(){try{const{product:t}=await this._fetch.get("/products/shipaid-protection.json");return t}catch(t){throw xt(t.message),new Error("Could not fetch protection product for current domain.")}}hasProtection(){return this._hasProtectionInCart}async updateCart(t){t||(t=await this._fetchCart()),this._cart=t}async addProtection(){var t,e;try{if(!this._store)throw new Error("Store has not been loaded.");if(!(null==(t=this._cart)?void 0:t.items))throw new Error("Cart has not been loaded.");if(!(null==(e=this._protectionVariant)?void 0:e.id))throw new Error("No protection variant found.");this._setState("loading");const i={quantity:1,id:this._protectionVariant.id},o=await this._fetch.post("/cart/add.js",i);await this._handleRefresh(o),this._setState("success")}catch(i){xt(i.message),this._setState("error","Failed to add protection to cart - please try again, or contact us for help.")}}async removeProtection(){try{if(!this._store)throw new Error("Store has not been loaded.");if(!this._protectionCartItem)throw new Error("Protection product not found.");this._setState("loading");const t={quantity:0,id:this._protectionCartItem.key},e=await this._fetch.post("/cart/change.js",t);await this._handleRefresh(e),this._cart=e,this._setState("success")}catch(t){xt(t.message),this._setState("error","Failed to add protection to cart - please try again, or contact us for help.")}}learnMorePopupTemplate(){return H`
|
|
523
523
|
<shipaid-popup-learn-more ?active=${"learn-more"===this._popup} @close=${()=>{this._popup=null}}></shipaid-popup-learn-more>
|
|
524
524
|
`}promptTemplate(){var t;return H`
|
|
525
525
|
<div class="shipaid-prompt">
|
|
526
526
|
<div class="prompt-product">
|
|
527
527
|
<div class="prompt-product-image">
|
|
528
|
-
${ht(this._hasProtectionInCart,(()=>_t),(()=>
|
|
528
|
+
${ht(this._hasProtectionInCart,(()=>_t),(()=>yt))}
|
|
529
529
|
</div>
|
|
530
530
|
<div class="prompt-product-details">
|
|
531
531
|
<p class="prompt-product-details-title">
|
|
@@ -555,7 +555,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
555
555
|
@click=${()=>{this._popup="learn-more"}}
|
|
556
556
|
>
|
|
557
557
|
<span>Powered by</span>
|
|
558
|
-
${
|
|
558
|
+
${Ct}
|
|
559
559
|
</a>
|
|
560
560
|
<button
|
|
561
561
|
class="prompt-footer-about"
|
|
@@ -565,7 +565,7 @@ function ht(t,e,i){return t?e():null==i?void 0:i()}const ct=h`
|
|
|
565
565
|
</button>
|
|
566
566
|
</div>
|
|
567
567
|
</div>
|
|
568
|
-
`}render(){return dt(this,(async()=>{var t,e;const i=document.createElement("link");i.setAttribute("href","https://fonts.googleapis.com/css2?family=Lato&display=swap"),i.setAttribute("rel","stylesheet"),document.head.appendChild(i);try{const[t,e,i]=await Promise.all([this._fetchShipAidData(),this._fetchCart(),this._fetchProduct()]);this._store=t,this._cart=e,this._protectionProduct=i}catch(o){return xt(o.message),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)}return this.planActive?(null==(e=null==(t=this._store)?void 0:t.protectionSettings)?void 0:e.protectionType)?this._protectionProduct?(this._hasFinishedSetup=!0,this._shouldShowWidget=!0,this._dispatchEvent(wt.LOADED,this._store),setTimeout((async()=>{var t,e,i;(null==(t=this._store)?void 0:t.widgetAutoOptIn)&&(null==(e=this._cart)?void 0:e.item_count)&&(sessionStorage.getItem(Et)||(sessionStorage.setItem(Et,JSON.stringify({loaded:!0})),!this._hasProtectionInCart&&(null==(i=this._cart)?void 0:i.item_count)&&this._store.widgetShowCart&&await this.addProtection()))}),500),void(this.disablePolling||setInterval((async()=>{const t=this._cartLastUpdated;t&&(new Date).getTime()-t.getTime()<this.pollingInterval||await this.updateCart()}),this.pollingInterval))):(St("No protection settings product for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No protection settings for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No plan is active for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1))}),[]),dt(this,(async()=>{var t,e,i;if(this._cartLastUpdated=new Date,!(null==(t=this._cart)?void 0:t.items))return;const o=null==(e=this._cart.items)?void 0:e.findIndex((t=>{var e,i;return null==(i=null==(e=this._protectionProduct)?void 0:e.variants)?void 0:i.some((e=>e.id===t.variant_id))})),r=null==(i=this._cart)?void 0:i.items[o];if(this._hasProtectionInCart=!!r,1===this._cart.item_count&&r){const t={id:r.key,quantity:0},e=await this._fetch.post("/cart/change.js",t);return await this._handleRefresh(e)}const s=await this.calculateProtectionTotal(this._cart)
|
|
568
|
+
`}render(){return dt(this,(async()=>{var t,e;const i=document.createElement("link");i.setAttribute("href","https://fonts.googleapis.com/css2?family=Lato&display=swap"),i.setAttribute("rel","stylesheet"),document.head.appendChild(i);try{const[t,e,i]=await Promise.all([this._fetchShipAidData(),this._fetchCart(),this._fetchProduct()]);this._store=t,this._cart=e,this._protectionProduct=i}catch(o){return xt(o.message),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)}return this.planActive?(null==(e=null==(t=this._store)?void 0:t.protectionSettings)?void 0:e.protectionType)?this._protectionProduct?(this._hasFinishedSetup=!0,this._shouldShowWidget=!0,this._dispatchEvent(wt.LOADED,this._store),setTimeout((async()=>{var t,e,i;(null==(t=this._store)?void 0:t.widgetAutoOptIn)&&(null==(e=this._cart)?void 0:e.item_count)&&(sessionStorage.getItem(Et)||(sessionStorage.setItem(Et,JSON.stringify({loaded:!0})),!this._hasProtectionInCart&&(null==(i=this._cart)?void 0:i.item_count)&&this._store.widgetShowCart&&await this.addProtection()))}),500),void(this.disablePolling||setInterval((async()=>{const t=this._cartLastUpdated;t&&(new Date).getTime()-t.getTime()<this.pollingInterval||await this.updateCart()}),this.pollingInterval))):(St("No protection settings product for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No protection settings for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1)):(St("No plan is active for this store - skipping setup."),this._hasFinishedSetup=!0,void(this._shouldShowWidget=!1))}),[]),dt(this,(async()=>{var t,e,i;if(this._cartLastUpdated=new Date,!(null==(t=this._cart)?void 0:t.items))return;const o=null==(e=this._cart.items)?void 0:e.findIndex((t=>{var e,i;return null==(i=null==(e=this._protectionProduct)?void 0:e.variants)?void 0:i.some((e=>e.id===t.variant_id))})),r=null==(i=this._cart)?void 0:i.items[o];if(this._hasProtectionInCart=!!r,1===this._cart.item_count&&r){const t={id:r.key,quantity:0},e=await this._fetch.post("/cart/change.js",t);return await this._handleRefresh(e)}const s=await this.calculateProtectionTotal(this._cart);console.log({protectionFee:s});const n=this._findProtectionVariant(s);if(this._protectionVariant=n,!(null==n?void 0:n.id))return this._shouldShowWidget=!1,void xt("No matching protection variant found.");if(!r)return;if(n.id===r.id){if(this._protectionCartItem={...r,index:o,position:o+1},1===r.quantity)return;const t={id:r.key,quantity:1},e=await this._fetch.post("/cart/change.js",t);return await this._handleRefresh(e)}const a={updates:{[r.variant_id]:0,[n.id]:1}},p=await this._fetch.post("/cart/update.js",a);await this._handleRefresh(p)}),[this._store,this._cart]),ot(this.learnMorePopupTemplate(),document.body),H`
|
|
569
569
|
<div class="shipaid">
|
|
570
570
|
${ht(this._hasFinishedSetup,(()=>{var t;return ht(this._shouldShowWidget&&this.planActive&&(null==(t=this._store)?void 0:t.widgetShowCart),(()=>this.promptTemplate()),(()=>D))}),(()=>H`<p><slot name="loading" default>Loading ShipAid Widget...</slot></p>`))}
|
|
571
571
|
</div>
|