@blotoutio/providers-shop-gpt-sdk 1.22.2 → 1.22.4
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/index.cjs.js +66 -48
- package/index.d.ts +1 -1
- package/index.js +66 -48
- package/index.mjs +66 -48
- package/package.json +1 -1
- package/stores/shopify/index.cjs.js +111 -3
- package/stores/shopify/index.js +111 -3
- package/stores/shopify/index.mjs +111 -3
package/index.cjs.js
CHANGED
@@ -124,7 +124,7 @@ const isoCountries = new Map([
|
|
124
124
|
['FO', 'Faroe Islands'],
|
125
125
|
['FR', 'France'],
|
126
126
|
['GA', 'Gabon'],
|
127
|
-
['GB', '
|
127
|
+
['GB', 'Great Britain'],
|
128
128
|
['GD', 'Grenada'],
|
129
129
|
['GE', 'Georgia'],
|
130
130
|
['GF', 'French Guiana'],
|
@@ -279,7 +279,7 @@ const isoCountries = new Map([
|
|
279
279
|
['TZ', 'Tanzania, United Republic of'],
|
280
280
|
['UA', 'Ukraine'],
|
281
281
|
['UG', 'Uganda'],
|
282
|
-
['UK', 'United Kingdom'],
|
282
|
+
['UK', 'United Kingdom of Great Britain and Northern Ireland'],
|
283
283
|
['UM', 'United States Minor Outlying Islands'],
|
284
284
|
['US', 'United States of America'],
|
285
285
|
['UY', 'Uruguay'],
|
@@ -465,6 +465,7 @@ const packageName = 'shopGPT';
|
|
465
465
|
const DEFAULT_MAX_THREAD_AGE = 14; // in days
|
466
466
|
const DEFAULT_NUDGE_TIMEOUT = 10; // in seconds
|
467
467
|
const previewKeyName = 'previewShopGPT';
|
468
|
+
const nudgeOverrideKeyName = 'showShopGPTNudge';
|
468
469
|
|
469
470
|
const keyPrefix = `_worker`;
|
470
471
|
|
@@ -608,6 +609,15 @@ const hasPreviewKey = () => {
|
|
608
609
|
return false;
|
609
610
|
}
|
610
611
|
};
|
612
|
+
const hasNudgeOverride = () => {
|
613
|
+
var _a;
|
614
|
+
try {
|
615
|
+
return ((_a = sessionStorage.getItem(nudgeOverrideKeyName)) !== null && _a !== void 0 ? _a : '0') == '1';
|
616
|
+
}
|
617
|
+
catch {
|
618
|
+
return false;
|
619
|
+
}
|
620
|
+
};
|
611
621
|
const isUserInteracted = (destination) => {
|
612
622
|
var _a;
|
613
623
|
const session = getSessionData(destination);
|
@@ -743,6 +753,7 @@ const createShopGPTAPI = ({ fetch: fetchImpl = window.fetch, baseURL, userId, st
|
|
743
753
|
return url;
|
744
754
|
};
|
745
755
|
const processQuery = async (query, threadId, productHandle) => {
|
756
|
+
const siteCurrency = await storeAPI.getSiteCurrency();
|
746
757
|
const response = await fetchImpl(getURL('/query'), {
|
747
758
|
method: 'POST',
|
748
759
|
headers: getHeaders(),
|
@@ -753,6 +764,8 @@ const createShopGPTAPI = ({ fetch: fetchImpl = window.fetch, baseURL, userId, st
|
|
753
764
|
threadId,
|
754
765
|
pageUrl: window.location.href,
|
755
766
|
customerId: storeAPI.getCustomerId(),
|
767
|
+
currencyFormat: siteCurrency.currency,
|
768
|
+
conversionRate: siteCurrency.rate,
|
756
769
|
}),
|
757
770
|
credentials: 'include',
|
758
771
|
});
|
@@ -765,7 +778,8 @@ const createShopGPTAPI = ({ fetch: fetchImpl = window.fetch, baseURL, userId, st
|
|
765
778
|
if (!threadId) {
|
766
779
|
return [];
|
767
780
|
}
|
768
|
-
const
|
781
|
+
const currency = (await storeAPI.getSiteCurrency()).currency;
|
782
|
+
const response = await fetchImpl(getURL(`/query-history?threadId=${threadId}¤cy=${currency}`), {
|
769
783
|
method: 'GET',
|
770
784
|
headers: getHeaders(),
|
771
785
|
credentials: 'include',
|
@@ -5900,21 +5914,17 @@ class ProductItem extends TWLitElement$3 {
|
|
5900
5914
|
this.isStylesheetInjected = true;
|
5901
5915
|
}
|
5902
5916
|
}
|
5903
|
-
getLocalPrice(price) {
|
5904
|
-
|
5905
|
-
return price;
|
5906
|
-
}
|
5907
|
-
const localPrice = parseFloat(price) * this.siteCurrency.rate;
|
5908
|
-
return formatMoney(localPrice, this.siteCurrency.currency);
|
5917
|
+
getLocalPrice(price, currencyCode) {
|
5918
|
+
return formatMoney(parseFloat(price), currencyCode);
|
5909
5919
|
}
|
5910
|
-
getComparedAtPrice(comparedAtPrice, price) {
|
5920
|
+
getComparedAtPrice(comparedAtPrice, price, currencyCode) {
|
5911
5921
|
if (!comparedAtPrice ||
|
5912
5922
|
comparedAtPrice === price ||
|
5913
5923
|
parseFloat(comparedAtPrice) <= parseFloat(price)) {
|
5914
5924
|
return E;
|
5915
5925
|
}
|
5916
5926
|
return x `<p class="price-compared text-xs leading-xs font-semibold">
|
5917
|
-
${this.getLocalPrice(comparedAtPrice)}
|
5927
|
+
${this.getLocalPrice(comparedAtPrice, currencyCode)}
|
5918
5928
|
</p>`;
|
5919
5929
|
}
|
5920
5930
|
getProductUrl(url) {
|
@@ -5986,9 +5996,9 @@ class ProductItem extends TWLitElement$3 {
|
|
5986
5996
|
${this.renderVariantTitles()}
|
5987
5997
|
</div>
|
5988
5998
|
<div class="prices">
|
5989
|
-
${this.getComparedAtPrice(this.product.variants[0].comparedAtPrice, this.product.variants[0].price)}
|
5999
|
+
${this.getComparedAtPrice(this.product.variants[0].comparedAtPrice, this.product.variants[0].price, this.product.variants[0].currencyCode)}
|
5990
6000
|
<p class="text-xs leading-xs font-semibold">
|
5991
|
-
${this.getLocalPrice(this.product.variants[0].price)}
|
6001
|
+
${this.getLocalPrice(this.product.variants[0].price, this.product.variants[0].currencyCode)}
|
5992
6002
|
</p>
|
5993
6003
|
</div>
|
5994
6004
|
<div>
|
@@ -6021,10 +6031,6 @@ __decorate([
|
|
6021
6031
|
n$1({ type: Object }),
|
6022
6032
|
__metadata("design:type", Object)
|
6023
6033
|
], ProductItem.prototype, "product", void 0);
|
6024
|
-
__decorate([
|
6025
|
-
n$1({ type: Object }),
|
6026
|
-
__metadata("design:type", Object)
|
6027
|
-
], ProductItem.prototype, "siteCurrency", void 0);
|
6028
6034
|
__decorate([
|
6029
6035
|
n$1({ type: String }),
|
6030
6036
|
__metadata("design:type", Object)
|
@@ -6220,7 +6226,6 @@ class ProductsList extends i$1 {
|
|
6220
6226
|
.query=${this.query}
|
6221
6227
|
.response=${this.response}
|
6222
6228
|
.product=${product}
|
6223
|
-
.siteCurrency=${this.siteCurrency}
|
6224
6229
|
.rank=${index + 1}
|
6225
6230
|
.userId=${this.userId}
|
6226
6231
|
.viewType=${this.viewType}
|
@@ -6345,7 +6350,6 @@ class ProductsSection extends i$1 {
|
|
6345
6350
|
.query=${query === null || query === void 0 ? void 0 : query.message}
|
6346
6351
|
.response=${response === null || response === void 0 ? void 0 : response.message}
|
6347
6352
|
.product=${topResult}
|
6348
|
-
.siteCurrency=${this.siteCurrency}
|
6349
6353
|
.rank=${1}
|
6350
6354
|
.userId=${this.userId}
|
6351
6355
|
.metafieldDisplayName=${this.metafieldDisplayName}
|
@@ -6359,7 +6363,6 @@ class ProductsSection extends i$1 {
|
|
6359
6363
|
.query=${query === null || query === void 0 ? void 0 : query.message}
|
6360
6364
|
.response=${response === null || response === void 0 ? void 0 : response.message}
|
6361
6365
|
.products=${others}
|
6362
|
-
.siteCurrency=${this.siteCurrency}
|
6363
6366
|
.viewType=${'overlay'}
|
6364
6367
|
.userId=${this.userId}
|
6365
6368
|
.metafieldDisplayName=${this.metafieldDisplayName}
|
@@ -6382,10 +6385,6 @@ __decorate([
|
|
6382
6385
|
n$1({ type: Boolean }),
|
6383
6386
|
__metadata("design:type", Boolean)
|
6384
6387
|
], ProductsSection.prototype, "isLoadingHistory", void 0);
|
6385
|
-
__decorate([
|
6386
|
-
n$1({ type: Object }),
|
6387
|
-
__metadata("design:type", Object)
|
6388
|
-
], ProductsSection.prototype, "siteCurrency", void 0);
|
6389
6388
|
__decorate([
|
6390
6389
|
n$1({ type: Boolean }),
|
6391
6390
|
__metadata("design:type", Boolean)
|
@@ -7977,7 +7976,6 @@ class ChatSection extends i$1 {
|
|
7977
7976
|
.query=${queryMessage === null || queryMessage === void 0 ? void 0 : queryMessage.message}
|
7978
7977
|
.response=${message.message}
|
7979
7978
|
.product=${message.products[0]}
|
7980
|
-
.siteCurrency=${this.siteCurrency}
|
7981
7979
|
.rank=${1}
|
7982
7980
|
.userId=${this.userId}
|
7983
7981
|
.metafieldDisplayName=${this.metafieldDisplayName}
|
@@ -8359,10 +8357,6 @@ __decorate([
|
|
8359
8357
|
n$1({ type: Object }),
|
8360
8358
|
__metadata("design:type", Object)
|
8361
8359
|
], ChatSection.prototype, "thread", void 0);
|
8362
|
-
__decorate([
|
8363
|
-
n$1({ type: Object }),
|
8364
|
-
__metadata("design:type", Object)
|
8365
|
-
], ChatSection.prototype, "siteCurrency", void 0);
|
8366
8360
|
__decorate([
|
8367
8361
|
n$1({ type: String }),
|
8368
8362
|
__metadata("design:type", Object)
|
@@ -9394,7 +9388,6 @@ class PopupView extends TWLitElement$1 {
|
|
9394
9388
|
.query=${queryMessage === null || queryMessage === void 0 ? void 0 : queryMessage.message}
|
9395
9389
|
.response=${message.message}
|
9396
9390
|
.products=${message.products}
|
9397
|
-
.siteCurrency=${this.siteCurrency}
|
9398
9391
|
.viewType=${this.viewType}
|
9399
9392
|
.userId=${this.userId}
|
9400
9393
|
.metafieldDisplayName=${this.metafieldDisplayName}
|
@@ -9873,10 +9866,6 @@ __decorate([
|
|
9873
9866
|
n$1({ type: Object }),
|
9874
9867
|
__metadata("design:type", Object)
|
9875
9868
|
], PopupView.prototype, "thread", void 0);
|
9876
|
-
__decorate([
|
9877
|
-
n$1({ type: Object }),
|
9878
|
-
__metadata("design:type", Object)
|
9879
|
-
], PopupView.prototype, "siteCurrency", void 0);
|
9880
9869
|
__decorate([
|
9881
9870
|
n$1({ type: Boolean }),
|
9882
9871
|
__metadata("design:type", Object)
|
@@ -10087,6 +10076,7 @@ const parseMessage = (message, parseDataAsJSON) => {
|
|
10087
10076
|
const soothingWaterDropSound = 'data:audio/mpeg;base64,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iBeym4zYFAAkYAVmuxNNv+v7c+5J93kKUxDKOKWyMt3ZVsrLlNp3Ib///////7s611TkOqXWZl3uhSiSOQewv1FYTZFKdhJVZBMgiKlDgeGlFFOoqUzGFzKYeAg0RO4QCQcFYedRiB5hURMHA6HQkKGqCXYGAAAAABGgApJl0h7bdv/r82S1SFSqqfmOjO4Wm5alsNMFG/////b9dVlyWpEKmqe9aHhMak+HhGsqBxxQOCxAeEChIKHAKEuwM4PIAACtABSTNSHt//uURO6CIqCNR2qAE/pZMgjtUAJ+DWJBF6oE2cG0yCL1QBX4t2rX16KCd9t30sqUWzrubZLKdC9a3az71olrf//////////T/t0Pp3IzIqdpblOje9GO7Vq6MhpGbRjEdEe4dgUA6KIBGwAq9dj2r///////////6W/eDhP1ZcjzJWbcDYTA0WE///////8uT5Zf9azM11Vxps81NTe63cJduNWlkq5ShrwPgRqhhppVlmu6EHCxk5tqaLA4HSCrD1D0gaM2QTGwJB4jiiCRsAKvXY9q7///////////8pPXQrb9l97FaKqad0uiKqLfVOqE////////W6JfMjW2K+v6bfFIfEspmm2OPb5lv/Z7llsUapI0XhNl30zkDXTZIq0aKBUSy9ImIjqwkOIZGymx8KTVFCDEAFAAbQAPquiW9Xb9v/+r///////X5cpV5I9ZjVCEsMyBIJ7LqqX//////Mv6JSLfFev2nda4Zrx8Km2io+FM1XRobWl0v4DX//uURNmGYkU6SHqAE/hREakPUAKbTLI/F6oFGcGhR6L1QRs5Ao+prOmkimTgXyZNBA1DB6wUnLlJJGijDhQCSMBRQIpycHiihiCAABxoAH1XRJfOdv2/f///////+1/PekqIdq7KiLDq7sOxJjr1q3O6Pf62///////6n2mfT7/m5GN2p2XnmlemqGhc2+zu+2KlsjnPBMFsfHHG0IcposI7mkSiMo6zJ8/UDkOe8jSY4aefp5AUQQCgVsAKrXRNN+3+n/////////5eAyMgGMzOqlnUebFkm5rRSdiUSHX///////8iM+fHvc/b/P3drfb+G3XZJqmV+sqzaxiSUGkD7zYktN+kcKPZZh0lEDTiybgbECfnAeO5Rjl7FbZAYQACi1sAKrXNS5v/+tvr6vIhqleWdHN22tT3b60XZ6ZE0VU///////3m9JJvsdKUs7I5M52kR2Z0UjRyHGGq4kwgOFmOwmUwDB9WExESOivUVYouLEMg0sTcOiAycKIY//ukRNOCI22QRWqBNnBvcgitUEbODTpBF6oE2cGUyCL1QBagWGgRQ4oYSjAAAACIgBTjQPba9f2lZF1qSU6EWjIc5mlMxtmV6HUrOdSMV3QtdVb////////+1eV3dWkZbkZjyDllIlWOplzrGMNynsyIVHMdDHOchzKQIoxhRBkXQxVYy3Rx9g8JEHEoAAAAAtgAU4zQq7a/99PZkdndankap3PkTmIJyUR56VnXRrV////////5fvyt+1L6OVKmWplIUtxJXj0UeR2PNO4kgmiJOQWOGjRyWMZWKxROY4aYzlcTDg8wmEhW4IABGwAq9cwapt9///////////oajVpKYiofa790LnJKO52cjGujXoxZVQs////////V8tJN9m7bt1nzMqHX3110dv6NVi+nmouWVGAqokJTckosMtmIQWSVPNCTjj5KUXBZBXVJpaBR9O5YJCRoNQrbEAAjQAVeuYNU2+///////////w1LsmB8PUySiIApz5pXEueQvL///////+oZBr5PMj9q25R7EantpRahl50b2unDPb6YZbjNWMWmIMZ1EM0nTgjkuZbkTRp+r50BQQsyY+HVGSFGu2nN6TTdEYYAAAAegD6rmDVd///////////9/Zn7//ukRNuCIw6QRuqAK/heEgjdUAV+Di5BFaoI2cG2SCK1QKc4vopluyIyIRjgjuRhyPT9+yZ/X//////b0Mnc5SF9bTxuv8x3b7TIIPb5VoVq3MQU6kDlEkkjzET0LWxJcL0GYEzSXsUes8UFGFkwoIBQesLIkmSOocchqWBgaRIjYgAAADoAfVcoNU3of//////////9k/KWWv/OGYSAzsXxKU4D6//z////+mdish1u/JQb2GVsH6rn8emS9X1iGEWpNqLZNE5A7uVblEsvWWTwSVznj0WXIJv16ZFiw20bUP2VXUExBHBlKqK8TtpicSjACyABTzsmZ7b////t7f/////skbIyzcvmO7kAxOZmFMONiogsDGSEkAZf///////5aMv8+cO5F5+Z1Vgd96JswiPNgwOh1CzUOochYq4d+I5M4A+B6sDGIXhhQCQwtFVKqCglEgowAAB6gFPO1e3oN907XqtPzOxGYqWndnVEqjmc7ohp6LJVZ7Vndf////////6+Wr6qrElOixGNY6TGQUdxIYxDVI5o4ysVqUZCniJhlo8PTDI8OCwmhzECDh1jxIimK4fEih/BQBuAALGAFOMfNEwq1f+hvTSX/VdkMWhU3m3NYhFFlW9Fot7L//ukROoEA5+QROKCNnBvkgicUCnODNZBGaoEecGPyCMxQBW8uZ1Wv//////+/6p96rRtKKiLSpVVplPIdXdlaYOB5GO7tlmF1FB0hiIZhylQxIi4Fh5Rx1FRYeOINMLDAcRUoiHCjXCgAAAAREAKSZZ1Vav7PVbNTNa9lqpKEVltRD6rZL+6J2RFT/////////p6du62ewPOqKxW3BsppGvO6IiCxRJpgamFsFSIAzIZArhGCqziTlKOrIRWLBuPKAABIiAFLMnHtV/95tGN6mfRCNOY102HIRndHoU6GVW3ya3ejU2b/////////6ptU+2l6UUWZCLVTVFHQqJdTEQyEbIOiysw0ggc4rkBCHKJOriaIg8SOPFJhpBASMDBUuAaMAGREmsMr/////7IdIDxh8owNTpM0LLMi8okxrBdE8//////+xt+1G4j9SgKi9i3JNykqKJFCIbC1RpAKAAAAI2AFTMn3U1fpVf//////////czlKQXntGnKNVMSoFpSEWiwjZFZf/////8PO5/3H3XGku1vWkaJLrzB++pZDtxRYrXSmvFb2IJUuzsSqoKixOKwaUo44sYzjAiYPaMH04c0SMQsaosgFAAAAEbACpmX6mr96v////////////uURPEEY0GQRmqALUBZEgjtUAJ/DAo9G6oArej0AaS9JIgEm7zzpZa8tDqh0YspmrZ0ZWVGop1cYm47B//////9PXdNzrfZvfkfXfS21te9i87xtU7m7Mmpi2PSIpnGF5Zvl0BAtJ7SoYdBygCieKTWmPqVFngcmoxCRM6SUiExSRg0kAAwCnmTle9//st2////////+/+EOfloy9FCeOQKHjY+dGzn///////+fj/f8l893LMZjUcjid21C9hvv5FPY7U8S1hS7g+Opw2XggyK4x0key5VXMk+C023IGFSFV+snynTukZQWugUABTzLlNrqS/V//////////yc1xk3S95nOjMHxSvQ0eJ2nP///////+cyq/+/zPjxr7H+ed+vpMrcb7h55+SReJ2SRMhLHaYUkWlqGlGn1BRx0iC2hSRg9iSZGL3ZIHEwSFkUMJoZ0AAAAACRgBTjJ1TWf////////////d3QjynB4DJKFkxsUTZW1Z6sxAn///////ukRO+DM2GQRWqBRnB10gitUEbODN5BFooFOcGfyCLRQJs4///qfmvuN/65eld5y/ypx6Xklc7ZpsozrhhtaqjXMy7NJxAFf52kCZepE9womyXLQWZ6OeG24aUolMe/AAAAARogBSTJ1SNB1f/3o0vS6EWzd70uhpmUYjFOjEdnorGZ2fZ2WitVf/////////1SRcp7MptCZSs9GWxmZ21VSzidBcg48YUP3LONGSEYhBKg5iDHJQWqOF2OwM5IZ2XAASQAKWZXd6VVeyuv75ddq6nI61cznMRrVnchZ1RZVViaM3///////sn/ptuqujo59KzjXkGsY5pRMpR67OPO4TEhw7ElDkzCphcaJoJKLCwsEVVRYTOQoSixBJQ4BzCrEFiCIztFAAsYAUszd3pVe3prWh08YzNszSIpmrQm7WTZz9e8jV////////tp0Oaq6tvdSIsjKs7HUqOQgo0hjpMRXJOIKJEOrRpFEiiruICjuODzud3ZCua4iNQcx2EzDXCFMgAAAOgCpmfXt///////////8/MiS5NKXgCdWeVyTrzQDo5SHB/////L/8srH5V7hDYX4+qncnZ9Y7pT1TXosbl5uxXqJWj8ZKzLZiBYdYmzkmjESxxDnYIM//uURPUCI0KQReqBNnBhkejdUAVvTNZBGaoAr8F9SCM1QBX4lJMsqjp6RM4e0gBGYVZRkSBCRRbEDkgAAAfAFTLn17V2r///////////0XR9LV7HWd1Ocp56OPkV7tVmTZkozp/T////+3VE1cpiu/2N7L+svbyZXZVJROcspHq9k93SklZKcgd+T5qclemWmUVUYWmoRzSH2JEeIh5kPQJkRwyK7ttRGIiZpCVvny6WEQskAAdAoACpEniCmxqkip1f/6yfUpa///zEYy////2W4doWS8C4DszAA2zMZnMDs5w6ep5////+8qRQwAfUPZSu/7pPJfMTYaMblJ1APmE0aBKaZCmsgbYRKLulJRa2B0uvbaFpZGVNK+KLzXKsNlSpGolJkeLqiojiPLoyxowJxdY0UQkwscAAlAoDZAAVIk8QU2NUlqdX/6k1l9Wr//+6nJ////Qmzre50qpjud6oFM5MjupkSb3SitRetX9P+n///rtuq3azK3xm19h8//u0RNsBA3KQRMqBTnB58gicUEnOELJBEaoFOcIjyCI1QSc4jN05t1bVPjsimzhHwlpZ2Et5FWc8iKlSza6OBE2oefFEQomyXzXJgqVZQCptpokVONECKbMyeCAtAo5cTEAmSWVRAAAQhlIAHYHhywnUgyKX//czJs4////Ohjf/6a5L07HLsmTuLJeqkspbSMzyN1Vn92S7o1VtJ3PT///W3ojVkndw4IqoJmC/as1+V0F0NhyExr8dXVEZ0scrQoLGRWeFds7ZZSKfPnWSebHrjhTHhe2VCQOCLGTx5IK0p6g2JooHlWiVoR0ifLLK8Okg/lI9XefLTuxZJBfClxgAAQAQBIAAegqF1QuEixql//1pk2c///85DG////+1HXLux8azIrh3Ei3IjGKRXmdWctF0tbv7M2j+/v/T9ur3dOplKbfcpB/t5r0MLPwu3on23Rw1Mmr3Pbtrjy7CWb38nHaxxtsO0kLB2fOqkQteq6+4pKy+wgvuJqxIRqhFYyEsKTgHiwPiozOyeJI+tHJ7TUIhWIAABgBeDtjyVkf//RUkv//+Yn////////wi3IXxOKH5Cfk/mv//////zCTCs8pSl/5S///tZFqsYxjnlqrKzUlorCpqiJq40RNUia9qylsalKSLLoiehQsrQFR0SiI1AVE0VASPuRTQodQs1vtDCMgAAIBgAAAUghyMUkf//qS///zEL///////81//f+zD5CNC4TRfn////kzXxM/E8lt/uPpEinGrqKFl//u0RO2DBNSQQuKCZnCVsghtUEzODe5BDIgFOcHeyCFw0Kc4ZFJbfGviyLVYYIg1NmSxoQvQpItuMcKkqSLbQoUKwqXFLpWhhGmvIqCJLhUMnGyUs24VHB4KmUSwWBIVKkxBTUUzLjEwMKqqqqqqqqqqqqqqqqqqqqqqqqpMQU1FMy4xMDCqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq//sUZOGP8AAAf4AAAAgAAA/wAAABAAABpAAAACAAADSAAAAEqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq';
|
10088
10077
|
|
10089
10078
|
const DIALOG_DELAY = 1000;
|
10079
|
+
const SUPPORT_PROMPTS = 'Where is my order,Tracking link for my order,Return my order,Cancel my order';
|
10090
10080
|
const normalizePath = (path) => path.replace(/\/$/, '');
|
10091
10081
|
class ShopGPT extends i$1 {
|
10092
10082
|
constructor() {
|
@@ -10108,6 +10098,7 @@ class ShopGPT extends i$1 {
|
|
10108
10098
|
this.hasUserInteracted = false;
|
10109
10099
|
this.showNudge = false;
|
10110
10100
|
this.shouldAskUserEmail = false;
|
10101
|
+
this.supportRequested = false;
|
10111
10102
|
this.loadData = async () => {
|
10112
10103
|
if (!this.shopGPTAPI) {
|
10113
10104
|
return;
|
@@ -10335,6 +10326,9 @@ class ShopGPT extends i$1 {
|
|
10335
10326
|
this.isFailed = false;
|
10336
10327
|
const currentThreadId = this.selectedThreadId;
|
10337
10328
|
this.selectedThreadId = threadId;
|
10329
|
+
if (!threadId) {
|
10330
|
+
this.supportRequested = false;
|
10331
|
+
}
|
10338
10332
|
if (threadId && !silent) {
|
10339
10333
|
this.shopGPTAPI.sendEvent('switchThread', undefined, undefined, {
|
10340
10334
|
previousThread: currentThreadId,
|
@@ -10533,7 +10527,8 @@ class ShopGPT extends i$1 {
|
|
10533
10527
|
try {
|
10534
10528
|
this.isPreviousMessagePrompt = isPrompt;
|
10535
10529
|
if (!isPrompt) {
|
10536
|
-
|
10530
|
+
const siteCurrency = await this.getSiteCurrency();
|
10531
|
+
this.shopGPTAPI.sendEvent('queryInteractions', siteCurrency.currency, undefined, {
|
10537
10532
|
query: message,
|
10538
10533
|
threadId: this.selectedThreadId,
|
10539
10534
|
});
|
@@ -10566,9 +10561,10 @@ class ShopGPT extends i$1 {
|
|
10566
10561
|
})
|
10567
10562
|
.catch(logger.error);
|
10568
10563
|
}
|
10569
|
-
sendEvent(e) {
|
10564
|
+
async sendEvent(e) {
|
10570
10565
|
e.stopPropagation();
|
10571
|
-
|
10566
|
+
const siteCurrency = await this.getSiteCurrency();
|
10567
|
+
this.shopGPTAPI.sendEvent(e.detail.action, siteCurrency.currency, e.detail.actionData, e.detail.clickData);
|
10572
10568
|
}
|
10573
10569
|
closeNudge(e) {
|
10574
10570
|
e.stopPropagation();
|
@@ -10577,12 +10573,15 @@ class ShopGPT extends i$1 {
|
|
10577
10573
|
}
|
10578
10574
|
async handleNudgePromptClick(e) {
|
10579
10575
|
e.stopPropagation();
|
10580
|
-
this.openModal();
|
10581
10576
|
await this.setSelectedThreadId('');
|
10582
10577
|
await this.createChatThread({ title: '' }, false);
|
10583
10578
|
if (e.detail.id === 'query') {
|
10584
10579
|
this.sendMessageToServer(e, e.detail.message, true);
|
10585
10580
|
}
|
10581
|
+
if (e.detail.id === 'support') {
|
10582
|
+
this.supportRequested = true;
|
10583
|
+
}
|
10584
|
+
this.openModal();
|
10586
10585
|
}
|
10587
10586
|
submitUserData(e) {
|
10588
10587
|
e.stopPropagation();
|
@@ -10593,11 +10592,12 @@ class ShopGPT extends i$1 {
|
|
10593
10592
|
});
|
10594
10593
|
this.shouldAskUserEmail = false;
|
10595
10594
|
}
|
10596
|
-
productClicked(e) {
|
10595
|
+
async productClicked(e) {
|
10597
10596
|
var _a, _b;
|
10598
10597
|
e.stopPropagation();
|
10599
10598
|
setProductAction(this.destination, this.sessionId, e.detail.id, 'clicked', true);
|
10600
|
-
|
10599
|
+
const siteCurrency = await this.getSiteCurrency();
|
10600
|
+
this.shopGPTAPI.sendEvent('productRecommendationClicked', siteCurrency.currency, {
|
10601
10601
|
productId: e.detail.id,
|
10602
10602
|
value: e.detail.value,
|
10603
10603
|
isPrompt: this.isPreviousMessagePrompt,
|
@@ -10605,15 +10605,15 @@ class ShopGPT extends i$1 {
|
|
10605
10605
|
threadId: this.selectedThreadId,
|
10606
10606
|
query: (_a = e.detail.query) !== null && _a !== void 0 ? _a : '',
|
10607
10607
|
response: (_b = e.detail.response) !== null && _b !== void 0 ? _b : '',
|
10608
|
-
currency:
|
10608
|
+
currency: siteCurrency.currency,
|
10609
10609
|
variantId: e.detail.variantId,
|
10610
10610
|
url: e.detail.url,
|
10611
10611
|
title: e.detail.title,
|
10612
10612
|
rank: e.detail.rank,
|
10613
10613
|
}, true);
|
10614
10614
|
}
|
10615
|
-
getSiteCurrency() {
|
10616
|
-
return this.storeAPI.getSiteCurrency();
|
10615
|
+
async getSiteCurrency() {
|
10616
|
+
return await this.storeAPI.getSiteCurrency();
|
10617
10617
|
}
|
10618
10618
|
overlayMode() {
|
10619
10619
|
const thread = this.chatThreads.get(this.selectedThreadId);
|
@@ -10644,7 +10644,6 @@ class ShopGPT extends i$1 {
|
|
10644
10644
|
.merchantImage=${this.merchantImage}
|
10645
10645
|
.products=${this.products}
|
10646
10646
|
.isLoadingHistory=${this.isLoadingHistory}
|
10647
|
-
.siteCurrency=${this.getSiteCurrency()}
|
10648
10647
|
.isLoadingThreads=${this.isLoadingThreads}
|
10649
10648
|
.css=${this.css}
|
10650
10649
|
.userId=${this.userId}
|
@@ -10658,7 +10657,6 @@ class ShopGPT extends i$1 {
|
|
10658
10657
|
.isTyping=${this.isTyping}
|
10659
10658
|
.isStreaming=${this.isStreaming}
|
10660
10659
|
.messages=${this.messages}
|
10661
|
-
.siteCurrency=${this.getSiteCurrency()}
|
10662
10660
|
.sendMessageToServer=${this.sendMessageToServer.bind(this)}
|
10663
10661
|
.thread=${thread}
|
10664
10662
|
.createChatThread=${this.createChatThread.bind(this)}
|
@@ -10683,6 +10681,7 @@ class ShopGPT extends i$1 {
|
|
10683
10681
|
const thread = this.chatThreads.get(this.selectedThreadId);
|
10684
10682
|
const closeModal = () => {
|
10685
10683
|
this.modalState = 'close';
|
10684
|
+
this.supportRequested = false;
|
10686
10685
|
this.shopGPTAPI.sendEvent('chatbotClosed');
|
10687
10686
|
};
|
10688
10687
|
return x `
|
@@ -10698,14 +10697,15 @@ class ShopGPT extends i$1 {
|
|
10698
10697
|
@submit-user-data=${this.submitUserData}
|
10699
10698
|
>
|
10700
10699
|
<popup-view
|
10701
|
-
.prompts=${this.
|
10700
|
+
.prompts=${this.supportRequested
|
10701
|
+
? SUPPORT_PROMPTS
|
10702
|
+
: this.quickPrompts}
|
10702
10703
|
.brandName=${this.brandName}
|
10703
10704
|
.isFailed=${this.isFailed}
|
10704
10705
|
.isLoadingHistory=${this.isLoadingHistory}
|
10705
10706
|
.isTyping=${this.isTyping}
|
10706
10707
|
.isStreaming=${this.isStreaming}
|
10707
10708
|
.messages=${this.messages}
|
10708
|
-
.siteCurrency=${this.getSiteCurrency()}
|
10709
10709
|
.sendMessageToServer=${this.sendMessageToServer.bind(this)}
|
10710
10710
|
.thread=${thread}
|
10711
10711
|
.createChatThread=${this.createChatThread.bind(this)}
|
@@ -10738,7 +10738,7 @@ class ShopGPT extends i$1 {
|
|
10738
10738
|
>
|
10739
10739
|
<chatbot-icon .css=${this.css}></chatbot-icon>
|
10740
10740
|
</button>
|
10741
|
-
${((_a = this.nudge) === null || _a === void 0 ? void 0 : _a.show) && this.showNudge
|
10741
|
+
${(hasNudgeOverride() || ((_a = this.nudge) === null || _a === void 0 ? void 0 : _a.show)) && this.showNudge
|
10742
10742
|
? x ` <div class="nudge">
|
10743
10743
|
<chat-nudge
|
10744
10744
|
.brandName=${this.brandName}
|
@@ -10763,6 +10763,13 @@ class ShopGPT extends i$1 {
|
|
10763
10763
|
}
|
10764
10764
|
startNudgeTimer() {
|
10765
10765
|
var _a, _b;
|
10766
|
+
if (hasNudgeOverride()) {
|
10767
|
+
this.nudgeTimer = window.setTimeout(() => {
|
10768
|
+
this.playNudgeSound();
|
10769
|
+
this.showNudge = true;
|
10770
|
+
}, 2000);
|
10771
|
+
return;
|
10772
|
+
}
|
10766
10773
|
if (this.view !== 'modal' || !((_a = this.nudge) === null || _a === void 0 ? void 0 : _a.show)) {
|
10767
10774
|
return;
|
10768
10775
|
}
|
@@ -10779,6 +10786,13 @@ class ShopGPT extends i$1 {
|
|
10779
10786
|
}
|
10780
10787
|
playNudgeSound() {
|
10781
10788
|
var _a;
|
10789
|
+
if (hasNudgeOverride()) {
|
10790
|
+
const audio = new Audio(soothingWaterDropSound);
|
10791
|
+
audio
|
10792
|
+
.play()
|
10793
|
+
.catch((error) => logger.error('Error playing nudge sound', error));
|
10794
|
+
return;
|
10795
|
+
}
|
10782
10796
|
if (!((_a = this.nudge) === null || _a === void 0 ? void 0 : _a.sound) || !navigator.userActivation.hasBeenActive) {
|
10783
10797
|
return;
|
10784
10798
|
}
|
@@ -10869,6 +10883,10 @@ __decorate([
|
|
10869
10883
|
r$1(),
|
10870
10884
|
__metadata("design:type", Object)
|
10871
10885
|
], ShopGPT.prototype, "shouldAskUserEmail", void 0);
|
10886
|
+
__decorate([
|
10887
|
+
r$1(),
|
10888
|
+
__metadata("design:type", Object)
|
10889
|
+
], ShopGPT.prototype, "supportRequested", void 0);
|
10872
10890
|
if (!customElements.get('shop-gpt')) {
|
10873
10891
|
customElements.define('shop-gpt', ShopGPT);
|
10874
10892
|
}
|
package/index.d.ts
CHANGED
@@ -157,7 +157,7 @@ declare global {
|
|
157
157
|
variantId: string
|
158
158
|
quantity: number
|
159
159
|
}) => Promise<void>
|
160
|
-
getSiteCurrency: () => SiteCurrency
|
160
|
+
getSiteCurrency: () => Promise<SiteCurrency>
|
161
161
|
getCurrentProductHandle: () => string | undefined
|
162
162
|
getCustomerId: () => string | undefined
|
163
163
|
}
|