@sledge-app/react-instant-search 1.0.68 → 1.0.69
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/SearchResultWidget/Atoms.d.ts +1 -0
- package/dist/components/SearchResultWidget/Atoms.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 +124 -273
- package/dist/sledge-react-instant-search.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +1 -1
|
@@ -9,79 +9,6 @@ const API_URL = "https://api.sledge-app.com";
|
|
|
9
9
|
const INSTANT_SEARCH_ENGINE_URL = "https://instant-search-engine.sledge-app.com";
|
|
10
10
|
const CDN_URL = "https://sledgeassets.nyc3.cdn.digitaloceanspaces.com";
|
|
11
11
|
const SELECTOR_ATTRIBUTE_KEY = "data-component";
|
|
12
|
-
const DATASET_ATTRIBUTE_KEY = {
|
|
13
|
-
GLOBAL: {
|
|
14
|
-
ON_AFTER_ADD_WISHLIST: "data-on-after-add-wishlist",
|
|
15
|
-
ON_AFTER_REMOVE_WISHLIST: "data-on-after-remove-wishlist",
|
|
16
|
-
ON_AFTER_ADD_TO_CART: "data-on-after-add-to-cart",
|
|
17
|
-
ON_AFTER_ADD_REVIEW: "data-on-after-add-review",
|
|
18
|
-
ON_AFTER_RENDER_PRODUCT: "data-on-after-render-product",
|
|
19
|
-
PRODUCT_ID: "data-product-id",
|
|
20
|
-
PRODUCT_VARIANT_ID: "data-product-variant-id",
|
|
21
|
-
PRODUCT_NAME: "data-product-name",
|
|
22
|
-
PRODUCT_VENDOR: "data-product-vendor",
|
|
23
|
-
PRODUCT_SKU: "data-product-sku",
|
|
24
|
-
PRODUCT_VARIANT_NAME: "data-product-variant-name",
|
|
25
|
-
PRODUCT_LINK: "data-product-link",
|
|
26
|
-
PRODUCT_IMAGE: "data-product-image",
|
|
27
|
-
PRODUCT_CURRENCY: "data-product-currency",
|
|
28
|
-
PRODUCT_PRICE: "data-product-price",
|
|
29
|
-
USER_ID: "data-user-id",
|
|
30
|
-
USER_EMAIL: "data-user-email",
|
|
31
|
-
USER_FULLNAME: "data-user-fullname",
|
|
32
|
-
COLLECTION_ID: "data-collection-id",
|
|
33
|
-
COLLECTION_NAME: "data-collection-name",
|
|
34
|
-
WIDTH_ELEMENT: "data-width-element",
|
|
35
|
-
ICON_SIZE: "data-icon-size",
|
|
36
|
-
API_KEY: "data-api-key",
|
|
37
|
-
INSTANT_SEARCH_API_KEY: "data-instant-search-api-key",
|
|
38
|
-
RENDER_PRODUCT_CARD: "data-render-product-card",
|
|
39
|
-
WITH_SKELETON_LOADING: "data-with-skeleton-loading",
|
|
40
|
-
SECTION_TITLE: "data-section-title",
|
|
41
|
-
SECTION_DESCRIPTION: "data-section-description",
|
|
42
|
-
USE_SLIDER: "data-use-slider",
|
|
43
|
-
FILL_COLOR: "data-fill-color",
|
|
44
|
-
OUTLINE_COLOR: "data-outline-color",
|
|
45
|
-
POSITION_WIDGET: "data-position-widget"
|
|
46
|
-
},
|
|
47
|
-
WISHLIST: {
|
|
48
|
-
SHARE_ID: "data-share-id",
|
|
49
|
-
QUERY_SHARE_ID: "data-query-share-id",
|
|
50
|
-
RENDER_WISHLIST_WIDGET_ALERT: "data-render-wishlist-widget-alert",
|
|
51
|
-
USE_PROXY_URL: "data-use-proxy-url",
|
|
52
|
-
LIMIT_OPTIONS: "data-limit-options"
|
|
53
|
-
},
|
|
54
|
-
PRODUCT_REVIEW: {
|
|
55
|
-
RATING_SIZE: "data-rating-size",
|
|
56
|
-
RATING_TOTAL: "data-rating-total",
|
|
57
|
-
RATING_AVERAGE: "data-rating-average",
|
|
58
|
-
RENDER_REVIEW_PRODUCT_INFO: "data-render-review-product-info",
|
|
59
|
-
TRUST_BADGE_VARIANT: "data-trust-badge-variant",
|
|
60
|
-
SHOW_RATING_AVERAGE: "data-show-rating-average"
|
|
61
|
-
},
|
|
62
|
-
INSTANT_SEARCH: {
|
|
63
|
-
ON_AFTER_RENDER_COLLECTION: "data-on-after-render-collection",
|
|
64
|
-
ON_AFTER_RENDER_PAGE: "data-on-after-render-page",
|
|
65
|
-
ON_AFTER_RENDER_BLOG: "data-on-after-render-blog",
|
|
66
|
-
ON_AFTER_RENDER_ARTICLE: "data-on-after-render-article",
|
|
67
|
-
QUERY_KEYWORD: "data-query-keyword",
|
|
68
|
-
QUERY_SORT_BY: "data-query-sort-by",
|
|
69
|
-
QUERY_PAGE: "data-query-page",
|
|
70
|
-
QUERY_LIMIT: "data-query-limit",
|
|
71
|
-
URL_SEARCH_RESULT: "data-url-search-result",
|
|
72
|
-
RENDER_SUGGESTION_KEYWORD_LIST: "data-render-suggestion-keyword-list",
|
|
73
|
-
RENDER_OTHER_INDEX_LIST: "data-render-other-index-list",
|
|
74
|
-
RENDER_SEARCH_VIEW_MORE_RESULT: "data-render-search-view-more-result",
|
|
75
|
-
RENDER_COLLECTION_CARD: "data-render-collection-card",
|
|
76
|
-
RENDER_PAGE_CARD: "data-render-page-card",
|
|
77
|
-
RENDER_BLOG_CARD: "data-render-blog-card",
|
|
78
|
-
RENDER_ARTICLE_CARD: "data-render-article-card"
|
|
79
|
-
},
|
|
80
|
-
PRODUCT_RECOMMENDATION: {
|
|
81
|
-
DISPLAY_LIMIT: "data-display-limit",
|
|
82
|
-
HIDDEN_PRODUCT_IDS: "data-hidden-product-ids"
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
12
|
const LOCAL_STORAGE_KEY = {
|
|
86
13
|
ANONYM_ID: "sledge-anonym-id",
|
|
87
14
|
AUTH_APP: "sledge-auth-app",
|
|
@@ -95,7 +22,8 @@ const LOCAL_STORAGE_KEY = {
|
|
|
95
22
|
ISSUED_AUTH_APP: "sledge-issued-auth-app",
|
|
96
23
|
EXPIRED_AUTH_APP: "sledge-expired-auth-app",
|
|
97
24
|
RECENTLY_VIEWED_APP: "sledge-recently-viewed",
|
|
98
|
-
LIMIT_PRODUCT: "sledge-limit-product"
|
|
25
|
+
LIMIT_PRODUCT: "sledge-limit-product",
|
|
26
|
+
WISHLIST_BADGE_COUNTER: "sledge-wishlist-badge-counter"
|
|
99
27
|
};
|
|
100
28
|
const INTERNAL_SELECTOR_VALUE = {
|
|
101
29
|
ELEMENT_TOAST_NOTIFICATION: "toast-notification",
|
|
@@ -123,6 +51,7 @@ const SELECTOR = {
|
|
|
123
51
|
},
|
|
124
52
|
WISHLIST: {
|
|
125
53
|
ELEMENT_BADGE: `[${SELECTOR_ATTRIBUTE_KEY}="wishlist-badge"]`,
|
|
54
|
+
ELEMENT_BADGE_COUNTER: `[${SELECTOR_ATTRIBUTE_KEY}="wishlist-badge-counter"]`,
|
|
126
55
|
ELEMENT_BADGE_MENU_ITEM: `[href="#sledge-wishlist-badge-menu-item"]`,
|
|
127
56
|
ELEMENT_TRIGGER: `[${SELECTOR_ATTRIBUTE_KEY}="wishlist-trigger"]`,
|
|
128
57
|
ELEMENT_WIDGET: `[${SELECTOR_ATTRIBUTE_KEY}="wishlist-widget"]`,
|
|
@@ -721,13 +650,14 @@ const Pagination = (props) => {
|
|
|
721
650
|
] });
|
|
722
651
|
};
|
|
723
652
|
const RadioGroup$1 = "";
|
|
724
|
-
const rowRenderer = ({ virtualized, item, id, labelStyle }) => {
|
|
725
|
-
const { index, key = "", style = {} } = virtualized || {};
|
|
653
|
+
const rowRenderer = ({ virtualized, item, id, labelStyle, useVirtualized }) => {
|
|
654
|
+
const { index, key = "", style = {}, isScrolling = false, isVisible = false } = virtualized || {};
|
|
726
655
|
const { label, value } = item;
|
|
727
|
-
|
|
656
|
+
const content = /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
728
657
|
/* @__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" }) }),
|
|
729
658
|
/* @__PURE__ */ jsxRuntimeExports.jsx("label", { className: "sledge__radio-group-label", htmlFor: `${id}${index}`, style: labelStyle, children: label })
|
|
730
|
-
] }
|
|
659
|
+
] });
|
|
660
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__radio-group-item-flex", style, children: !useVirtualized ? content : !isVisible && isScrolling ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingDots, {}) : content }, key || index);
|
|
731
661
|
};
|
|
732
662
|
const RadioGroup = ({ id, name, required, defaultValue, items, labelStyle = {}, onValueChange, scrollElement, useVirtualized = false }) => {
|
|
733
663
|
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: "sledge__radio-group-wrapper", children: /* @__PURE__ */ jsxRuntimeExports.jsx("form", { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
@@ -748,15 +678,18 @@ const RadioGroup = ({ id, name, required, defaultValue, items, labelStyle = {},
|
|
|
748
678
|
},
|
|
749
679
|
rowCount: items == null ? void 0 : items.length,
|
|
750
680
|
rowHeight: 36,
|
|
751
|
-
rowRenderer: ({ index, key, style }) => rowRenderer({
|
|
681
|
+
rowRenderer: ({ index, key, style, isScrolling, isVisible }) => rowRenderer({
|
|
752
682
|
virtualized: {
|
|
753
683
|
index,
|
|
754
684
|
key,
|
|
755
|
-
style
|
|
685
|
+
style,
|
|
686
|
+
isScrolling,
|
|
687
|
+
isVisible
|
|
756
688
|
},
|
|
757
689
|
item: items[index],
|
|
758
690
|
id,
|
|
759
|
-
labelStyle
|
|
691
|
+
labelStyle,
|
|
692
|
+
useVirtualized
|
|
760
693
|
})
|
|
761
694
|
}
|
|
762
695
|
) : items.map(
|
|
@@ -766,7 +699,8 @@ const RadioGroup = ({ id, name, required, defaultValue, items, labelStyle = {},
|
|
|
766
699
|
},
|
|
767
700
|
item,
|
|
768
701
|
id,
|
|
769
|
-
labelStyle
|
|
702
|
+
labelStyle,
|
|
703
|
+
useVirtualized
|
|
770
704
|
})
|
|
771
705
|
)
|
|
772
706
|
}
|
|
@@ -1204,41 +1138,48 @@ const addToCartTrigger$2 = async (data) => {
|
|
|
1204
1138
|
return;
|
|
1205
1139
|
});
|
|
1206
1140
|
};
|
|
1207
|
-
const
|
|
1141
|
+
const wishlistInfo = async ({ callback }) => {
|
|
1208
1142
|
var _a, _b;
|
|
1209
|
-
|
|
1210
|
-
|
|
1143
|
+
let response;
|
|
1144
|
+
let run = false;
|
|
1145
|
+
let valueTotalWishlist;
|
|
1146
|
+
let valueProxyUrl;
|
|
1147
|
+
response = await getWishlistInfo();
|
|
1148
|
+
run = ((_a = response == null ? void 0 : response.status) == null ? void 0 : _a.code) === 200 || false;
|
|
1149
|
+
valueTotalWishlist = !((_b = response == null ? void 0 : response.data) == null ? void 0 : _b.total_data) ? 0 : response.data.total_data;
|
|
1150
|
+
valueProxyUrl = DEFAULT_WISHLIST_URL;
|
|
1151
|
+
if (run)
|
|
1152
|
+
callback({
|
|
1153
|
+
totalWishlist: valueTotalWishlist,
|
|
1154
|
+
proxyUrl: valueProxyUrl,
|
|
1155
|
+
data: response == null ? void 0 : response.data
|
|
1156
|
+
});
|
|
1157
|
+
};
|
|
1158
|
+
const BadgeCounter = (props) => {
|
|
1159
|
+
var _a;
|
|
1160
|
+
const { data: propsData } = props;
|
|
1161
|
+
const { isRenderApp, triggerRenderMultipleComponent, sledgeAnonymId, isJsVersion } = React__default.useContext(SledgeContext);
|
|
1211
1162
|
const { wishlist: isRenderAppWishlist } = isRenderApp || {};
|
|
1212
1163
|
const { value: valueRenderWishlistBadge, trigger: triggerRenderWishlistBadge } = ((_a = triggerRenderMultipleComponent == null ? void 0 : triggerRenderMultipleComponent.wishlist) == null ? void 0 : _a.badge) || {};
|
|
1213
|
-
const defaultColorIcon = "currentColor";
|
|
1214
|
-
const [colorIcon, setColorIcon] = React__default.useState(defaultColorIcon);
|
|
1215
1164
|
const [totalWishlist, setTotalWishlist] = React__default.useState((propsData == null ? void 0 : propsData.total_data) || 0);
|
|
1216
1165
|
const [isFirstLoading, setIsFirstLoading] = React__default.useState(!propsData);
|
|
1217
1166
|
const [isLoading, setIsLoading] = React__default.useState(!propsData);
|
|
1218
1167
|
const [isMaximizeTotalWishlist, setIsMaximizeTotalWishlist] = React__default.useState(false);
|
|
1219
|
-
const [proxyUrl, setProxyUrl] = React__default.useState((propsData == null ? void 0 : propsData.proxy_url) || "");
|
|
1220
1168
|
const [dataSettings, setDataSettings] = React__default.useState({});
|
|
1221
1169
|
const [isRequiredLogin, setIsRequiredLogin] = React__default.useState(false);
|
|
1222
|
-
const { floating_button_type } = (dataSettings == null ? void 0 : dataSettings.launch_point) || {};
|
|
1223
|
-
const { alert_login, alert, login_button } = ((_b = dataSettings == null ? void 0 : dataSettings.languages) == null ? void 0 : _b.widget) || {};
|
|
1224
|
-
const defaultPosition = positionProp || floating_button_type;
|
|
1225
|
-
const position = defaultPosition ? defaultPosition : "none";
|
|
1226
1170
|
const handleGetWishlistInfo = async () => {
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
setProxyUrl(valueProxyUrl);
|
|
1240
|
-
setIsFirstLoading(false);
|
|
1241
|
-
setIsLoading(false);
|
|
1171
|
+
if (!propsData || propsData && !Object.keys(propsData).length) {
|
|
1172
|
+
await wishlistInfo({
|
|
1173
|
+
callback: ({ totalWishlist: valueTotalWishlist }) => {
|
|
1174
|
+
setTotalWishlist(valueTotalWishlist);
|
|
1175
|
+
setIsMaximizeTotalWishlist(valueTotalWishlist > 99);
|
|
1176
|
+
setIsFirstLoading(false);
|
|
1177
|
+
setIsLoading(false);
|
|
1178
|
+
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_KEY.WISHLIST_BADGE_COUNTER, valueTotalWishlist);
|
|
1179
|
+
}
|
|
1180
|
+
});
|
|
1181
|
+
} else {
|
|
1182
|
+
localStorage == null ? void 0 : localStorage.setItem(LOCAL_STORAGE_KEY.WISHLIST_BADGE_COUNTER, totalWishlist);
|
|
1242
1183
|
}
|
|
1243
1184
|
};
|
|
1244
1185
|
const handleSettings = async (LOCAL_STORAGE_WISHLIST_SETTING) => {
|
|
@@ -1250,25 +1191,6 @@ const Badge = (props) => {
|
|
|
1250
1191
|
setDataSettings(response);
|
|
1251
1192
|
setIsRequiredLogin(sledgeAnonymId && is_required_login);
|
|
1252
1193
|
};
|
|
1253
|
-
const handleRequiredLogin = (e) => {
|
|
1254
|
-
if (isRequiredLogin) {
|
|
1255
|
-
e.preventDefault();
|
|
1256
|
-
e.stopPropagation();
|
|
1257
|
-
}
|
|
1258
|
-
if (isRequiredLogin) {
|
|
1259
|
-
if (typeof window !== "undefined" && window.sledgeConfirmationPopup)
|
|
1260
|
-
window.sledgeConfirmationPopup({
|
|
1261
|
-
title: alert_login || "Login required!",
|
|
1262
|
-
message: alert || "Please login to save your wishlist across devices.",
|
|
1263
|
-
textSubmit: login_button || "Login",
|
|
1264
|
-
buttonSubmitType: "info",
|
|
1265
|
-
onSubmit: () => window.location.href = "/account/login"
|
|
1266
|
-
});
|
|
1267
|
-
} else {
|
|
1268
|
-
if (useProxyUrl)
|
|
1269
|
-
window.location.href = proxyUrl || "/";
|
|
1270
|
-
}
|
|
1271
|
-
};
|
|
1272
1194
|
React__default.useEffect(() => {
|
|
1273
1195
|
if (!isRenderAppWishlist)
|
|
1274
1196
|
return;
|
|
@@ -1286,124 +1208,40 @@ const Badge = (props) => {
|
|
|
1286
1208
|
triggerRenderWishlistBadge(false);
|
|
1287
1209
|
handleGetWishlistInfo();
|
|
1288
1210
|
}, [valueRenderWishlistBadge]);
|
|
1289
|
-
const
|
|
1290
|
-
|
|
1291
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(HeartIcon, { width: 20, height: 20, type: "outline", color: colorIcon }),
|
|
1292
|
-
!isFirstLoading && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `sledge-wishlist__badge-counter sledge-wishlist__badge-counter-header-menu ${isMaximizeTotalWishlist ? "sledge-wishlist__badge-fit-content" : ""}`, children: isLoading || isRequiredLogin ? 0 : `${isMaximizeTotalWishlist ? "99+" : totalWishlist}` || 0 })
|
|
1293
|
-
] });
|
|
1294
|
-
};
|
|
1295
|
-
const FloatingFull = () => {
|
|
1296
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge-wishlist__badge-floating sledge__badge-floating-${position}`, children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { onClick: handleRequiredLogin, className: "sledge-wishlist__badge-floating-icon-link", children: [
|
|
1297
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: "sledge-wishlist__badge-floating-text", children: "My Wishlist" }),
|
|
1298
|
-
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "sledge-wishlist__badge-icon", children: [
|
|
1299
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(HeartIcon, { width: 18, height: 18, type: "fill", color: "#000000" }),
|
|
1300
|
-
!isFirstLoading && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `sledge-wishlist__badge-counter sledge-wishlist__badge-counter-bottom-right ${isMaximizeTotalWishlist ? "sledge-wishlist__badge-fit-content" : ""}`, children: isLoading || isRequiredLogin ? 0 : `${isMaximizeTotalWishlist ? "99+" : totalWishlist}` || 0 })
|
|
1301
|
-
] })
|
|
1302
|
-
] }) });
|
|
1303
|
-
};
|
|
1304
|
-
const FloatingIcon = () => {
|
|
1305
|
-
return /* @__PURE__ */ jsxRuntimeExports.jsx("div", { className: `sledge-wishlist__badge-floating-icon sledge-wishlist__badge-floating-${position}`, children: /* @__PURE__ */ jsxRuntimeExports.jsx("span", { onClick: handleRequiredLogin, className: "sledge-wishlist__badge-floating-icon-link", children: /* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "sledge-wishlist__badge-icon", children: [
|
|
1306
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(HeartIcon, { width: 27.01, height: 25.73, type: "outline", color: "#000000" }),
|
|
1307
|
-
!isFirstLoading && /* @__PURE__ */ jsxRuntimeExports.jsx("span", { className: `sledge-wishlist__badge-counter sledge-wishlist__badge-counter-bottom-right ${isMaximizeTotalWishlist ? "sledge-wishlist__badge-fit-content" : ""}`, children: isLoading || isRequiredLogin ? 0 : `${isMaximizeTotalWishlist ? "99+" : totalWishlist}` || 0 })
|
|
1308
|
-
] }) }) });
|
|
1309
|
-
};
|
|
1310
|
-
return isFirstLoading ? null : /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: position === "none" ? /* @__PURE__ */ jsxRuntimeExports.jsx(HeaderMenu, {}) : String(position).includes("bottom") ? /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingIcon, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(FloatingFull, {}) });
|
|
1211
|
+
const defaultTotalWishlist = isJsVersion ? (localStorage == null ? void 0 : localStorage.getItem(LOCAL_STORAGE_KEY.WISHLIST_BADGE_COUNTER)) || null : null;
|
|
1212
|
+
return /* @__PURE__ */ jsxRuntimeExports.jsx(jsxRuntimeExports.Fragment, { children: isFirstLoading ? defaultTotalWishlist : isLoading || isRequiredLogin ? 0 : `${isMaximizeTotalWishlist ? "99+" : totalWishlist}` || 0 });
|
|
1311
1213
|
};
|
|
1312
|
-
const
|
|
1313
|
-
|
|
1314
|
-
let element = Array.from(document.querySelectorAll(SELECTOR.WISHLIST.ELEMENT_BADGE));
|
|
1214
|
+
const BadgeCounterInitSelector = () => {
|
|
1215
|
+
let element = Array.from(document.querySelectorAll(SELECTOR.WISHLIST.ELEMENT_BADGE_COUNTER));
|
|
1315
1216
|
let isElementDetected = !element || element && !element.length;
|
|
1316
|
-
if (
|
|
1217
|
+
if (isElementDetected)
|
|
1317
1218
|
return;
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
value: {
|
|
1335
|
-
isRenderApp: {
|
|
1336
|
-
wishlist: true,
|
|
1337
|
-
productReview: true,
|
|
1338
|
-
instantSearch: true
|
|
1339
|
-
},
|
|
1340
|
-
sledgeAnonymId: localStorage.getItem(LOCAL_STORAGE_KEY.ANONYM_ID) || "",
|
|
1341
|
-
isJsVersion: true
|
|
1342
|
-
},
|
|
1343
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { useProxyUrl: Boolean(USE_PROXY_URL && USE_PROXY_URL === "true"), position: floating_button_type })
|
|
1344
|
-
}
|
|
1345
|
-
) })
|
|
1346
|
-
);
|
|
1347
|
-
}
|
|
1348
|
-
});
|
|
1349
|
-
} else {
|
|
1350
|
-
element.map((item, index) => {
|
|
1351
|
-
if (item && !index) {
|
|
1352
|
-
if (item.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`))
|
|
1353
|
-
item.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`).remove();
|
|
1354
|
-
let elementContainerWidget = document.createElement("div");
|
|
1355
|
-
elementContainerWidget.setAttribute(SELECTOR_ATTRIBUTE_KEY, INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET);
|
|
1356
|
-
item.appendChild(elementContainerWidget);
|
|
1357
|
-
const USE_PROXY_URL = item.getAttribute(DATASET_ATTRIBUTE_KEY.WISHLIST.USE_PROXY_URL);
|
|
1358
|
-
client.createRoot(elementContainerWidget).render(
|
|
1359
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(React__default.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1360
|
-
SledgeContext.Provider,
|
|
1361
|
-
{
|
|
1362
|
-
value: {
|
|
1363
|
-
isRenderApp: {
|
|
1364
|
-
wishlist: true,
|
|
1365
|
-
productReview: true,
|
|
1366
|
-
instantSearch: true
|
|
1367
|
-
},
|
|
1368
|
-
sledgeAnonymId: localStorage.getItem(LOCAL_STORAGE_KEY.ANONYM_ID) || "",
|
|
1369
|
-
isJsVersion: true
|
|
1370
|
-
},
|
|
1371
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(Badge, { useProxyUrl: Boolean(USE_PROXY_URL && USE_PROXY_URL === "true"), position: floating_button_type })
|
|
1372
|
-
}
|
|
1373
|
-
) })
|
|
1374
|
-
);
|
|
1375
|
-
}
|
|
1376
|
-
});
|
|
1377
|
-
}
|
|
1378
|
-
} else {
|
|
1379
|
-
element.map((item) => {
|
|
1380
|
-
if (item) {
|
|
1381
|
-
const USE_PROXY_URL = item.getAttribute(DATASET_ATTRIBUTE_KEY.WISHLIST.USE_PROXY_URL);
|
|
1382
|
-
if (item.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`))
|
|
1383
|
-
item.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`).remove();
|
|
1384
|
-
let elementContainerWidget = document.createElement("div");
|
|
1385
|
-
elementContainerWidget.setAttribute(SELECTOR_ATTRIBUTE_KEY, INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET);
|
|
1386
|
-
item.appendChild(elementContainerWidget);
|
|
1387
|
-
client.createRoot(elementContainerWidget).render(
|
|
1388
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx(React__default.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1389
|
-
SledgeContext.Provider,
|
|
1390
|
-
{
|
|
1391
|
-
value: {
|
|
1392
|
-
isRenderApp: {
|
|
1393
|
-
wishlist: true,
|
|
1394
|
-
productReview: true,
|
|
1395
|
-
instantSearch: true
|
|
1396
|
-
},
|
|
1397
|
-
sledgeAnonymId: localStorage.getItem(LOCAL_STORAGE_KEY.ANONYM_ID) || "",
|
|
1398
|
-
isJsVersion: true
|
|
1219
|
+
element.map((item) => {
|
|
1220
|
+
if (item) {
|
|
1221
|
+
if (item.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`))
|
|
1222
|
+
item.querySelector(`[${SELECTOR_ATTRIBUTE_KEY}="${INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET}"]`).remove();
|
|
1223
|
+
let elementContainerWidget = document.createElement("div");
|
|
1224
|
+
elementContainerWidget.setAttribute(SELECTOR_ATTRIBUTE_KEY, INTERNAL_SELECTOR_VALUE.ELEMENT_CONTAINER_WIDGET);
|
|
1225
|
+
item.appendChild(elementContainerWidget);
|
|
1226
|
+
client.createRoot(elementContainerWidget).render(
|
|
1227
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx(React__default.StrictMode, { children: /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
1228
|
+
SledgeContext.Provider,
|
|
1229
|
+
{
|
|
1230
|
+
value: {
|
|
1231
|
+
isRenderApp: {
|
|
1232
|
+
wishlist: true,
|
|
1233
|
+
productReview: true,
|
|
1234
|
+
instantSearch: true
|
|
1399
1235
|
},
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1236
|
+
sledgeAnonymId: localStorage.getItem(LOCAL_STORAGE_KEY.ANONYM_ID) || "",
|
|
1237
|
+
isJsVersion: true
|
|
1238
|
+
},
|
|
1239
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(BadgeCounter, {})
|
|
1240
|
+
}
|
|
1241
|
+
) })
|
|
1242
|
+
);
|
|
1243
|
+
}
|
|
1244
|
+
});
|
|
1407
1245
|
};
|
|
1408
1246
|
const Trigger = (props) => {
|
|
1409
1247
|
var _a, _b, _c, _d, _e;
|
|
@@ -1470,7 +1308,7 @@ const Trigger = (props) => {
|
|
|
1470
1308
|
setIsWishlist(!isWishlist);
|
|
1471
1309
|
if (triggerRenderWishlistBadge)
|
|
1472
1310
|
triggerRenderWishlistBadge(true);
|
|
1473
|
-
|
|
1311
|
+
BadgeCounterInitSelector();
|
|
1474
1312
|
if (typeof window !== "undefined") {
|
|
1475
1313
|
if (window.sledgeWishlistWidgetListUpdate)
|
|
1476
1314
|
window.sledgeWishlistWidgetListUpdate();
|
|
@@ -1685,7 +1523,7 @@ const WidgetHeaderShareTrigger = ({ wishlistData, buttonText, showShareTrigger,
|
|
|
1685
1523
|
if (typeof window !== "undefined") {
|
|
1686
1524
|
if (triggerRenderWishlistBadge)
|
|
1687
1525
|
triggerRenderWishlistBadge(true);
|
|
1688
|
-
|
|
1526
|
+
BadgeCounterInitSelector();
|
|
1689
1527
|
if (window.sledgeInfoPopup)
|
|
1690
1528
|
window.sledgeInfoPopup({
|
|
1691
1529
|
title: title_added_all_to_wishlist,
|
|
@@ -4288,8 +4126,14 @@ const FacetComponent = (props) => {
|
|
|
4288
4126
|
valueFilterPriceChange,
|
|
4289
4127
|
setValueFilterPriceChange,
|
|
4290
4128
|
separatedFilterItem,
|
|
4291
|
-
setSeparatedFilterItem
|
|
4129
|
+
setSeparatedFilterItem,
|
|
4130
|
+
settings
|
|
4292
4131
|
} = props;
|
|
4132
|
+
let aliases = {};
|
|
4133
|
+
if (filter.value === "hierarchicalProductType")
|
|
4134
|
+
aliases = settings.productTypeAliases || {};
|
|
4135
|
+
if (filter.value === "hierarchicalCollections")
|
|
4136
|
+
aliases = settings.collectionAliases || {};
|
|
4293
4137
|
const { button_load_more } = (generalDataSettings == null ? void 0 : generalDataSettings.languages) || {};
|
|
4294
4138
|
const { colors: colorSwatches, languages: languageSettings } = displaySettings || {};
|
|
4295
4139
|
const {
|
|
@@ -4332,7 +4176,7 @@ const FacetComponent = (props) => {
|
|
|
4332
4176
|
if (!(isHideFacetWhenZeroValue && !counter))
|
|
4333
4177
|
facetValues.push({
|
|
4334
4178
|
...item,
|
|
4335
|
-
labelName,
|
|
4179
|
+
labelName: aliases[labelName] || labelName,
|
|
4336
4180
|
counter
|
|
4337
4181
|
});
|
|
4338
4182
|
}
|
|
@@ -4380,7 +4224,7 @@ const FacetComponent = (props) => {
|
|
|
4380
4224
|
const handleFacetCheckbox = (props2) => {
|
|
4381
4225
|
var _a2, _b2;
|
|
4382
4226
|
const { facetValues, virtualized } = props2;
|
|
4383
|
-
const { index, key, style } = virtualized || {};
|
|
4227
|
+
const { index, key, style, isScrolling, isVisible } = virtualized || {};
|
|
4384
4228
|
return (_b2 = handleFacetValues(virtualized && ((_a2 = Object.keys(virtualized)) == null ? void 0 : _a2.length) ? [facetValues[index]] : facetValues)) == null ? void 0 : _b2.map((facetValue) => {
|
|
4385
4229
|
var _a3;
|
|
4386
4230
|
const { labelName, value: itemValue, counter, children, level } = facetValue;
|
|
@@ -4393,39 +4237,40 @@ const FacetComponent = (props) => {
|
|
|
4393
4237
|
const blockComponentChildren = handleFacetCheckbox({
|
|
4394
4238
|
facetValues: currentItems2
|
|
4395
4239
|
});
|
|
4240
|
+
const content = !isVisible && isScrolling ? /* @__PURE__ */ jsxRuntimeExports.jsx(LoadingDots, {}) : /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4241
|
+
Checkbox,
|
|
4242
|
+
{
|
|
4243
|
+
id: `${value}_${index}${isFacetHierarchical ? `_${stringToSlug(itemValue)}` : ""}`,
|
|
4244
|
+
name: value,
|
|
4245
|
+
value: itemValue,
|
|
4246
|
+
label: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
4247
|
+
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: `${labelName}${counter !== void 0 && isShowNumberMatchingProduct ? ` (${counter})` : ""}` }),
|
|
4248
|
+
isHasChildren ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4249
|
+
motion.div,
|
|
4250
|
+
{
|
|
4251
|
+
initial: false,
|
|
4252
|
+
animate: isChecked ? "open" : "closed",
|
|
4253
|
+
variants: ROTATE_FILTER_ARROW_ANIMATION,
|
|
4254
|
+
className: "sledge-instant-search__result-filter-checkbox-item-level-arrow",
|
|
4255
|
+
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronArrowDownIcon, { width: 15, height: 15, color: "#000000" })
|
|
4256
|
+
}
|
|
4257
|
+
) : null
|
|
4258
|
+
] }),
|
|
4259
|
+
onClick: (e) => handleFilterChange({
|
|
4260
|
+
parentId: value,
|
|
4261
|
+
value: e.currentTarget.value
|
|
4262
|
+
}),
|
|
4263
|
+
checked: isChecked,
|
|
4264
|
+
labelStyle: filter_option_style
|
|
4265
|
+
}
|
|
4266
|
+
);
|
|
4396
4267
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
4397
4268
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4398
4269
|
"li",
|
|
4399
4270
|
{
|
|
4400
4271
|
className: `sledge-instant-search__result-filter-checkbox-item ${isFacetHierarchical ? `sledge-instant-search__result-filter-checkbox-item-level sledge-instant-search__result-filter-checkbox-item-level-${level}` : ""}`,
|
|
4401
4272
|
style,
|
|
4402
|
-
children:
|
|
4403
|
-
Checkbox,
|
|
4404
|
-
{
|
|
4405
|
-
id: `${value}_${index}${isFacetHierarchical ? `_${stringToSlug(itemValue)}` : ""}`,
|
|
4406
|
-
name: value,
|
|
4407
|
-
value: itemValue,
|
|
4408
|
-
label: /* @__PURE__ */ jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [
|
|
4409
|
-
/* @__PURE__ */ jsxRuntimeExports.jsx("span", { children: `${labelName}${counter !== void 0 && isShowNumberMatchingProduct ? ` (${counter})` : ""}` }),
|
|
4410
|
-
isHasChildren ? /* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
4411
|
-
motion.div,
|
|
4412
|
-
{
|
|
4413
|
-
initial: false,
|
|
4414
|
-
animate: isChecked ? "open" : "closed",
|
|
4415
|
-
variants: ROTATE_FILTER_ARROW_ANIMATION,
|
|
4416
|
-
className: "sledge-instant-search__result-filter-checkbox-item-level-arrow",
|
|
4417
|
-
children: /* @__PURE__ */ jsxRuntimeExports.jsx(ChevronArrowDownIcon, { width: 15, height: 15, color: "#000000" })
|
|
4418
|
-
}
|
|
4419
|
-
) : null
|
|
4420
|
-
] }),
|
|
4421
|
-
onClick: (e) => handleFilterChange({
|
|
4422
|
-
parentId: value,
|
|
4423
|
-
value: e.currentTarget.value
|
|
4424
|
-
}),
|
|
4425
|
-
checked: isChecked,
|
|
4426
|
-
labelStyle: filter_option_style
|
|
4427
|
-
}
|
|
4428
|
-
)
|
|
4273
|
+
children: content
|
|
4429
4274
|
},
|
|
4430
4275
|
key
|
|
4431
4276
|
),
|
|
@@ -5647,11 +5492,16 @@ const ResultProduct = (props) => {
|
|
|
5647
5492
|
else
|
|
5648
5493
|
valueText = (_a2 = String(valueText)) == null ? void 0 : _a2.replaceAll(hierarchical_collections_separator, " > ");
|
|
5649
5494
|
valueText = (_b2 = String(valueText)) == null ? void 0 : _b2.replaceAll("_", " ");
|
|
5495
|
+
let aliases = {};
|
|
5496
|
+
if (name === "hierarchicalCollections")
|
|
5497
|
+
aliases = settings.collectionAliases || {};
|
|
5498
|
+
if (name === "hierarchicalProductType")
|
|
5499
|
+
aliases = settings.productTypeAliases || {};
|
|
5650
5500
|
return /* @__PURE__ */ jsxRuntimeExports.jsxs("div", { className: "sledge-instant-search__result-filter-item-refine-selected", style: filter_option_style, children: [
|
|
5651
5501
|
/* @__PURE__ */ jsxRuntimeExports.jsxs("span", { className: "sledge-instant-search__result-filter-item-title-refine-list", children: [
|
|
5652
5502
|
label,
|
|
5653
5503
|
": ",
|
|
5654
|
-
valueText
|
|
5504
|
+
aliases[value] || valueText
|
|
5655
5505
|
] }),
|
|
5656
5506
|
/* @__PURE__ */ jsxRuntimeExports.jsx(
|
|
5657
5507
|
"span",
|
|
@@ -5708,6 +5558,7 @@ const ResultProduct = (props) => {
|
|
|
5708
5558
|
isFirstLoading,
|
|
5709
5559
|
displaySettings,
|
|
5710
5560
|
generalDataSettings,
|
|
5561
|
+
settings,
|
|
5711
5562
|
searchFacetDistribution,
|
|
5712
5563
|
clickedFacets,
|
|
5713
5564
|
handleFilterChange,
|