@sledge-app/react-instant-search 0.0.111 → 0.0.112
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/components/ProductFilterWidget/ProductFilterWidgetInitSelector.d.ts.map +1 -1
- package/dist/components/SearchIconWidget/SearchIconWidgetInitSelector.d.ts.map +1 -1
- package/dist/components/SearchIconWidget/SearchIconWidgetPopup.d.ts.map +1 -1
- package/dist/components/SearchResultWidget/SearchResultWidgetInitSelector.d.ts.map +1 -1
- package/dist/components/SearchWidget/SearchWidgetInitSelector.d.ts.map +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/sledge-react-instant-search.cjs +1 -1
- package/dist/sledge-react-instant-search.cjs.map +1 -1
- package/dist/sledge-react-instant-search.js +296 -127
- package/dist/sledge-react-instant-search.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports, $ as $cb5cc270b50c6fcd$export$be92b6f5f03c0fe9, a as $cb5cc270b50c6fcd$export$41fb9f06171c75f4, b as $cb5cc270b50c6fcd$export$602eac185826482c, c as $cb5cc270b50c6fcd$export$7c6e2c02157bb7d2, d as $cb5cc270b50c6fcd$export$f39c2d165cd861fe, e as $cb5cc270b50c6fcd$export$21b07c8f274aebd5, f as $67824d98245208a0$export$be92b6f5f03c0fe9, g as $67824d98245208a0$export$adb584737d712b70, h as $e698a72e93240346$export$be92b6f5f03c0fe9, i as $e698a72e93240346$export$adb584737d712b70, k as $faa2e61a3361514f$export$be92b6f5f03c0fe9, l as $faa2e61a3361514f$export$13921ac0cc260818, m as $faa2e61a3361514f$export$9a58ef0d7ad3278c, n as $faa2e61a3361514f$export$6521433ed15a34db, o as $f99a8c78507165f7$export$be92b6f5f03c0fe9, p as $f99a8c78507165f7$export$6d08773d2e66f8f2, q as $f99a8c78507165f7$export$adb584737d712b70, r as $cc7e05a45900e73f$export$6d08773d2e66f8f2, s as $cc7e05a45900e73f$export$d6e5bf9c43ea9319, t as $cc7e05a45900e73f$export$c3468e2714d175fa, u as $cc7e05a45900e73f$export$be92b6f5f03c0fe9, v as $cc7e05a45900e73f$export$41fb9f06171c75f4, w as $cc7e05a45900e73f$export$4c8d1a57a761ef94, x as $cc7e05a45900e73f$export$f04a61298a47a40f, y as $cc7e05a45900e73f$export$602eac185826482c, z as $cc7e05a45900e73f$export$7c6e2c02157bb7d2, A as $cc7e05a45900e73f$export$2f60d3ec9ad468f2, B as $cc7e05a45900e73f$export$d5c6c08dc2d3ca7, C as $cc7e05a45900e73f$export$bf1aedc3039c8d63, D as motion, E as client, F as $a093c7e1ec25a057$export$2881499e37b75b9a, G as $a093c7e1ec25a057$export$be92b6f5f03c0fe9, H as $a093c7e1ec25a057$export$41fb9f06171c75f4, I as $a093c7e1ec25a057$export$602eac185826482c, J as $a093c7e1ec25a057$export$7c6e2c02157bb7d2, K as $a093c7e1ec25a057$export$21b07c8f274aebd5, L as $57acba87d6e25586$export$be92b6f5f03c0fe9, M as $57acba87d6e25586$export$d5c6c08dc2d3ca7, N as $57acba87d6e25586$export$9a4e88b92edfce6b, O as $57acba87d6e25586$export$6521433ed15a34db, P as MasonryResponsive, Q as Masonry, R as $5d3850c4d0b4e6c7$export$be92b6f5f03c0fe9, S as $5d3850c4d0b4e6c7$export$602eac185826482c, T as $5d3850c4d0b4e6c7$export$c6fdb837b070b4ff, U as $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2 } from "./vendor-efe38901.js";
|
|
2
2
|
import React__default, { createElement } from "react";
|
|
3
|
-
import { SledgeContext } from "@sledge-app/core";
|
|
3
|
+
import { SledgeContext, CustomComponents } from "@sledge-app/core";
|
|
4
4
|
import "react-dom";
|
|
5
5
|
const ProductFilterWidget = (props) => {
|
|
6
6
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(SearchResultWidget, { layoutType: "product-filter", ...props });
|
|
@@ -166,32 +166,35 @@ const sanitizeDataId = (id) => {
|
|
|
166
166
|
return getId;
|
|
167
167
|
}
|
|
168
168
|
};
|
|
169
|
-
const detectInitSelector = (
|
|
169
|
+
const detectInitSelector = (params) => {
|
|
170
|
+
const { element: element2, init, reRender = false } = params;
|
|
170
171
|
let hasRunning = false;
|
|
171
172
|
if (!reRender) {
|
|
172
173
|
document.body.addEventListener("DOMNodeInserted", () => {
|
|
173
|
-
if (!hasRunning &&
|
|
174
|
+
if (!hasRunning && element2) {
|
|
174
175
|
hasRunning = true;
|
|
175
176
|
init();
|
|
176
177
|
}
|
|
177
178
|
});
|
|
178
179
|
} else {
|
|
179
|
-
if (
|
|
180
|
+
if (element2)
|
|
180
181
|
init();
|
|
181
182
|
}
|
|
182
183
|
};
|
|
183
184
|
const isFunction = (data) => typeof data === "function";
|
|
184
|
-
const scrollToElement = (
|
|
185
|
-
|
|
185
|
+
const scrollToElement = (params) => {
|
|
186
|
+
const { element: element2, headerOffset } = params;
|
|
187
|
+
if (!element2)
|
|
186
188
|
return;
|
|
187
|
-
var elementPosition =
|
|
189
|
+
var elementPosition = element2 == null ? void 0 : element2.getBoundingClientRect().top;
|
|
188
190
|
var offsetPosition = elementPosition + window.scrollY - headerOffset;
|
|
189
191
|
window.scrollTo({
|
|
190
192
|
top: offsetPosition,
|
|
191
193
|
behavior: "smooth"
|
|
192
194
|
});
|
|
193
195
|
};
|
|
194
|
-
const fetchApi = async (
|
|
196
|
+
const fetchApi = async (params) => {
|
|
197
|
+
const { url, method, authorization = "", payload = {}, headers = {}, isSimpleRequest = true, isUploadFile = false } = params;
|
|
195
198
|
var myHeaders = new Headers();
|
|
196
199
|
if (!isSimpleRequest) {
|
|
197
200
|
if (authorization)
|
|
@@ -209,8 +212,8 @@ const fetchApi = async (url, method, authorization, payload = {}, headers = {},
|
|
|
209
212
|
if (Object.keys(payload).length)
|
|
210
213
|
Object.keys(payload).forEach(function(key) {
|
|
211
214
|
if (isUploadFile && (payload == null ? void 0 : payload.files))
|
|
212
|
-
[...payload.files].map((
|
|
213
|
-
formdata.append("files",
|
|
215
|
+
[...payload.files].map((item2) => {
|
|
216
|
+
formdata.append("files", item2, item2.name);
|
|
214
217
|
});
|
|
215
218
|
formdata.append(key, payload[key]);
|
|
216
219
|
});
|
|
@@ -449,8 +452,8 @@ const RadioGroup = ({ id, name, required, defaultValue, items, labelStyle = {},
|
|
|
449
452
|
name,
|
|
450
453
|
required,
|
|
451
454
|
onValueChange,
|
|
452
|
-
children: items.map((
|
|
453
|
-
const { label, value } =
|
|
455
|
+
children: items.map((item2, index) => {
|
|
456
|
+
const { label, value } = item2;
|
|
454
457
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__radio-group-item-flex", children: [
|
|
455
458
|
/* @__PURE__ */ jsxRuntimeExports.jsx($f99a8c78507165f7$export$6d08773d2e66f8f2, { className: "sledge__radio-group-item", value, id: `${id}${index}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx($f99a8c78507165f7$export$adb584737d712b70, { className: "sledge__radio-group-indicator" }) }),
|
|
456
459
|
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "sledge__radio-group-label", htmlFor: `${id}${index}`, style: labelStyle, children: label })
|
|
@@ -508,8 +511,8 @@ const Select = ({ name, placeholder, required, defaultValue, items, labelStyle =
|
|
|
508
511
|
}
|
|
509
512
|
) }) }),
|
|
510
513
|
/* @__PURE__ */ jsxRuntimeExports.jsx($cc7e05a45900e73f$export$d5c6c08dc2d3ca7, { className: "sledge__select-viewport", children: items.map(
|
|
511
|
-
(
|
|
512
|
-
const { label, value } =
|
|
514
|
+
(item2, index) => {
|
|
515
|
+
const { label, value } = item2;
|
|
513
516
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(SelectItemComponent, { value, children: label }, index);
|
|
514
517
|
}
|
|
515
518
|
) }),
|
|
@@ -741,8 +744,8 @@ const ProductGrid$1 = "";
|
|
|
741
744
|
const addToCart = async (data) => {
|
|
742
745
|
var _a, _b;
|
|
743
746
|
let items = [];
|
|
744
|
-
data.map((
|
|
745
|
-
const { id, quantity } =
|
|
747
|
+
data.map((item2) => {
|
|
748
|
+
const { id, quantity } = item2;
|
|
746
749
|
items.push({
|
|
747
750
|
id,
|
|
748
751
|
quantity
|
|
@@ -757,7 +760,13 @@ const addToCart = async (data) => {
|
|
|
757
760
|
let payload = {
|
|
758
761
|
items
|
|
759
762
|
};
|
|
760
|
-
return await fetchApi(
|
|
763
|
+
return await fetchApi({
|
|
764
|
+
url,
|
|
765
|
+
method: "POST",
|
|
766
|
+
payload,
|
|
767
|
+
headers,
|
|
768
|
+
isSimpleRequest: false
|
|
769
|
+
}).then((result) => {
|
|
761
770
|
return result;
|
|
762
771
|
}).catch(() => {
|
|
763
772
|
return;
|
|
@@ -888,7 +897,12 @@ const addWishlist = async (data) => {
|
|
|
888
897
|
price: productPrice
|
|
889
898
|
})
|
|
890
899
|
};
|
|
891
|
-
return await fetchApi(
|
|
900
|
+
return await fetchApi({
|
|
901
|
+
url,
|
|
902
|
+
method: "POST",
|
|
903
|
+
authorization: sledgeAuthApp,
|
|
904
|
+
payload
|
|
905
|
+
}).then((result) => {
|
|
892
906
|
return result;
|
|
893
907
|
}).catch(() => {
|
|
894
908
|
return;
|
|
@@ -896,8 +910,8 @@ const addWishlist = async (data) => {
|
|
|
896
910
|
};
|
|
897
911
|
const bulkAddWishlist = async (data) => {
|
|
898
912
|
let sledgeAuthApp = typeof localStorage !== "undefined" ? localStorage.getItem(LOCAL_STORAGE_KEY.AUTH_APP) || "" : "";
|
|
899
|
-
let products = data.map((
|
|
900
|
-
const { productId, productVariantId, productName, productVariantName, productLink, productImage, productCurrency, productPrice } =
|
|
913
|
+
let products = data.map((item2) => {
|
|
914
|
+
const { productId, productVariantId, productName, productVariantName, productLink, productImage, productCurrency, productPrice } = item2;
|
|
901
915
|
return {
|
|
902
916
|
id: sanitizeDataId(productId),
|
|
903
917
|
variant_id: sanitizeDataId(productVariantId),
|
|
@@ -916,7 +930,14 @@ const bulkAddWishlist = async (data) => {
|
|
|
916
930
|
let payload = {
|
|
917
931
|
products
|
|
918
932
|
};
|
|
919
|
-
return await fetchApi(
|
|
933
|
+
return await fetchApi({
|
|
934
|
+
url,
|
|
935
|
+
method: "POST",
|
|
936
|
+
authorization: sledgeAuthApp,
|
|
937
|
+
payload,
|
|
938
|
+
headers,
|
|
939
|
+
isSimpleRequest: false
|
|
940
|
+
}).then((result) => {
|
|
920
941
|
return result;
|
|
921
942
|
}).catch(() => {
|
|
922
943
|
return;
|
|
@@ -925,7 +946,11 @@ const bulkAddWishlist = async (data) => {
|
|
|
925
946
|
const getWishlistInfo = async (token) => {
|
|
926
947
|
let sledgeAuthApp = token ? token : typeof localStorage !== "undefined" ? localStorage.getItem(LOCAL_STORAGE_KEY.AUTH_APP) || "" : "";
|
|
927
948
|
let url = `${API_URL}/wishlist/info`;
|
|
928
|
-
return await fetchApi(
|
|
949
|
+
return await fetchApi({
|
|
950
|
+
url,
|
|
951
|
+
method: "GET",
|
|
952
|
+
authorization: sledgeAuthApp
|
|
953
|
+
}).then((result) => {
|
|
929
954
|
return result;
|
|
930
955
|
}).catch(() => {
|
|
931
956
|
return;
|
|
@@ -939,7 +964,11 @@ const checkWishlist = async (id, variantId) => {
|
|
|
939
964
|
variant_id: convertVariantId
|
|
940
965
|
}).toString();
|
|
941
966
|
let url = `${API_URL}/wishlist/check/${convertId}${queryParams}`;
|
|
942
|
-
return await fetchApi(
|
|
967
|
+
return await fetchApi({
|
|
968
|
+
url,
|
|
969
|
+
method: "GET",
|
|
970
|
+
authorization: sledgeAuthApp
|
|
971
|
+
}).then((result) => {
|
|
943
972
|
return Boolean(result.data);
|
|
944
973
|
}).catch(() => {
|
|
945
974
|
return;
|
|
@@ -949,10 +978,16 @@ const addToCartTrigger$1 = async (data) => {
|
|
|
949
978
|
const { productId } = data;
|
|
950
979
|
let sledgeAuthApp = typeof localStorage !== "undefined" ? localStorage.getItem(LOCAL_STORAGE_KEY.AUTH_APP) || "" : "";
|
|
951
980
|
let url = `${API_URL}/wishlist/cart`;
|
|
952
|
-
|
|
981
|
+
let payload = {
|
|
953
982
|
product: JSON.stringify({
|
|
954
983
|
id: sanitizeDataId(productId)
|
|
955
984
|
})
|
|
985
|
+
};
|
|
986
|
+
return await fetchApi({
|
|
987
|
+
url,
|
|
988
|
+
method: "POST",
|
|
989
|
+
authorization: sledgeAuthApp,
|
|
990
|
+
payload
|
|
956
991
|
}).then((result) => {
|
|
957
992
|
return result;
|
|
958
993
|
}).catch(() => {
|
|
@@ -1077,19 +1112,19 @@ const BadgeInitSelector = (reRender = false) => {
|
|
|
1077
1112
|
}
|
|
1078
1113
|
}
|
|
1079
1114
|
} else {
|
|
1080
|
-
let
|
|
1081
|
-
detectInitSelector(
|
|
1082
|
-
element,
|
|
1083
|
-
() => {
|
|
1084
|
-
if (
|
|
1085
|
-
|
|
1086
|
-
if (
|
|
1087
|
-
const USE_PROXY_URL =
|
|
1088
|
-
if (
|
|
1089
|
-
|
|
1115
|
+
let element2 = Array.from(document.querySelectorAll(SELECTOR.WISHLIST.ELEMENT_BADGE));
|
|
1116
|
+
detectInitSelector({
|
|
1117
|
+
element: element2,
|
|
1118
|
+
init: () => {
|
|
1119
|
+
if (element2.length) {
|
|
1120
|
+
element2.map((item2) => {
|
|
1121
|
+
if (item2) {
|
|
1122
|
+
const USE_PROXY_URL = item2.getAttribute(DATASET_ATTRIBUTE_KEY.WISHLIST.USE_PROXY_URL);
|
|
1123
|
+
if (item2.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`))
|
|
1124
|
+
item2.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`).remove();
|
|
1090
1125
|
let elementContainerWidget = document.createElement("div");
|
|
1091
1126
|
elementContainerWidget.setAttribute(SELECTOR_ATTRIBUTE_KEY, INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET);
|
|
1092
|
-
|
|
1127
|
+
item2.appendChild(elementContainerWidget);
|
|
1093
1128
|
client.createRoot(elementContainerWidget).render(
|
|
1094
1129
|
/* @__PURE__ */ jsxRuntimeExports.jsx(React__default.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1095
1130
|
SledgeContext.Provider,
|
|
@@ -1112,7 +1147,7 @@ const BadgeInitSelector = (reRender = false) => {
|
|
|
1112
1147
|
}
|
|
1113
1148
|
},
|
|
1114
1149
|
reRender
|
|
1115
|
-
);
|
|
1150
|
+
});
|
|
1116
1151
|
}
|
|
1117
1152
|
};
|
|
1118
1153
|
const Trigger = (props) => {
|
|
@@ -1366,8 +1401,8 @@ const WidgetHeaderShareTrigger = ({ wishlistData, buttonText, showShareTrigger,
|
|
|
1366
1401
|
const handleBulkAddWishlist = async () => {
|
|
1367
1402
|
var _a2, _b2, _c2, _d2, _e2, _f2, _g;
|
|
1368
1403
|
setIsLoadingBulkAdd(true);
|
|
1369
|
-
let data = wishlistData.map((
|
|
1370
|
-
const { id, variant_id, name, variant_name, url, image_url, currency, price } =
|
|
1404
|
+
let data = wishlistData.map((item2) => {
|
|
1405
|
+
const { id, variant_id, name, variant_name, url, image_url, currency, price } = item2.product;
|
|
1371
1406
|
return {
|
|
1372
1407
|
productId: id,
|
|
1373
1408
|
productVariantId: variant_id,
|
|
@@ -1543,10 +1578,10 @@ const WidgetHeaderLimit = ({ options, defaultLimitOptions, selectedLimit, setSel
|
|
|
1543
1578
|
SelectField,
|
|
1544
1579
|
{
|
|
1545
1580
|
align: "end",
|
|
1546
|
-
options: getOptions.map((
|
|
1581
|
+
options: getOptions.map((item2) => {
|
|
1547
1582
|
return {
|
|
1548
|
-
label:
|
|
1549
|
-
value:
|
|
1583
|
+
label: item2,
|
|
1584
|
+
value: item2
|
|
1550
1585
|
};
|
|
1551
1586
|
}),
|
|
1552
1587
|
value: selectedLimit || getOptions[0],
|
|
@@ -1570,8 +1605,8 @@ const WidgetHeaderSort$1 = ({ wishlistSort, selectedSort, setSelectedSort, setIs
|
|
|
1570
1605
|
SelectField,
|
|
1571
1606
|
{
|
|
1572
1607
|
align: "end",
|
|
1573
|
-
options: wishlistSort.map((
|
|
1574
|
-
const { name, value } =
|
|
1608
|
+
options: wishlistSort.map((item2) => {
|
|
1609
|
+
const { name, value } = item2;
|
|
1575
1610
|
return {
|
|
1576
1611
|
label: name,
|
|
1577
1612
|
value
|
|
@@ -1647,7 +1682,12 @@ const getReviewInfo = async (id) => {
|
|
|
1647
1682
|
let convertId = sanitizeDataId(id);
|
|
1648
1683
|
let sledgeAuthApp = typeof localStorage !== "undefined" ? localStorage.getItem(LOCAL_STORAGE_KEY.AUTH_APP) || "" : "";
|
|
1649
1684
|
let url = `${API_URL}/review/info/${convertId}?${PAYLOAD_API_ALIASES.Authorization}=${sledgeAuthApp}`;
|
|
1650
|
-
return await fetchApi(
|
|
1685
|
+
return await fetchApi({
|
|
1686
|
+
url,
|
|
1687
|
+
method: "GET",
|
|
1688
|
+
authorization: sledgeAuthApp,
|
|
1689
|
+
isSimpleRequest: false
|
|
1690
|
+
}).then((result) => {
|
|
1651
1691
|
return result;
|
|
1652
1692
|
}).catch(() => {
|
|
1653
1693
|
return;
|
|
@@ -1657,7 +1697,12 @@ const getProductsReviewInfo = async (ids, token) => {
|
|
|
1657
1697
|
let convertIds = ids.map((v) => sanitizeDataId(v));
|
|
1658
1698
|
let sledgeAuthApp = token ? token : typeof localStorage !== "undefined" ? (localStorage == null ? void 0 : localStorage.getItem(LOCAL_STORAGE_KEY.AUTH_APP)) || "" : "";
|
|
1659
1699
|
let url = `${API_URL}/review/info/ids/${convertIds.join(",")}?${PAYLOAD_API_ALIASES.Authorization}=${sledgeAuthApp}`;
|
|
1660
|
-
return await fetchApi(
|
|
1700
|
+
return await fetchApi({
|
|
1701
|
+
url,
|
|
1702
|
+
method: "GET",
|
|
1703
|
+
authorization: sledgeAuthApp,
|
|
1704
|
+
isSimpleRequest: false
|
|
1705
|
+
}).then((result) => {
|
|
1661
1706
|
return result;
|
|
1662
1707
|
}).catch(() => {
|
|
1663
1708
|
return;
|
|
@@ -1737,7 +1782,10 @@ const Rating = (props) => {
|
|
|
1737
1782
|
if (!isScrollToElementWidget)
|
|
1738
1783
|
return;
|
|
1739
1784
|
setTimeout(() => {
|
|
1740
|
-
scrollToElement(
|
|
1785
|
+
scrollToElement({
|
|
1786
|
+
element: document.getElementById(ELEMENT_ID.PRODUCT_REVIEW.ELEMENT_WIDGET),
|
|
1787
|
+
headerOffset: 50
|
|
1788
|
+
});
|
|
1741
1789
|
}, 200);
|
|
1742
1790
|
};
|
|
1743
1791
|
React__default.useEffect(() => {
|
|
@@ -1796,17 +1844,17 @@ const Rating = (props) => {
|
|
|
1796
1844
|
] }) })
|
|
1797
1845
|
] }),
|
|
1798
1846
|
!isLoading && /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
1799
|
-
[1, 2, 3, 4, 5].map((
|
|
1847
|
+
[1, 2, 3, 4, 5].map((item2, index) => {
|
|
1800
1848
|
let ratingValue = Math.floor(parseFloat(averageReview));
|
|
1801
1849
|
let getCommaValue = String(averageReview).includes(",") ? String(averageReview).split(",") : [];
|
|
1802
1850
|
let getCommaValueDot = String(averageReview).includes(".") ? String(averageReview).split(".") : [];
|
|
1803
1851
|
let isHaveCommaValue = getCommaValue.length || getCommaValueDot.length;
|
|
1804
1852
|
let commaValue = isHaveCommaValue ? getCommaValue[1] || getCommaValueDot[1] : 0;
|
|
1805
1853
|
let fillOther = "fill-0";
|
|
1806
|
-
if (
|
|
1854
|
+
if (item2 > ratingValue && ratingValue + 1 === item2) {
|
|
1807
1855
|
fillOther = `fill-${commaValue}`;
|
|
1808
1856
|
}
|
|
1809
|
-
return /* @__PURE__ */ createElement("svg", { ...sizing, viewBox: "0 0 30 29", "data-product-review-rating-fill":
|
|
1857
|
+
return /* @__PURE__ */ createElement("svg", { ...sizing, viewBox: "0 0 30 29", "data-product-review-rating-fill": item2 <= ratingValue ? "full" : fillOther, key: index }, /* @__PURE__ */ jsxRuntimeExports.jsx("use", { href: "#sledge-product-review-icons-rating-icon" }));
|
|
1810
1858
|
}),
|
|
1811
1859
|
withTotal ? /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge-product-review__rating-summary-total", children: [
|
|
1812
1860
|
"(",
|
|
@@ -1894,8 +1942,8 @@ const WidgetHeaderSort = ({ isFirstLoading, productReviewSort, dataSettings, set
|
|
|
1894
1942
|
align: "end",
|
|
1895
1943
|
prefixLabel: /* @__PURE__ */ jsxRuntimeExports.jsx(SwapIcon, { width: 16, height: 16, color: "currentColor" }),
|
|
1896
1944
|
prefixSelectedLabel: "Sort by",
|
|
1897
|
-
options: productReviewSort.map((
|
|
1898
|
-
const { name, value } =
|
|
1945
|
+
options: productReviewSort.map((item2) => {
|
|
1946
|
+
const { name, value } = item2;
|
|
1899
1947
|
return {
|
|
1900
1948
|
label: name,
|
|
1901
1949
|
value
|
|
@@ -2033,14 +2081,14 @@ const WidgetHeaderSummary = (props) => {
|
|
|
2033
2081
|
),
|
|
2034
2082
|
/* @__PURE__ */ jsxRuntimeExports.jsx(SkeletonLoading.Item, { width: "38px", height: "22px", color: "lighten", rounded: "md" })
|
|
2035
2083
|
] }, index);
|
|
2036
|
-
}) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge-product-review__widget-summary-dist", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge-product-review__widget-summary-dist-progress", children: [5, 4, 3, 2, 1].map((
|
|
2084
|
+
}) }) : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge-product-review__widget-summary-dist", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge-product-review__widget-summary-dist-progress", children: [5, 4, 3, 2, 1].map((item2, index) => {
|
|
2037
2085
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge-product-review__widget-summary-dist-progress-item", children: [
|
|
2038
2086
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2039
2087
|
Rating,
|
|
2040
2088
|
{
|
|
2041
2089
|
data: summaryData,
|
|
2042
2090
|
sledgeSettings,
|
|
2043
|
-
average:
|
|
2091
|
+
average: item2,
|
|
2044
2092
|
size: "sm",
|
|
2045
2093
|
withSkeletonLoading: false,
|
|
2046
2094
|
withTotal: false,
|
|
@@ -2050,7 +2098,7 @@ const WidgetHeaderSummary = (props) => {
|
|
|
2050
2098
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
2051
2099
|
Progress,
|
|
2052
2100
|
{
|
|
2053
|
-
value: String(ratingList[
|
|
2101
|
+
value: String(ratingList[item2]),
|
|
2054
2102
|
total: totalReview,
|
|
2055
2103
|
fillColor: display_summary_bar_fill_color,
|
|
2056
2104
|
outlineColor: display_summary_bar_outline_color
|
|
@@ -2058,7 +2106,7 @@ const WidgetHeaderSummary = (props) => {
|
|
|
2058
2106
|
),
|
|
2059
2107
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("small", { children: [
|
|
2060
2108
|
"(",
|
|
2061
|
-
ratingList[
|
|
2109
|
+
ratingList[item2],
|
|
2062
2110
|
")"
|
|
2063
2111
|
] })
|
|
2064
2112
|
] }, index);
|
|
@@ -2093,7 +2141,14 @@ const search = async (index, payload) => {
|
|
|
2093
2141
|
let headers = {
|
|
2094
2142
|
"Content-Type": "application/json"
|
|
2095
2143
|
};
|
|
2096
|
-
return await fetchApi(
|
|
2144
|
+
return await fetchApi({
|
|
2145
|
+
url,
|
|
2146
|
+
method: "POST",
|
|
2147
|
+
authorization: sledgeInstantSearchAuthApp,
|
|
2148
|
+
payload,
|
|
2149
|
+
headers,
|
|
2150
|
+
isSimpleRequest: false
|
|
2151
|
+
}).then((result) => result).catch(() => {
|
|
2097
2152
|
return;
|
|
2098
2153
|
});
|
|
2099
2154
|
};
|
|
@@ -2103,7 +2158,14 @@ const multiSearch = async (payload, token) => {
|
|
|
2103
2158
|
let headers = {
|
|
2104
2159
|
"Content-Type": "application/json"
|
|
2105
2160
|
};
|
|
2106
|
-
return await fetchApi(
|
|
2161
|
+
return await fetchApi({
|
|
2162
|
+
url,
|
|
2163
|
+
method: "POST",
|
|
2164
|
+
authorization: sledgeInstantSearchAuthApp,
|
|
2165
|
+
payload,
|
|
2166
|
+
headers,
|
|
2167
|
+
isSimpleRequest: false
|
|
2168
|
+
}).then((result) => result).catch(() => {
|
|
2107
2169
|
return;
|
|
2108
2170
|
});
|
|
2109
2171
|
};
|
|
@@ -2118,7 +2180,14 @@ const searchTrigger = async (data) => {
|
|
|
2118
2180
|
keyword,
|
|
2119
2181
|
result_count: resultCount
|
|
2120
2182
|
};
|
|
2121
|
-
return await fetchApi(
|
|
2183
|
+
return await fetchApi({
|
|
2184
|
+
url,
|
|
2185
|
+
method: "POST",
|
|
2186
|
+
authorization: sledgeAuthApp,
|
|
2187
|
+
payload,
|
|
2188
|
+
headers,
|
|
2189
|
+
isSimpleRequest: false
|
|
2190
|
+
}).then((result) => {
|
|
2122
2191
|
return result;
|
|
2123
2192
|
}).catch(() => {
|
|
2124
2193
|
return;
|
|
@@ -2136,7 +2205,14 @@ const productClickTrigger = async (data) => {
|
|
|
2136
2205
|
id: sanitizeDataId(productId)
|
|
2137
2206
|
}
|
|
2138
2207
|
};
|
|
2139
|
-
return await fetchApi(
|
|
2208
|
+
return await fetchApi({
|
|
2209
|
+
url,
|
|
2210
|
+
method: "POST",
|
|
2211
|
+
authorization: sledgeAuthApp,
|
|
2212
|
+
payload,
|
|
2213
|
+
headers,
|
|
2214
|
+
isSimpleRequest: false
|
|
2215
|
+
}).then((result) => {
|
|
2140
2216
|
return result;
|
|
2141
2217
|
}).catch(() => {
|
|
2142
2218
|
return;
|
|
@@ -2154,7 +2230,14 @@ const addToCartTrigger = async (data) => {
|
|
|
2154
2230
|
id: sanitizeDataId(productId)
|
|
2155
2231
|
}
|
|
2156
2232
|
};
|
|
2157
|
-
return await fetchApi(
|
|
2233
|
+
return await fetchApi({
|
|
2234
|
+
url,
|
|
2235
|
+
method: "POST",
|
|
2236
|
+
authorization: sledgeAuthApp,
|
|
2237
|
+
payload,
|
|
2238
|
+
headers,
|
|
2239
|
+
isSimpleRequest: false
|
|
2240
|
+
}).then((result) => {
|
|
2158
2241
|
return result;
|
|
2159
2242
|
}).catch(() => {
|
|
2160
2243
|
return;
|
|
@@ -2241,9 +2324,9 @@ const ProductGrid = ({
|
|
|
2241
2324
|
React__default.useEffect(() => {
|
|
2242
2325
|
onAfterRenderProduct && onAfterRenderProduct("success");
|
|
2243
2326
|
}, []);
|
|
2244
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__product-grid ${className}`, "data-grid-type": type, children: data == null ? void 0 : data.map((
|
|
2327
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__product-grid ${className}`, "data-grid-type": type, children: data == null ? void 0 : data.map((item2, index) => {
|
|
2245
2328
|
var _a, _b, _c;
|
|
2246
|
-
const { product, variants } =
|
|
2329
|
+
const { product, variants } = item2 || {};
|
|
2247
2330
|
const { id, title, image, url, vendor = "", currency } = product || {};
|
|
2248
2331
|
const { id: variant_id = "", title: variant_title = "", price = "", sku = "" } = (variants == null ? void 0 : variants.length) ? variants[0] : {};
|
|
2249
2332
|
let isLoadingAddToCart = clickedAddToCartId == variant_id;
|
|
@@ -2382,9 +2465,9 @@ const CollectionGrid = ({ className = "", data, cards, isComponentJsVersion, onA
|
|
|
2382
2465
|
React__default.useEffect(() => {
|
|
2383
2466
|
onAfterRenderCollection && onAfterRenderCollection("success");
|
|
2384
2467
|
}, []);
|
|
2385
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__collection-grid ${className}`, children: data.map((
|
|
2386
|
-
const { id, title, body_html, url, image } =
|
|
2387
|
-
const getCards = cards ? cards({ data:
|
|
2468
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__collection-grid ${className}`, children: data.map((item2, index) => {
|
|
2469
|
+
const { id, title, body_html, url, image } = item2;
|
|
2470
|
+
const getCards = cards ? cards({ data: item2 }) : null;
|
|
2388
2471
|
return cards ? /* @__PURE__ */ jsxRuntimeExports.jsx(React__default.Fragment, { children: isComponentJsVersion ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { dangerouslySetInnerHTML: { __html: getCards } }) : getCards }, index) : /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: url, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__collection-grid-card", children: [
|
|
2389
2472
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__collection-grid-card-image-wrapper", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__collection-grid-card-image", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: (image == null ? void 0 : image.src) || `${API_URL}/img/blank-image.png`, alt: "sledge-card-image", loading: "lazy" }) }) }),
|
|
2390
2473
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__collection-grid-card-content", children: [
|
|
@@ -2399,9 +2482,9 @@ const PageGrid = ({ className = "", data, cards, isComponentJsVersion, onAfterRe
|
|
|
2399
2482
|
React__default.useEffect(() => {
|
|
2400
2483
|
onAfterRenderPage && onAfterRenderPage("success");
|
|
2401
2484
|
}, []);
|
|
2402
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__page-grid ${className}`, children: data.map((
|
|
2403
|
-
const { id, title, body_html, url, image } =
|
|
2404
|
-
const getCards = cards ? cards({ data:
|
|
2485
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__page-grid ${className}`, children: data.map((item2, index) => {
|
|
2486
|
+
const { id, title, body_html, url, image } = item2;
|
|
2487
|
+
const getCards = cards ? cards({ data: item2 }) : null;
|
|
2405
2488
|
return cards ? /* @__PURE__ */ jsxRuntimeExports.jsx(React__default.Fragment, { children: isComponentJsVersion ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { dangerouslySetInnerHTML: { __html: getCards } }) : getCards }, index) : /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: url, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__page-grid-card", children: [
|
|
2406
2489
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__page-grid-card-image-wrapper", children: /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__page-grid-card-image", children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: (image == null ? void 0 : image.src) || `${API_URL}/img/blank-image.png`, alt: "sledge-card-image", loading: "lazy" }) }) }),
|
|
2407
2490
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__page-grid-card-content", children: [
|
|
@@ -2416,9 +2499,9 @@ const BlogGrid = ({ className = "", data, cards, isComponentJsVersion, onAfterRe
|
|
|
2416
2499
|
React__default.useEffect(() => {
|
|
2417
2500
|
onAfterRenderBlog && onAfterRenderBlog("success");
|
|
2418
2501
|
}, []);
|
|
2419
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__blog-grid ${className}`, children: data == null ? void 0 : data.map((
|
|
2420
|
-
const { id, title, created_at, url, image } =
|
|
2421
|
-
const getCards = cards ? cards({ data:
|
|
2502
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__blog-grid ${className}`, children: data == null ? void 0 : data.map((item2, index) => {
|
|
2503
|
+
const { id, title, created_at, url, image } = item2;
|
|
2504
|
+
const getCards = cards ? cards({ data: item2 }) : null;
|
|
2422
2505
|
return cards ? /* @__PURE__ */ jsxRuntimeExports.jsx(React__default.Fragment, { children: isComponentJsVersion ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { dangerouslySetInnerHTML: { __html: getCards } }) : getCards }, index) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__blog-grid-card", children: [
|
|
2423
2506
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__blog-grid-content", children: [
|
|
2424
2507
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__blog-grid-card-image", children: /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: url, children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: (image == null ? void 0 : image.src) || `${API_URL}/img/blank-image.png`, alt: "sledge-card-image", loading: "lazy" }) }) }),
|
|
@@ -2439,9 +2522,9 @@ const ArticleGrid = ({ className = "", data, cards, isComponentJsVersion, onAfte
|
|
|
2439
2522
|
React__default.useEffect(() => {
|
|
2440
2523
|
onAfterRenderArticle && onAfterRenderArticle("success");
|
|
2441
2524
|
}, []);
|
|
2442
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__article-grid ${className}`, children: data == null ? void 0 : data.map((
|
|
2443
|
-
const { id, title, created_at, summary_html, url, image } =
|
|
2444
|
-
const getCards = cards ? cards({ data:
|
|
2525
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: !(data == null ? void 0 : data.length) ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge__article-grid ${className}`, children: data == null ? void 0 : data.map((item2, index) => {
|
|
2526
|
+
const { id, title, created_at, summary_html, url, image } = item2;
|
|
2527
|
+
const getCards = cards ? cards({ data: item2 }) : null;
|
|
2445
2528
|
return cards ? /* @__PURE__ */ jsxRuntimeExports.jsx(React__default.Fragment, { children: isComponentJsVersion ? /* @__PURE__ */ jsxRuntimeExports.jsx("div", { dangerouslySetInnerHTML: { __html: getCards } }) : getCards }, index) : /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__article-grid-card", children: [
|
|
2446
2529
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge__article-grid-content", children: [
|
|
2447
2530
|
/* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__article-grid-card-image", children: /* @__PURE__ */ jsxRuntimeExports.jsx("a", { href: url, children: /* @__PURE__ */ jsxRuntimeExports.jsx("img", { src: (image == null ? void 0 : image.src) || `${API_URL}/img/blank-image.png`, alt: "sledge-card-image", loading: "lazy" }) }) }),
|
|
@@ -2832,6 +2915,7 @@ const SearchIconWidgetPopup = () => {
|
|
|
2832
2915
|
const { isRenderApp } = React__default.useContext(SledgeContext);
|
|
2833
2916
|
const { instantSearch: isRenderAppInstantSearch } = isRenderApp || {};
|
|
2834
2917
|
const [isLoading, setIsLoading] = React__default.useState(true);
|
|
2918
|
+
const [isHasData, setIsHasData] = React__default.useState(false);
|
|
2835
2919
|
const [showInfo, setShowInfo] = React__default.useState(false);
|
|
2836
2920
|
const [keyword, setKeyword] = React__default.useState("");
|
|
2837
2921
|
const [searchResultProduct, setSearchResultProduct] = React__default.useState([]);
|
|
@@ -2841,13 +2925,13 @@ const SearchIconWidgetPopup = () => {
|
|
|
2841
2925
|
const [suggestionSettings, setSuggestionSettings] = React__default.useState({});
|
|
2842
2926
|
const [suggestionIndex, setSuggestionIndex] = React__default.useState("");
|
|
2843
2927
|
const [handleFunctions, setHandleFunctions] = React__default.useState({
|
|
2844
|
-
onAfterAddToCart: (
|
|
2928
|
+
onAfterAddToCart: (state2) => {
|
|
2845
2929
|
},
|
|
2846
|
-
onAfterAddWishlist: (
|
|
2930
|
+
onAfterAddWishlist: (state2) => {
|
|
2847
2931
|
},
|
|
2848
|
-
onAfterRemoveWishlist: (
|
|
2932
|
+
onAfterRemoveWishlist: (state2) => {
|
|
2849
2933
|
},
|
|
2850
|
-
onAfterRenderProduct: (
|
|
2934
|
+
onAfterRenderProduct: (state2) => {
|
|
2851
2935
|
},
|
|
2852
2936
|
isJsVersion: null,
|
|
2853
2937
|
productCardsComponent: null,
|
|
@@ -2857,8 +2941,9 @@ const SearchIconWidgetPopup = () => {
|
|
|
2857
2941
|
});
|
|
2858
2942
|
const searchFieldRef = React__default.useRef(null);
|
|
2859
2943
|
const previousState = usePrevious({ keyword });
|
|
2860
|
-
const handleMultiSearch = async (
|
|
2944
|
+
const handleMultiSearch = async (params) => {
|
|
2861
2945
|
var _a2, _b2, _c2, _d2, _e2, _f2, _g2, _h2, _i2, _j2, _k2, _l2;
|
|
2946
|
+
const { data, onSearch = false, withFetchReviewInfo = false } = params;
|
|
2862
2947
|
setIsLoading(true);
|
|
2863
2948
|
const { tabs, suffix_index_product, hidden_tags, display, show_out_of_stock } = data;
|
|
2864
2949
|
const suggestion = ((_a2 = display == null ? void 0 : display.search) == null ? void 0 : _a2.suggestion) || {};
|
|
@@ -2919,6 +3004,7 @@ const SearchIconWidgetPopup = () => {
|
|
|
2919
3004
|
setSearchResultOther(valueSearchResultOther);
|
|
2920
3005
|
setSuggestionIndex(valueSuggestionIndex);
|
|
2921
3006
|
setIsLoading(false);
|
|
3007
|
+
setIsHasData(true);
|
|
2922
3008
|
};
|
|
2923
3009
|
const handleSettings = async (LOCAL_STORAGE_INSTANT_SEARCH_SETTING) => {
|
|
2924
3010
|
var _a2;
|
|
@@ -2929,7 +3015,10 @@ const SearchIconWidgetPopup = () => {
|
|
|
2929
3015
|
const { display } = response;
|
|
2930
3016
|
setDisplaySettings(display);
|
|
2931
3017
|
setSuggestionSettings((_a2 = display == null ? void 0 : display.search) == null ? void 0 : _a2.suggestion);
|
|
2932
|
-
await handleMultiSearch(
|
|
3018
|
+
await handleMultiSearch({
|
|
3019
|
+
data: response,
|
|
3020
|
+
withFetchReviewInfo: true
|
|
3021
|
+
});
|
|
2933
3022
|
};
|
|
2934
3023
|
React__default.useEffect(() => {
|
|
2935
3024
|
if (!isRenderAppInstantSearch)
|
|
@@ -2970,6 +3059,10 @@ const SearchIconWidgetPopup = () => {
|
|
|
2970
3059
|
}
|
|
2971
3060
|
handleSettings(localStorage.getItem(LOCAL_STORAGE_KEY.INSTANT_SEARCH_SETTING) || null);
|
|
2972
3061
|
}, [isRenderAppInstantSearch]);
|
|
3062
|
+
React__default.useEffect(() => {
|
|
3063
|
+
if (isHasData)
|
|
3064
|
+
SearchIconWidgetInitSelector();
|
|
3065
|
+
}, [isHasData]);
|
|
2973
3066
|
React__default.useEffect(() => {
|
|
2974
3067
|
showInfo ? document.body.classList.add("sledge__open-popup-state") : document.body.classList.remove("sledge__open-popup-state");
|
|
2975
3068
|
}, [showInfo]);
|
|
@@ -2978,7 +3071,10 @@ const SearchIconWidgetPopup = () => {
|
|
|
2978
3071
|
const INSTANT_SEARCH_SETTING = JSON.parse(localStorage.getItem(LOCAL_STORAGE_KEY.INSTANT_SEARCH_SETTING) || "");
|
|
2979
3072
|
const delayDebounceFn = setTimeout(() => {
|
|
2980
3073
|
if (INSTANT_SEARCH_SETTING)
|
|
2981
|
-
handleMultiSearch(
|
|
3074
|
+
handleMultiSearch({
|
|
3075
|
+
data: INSTANT_SEARCH_SETTING,
|
|
3076
|
+
onSearch: true
|
|
3077
|
+
});
|
|
2982
3078
|
}, 500);
|
|
2983
3079
|
return () => clearTimeout(delayDebounceFn);
|
|
2984
3080
|
}
|
|
@@ -3053,8 +3149,8 @@ const SearchIconWidgetPopup = () => {
|
|
|
3053
3149
|
setShowPopupComponent: setShowInfo
|
|
3054
3150
|
}
|
|
3055
3151
|
) : null,
|
|
3056
|
-
searchResultOther && searchResultOther.map((
|
|
3057
|
-
const { hits, name } =
|
|
3152
|
+
searchResultOther && searchResultOther.map((item2, index) => {
|
|
3153
|
+
const { hits, name } = item2;
|
|
3058
3154
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(React__default.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3059
3155
|
Global.OtherIndexLists,
|
|
3060
3156
|
{
|
|
@@ -3074,8 +3170,8 @@ const SearchIconWidgetPopup = () => {
|
|
|
3074
3170
|
{
|
|
3075
3171
|
sourceApp: "instant-search",
|
|
3076
3172
|
type: "medium",
|
|
3077
|
-
data: searchResultProduct.map((
|
|
3078
|
-
const { variants, ...product } =
|
|
3173
|
+
data: searchResultProduct.map((item2) => {
|
|
3174
|
+
const { variants, ...product } = item2 || {};
|
|
3079
3175
|
return {
|
|
3080
3176
|
product,
|
|
3081
3177
|
variants
|
|
@@ -3109,8 +3205,8 @@ const SearchIconWidgetPopup = () => {
|
|
|
3109
3205
|
{
|
|
3110
3206
|
sourceApp: "instant-search",
|
|
3111
3207
|
type: "medium",
|
|
3112
|
-
data: suggestionSettings[suggestionIndex].products.list.map((
|
|
3113
|
-
const { variants, ...product } =
|
|
3208
|
+
data: suggestionSettings[suggestionIndex].products.list.map((item2) => {
|
|
3209
|
+
const { variants, ...product } = item2 || {};
|
|
3114
3210
|
return {
|
|
3115
3211
|
product,
|
|
3116
3212
|
variants
|
|
@@ -3151,6 +3247,73 @@ const SearchIconWidgetPopup = () => {
|
|
|
3151
3247
|
] })
|
|
3152
3248
|
] }) });
|
|
3153
3249
|
};
|
|
3250
|
+
const SearchIconWidgetInitSelector = () => {
|
|
3251
|
+
let element = Array.from(document.querySelectorAll(SELECTOR.INSTANT_SEARCH.ELEMENT_SEARCH_ICON_WIDGET));
|
|
3252
|
+
detectInitSelector({
|
|
3253
|
+
element,
|
|
3254
|
+
init: () => {
|
|
3255
|
+
if (element.length) {
|
|
3256
|
+
element.map((item) => {
|
|
3257
|
+
var _a, _b, _c, _d;
|
|
3258
|
+
if (item) {
|
|
3259
|
+
const ICON_SIZE = item.getAttribute(DATASET_ATTRIBUTE_KEY.GLOBAL.ICON_SIZE);
|
|
3260
|
+
const ON_AFTER_ADD_WISHLIST = item.getAttribute(DATASET_ATTRIBUTE_KEY.GLOBAL.ON_AFTER_ADD_WISHLIST);
|
|
3261
|
+
const ON_AFTER_REMOVE_WISHLIST = item.getAttribute(DATASET_ATTRIBUTE_KEY.GLOBAL.ON_AFTER_REMOVE_WISHLIST);
|
|
3262
|
+
const ON_AFTER_RENDER_PRODUCT = item.getAttribute(DATASET_ATTRIBUTE_KEY.GLOBAL.ON_AFTER_RENDER_PRODUCT);
|
|
3263
|
+
const PRODUCT_CARDS = (_a = item.querySelector(SELECTOR.GLOBAL.ELEMENT_CUSTOM_COMPONENTS)) == null ? void 0 : _a.getAttribute(DATASET_ATTRIBUTE_KEY.GLOBAL.RENDER_PRODUCT_CARD);
|
|
3264
|
+
const SUGGESTION_KEYWORD_LISTS = (_b = item.querySelector(SELECTOR.GLOBAL.ELEMENT_CUSTOM_COMPONENTS)) == null ? void 0 : _b.getAttribute(DATASET_ATTRIBUTE_KEY.INSTANT_SEARCH.RENDER_SUGGESTION_KEYWORD_LIST);
|
|
3265
|
+
const OTHER_INDEX_LISTS = (_c = item.querySelector(SELECTOR.GLOBAL.ELEMENT_CUSTOM_COMPONENTS)) == null ? void 0 : _c.getAttribute(DATASET_ATTRIBUTE_KEY.INSTANT_SEARCH.RENDER_OTHER_INDEX_LIST);
|
|
3266
|
+
const SEARCH_VIEW_MORE_RESULT = (_d = item.querySelector(SELECTOR.GLOBAL.ELEMENT_CUSTOM_COMPONENTS)) == null ? void 0 : _d.getAttribute(DATASET_ATTRIBUTE_KEY.INSTANT_SEARCH.RENDER_SEARCH_VIEW_MORE_RESULT);
|
|
3267
|
+
item.innerHTML = "";
|
|
3268
|
+
client.createRoot(item).render(
|
|
3269
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(React__default.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3270
|
+
SledgeContext.Provider,
|
|
3271
|
+
{
|
|
3272
|
+
value: {
|
|
3273
|
+
isRenderApp: {
|
|
3274
|
+
wishlist: true,
|
|
3275
|
+
productReview: true,
|
|
3276
|
+
instantSearch: true
|
|
3277
|
+
},
|
|
3278
|
+
sledgeAnonymId: localStorage.getItem(LOCAL_STORAGE_KEY.ANONYM_ID) || "",
|
|
3279
|
+
isJsVersion: true
|
|
3280
|
+
},
|
|
3281
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3282
|
+
SearchIconWidget,
|
|
3283
|
+
{
|
|
3284
|
+
size: ICON_SIZE || "sm",
|
|
3285
|
+
onAfterAddWishlist: (state) => {
|
|
3286
|
+
if (item)
|
|
3287
|
+
ON_AFTER_ADD_WISHLIST && eval(ON_AFTER_ADD_WISHLIST) && eval(ON_AFTER_ADD_WISHLIST)({ state });
|
|
3288
|
+
},
|
|
3289
|
+
onAfterRemoveWishlist: (state) => {
|
|
3290
|
+
if (item)
|
|
3291
|
+
ON_AFTER_REMOVE_WISHLIST && eval(ON_AFTER_REMOVE_WISHLIST) && eval(ON_AFTER_REMOVE_WISHLIST)({ state });
|
|
3292
|
+
},
|
|
3293
|
+
onAfterRenderProduct: (state) => {
|
|
3294
|
+
if (item)
|
|
3295
|
+
ON_AFTER_RENDER_PRODUCT && eval(ON_AFTER_RENDER_PRODUCT) && eval(ON_AFTER_RENDER_PRODUCT)({ state });
|
|
3296
|
+
},
|
|
3297
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
3298
|
+
CustomComponents,
|
|
3299
|
+
{
|
|
3300
|
+
suggestionKeywordList: SUGGESTION_KEYWORD_LISTS ? eval(SUGGESTION_KEYWORD_LISTS) : null,
|
|
3301
|
+
otherIndexList: OTHER_INDEX_LISTS ? eval(OTHER_INDEX_LISTS) : null,
|
|
3302
|
+
productCard: PRODUCT_CARDS ? eval(PRODUCT_CARDS) : null,
|
|
3303
|
+
searchViewMoreResult: SEARCH_VIEW_MORE_RESULT ? eval(SEARCH_VIEW_MORE_RESULT) : null
|
|
3304
|
+
}
|
|
3305
|
+
)
|
|
3306
|
+
}
|
|
3307
|
+
)
|
|
3308
|
+
}
|
|
3309
|
+
) })
|
|
3310
|
+
);
|
|
3311
|
+
}
|
|
3312
|
+
});
|
|
3313
|
+
}
|
|
3314
|
+
}
|
|
3315
|
+
});
|
|
3316
|
+
};
|
|
3154
3317
|
const SearchResultWidget = (props) => {
|
|
3155
3318
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
|
|
3156
3319
|
const { isRenderApp, isJsVersion } = React__default.useContext(SledgeContext);
|
|
@@ -3293,8 +3456,8 @@ const SearchResultWidget = (props) => {
|
|
|
3293
3456
|
let value = facet[0];
|
|
3294
3457
|
let items = [];
|
|
3295
3458
|
if (value === "variants.inventory_quantity") {
|
|
3296
|
-
Object.keys(facetDistribution[value]).map((
|
|
3297
|
-
return Boolean(Number(
|
|
3459
|
+
Object.keys(facetDistribution[value]).map((item2) => {
|
|
3460
|
+
return Boolean(Number(item2)) ? facetDistribution[value][item2] : 0;
|
|
3298
3461
|
});
|
|
3299
3462
|
items = [
|
|
3300
3463
|
{
|
|
@@ -3305,11 +3468,11 @@ const SearchResultWidget = (props) => {
|
|
|
3305
3468
|
} else if (value === "variants.price") {
|
|
3306
3469
|
items = facetStats[value];
|
|
3307
3470
|
} else {
|
|
3308
|
-
items = Object.keys(facetDistribution[value]).map((
|
|
3471
|
+
items = Object.keys(facetDistribution[value]).map((item2) => {
|
|
3309
3472
|
return {
|
|
3310
|
-
name:
|
|
3311
|
-
value:
|
|
3312
|
-
total: facetDistribution[value][
|
|
3473
|
+
name: item2,
|
|
3474
|
+
value: item2,
|
|
3475
|
+
total: facetDistribution[value][item2] || 0
|
|
3313
3476
|
};
|
|
3314
3477
|
});
|
|
3315
3478
|
}
|
|
@@ -3613,8 +3776,8 @@ const SearchResultWidget = (props) => {
|
|
|
3613
3776
|
] })
|
|
3614
3777
|
] });
|
|
3615
3778
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge-instant-search__result-container", ref: searchResultContainerRef, children: [
|
|
3616
|
-
isFirstLoading ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${layoutType === "default" && (allowedTabs == null ? void 0 : allowedTabs.length) ? "sledge-instant-search__result-tab" : "sledge-instant-search__result-tab-no-index"}`, children: layoutType === "default" && (allowedTabs == null ? void 0 : allowedTabs.length) ? /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { className: "sledge-instant-search__result-tab-list", children: allowedTabs.map((
|
|
3617
|
-
const { name, index, total } =
|
|
3779
|
+
isFirstLoading ? null : /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `${layoutType === "default" && (allowedTabs == null ? void 0 : allowedTabs.length) ? "sledge-instant-search__result-tab" : "sledge-instant-search__result-tab-no-index"}`, children: layoutType === "default" && (allowedTabs == null ? void 0 : allowedTabs.length) ? /* @__PURE__ */ jsxRuntimeExports.jsx("ul", { className: "sledge-instant-search__result-tab-list", children: allowedTabs.map((item2) => {
|
|
3780
|
+
const { name, index, total } = item2;
|
|
3618
3781
|
let isActive = clickedTabIndexId === index;
|
|
3619
3782
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("li", { onClick: (e) => handleChangeTabIndex(index, name), className: `${isActive ? "sledge-instant-search__result-tab-list-item-active" : ""}`, children: [
|
|
3620
3783
|
name,
|
|
@@ -3936,13 +4099,13 @@ const ResultProduct = (props) => {
|
|
|
3936
4099
|
let isCustom = ["variants.inventory_quantity"].includes(value);
|
|
3937
4100
|
let isRange = ["variants.price"].includes(value);
|
|
3938
4101
|
let isArray = ["tags"].includes(value);
|
|
3939
|
-
let items = Array.isArray(facet[1]) && ((_a3 = facet[1]) == null ? void 0 : _a3.length) > 1 ? isRange ? `${value} >= ${facet[1][0]} AND ${value} <= ${facet[1][1]}` : isArray ? `${value} IN [${facet[1]}]` : (_b3 = facet[1]) == null ? void 0 : _b3.map((
|
|
3940
|
-
return isCustom ? `${value} ${
|
|
4102
|
+
let items = Array.isArray(facet[1]) && ((_a3 = facet[1]) == null ? void 0 : _a3.length) > 1 ? isRange ? `${value} >= ${facet[1][0]} AND ${value} <= ${facet[1][1]}` : isArray ? `${value} IN [${facet[1]}]` : (_b3 = facet[1]) == null ? void 0 : _b3.map((item2) => {
|
|
4103
|
+
return isCustom ? `${value} ${item2}` : `${value} = '${item2}'`;
|
|
3941
4104
|
}).join(" OR ") : isCustom ? `${value} ${facet[1]}` : isArray ? `${value} IN [${facet[1]}]` : `${value} = '${facet[1]}'`;
|
|
3942
4105
|
return items;
|
|
3943
4106
|
} else
|
|
3944
4107
|
return null;
|
|
3945
|
-
}).filter((
|
|
4108
|
+
}).filter((item2) => item2);
|
|
3946
4109
|
if (hiddenTags == null ? void 0 : hiddenTags.length)
|
|
3947
4110
|
filters.push(`tags NOT IN [${hiddenTags}]`);
|
|
3948
4111
|
if (collectionId)
|
|
@@ -3984,7 +4147,10 @@ const ResultProduct = (props) => {
|
|
|
3984
4147
|
const handlePageChange = (page) => {
|
|
3985
4148
|
setCurrentPage(page);
|
|
3986
4149
|
setTimeout(() => {
|
|
3987
|
-
scrollToElement(
|
|
4150
|
+
scrollToElement({
|
|
4151
|
+
element: searchResultContainerRef.current,
|
|
4152
|
+
headerOffset: 50
|
|
4153
|
+
});
|
|
3988
4154
|
}, 200);
|
|
3989
4155
|
};
|
|
3990
4156
|
const handleChangeKeyword = (value) => {
|
|
@@ -4057,17 +4223,17 @@ const ResultProduct = (props) => {
|
|
|
4057
4223
|
] })
|
|
4058
4224
|
] });
|
|
4059
4225
|
} else if (display.toLowerCase() === "checkbox" && (items == null ? void 0 : items.length)) {
|
|
4060
|
-
blockComponent = /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: items == null ? void 0 : items.map((
|
|
4226
|
+
blockComponent = /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: items == null ? void 0 : items.map((item2, index) => {
|
|
4061
4227
|
var _a3;
|
|
4062
4228
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4063
4229
|
Checkbox,
|
|
4064
4230
|
{
|
|
4065
4231
|
id: `${value}_${index}`,
|
|
4066
4232
|
name: value,
|
|
4067
|
-
value:
|
|
4068
|
-
label: `${
|
|
4233
|
+
value: item2.value,
|
|
4234
|
+
label: `${item2.name}${item2.total !== void 0 && isShowNumberMatchingProduct ? ` (${item2.total})` : ""}`,
|
|
4069
4235
|
onClick: (e) => handleFilterChange(value, e.currentTarget.value),
|
|
4070
|
-
defaultChecked: clickedFacets && ((_a3 = clickedFacets[value]) == null ? void 0 : _a3.includes(
|
|
4236
|
+
defaultChecked: clickedFacets && ((_a3 = clickedFacets[value]) == null ? void 0 : _a3.includes(item2.value)),
|
|
4071
4237
|
labelStyle: filter_option_style
|
|
4072
4238
|
}
|
|
4073
4239
|
) }, index);
|
|
@@ -4079,8 +4245,8 @@ const ResultProduct = (props) => {
|
|
|
4079
4245
|
id: value,
|
|
4080
4246
|
name: value,
|
|
4081
4247
|
onValueChange: (getValue) => handleFilterChange(value, getValue, true),
|
|
4082
|
-
items: items == null ? void 0 : items.map((
|
|
4083
|
-
const { name, value: value2, total } =
|
|
4248
|
+
items: items == null ? void 0 : items.map((item2) => {
|
|
4249
|
+
const { name, value: value2, total } = item2;
|
|
4084
4250
|
return {
|
|
4085
4251
|
label: `${name} ${total !== void 0 && isShowNumberMatchingProduct ? ` (${total})` : ""}`,
|
|
4086
4252
|
value: value2
|
|
@@ -4097,8 +4263,8 @@ const ResultProduct = (props) => {
|
|
|
4097
4263
|
placeholder: `Select ${label}`,
|
|
4098
4264
|
name: value,
|
|
4099
4265
|
onValueChange: (getValue) => handleFilterChange(value, getValue, true),
|
|
4100
|
-
items: items == null ? void 0 : items.map((
|
|
4101
|
-
const { name, value: value2, total } =
|
|
4266
|
+
items: items == null ? void 0 : items.map((item2) => {
|
|
4267
|
+
const { name, value: value2, total } = item2;
|
|
4102
4268
|
return {
|
|
4103
4269
|
label: `${name} ${total !== void 0 && isShowNumberMatchingProduct ? ` (${total})` : ""}`,
|
|
4104
4270
|
value: value2
|
|
@@ -4108,19 +4274,19 @@ const ResultProduct = (props) => {
|
|
|
4108
4274
|
}
|
|
4109
4275
|
) });
|
|
4110
4276
|
} else if (display.toLowerCase() === "swatch" && (items == null ? void 0 : items.length)) {
|
|
4111
|
-
blockComponent = /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: items == null ? void 0 : items.map((
|
|
4277
|
+
blockComponent = /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: items == null ? void 0 : items.map((item2, index) => {
|
|
4112
4278
|
var _a3;
|
|
4113
|
-
let getColorSwatch = (colorSwatches == null ? void 0 : colorSwatches.filter(({ name }) => name == null ? void 0 : name.includes(
|
|
4279
|
+
let getColorSwatch = (colorSwatches == null ? void 0 : colorSwatches.filter(({ name }) => name == null ? void 0 : name.includes(item2.value))[0]) || {};
|
|
4114
4280
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("li", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4115
4281
|
ColorSwatch,
|
|
4116
4282
|
{
|
|
4117
4283
|
id: `${value}_${index}`,
|
|
4118
4284
|
name: value,
|
|
4119
|
-
value:
|
|
4285
|
+
value: item2.value,
|
|
4120
4286
|
rgb: getColorSwatch == null ? void 0 : getColorSwatch.rgb,
|
|
4121
4287
|
image: getColorSwatch == null ? void 0 : getColorSwatch.image,
|
|
4122
4288
|
onClick: (e) => handleFilterChange(value, e.currentTarget.value),
|
|
4123
|
-
defaultChecked: clickedFacets && ((_a3 = clickedFacets[value]) == null ? void 0 : _a3.includes(
|
|
4289
|
+
defaultChecked: clickedFacets && ((_a3 = clickedFacets[value]) == null ? void 0 : _a3.includes(item2.value))
|
|
4124
4290
|
}
|
|
4125
4291
|
) }, index);
|
|
4126
4292
|
}) });
|
|
@@ -4189,11 +4355,11 @@ const ResultProduct = (props) => {
|
|
|
4189
4355
|
label: getLabel,
|
|
4190
4356
|
name: getName,
|
|
4191
4357
|
value: facet[1]
|
|
4192
|
-
}) : (_b2 = facet[1]) == null ? void 0 : _b2.map((
|
|
4358
|
+
}) : (_b2 = facet[1]) == null ? void 0 : _b2.map((item2) => {
|
|
4193
4359
|
dataClickedFacets.push({
|
|
4194
4360
|
label: getLabel,
|
|
4195
4361
|
name: getName,
|
|
4196
|
-
value:
|
|
4362
|
+
value: item2
|
|
4197
4363
|
});
|
|
4198
4364
|
}) : dataClickedFacets.push({
|
|
4199
4365
|
label: getLabel,
|
|
@@ -4276,8 +4442,8 @@ const ResultProduct = (props) => {
|
|
|
4276
4442
|
fill: "black"
|
|
4277
4443
|
}
|
|
4278
4444
|
) }),
|
|
4279
|
-
options: allowedSorts.map((
|
|
4280
|
-
const { label, value } =
|
|
4445
|
+
options: allowedSorts.map((item2) => {
|
|
4446
|
+
const { label, value } = item2;
|
|
4281
4447
|
return {
|
|
4282
4448
|
label,
|
|
4283
4449
|
value
|
|
@@ -4294,10 +4460,10 @@ const ResultProduct = (props) => {
|
|
|
4294
4460
|
SelectField,
|
|
4295
4461
|
{
|
|
4296
4462
|
align: "end",
|
|
4297
|
-
options: displaySettings.search.allowed_limit.map((
|
|
4463
|
+
options: displaySettings.search.allowed_limit.map((item2) => {
|
|
4298
4464
|
return {
|
|
4299
|
-
label:
|
|
4300
|
-
value:
|
|
4465
|
+
label: item2,
|
|
4466
|
+
value: item2
|
|
4301
4467
|
};
|
|
4302
4468
|
}),
|
|
4303
4469
|
value: clickedLimitId,
|
|
@@ -4318,8 +4484,8 @@ const ResultProduct = (props) => {
|
|
|
4318
4484
|
{
|
|
4319
4485
|
sourceApp: "instant-search",
|
|
4320
4486
|
type: "large",
|
|
4321
|
-
data: searchResult.map((
|
|
4322
|
-
const { variants, ...product } =
|
|
4487
|
+
data: searchResult.map((item2) => {
|
|
4488
|
+
const { variants, ...product } = item2 || {};
|
|
4323
4489
|
return {
|
|
4324
4490
|
product,
|
|
4325
4491
|
variants
|
|
@@ -4419,7 +4585,10 @@ const ResultCategory = (props) => {
|
|
|
4419
4585
|
const handlePageChange = (page) => {
|
|
4420
4586
|
setCurrentPage(page);
|
|
4421
4587
|
setTimeout(() => {
|
|
4422
|
-
scrollToElement(
|
|
4588
|
+
scrollToElement({
|
|
4589
|
+
element: searchResultContainerRef.current,
|
|
4590
|
+
headerOffset: 50
|
|
4591
|
+
});
|
|
4423
4592
|
}, 200);
|
|
4424
4593
|
};
|
|
4425
4594
|
React__default.useEffect(() => {
|
|
@@ -4664,8 +4833,8 @@ const SearchWidget = (props) => {
|
|
|
4664
4833
|
isComponentJsVersion: isJsVersion
|
|
4665
4834
|
}
|
|
4666
4835
|
) : null,
|
|
4667
|
-
searchResultOther.map((
|
|
4668
|
-
const { hits, name } =
|
|
4836
|
+
searchResultOther.map((item2, index) => {
|
|
4837
|
+
const { hits, name } = item2;
|
|
4669
4838
|
return /* @__PURE__ */ jsxRuntimeExports.jsx(React__default.Fragment, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(Global.OtherIndexLists, { listsComponent: otherIndexListsComponent, name, items: hits, isComponentJsVersion: isJsVersion }) }, index);
|
|
4670
4839
|
})
|
|
4671
4840
|
] }),
|
|
@@ -4676,8 +4845,8 @@ const SearchWidget = (props) => {
|
|
|
4676
4845
|
{
|
|
4677
4846
|
sourceApp: "instant-search",
|
|
4678
4847
|
type: "small",
|
|
4679
|
-
data: searchResultProduct.map((
|
|
4680
|
-
const { variants, ...product } =
|
|
4848
|
+
data: searchResultProduct.map((item2) => {
|
|
4849
|
+
const { variants, ...product } = item2 || {};
|
|
4681
4850
|
return {
|
|
4682
4851
|
product,
|
|
4683
4852
|
variants
|
|
@@ -4709,8 +4878,8 @@ const SearchWidget = (props) => {
|
|
|
4709
4878
|
{
|
|
4710
4879
|
sourceApp: "instant-search",
|
|
4711
4880
|
type: "small",
|
|
4712
|
-
data: suggestionSettings[suggestionIndex].products.list.map((
|
|
4713
|
-
const { variants, ...product } =
|
|
4881
|
+
data: suggestionSettings[suggestionIndex].products.list.map((item2) => {
|
|
4882
|
+
const { variants, ...product } = item2 || {};
|
|
4714
4883
|
return {
|
|
4715
4884
|
product,
|
|
4716
4885
|
variants
|