@salesgenterp/ui-components 0.4.542 → 0.4.544
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/index.js +325 -161
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +325 -161
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -65,7 +65,6 @@ var fi = require('react-icons/fi');
|
|
|
65
65
|
var fa6 = require('react-icons/fa6');
|
|
66
66
|
var Image$3 = _interopDefault(require('next/image'));
|
|
67
67
|
var debounce$1 = _interopDefault(require('lodash/debounce'));
|
|
68
|
-
var omit = _interopDefault(require('lodash/omit'));
|
|
69
68
|
|
|
70
69
|
function _extends() {
|
|
71
70
|
return _extends = Object.assign ? Object.assign.bind() : function (n) {
|
|
@@ -16287,9 +16286,100 @@ var WishlistProductCardSkeleton = function WishlistProductCardSkeleton(_ref) {
|
|
|
16287
16286
|
}));
|
|
16288
16287
|
};
|
|
16289
16288
|
|
|
16289
|
+
var getWishlistData = function getWishlistData(_ref) {
|
|
16290
|
+
var apiEndPoint = _ref.apiEndPoint,
|
|
16291
|
+
token = _ref.token,
|
|
16292
|
+
_ref$queryParams = _ref.queryParams,
|
|
16293
|
+
queryParams = _ref$queryParams === void 0 ? {} : _ref$queryParams;
|
|
16294
|
+
try {
|
|
16295
|
+
var _erCookieStorage$getI;
|
|
16296
|
+
if (!apiEndPoint || !token) return Promise.resolve([]);
|
|
16297
|
+
var storeId = (erCookieStorage === null || erCookieStorage === void 0 ? void 0 : (_erCookieStorage$getI = erCookieStorage.getItem) === null || _erCookieStorage$getI === void 0 ? void 0 : _erCookieStorage$getI.call(erCookieStorage, 'storeId')) || 2;
|
|
16298
|
+
return Promise.resolve(API({
|
|
16299
|
+
apiEndPoint: apiEndPoint,
|
|
16300
|
+
token: token,
|
|
16301
|
+
url: "/ecommerce/wishlist?storeIds=" + storeId,
|
|
16302
|
+
queryParams: queryParams
|
|
16303
|
+
})).then(function (data) {
|
|
16304
|
+
return data != null ? data : [];
|
|
16305
|
+
});
|
|
16306
|
+
} catch (e) {
|
|
16307
|
+
return Promise.reject(e);
|
|
16308
|
+
}
|
|
16309
|
+
};
|
|
16310
|
+
var removeFromWishlist = function removeFromWishlist(_ref2) {
|
|
16311
|
+
var apiEndPoint = _ref2.apiEndPoint,
|
|
16312
|
+
token = _ref2.token,
|
|
16313
|
+
products = _ref2.products;
|
|
16314
|
+
try {
|
|
16315
|
+
var _erCookieStorage$getI2;
|
|
16316
|
+
if (!apiEndPoint || !token) return Promise.resolve();
|
|
16317
|
+
var storeId = (erCookieStorage === null || erCookieStorage === void 0 ? void 0 : (_erCookieStorage$getI2 = erCookieStorage.getItem) === null || _erCookieStorage$getI2 === void 0 ? void 0 : _erCookieStorage$getI2.call(erCookieStorage, 'storeId')) || 2;
|
|
16318
|
+
var body = (products || []).map(function (product) {
|
|
16319
|
+
return {
|
|
16320
|
+
productId: product === null || product === void 0 ? void 0 : product.productId,
|
|
16321
|
+
storeId: storeId
|
|
16322
|
+
};
|
|
16323
|
+
}).filter(function (item) {
|
|
16324
|
+
return item === null || item === void 0 ? void 0 : item.productId;
|
|
16325
|
+
});
|
|
16326
|
+
if (!(body !== null && body !== void 0 && body.length)) return Promise.resolve();
|
|
16327
|
+
return Promise.resolve(API({
|
|
16328
|
+
apiEndPoint: apiEndPoint,
|
|
16329
|
+
token: token,
|
|
16330
|
+
url: "/ecommerce/wishlist/items",
|
|
16331
|
+
body: body,
|
|
16332
|
+
method: 'delete',
|
|
16333
|
+
successMessage: 'Product removed from wishlist successfully',
|
|
16334
|
+
errorMessage: 'Error in removing product from wishlist'
|
|
16335
|
+
})).then(function () {});
|
|
16336
|
+
} catch (e) {
|
|
16337
|
+
return Promise.reject(e);
|
|
16338
|
+
}
|
|
16339
|
+
};
|
|
16340
|
+
var moveToCart = function moveToCart(_ref3) {
|
|
16341
|
+
var apiEndPoint = _ref3.apiEndPoint,
|
|
16342
|
+
token = _ref3.token,
|
|
16343
|
+
productId = _ref3.productId;
|
|
16344
|
+
try {
|
|
16345
|
+
if (!apiEndPoint || !token || productId == null) return Promise.resolve();
|
|
16346
|
+
return Promise.resolve(API({
|
|
16347
|
+
apiEndPoint: apiEndPoint,
|
|
16348
|
+
token: token,
|
|
16349
|
+
url: "/ecommerce/wishlist/move-to-cart",
|
|
16350
|
+
method: 'post',
|
|
16351
|
+
body: [productId],
|
|
16352
|
+
successMessage: 'Product moved to cart successfully',
|
|
16353
|
+
errorMessage: 'Error in moving product to cart'
|
|
16354
|
+
})).then(function () {});
|
|
16355
|
+
} catch (e) {
|
|
16356
|
+
return Promise.reject(e);
|
|
16357
|
+
}
|
|
16358
|
+
};
|
|
16359
|
+
|
|
16290
16360
|
var _templateObject$T, _templateObject2$D, _templateObject3$t, _templateObject4$n, _templateObject5$i, _templateObject6$g, _templateObject7$c, _templateObject8$a, _templateObject9$7, _templateObject10$5, _templateObject11$4;
|
|
16291
|
-
var
|
|
16292
|
-
|
|
16361
|
+
var EmptyStateText = styled__default.p(_templateObject$T || (_templateObject$T = _taggedTemplateLiteralLoose(["\n font-size: 16px;\n color: #4b4b4b;\n margin: 16px 0;\n"])));
|
|
16362
|
+
var ProductCardWrapper = styled__default.div(_templateObject2$D || (_templateObject2$D = _taggedTemplateLiteralLoose(["\n position: relative;\n background-color: #ffffff;\n border: 1px solid #d3d3d3;\n border-radius: 10px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n padding: 10px;\n gap: 10px;\n cursor: pointer;\n"])));
|
|
16363
|
+
var TopBar = styled__default.div(_templateObject3$t || (_templateObject3$t = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n"])));
|
|
16364
|
+
var SearchWrapper = styled__default(material.Box)(_templateObject4$n || (_templateObject4$n = _taggedTemplateLiteralLoose(["\n && {\n margin-bottom: 24px;\n max-width: 400px;\n width: 100%;\n }\n"])));
|
|
16365
|
+
var TotalItemsText = styled__default.div(_templateObject5$i || (_templateObject5$i = _taggedTemplateLiteralLoose(["\n font-size: 14px;\n font-weight: 500;\n color: #4b4b4b;\n margin-bottom: 24px;\n white-space: nowrap;\n"])));
|
|
16366
|
+
var DeleteButton = styled__default.button(_templateObject6$g || (_templateObject6$g = _taggedTemplateLiteralLoose(["\n position: absolute;\n top: 8px;\n right: 8px;\n opacity: 1;\n pointer-events: auto;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n padding: 0;\n border: none;\n border-radius: 50%;\n background-color: #ffffff;\n box-shadow: 0 1px 4px rgba(0, 0, 0, 0.15);\n cursor: pointer;\n color: #ff0000;\n"])));
|
|
16367
|
+
var PriceContainer = styled__default.div(_templateObject7$c || (_templateObject7$c = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"])));
|
|
16368
|
+
var DiscountPriceRow = styled__default.div(_templateObject8$a || (_templateObject8$a = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n"])));
|
|
16369
|
+
var ProductName$2 = styled__default.div(_templateObject9$7 || (_templateObject9$7 = _taggedTemplateLiteralLoose(["\n font-size: 16px;\n font-weight: 500;\n color: #000000;\n text-align: center;\n height: 40px;\n overflow: hidden;\n width: 100%;\n text-overflow: ellipsis;\n white-space: pre-wrap;\n"])));
|
|
16370
|
+
var ProductActionButton = styled__default(material.Button)(_templateObject10$5 || (_templateObject10$5 = _taggedTemplateLiteralLoose(["\n && {\n background-color: ", ";\n color: #ffffff;\n border-radius: 10px;\n font-weight: 500;\n }\n"])), function (_ref) {
|
|
16371
|
+
var primaryColor = _ref.primaryColor;
|
|
16372
|
+
return primaryColor != null ? primaryColor : '#000000';
|
|
16373
|
+
});
|
|
16374
|
+
var OutOfStockButton = styled__default(material.Button)(_templateObject11$4 || (_templateObject11$4 = _taggedTemplateLiteralLoose(["\n && {\n color: #ffffff;\n border-radius: 10px;\n font-weight: 500;\n }\n"])));
|
|
16375
|
+
|
|
16376
|
+
var getProductImage = function getProductImage(imageUrl, fallbackUrl) {
|
|
16377
|
+
var url = imageUrl || fallbackUrl;
|
|
16378
|
+
return url && url !== 'null' ? url : '/images/products/imgnotfound.png';
|
|
16379
|
+
};
|
|
16380
|
+
var formatPrice = function formatPrice(price) {
|
|
16381
|
+
var value = Number(price);
|
|
16382
|
+
return Number.isFinite(value) ? value.toFixed(2) : '0.00';
|
|
16293
16383
|
};
|
|
16294
16384
|
var DEFAULT_GRID_SPAN = {
|
|
16295
16385
|
lg: 3,
|
|
@@ -16297,7 +16387,6 @@ var DEFAULT_GRID_SPAN = {
|
|
|
16297
16387
|
sm: 6,
|
|
16298
16388
|
xs: 6
|
|
16299
16389
|
};
|
|
16300
|
-
var WISHLIST_ITEM_OMIT_KEYS = ['id', 'createdBy', 'insertedTimestamp', 'updatedBy', 'updatedTimestamp'];
|
|
16301
16390
|
var getStyleOverride = function getStyleOverride(styleOverrides) {
|
|
16302
16391
|
for (var _len = arguments.length, keys = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
|
|
16303
16392
|
keys[_key - 1] = arguments[_key];
|
|
@@ -16308,71 +16397,45 @@ var getStyleOverride = function getStyleOverride(styleOverrides) {
|
|
|
16308
16397
|
}
|
|
16309
16398
|
return undefined;
|
|
16310
16399
|
};
|
|
16311
|
-
var
|
|
16312
|
-
|
|
16313
|
-
|
|
16400
|
+
var normalizeWishlistItems = function normalizeWishlistItems(data) {
|
|
16401
|
+
if (Array.isArray(data)) return data.filter(Boolean);
|
|
16402
|
+
var content = data === null || data === void 0 ? void 0 : data.content;
|
|
16403
|
+
return Array.isArray(content) ? content.filter(Boolean) : [];
|
|
16404
|
+
};
|
|
16405
|
+
var getWishlistTotal = function getWishlistTotal(data, items) {
|
|
16406
|
+
var _items$length;
|
|
16407
|
+
if (typeof (data === null || data === void 0 ? void 0 : data.totalElements) === 'number') {
|
|
16408
|
+
return data.totalElements;
|
|
16409
|
+
}
|
|
16410
|
+
return (_items$length = items === null || items === void 0 ? void 0 : items.length) != null ? _items$length : 0;
|
|
16411
|
+
};
|
|
16412
|
+
var WishlistContent = function WishlistContent(_ref) {
|
|
16413
|
+
var data = _ref.data,
|
|
16414
|
+
apiEndPoint = _ref.apiEndPoint,
|
|
16314
16415
|
token = _ref.token,
|
|
16315
|
-
|
|
16316
|
-
|
|
16317
|
-
|
|
16318
|
-
|
|
16319
|
-
|
|
16320
|
-
onSearch = _ref.onSearch,
|
|
16321
|
-
_ref$span = _ref.span,
|
|
16322
|
-
span = _ref$span === void 0 ? DEFAULT_GRID_SPAN : _ref$span,
|
|
16416
|
+
searchInput = _ref.searchInput,
|
|
16417
|
+
onSearchChange = _ref.onSearchChange,
|
|
16418
|
+
searchQuery = _ref.searchQuery,
|
|
16419
|
+
styleOverrides = _ref.styleOverrides,
|
|
16420
|
+
gridSpan = _ref.gridSpan,
|
|
16323
16421
|
primaryColor = _ref.primaryColor,
|
|
16324
|
-
|
|
16325
|
-
|
|
16326
|
-
_ref$
|
|
16327
|
-
|
|
16328
|
-
|
|
16329
|
-
|
|
16330
|
-
token: token
|
|
16331
|
-
}),
|
|
16332
|
-
allowToProcessInvoiceForOutOfStockProductsEcommerce = _useAllSystemFeatureV.allowToProcessInvoiceForOutOfStockProductsEcommerce;
|
|
16333
|
-
var styleOverrides = React.useMemo(function () {
|
|
16334
|
-
return _extends({}, style || {});
|
|
16335
|
-
}, [style]);
|
|
16336
|
-
var _useState = React.useState(''),
|
|
16337
|
-
searchInput = _useState[0],
|
|
16338
|
-
setSearchInput = _useState[1];
|
|
16422
|
+
onMoveToCart = _ref.onMoveToCart,
|
|
16423
|
+
onProductCardClick = _ref.onProductCardClick,
|
|
16424
|
+
_ref$imgNotFoundUrl = _ref.imgNotFoundUrl,
|
|
16425
|
+
imgNotFoundUrl = _ref$imgNotFoundUrl === void 0 ? '' : _ref$imgNotFoundUrl,
|
|
16426
|
+
setRefreshTrigger = _ref.setRefreshTrigger,
|
|
16427
|
+
allowToProcessInvoiceForOutOfStockProducts = _ref.allowToProcessInvoiceForOutOfStockProducts;
|
|
16339
16428
|
var items = React.useMemo(function () {
|
|
16340
|
-
|
|
16341
|
-
|
|
16342
|
-
return (_wishlistData$content = wishlistData === null || wishlistData === void 0 ? void 0 : wishlistData.content) != null ? _wishlistData$content : [];
|
|
16343
|
-
}, [wishlistData]);
|
|
16344
|
-
var gridSpan = React.useMemo(function () {
|
|
16345
|
-
return _extends({}, DEFAULT_GRID_SPAN, span || {});
|
|
16346
|
-
}, [span]);
|
|
16429
|
+
return normalizeWishlistItems(data);
|
|
16430
|
+
}, [data]);
|
|
16347
16431
|
var totalItems = React.useMemo(function () {
|
|
16348
|
-
|
|
16349
|
-
|
|
16350
|
-
|
|
16351
|
-
return items === null || items === void 0 ? void 0 : items.length;
|
|
16352
|
-
}, [wishlistData, items === null || items === void 0 ? void 0 : items.length]);
|
|
16353
|
-
var debouncedSearch = React.useMemo(function () {
|
|
16354
|
-
return debounce$1(function (value) {
|
|
16355
|
-
return onSearch === null || onSearch === void 0 ? void 0 : onSearch(value);
|
|
16356
|
-
}, 500);
|
|
16357
|
-
}, [onSearch]);
|
|
16358
|
-
React.useEffect(function () {
|
|
16359
|
-
return function () {
|
|
16360
|
-
debouncedSearch.cancel();
|
|
16361
|
-
};
|
|
16362
|
-
}, [debouncedSearch]);
|
|
16363
|
-
if (!token) {
|
|
16364
|
-
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("h1", null, "Wishlist"), /*#__PURE__*/React__default.createElement("p", null, "Please log in to view your wishlist."));
|
|
16365
|
-
}
|
|
16366
|
-
if (!isLoading && items.length === 0) {
|
|
16367
|
-
return /*#__PURE__*/React__default.createElement(EmptyStateText, {
|
|
16368
|
-
style: getStyleOverride(styleOverrides, 'emptyStateText', 'EmptyStateText')
|
|
16369
|
-
}, "no products added to wishlist");
|
|
16370
|
-
}
|
|
16432
|
+
return getWishlistTotal(data, items);
|
|
16433
|
+
}, [data, items]);
|
|
16434
|
+
var isEmptyWishlist = items.length === 0 && !searchQuery;
|
|
16371
16435
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
16372
16436
|
style: {
|
|
16373
|
-
|
|
16374
|
-
height: '100%'
|
|
16375
|
-
width: '100%'
|
|
16437
|
+
width: '100%',
|
|
16438
|
+
height: '100%'
|
|
16376
16439
|
}
|
|
16377
16440
|
}, /*#__PURE__*/React__default.createElement(TopBar, {
|
|
16378
16441
|
style: getStyleOverride(styleOverrides, 'topBar', 'TopBar')
|
|
@@ -16381,12 +16444,7 @@ var WishlistComponent = function WishlistComponent(_ref) {
|
|
|
16381
16444
|
}, /*#__PURE__*/React__default.createElement(material.TextField, {
|
|
16382
16445
|
placeholder: "Type minimum 3 characters to search...",
|
|
16383
16446
|
value: searchInput,
|
|
16384
|
-
onChange:
|
|
16385
|
-
var value = e.target.value;
|
|
16386
|
-
setSearchInput(value);
|
|
16387
|
-
if (!token || typeof onSearch !== 'function') return;
|
|
16388
|
-
debouncedSearch(value);
|
|
16389
|
-
},
|
|
16447
|
+
onChange: onSearchChange,
|
|
16390
16448
|
size: "small",
|
|
16391
16449
|
fullWidth: true,
|
|
16392
16450
|
sx: {
|
|
@@ -16396,69 +16454,169 @@ var WishlistComponent = function WishlistComponent(_ref) {
|
|
|
16396
16454
|
}
|
|
16397
16455
|
})), /*#__PURE__*/React__default.createElement(TotalItemsText, {
|
|
16398
16456
|
style: getStyleOverride(styleOverrides, 'totalItemsText', 'TotalItemsText')
|
|
16399
|
-
}, "Total " + totalItems + " item" + (totalItems === 1 ? '' : 's'))),
|
|
16400
|
-
|
|
16401
|
-
}) : /*#__PURE__*/React__default.createElement(material.Grid, {
|
|
16457
|
+
}, "Total " + totalItems + " item" + (totalItems === 1 ? '' : 's'))), isEmptyWishlist || items.length === 0 ? /*#__PURE__*/React__default.createElement(EmptyStateText, {
|
|
16458
|
+
style: getStyleOverride(styleOverrides, 'emptyStateText', 'EmptyStateText')
|
|
16459
|
+
}, "No wishlist items found") : /*#__PURE__*/React__default.createElement(material.Grid, {
|
|
16402
16460
|
container: true,
|
|
16403
16461
|
spacing: 2
|
|
16404
|
-
}, items
|
|
16462
|
+
}, items.map(function (product, index) {
|
|
16463
|
+
var _ref2, _product$id;
|
|
16405
16464
|
return /*#__PURE__*/React__default.createElement(material.Grid, {
|
|
16406
16465
|
item: true,
|
|
16407
|
-
xs: gridSpan.xs,
|
|
16408
|
-
sm: gridSpan.sm,
|
|
16409
|
-
md: gridSpan.md,
|
|
16410
|
-
lg: gridSpan.lg,
|
|
16411
|
-
key: product === null || product === void 0 ? void 0 : product.id
|
|
16466
|
+
xs: gridSpan === null || gridSpan === void 0 ? void 0 : gridSpan.xs,
|
|
16467
|
+
sm: gridSpan === null || gridSpan === void 0 ? void 0 : gridSpan.sm,
|
|
16468
|
+
md: gridSpan === null || gridSpan === void 0 ? void 0 : gridSpan.md,
|
|
16469
|
+
lg: gridSpan === null || gridSpan === void 0 ? void 0 : gridSpan.lg,
|
|
16470
|
+
key: (_ref2 = (_product$id = product === null || product === void 0 ? void 0 : product.id) != null ? _product$id : product === null || product === void 0 ? void 0 : product.productId) != null ? _ref2 : index
|
|
16412
16471
|
}, /*#__PURE__*/React__default.createElement(ProductCard, {
|
|
16472
|
+
setRefreshTrigger: setRefreshTrigger,
|
|
16473
|
+
apiEndPoint: apiEndPoint,
|
|
16474
|
+
token: token,
|
|
16413
16475
|
product: product,
|
|
16414
16476
|
styleOverrides: styleOverrides,
|
|
16415
|
-
onRemoveFromWishlist: onRemoveFromWishlist,
|
|
16416
16477
|
primaryColor: primaryColor,
|
|
16478
|
+
onMoveToCart: onMoveToCart,
|
|
16479
|
+
onProductCardClick: onProductCardClick,
|
|
16417
16480
|
imgNotFoundUrl: imgNotFoundUrl,
|
|
16418
|
-
|
|
16419
|
-
allowToProcessInvoiceForOutOfStockProductsEcommerce: allowToProcessInvoiceForOutOfStockProductsEcommerce,
|
|
16420
|
-
doNotShowPrice: doNotShowPrice
|
|
16481
|
+
allowToProcessInvoiceForOutOfStockProducts: allowToProcessInvoiceForOutOfStockProducts
|
|
16421
16482
|
}));
|
|
16422
16483
|
})));
|
|
16423
16484
|
};
|
|
16424
|
-
var
|
|
16425
|
-
var
|
|
16426
|
-
|
|
16427
|
-
|
|
16428
|
-
|
|
16429
|
-
|
|
16430
|
-
var PriceContainer = styled__default.div(_templateObject7$c || (_templateObject7$c = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n"])));
|
|
16431
|
-
var DiscountPriceRow = styled__default.div(_templateObject8$a || (_templateObject8$a = _taggedTemplateLiteralLoose(["\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n"])));
|
|
16432
|
-
var ProductName$2 = styled__default.div(_templateObject9$7 || (_templateObject9$7 = _taggedTemplateLiteralLoose(["\n font-size: 16px;\n font-weight: 500;\n color: #000000;\n text-align: center;\n height: 40px;\n overflow: hidden;\n width: 100%;\n text-overflow: ellipsis;\n white-space: pre-wrap;\n"])));
|
|
16433
|
-
var ProductActionButton = styled__default(material.Button)(_templateObject10$5 || (_templateObject10$5 = _taggedTemplateLiteralLoose(["\n && {\n background-color: ", ";\n color: #ffffff;\n border-radius: 10px;\n font-weight: 500;\n }\n"])), function (_ref2) {
|
|
16434
|
-
var primaryColor = _ref2.primaryColor;
|
|
16435
|
-
return primaryColor != null ? primaryColor : '#000000';
|
|
16436
|
-
});
|
|
16437
|
-
var OutOfStockButton = styled__default(material.Button)(_templateObject11$4 || (_templateObject11$4 = _taggedTemplateLiteralLoose(["\n && {\n color: #ffffff;\n border-radius: 10px;\n font-weight: 500;\n }\n"])));
|
|
16438
|
-
var ProductCard = function ProductCard(_ref3) {
|
|
16439
|
-
var _product$standardPric, _product$retailPrice, _product$standardPric2;
|
|
16440
|
-
var product = _ref3.product,
|
|
16441
|
-
styleOverrides = _ref3.styleOverrides,
|
|
16442
|
-
onRemoveFromWishlist = _ref3.onRemoveFromWishlist,
|
|
16485
|
+
var WishlistComponent = function WishlistComponent(_ref3) {
|
|
16486
|
+
var _ref3$style = _ref3.style,
|
|
16487
|
+
style = _ref3$style === void 0 ? {} : _ref3$style,
|
|
16488
|
+
token = _ref3.token,
|
|
16489
|
+
_ref3$span = _ref3.span,
|
|
16490
|
+
span = _ref3$span === void 0 ? DEFAULT_GRID_SPAN : _ref3$span,
|
|
16443
16491
|
primaryColor = _ref3.primaryColor,
|
|
16444
|
-
|
|
16445
|
-
|
|
16446
|
-
|
|
16447
|
-
|
|
16448
|
-
|
|
16449
|
-
var
|
|
16450
|
-
|
|
16451
|
-
|
|
16452
|
-
var
|
|
16453
|
-
|
|
16454
|
-
|
|
16455
|
-
var
|
|
16492
|
+
apiEndPoint = _ref3.apiEndPoint,
|
|
16493
|
+
onMoveToCart = _ref3.onMoveToCart,
|
|
16494
|
+
onProductCardClick = _ref3.onProductCardClick,
|
|
16495
|
+
_ref3$allowToProcessI = _ref3.allowToProcessInvoiceForOutOfStockProducts,
|
|
16496
|
+
allowToProcessInvoiceForOutOfStockProducts = _ref3$allowToProcessI === void 0 ? false : _ref3$allowToProcessI;
|
|
16497
|
+
var styleOverrides = React.useMemo(function () {
|
|
16498
|
+
return _extends({}, style || {});
|
|
16499
|
+
}, [style]);
|
|
16500
|
+
var _useState = React.useState(''),
|
|
16501
|
+
searchInput = _useState[0],
|
|
16502
|
+
setSearchInput = _useState[1];
|
|
16503
|
+
var _useState2 = React.useState(''),
|
|
16504
|
+
searchQuery = _useState2[0],
|
|
16505
|
+
setSearchQuery = _useState2[1];
|
|
16506
|
+
var _useState3 = React.useState(0),
|
|
16507
|
+
refreshTrigger = _useState3[0],
|
|
16508
|
+
setRefreshTrigger = _useState3[1];
|
|
16509
|
+
var gridSpan = React.useMemo(function () {
|
|
16510
|
+
return _extends({}, DEFAULT_GRID_SPAN, span || {});
|
|
16511
|
+
}, [span]);
|
|
16512
|
+
var debouncedSearch = React.useMemo(function () {
|
|
16513
|
+
return debounce$1(function (value) {
|
|
16514
|
+
var normalizedValue = value != null ? value : '';
|
|
16515
|
+
if (normalizedValue.length === 0 || normalizedValue.length >= 3) {
|
|
16516
|
+
setSearchQuery(normalizedValue);
|
|
16517
|
+
}
|
|
16518
|
+
}, 500);
|
|
16519
|
+
}, []);
|
|
16520
|
+
React.useEffect(function () {
|
|
16521
|
+
return function () {
|
|
16522
|
+
debouncedSearch.cancel();
|
|
16523
|
+
};
|
|
16524
|
+
}, [debouncedSearch]);
|
|
16525
|
+
var handleSearchChange = React.useCallback(function (e) {
|
|
16526
|
+
var _e$target$value, _e$target;
|
|
16527
|
+
var value = (_e$target$value = e === null || e === void 0 ? void 0 : (_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.value) != null ? _e$target$value : '';
|
|
16528
|
+
setSearchInput(value);
|
|
16529
|
+
debouncedSearch(value);
|
|
16530
|
+
}, [debouncedSearch]);
|
|
16531
|
+
var wishlistTrigger = React.useMemo(function () {
|
|
16532
|
+
return searchQuery + "-" + refreshTrigger;
|
|
16533
|
+
}, [searchQuery, refreshTrigger]);
|
|
16534
|
+
var wishlistAsyncService = React.useCallback(function () {
|
|
16535
|
+
return getWishlistData({
|
|
16536
|
+
apiEndPoint: apiEndPoint,
|
|
16537
|
+
token: token,
|
|
16538
|
+
queryParams: _extends({
|
|
16539
|
+
page: 0,
|
|
16540
|
+
size: 9999
|
|
16541
|
+
}, searchQuery ? {
|
|
16542
|
+
productName: searchQuery
|
|
16543
|
+
} : {})
|
|
16544
|
+
});
|
|
16545
|
+
}, [apiEndPoint, token, searchQuery]);
|
|
16546
|
+
var wishlistLoadingView = React.useMemo(function () {
|
|
16547
|
+
return /*#__PURE__*/React__default.createElement(WishlistProductCardSkeleton, {
|
|
16548
|
+
span: span
|
|
16549
|
+
});
|
|
16550
|
+
}, [span]);
|
|
16551
|
+
if (!token) {
|
|
16552
|
+
return /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("h1", null, "Wishlist"), /*#__PURE__*/React__default.createElement("p", null, "Please log in to view your wishlist."));
|
|
16553
|
+
}
|
|
16554
|
+
if (!apiEndPoint) {
|
|
16555
|
+
return /*#__PURE__*/React__default.createElement(EmptyStateText, null, "Unable to load wishlist. API endpoint is not configured.");
|
|
16556
|
+
}
|
|
16557
|
+
return /*#__PURE__*/React__default.createElement("div", {
|
|
16558
|
+
style: {
|
|
16559
|
+
marginTop: '1rem',
|
|
16560
|
+
height: '100%',
|
|
16561
|
+
width: '100%'
|
|
16562
|
+
}
|
|
16563
|
+
}, /*#__PURE__*/React__default.createElement(AsyncDataLoadComponent, {
|
|
16564
|
+
asyncService: wishlistAsyncService,
|
|
16565
|
+
triggerChange: wishlistTrigger,
|
|
16566
|
+
loadingView: wishlistLoadingView
|
|
16567
|
+
}, function (data) {
|
|
16568
|
+
return /*#__PURE__*/React__default.createElement(WishlistContent, {
|
|
16569
|
+
data: data,
|
|
16570
|
+
apiEndPoint: apiEndPoint,
|
|
16571
|
+
token: token,
|
|
16572
|
+
searchInput: searchInput,
|
|
16573
|
+
onSearchChange: handleSearchChange,
|
|
16574
|
+
searchQuery: searchQuery,
|
|
16575
|
+
styleOverrides: styleOverrides,
|
|
16576
|
+
gridSpan: gridSpan,
|
|
16577
|
+
primaryColor: primaryColor,
|
|
16578
|
+
onMoveToCart: onMoveToCart,
|
|
16579
|
+
onProductCardClick: onProductCardClick,
|
|
16580
|
+
setRefreshTrigger: setRefreshTrigger,
|
|
16581
|
+
allowToProcessInvoiceForOutOfStockProducts: allowToProcessInvoiceForOutOfStockProducts
|
|
16582
|
+
});
|
|
16583
|
+
}));
|
|
16584
|
+
};
|
|
16585
|
+
var ProductCard = function ProductCard(_ref4) {
|
|
16586
|
+
var _product$standardPric, _product$retailPrice;
|
|
16587
|
+
var product = _ref4.product,
|
|
16588
|
+
styleOverrides = _ref4.styleOverrides,
|
|
16589
|
+
primaryColor = _ref4.primaryColor,
|
|
16590
|
+
onMoveToCart = _ref4.onMoveToCart,
|
|
16591
|
+
onProductCardClick = _ref4.onProductCardClick,
|
|
16592
|
+
_ref4$imgNotFoundUrl = _ref4.imgNotFoundUrl,
|
|
16593
|
+
imgNotFoundUrl = _ref4$imgNotFoundUrl === void 0 ? '' : _ref4$imgNotFoundUrl,
|
|
16594
|
+
apiEndPoint = _ref4.apiEndPoint,
|
|
16595
|
+
token = _ref4.token,
|
|
16596
|
+
setRefreshTrigger = _ref4.setRefreshTrigger,
|
|
16597
|
+
allowToProcessInvoiceForOutOfStockProducts = _ref4.allowToProcessInvoiceForOutOfStockProducts;
|
|
16598
|
+
var _useState4 = React.useState(false),
|
|
16599
|
+
deleteLoading = _useState4[0],
|
|
16600
|
+
setDeleteLoading = _useState4[1];
|
|
16601
|
+
var _useState5 = React.useState(false),
|
|
16602
|
+
moveToCartLoading = _useState5[0],
|
|
16603
|
+
setMoveToCartLoading = _useState5[1];
|
|
16604
|
+
if (!product) return null;
|
|
16605
|
+
var removeItem = function removeItem(item) {
|
|
16456
16606
|
try {
|
|
16457
|
-
if (
|
|
16607
|
+
if (!(item !== null && item !== void 0 && item.productId) && !(item !== null && item !== void 0 && item.id)) return Promise.resolve();
|
|
16458
16608
|
setDeleteLoading(true);
|
|
16459
16609
|
var _temp = _finallyRethrows(function () {
|
|
16460
16610
|
return _catch(function () {
|
|
16461
|
-
return Promise.resolve(
|
|
16611
|
+
return Promise.resolve(removeFromWishlist({
|
|
16612
|
+
apiEndPoint: apiEndPoint,
|
|
16613
|
+
token: token,
|
|
16614
|
+
products: [item]
|
|
16615
|
+
})).then(function () {
|
|
16616
|
+
setRefreshTrigger === null || setRefreshTrigger === void 0 ? void 0 : setRefreshTrigger(function (prev) {
|
|
16617
|
+
return prev + 1;
|
|
16618
|
+
});
|
|
16619
|
+
});
|
|
16462
16620
|
}, function () {});
|
|
16463
16621
|
}, function (_wasThrown, _result) {
|
|
16464
16622
|
setDeleteLoading(false);
|
|
@@ -16470,29 +16628,10 @@ var ProductCard = function ProductCard(_ref3) {
|
|
|
16470
16628
|
return Promise.reject(e);
|
|
16471
16629
|
}
|
|
16472
16630
|
};
|
|
16473
|
-
var onChangeQuantity = function onChangeQuantity(product) {
|
|
16474
|
-
try {
|
|
16475
|
-
if (!onAddToCart || typeof onAddToCart !== 'function') return Promise.resolve();
|
|
16476
|
-
var _temp2 = _finallyRethrows(function () {
|
|
16477
|
-
return _catch(function () {
|
|
16478
|
-
setAddToCartLoading(true);
|
|
16479
|
-
return Promise.resolve(onAddToCart(omit(product, WISHLIST_ITEM_OMIT_KEYS))).then(function () {});
|
|
16480
|
-
}, function () {});
|
|
16481
|
-
}, function (_wasThrown2, _result2) {
|
|
16482
|
-
setAddToCartLoading(false);
|
|
16483
|
-
if (_wasThrown2) throw _result2;
|
|
16484
|
-
return _result2;
|
|
16485
|
-
});
|
|
16486
|
-
return Promise.resolve(_temp2 && _temp2.then ? _temp2.then(function () {}) : void 0);
|
|
16487
|
-
} catch (e) {
|
|
16488
|
-
return Promise.reject(e);
|
|
16489
|
-
}
|
|
16490
|
-
};
|
|
16491
16631
|
return /*#__PURE__*/React__default.createElement(ProductCardWrapper, {
|
|
16492
16632
|
style: getStyleOverride(styleOverrides, 'productCardWrapper', 'ProductCardWrapper'),
|
|
16493
16633
|
onClick: function onClick() {
|
|
16494
|
-
|
|
16495
|
-
router$1.push("/product-details/" + paramCase.paramCase((_ref4 = (_product$urlAlias = product.urlAlias) != null ? _product$urlAlias : product.alias) != null ? _ref4 : product.productName) + "?id=" + (product === null || product === void 0 ? void 0 : product.productId));
|
|
16634
|
+
onProductCardClick === null || onProductCardClick === void 0 ? void 0 : onProductCardClick(product);
|
|
16496
16635
|
}
|
|
16497
16636
|
}, /*#__PURE__*/React__default.createElement(DeleteButton, {
|
|
16498
16637
|
type: "button",
|
|
@@ -16501,11 +16640,13 @@ var ProductCard = function ProductCard(_ref3) {
|
|
|
16501
16640
|
style: getStyleOverride(styleOverrides, 'deleteButton', 'DeleteButton'),
|
|
16502
16641
|
onClick: function onClick(e) {
|
|
16503
16642
|
try {
|
|
16504
|
-
var
|
|
16505
|
-
|
|
16506
|
-
|
|
16507
|
-
|
|
16508
|
-
|
|
16643
|
+
var _e$stopPropagation;
|
|
16644
|
+
e === null || e === void 0 ? void 0 : (_e$stopPropagation = e.stopPropagation) === null || _e$stopPropagation === void 0 ? void 0 : _e$stopPropagation.call(e);
|
|
16645
|
+
return Promise.resolve(_catch(function () {
|
|
16646
|
+
var confirm = window.confirm('Are you sure you want to remove this item from wishlist?');
|
|
16647
|
+
if (!confirm) return;
|
|
16648
|
+
return Promise.resolve(removeItem(product)).then(function () {});
|
|
16649
|
+
}, function () {}));
|
|
16509
16650
|
} catch (e) {
|
|
16510
16651
|
return Promise.reject(e);
|
|
16511
16652
|
}
|
|
@@ -16522,42 +16663,65 @@ var ProductCard = function ProductCard(_ref3) {
|
|
|
16522
16663
|
width: 160,
|
|
16523
16664
|
height: 160,
|
|
16524
16665
|
objectFit: "contain"
|
|
16525
|
-
}),
|
|
16666
|
+
}), /*#__PURE__*/React__default.createElement(PriceContainer, {
|
|
16526
16667
|
style: getStyleOverride(styleOverrides, 'priceContainer', 'PriceContainer')
|
|
16527
|
-
}, (product === null || product === void 0 ? void 0 : product.standardPrice) > (product === null || product === void 0 ? void 0 : product.retailPrice) ? /*#__PURE__*/React__default.createElement(DiscountPriceRow, {
|
|
16668
|
+
}, ((_product$standardPric = product === null || product === void 0 ? void 0 : product.standardPrice) != null ? _product$standardPric : 0) > ((_product$retailPrice = product === null || product === void 0 ? void 0 : product.retailPrice) != null ? _product$retailPrice : 0) ? /*#__PURE__*/React__default.createElement(DiscountPriceRow, {
|
|
16528
16669
|
style: getStyleOverride(styleOverrides, 'discountPriceRow', 'DiscountPriceRow')
|
|
16529
|
-
}, /*#__PURE__*/React__default.createElement("del", null, "$" + (product === null || product === void 0 ? void 0 :
|
|
16670
|
+
}, /*#__PURE__*/React__default.createElement("del", null, "$" + formatPrice(product === null || product === void 0 ? void 0 : product.standardPrice.toFixed(2))), /*#__PURE__*/React__default.createElement("div", null, /*#__PURE__*/React__default.createElement("div", null, "$" + formatPrice(product === null || product === void 0 ? void 0 : product.retailPrice.toFixed(2))))) : /*#__PURE__*/React__default.createElement("div", null, "$" + formatPrice(product === null || product === void 0 ? void 0 : product.standardPrice.toFixed(2)))), /*#__PURE__*/React__default.createElement(ProductName$2, {
|
|
16530
16671
|
style: getStyleOverride(styleOverrides, 'productName', 'ProductName')
|
|
16531
|
-
}, product === null || product === void 0 ? void 0 : product.productName), /*#__PURE__*/React__default.createElement("div", null, (product === null || product === void 0 ? void 0 : product.productStock) > 0 || product !== null && product !== void 0 && product.hasChildProduct ? /*#__PURE__*/React__default.createElement(ProductActionButton, {
|
|
16672
|
+
}, product === null || product === void 0 ? void 0 : product.productName), /*#__PURE__*/React__default.createElement("div", null, (product === null || product === void 0 ? void 0 : product.productStock) > 0 || allowToProcessInvoiceForOutOfStockProducts || product !== null && product !== void 0 && product.hasChildProduct ? /*#__PURE__*/React__default.createElement(ProductActionButton, {
|
|
16532
16673
|
variant: "contained",
|
|
16533
16674
|
color: "primary",
|
|
16534
16675
|
primaryColor: primaryColor,
|
|
16535
16676
|
style: getStyleOverride(styleOverrides, 'productActionButton', 'ProductActionButton'),
|
|
16536
16677
|
onClick: function onClick(e) {
|
|
16537
|
-
|
|
16538
|
-
|
|
16539
|
-
|
|
16540
|
-
|
|
16541
|
-
|
|
16542
|
-
|
|
16543
|
-
|
|
16544
|
-
|
|
16545
|
-
|
|
16546
|
-
|
|
16547
|
-
product: product
|
|
16548
|
-
|
|
16549
|
-
|
|
16550
|
-
|
|
16551
|
-
|
|
16678
|
+
try {
|
|
16679
|
+
var _e$stopPropagation2, _e$preventDefault;
|
|
16680
|
+
e === null || e === void 0 ? void 0 : (_e$stopPropagation2 = e.stopPropagation) === null || _e$stopPropagation2 === void 0 ? void 0 : _e$stopPropagation2.call(e);
|
|
16681
|
+
e === null || e === void 0 ? void 0 : (_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
|
|
16682
|
+
return Promise.resolve(function () {
|
|
16683
|
+
if (product !== null && product !== void 0 && product.hasChildProduct) {
|
|
16684
|
+
onProductCardClick === null || onProductCardClick === void 0 ? void 0 : onProductCardClick(product);
|
|
16685
|
+
} else return function () {
|
|
16686
|
+
if (typeof onMoveToCart === 'function') {
|
|
16687
|
+
var _product$id2;
|
|
16688
|
+
var productId = (_product$id2 = product === null || product === void 0 ? void 0 : product.id) != null ? _product$id2 : product === null || product === void 0 ? void 0 : product.productId;
|
|
16689
|
+
if (!productId) return;
|
|
16690
|
+
setMoveToCartLoading(true);
|
|
16691
|
+
var _temp2 = _finallyRethrows(function () {
|
|
16692
|
+
return _catch(function () {
|
|
16693
|
+
return Promise.resolve(moveToCart({
|
|
16694
|
+
apiEndPoint: apiEndPoint,
|
|
16695
|
+
token: token,
|
|
16696
|
+
productId: productId
|
|
16697
|
+
})).then(function () {
|
|
16698
|
+
setRefreshTrigger === null || setRefreshTrigger === void 0 ? void 0 : setRefreshTrigger(function (prev) {
|
|
16699
|
+
return prev + 1;
|
|
16700
|
+
});
|
|
16701
|
+
onMoveToCart(product);
|
|
16702
|
+
});
|
|
16703
|
+
}, function () {});
|
|
16704
|
+
}, function (_wasThrown2, _result3) {
|
|
16705
|
+
setMoveToCartLoading(false);
|
|
16706
|
+
if (_wasThrown2) throw _result3;
|
|
16707
|
+
return _result3;
|
|
16708
|
+
});
|
|
16709
|
+
if (_temp2 && _temp2.then) return _temp2.then(function () {});
|
|
16710
|
+
}
|
|
16711
|
+
}();
|
|
16712
|
+
}());
|
|
16713
|
+
} catch (e) {
|
|
16714
|
+
return Promise.reject(e);
|
|
16552
16715
|
}
|
|
16553
16716
|
}
|
|
16554
|
-
}, product !== null && product !== void 0 && product.hasChildProduct ? 'Select Options' :
|
|
16717
|
+
}, product !== null && product !== void 0 && product.hasChildProduct ? 'Select Options' : moveToCartLoading ? 'Moving...' : 'Move to Cart') : /*#__PURE__*/React__default.createElement(OutOfStockButton, {
|
|
16555
16718
|
variant: "contained",
|
|
16556
16719
|
color: "primary",
|
|
16557
16720
|
disabled: true,
|
|
16558
16721
|
style: getStyleOverride(styleOverrides, 'outOfStockButton', 'OutOfStockButton'),
|
|
16559
16722
|
onClick: function onClick(e) {
|
|
16560
|
-
|
|
16723
|
+
var _e$stopPropagation3;
|
|
16724
|
+
return e === null || e === void 0 ? void 0 : (_e$stopPropagation3 = e.stopPropagation) === null || _e$stopPropagation3 === void 0 ? void 0 : _e$stopPropagation3.call(e);
|
|
16561
16725
|
}
|
|
16562
16726
|
}, "Out Of stock")));
|
|
16563
16727
|
};
|