thm-p3-configurator 0.0.396 → 0.0.398
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/src/shared/__api__/queries.js +61 -24
- package/dist/src/shared/__components__/ProductCard/ProductCardDiscountAlert.js +57 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardImage.js +28 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardPrice.js +37 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardRibbon.js +28 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardSpecifications.js +77 -0
- package/dist/src/shared/__components__/ProductCard/ProductCardUsps.js +82 -0
- package/dist/src/shared/__components__/ProductCard/index.js +228 -0
- package/dist/src/shared/__components__/ProductTable/ProductTableEditableRow.js +66 -0
- package/dist/src/shared/__components__/ProductTable/ProductTableHead.js +32 -0
- package/dist/src/shared/__components__/ProductTable/ProductTableSection.js +25 -0
- package/dist/src/shared/__components__/ProductTable/ProductTableSectionTotal.js +46 -0
- package/dist/src/shared/__components__/ProductTable/ProductTableStaticRow.js +47 -0
- package/dist/src/shared/__components__/ProductTable/ProductTableTotal.js +41 -0
- package/dist/src/shared/__components__/ProductTable/index.js +127 -0
- package/dist/src/shared/__components__/SingleOrderCartCard.js +79 -0
- package/dist/src/shared/__components__/SingleOrderProductCard.js +356 -0
- package/dist/src/shared/__components__/Spinners/FullPageSpinner.js +73 -0
- package/dist/src/shared/__components__/Spinners/InlineSpinner.js +26 -0
- package/dist/src/shared/__components__/Spinners/TextSpinner.js +31 -0
- package/dist/src/shared/__components__/UspsList.js +27 -0
- package/dist/src/shared/__components__/internal/InternalCustomerDetailsForm.js +990 -0
- package/dist/src/shared/__constants__/__tests__/index.test.js +20 -0
- package/dist/src/shared/__constants__/cartTable.js +35 -0
- package/dist/src/shared/__constants__/cookiebot.js +7 -0
- package/dist/src/shared/__constants__/index.js +380 -0
- package/dist/src/shared/__constants__/sentry.js +20 -0
- package/dist/src/shared/__containers__/ANWBMembershipInput.js +170 -0
- package/dist/src/shared/__containers__/AppointmentForm.js +535 -0
- package/dist/src/shared/__containers__/BoardComputerCard.js +139 -0
- package/dist/src/shared/__containers__/BottomNavigationBar.js +182 -0
- package/dist/src/shared/__containers__/DiscountProductsSelector.js +151 -0
- package/dist/src/shared/__containers__/ExitIntentModal.js +403 -0
- package/dist/src/shared/__containers__/ExtraProductsOverview.js +202 -0
- package/dist/src/shared/__containers__/LicensePlateForm.js +169 -0
- package/dist/src/shared/__containers__/ManualSelectionForm.js +277 -0
- package/dist/src/shared/__containers__/ProductCartSide.js +362 -0
- package/dist/src/shared/__containers__/ProductDiscountCard.js +169 -0
- package/dist/src/shared/__containers__/ProductsCartOverview.js +914 -0
- package/dist/src/shared/__containers__/ProductsOverview.js +440 -0
- package/dist/src/shared/__containers__/QuestionsForm.js +494 -0
- package/dist/src/shared/__containers__/QuotationForm.js +520 -0
- package/dist/src/shared/__containers__/QuotationSuccessModal.js +34 -0
- package/dist/src/shared/__containers__/SentryWrapper.js +60 -0
- package/dist/src/shared/__containers__/StyleWrapper.js +81 -0
- package/dist/src/shared/__containers__/VehicleData.js +218 -0
- package/dist/src/shared/__containers__/internal/DirectVehicleSelectorModal.js +125 -0
- package/dist/src/shared/__containers__/internal/InternalSingleOrderCart.js +7 -2
- package/package.json +1 -1
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
require("core-js/modules/es.symbol.description.js");
|
|
4
|
+
require("core-js/modules/es.array.includes.js");
|
|
4
5
|
require("core-js/modules/es.array.sort.js");
|
|
5
6
|
require("core-js/modules/es.json.stringify.js");
|
|
6
7
|
require("core-js/modules/es.object.from-entries.js");
|
|
7
8
|
require("core-js/modules/es.promise.js");
|
|
8
9
|
require("core-js/modules/es.regexp.to-string.js");
|
|
10
|
+
require("core-js/modules/es.string.includes.js");
|
|
9
11
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
10
12
|
require("core-js/modules/esnext.iterator.filter.js");
|
|
11
|
-
require("core-js/modules/esnext.iterator.find.js");
|
|
12
13
|
require("core-js/modules/esnext.iterator.for-each.js");
|
|
13
14
|
require("core-js/modules/esnext.iterator.map.js");
|
|
14
15
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
@@ -18,14 +19,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
18
19
|
});
|
|
19
20
|
exports.useSingleOrderCart = exports.useSingleOrderBranchesQuery = exports.useSingleOrderBranchTypes = exports.useSingleOrderArticles = exports.useQuestionsQuery = exports.useProductsQuery = exports.useProductFieldLabels = exports.usePrivateDossierByTypeAndIdQuery = exports.usePartBrands = exports.useOrderDataQuery = exports.useMyBranches = exports.useModelsQuery = exports.useMarketingChannels = exports.useCountriesQuery = exports.useConfiguratorLocationsQuery = exports.useBusinessBranches = exports.useBuildYearsQuery = exports.useBrandsQuery = exports.useBranchesQuery = exports.useBranchesByType = exports.useBranchTypes = exports.useBranchByIdOrWidgetId = exports.useArticleTypes = exports.useArticleSubGroups = exports.useArticleGroups = exports.useActiveDiscounts = void 0;
|
|
20
21
|
require("core-js/modules/es.symbol.description.js");
|
|
22
|
+
require("core-js/modules/es.array.includes.js");
|
|
21
23
|
require("core-js/modules/es.array.sort.js");
|
|
22
24
|
require("core-js/modules/es.json.stringify.js");
|
|
23
25
|
require("core-js/modules/es.object.from-entries.js");
|
|
24
26
|
require("core-js/modules/es.promise.js");
|
|
25
27
|
require("core-js/modules/es.regexp.to-string.js");
|
|
28
|
+
require("core-js/modules/es.string.includes.js");
|
|
26
29
|
require("core-js/modules/esnext.iterator.constructor.js");
|
|
27
30
|
require("core-js/modules/esnext.iterator.filter.js");
|
|
28
|
-
require("core-js/modules/esnext.iterator.find.js");
|
|
29
31
|
require("core-js/modules/esnext.iterator.for-each.js");
|
|
30
32
|
require("core-js/modules/esnext.iterator.map.js");
|
|
31
33
|
require("core-js/modules/web.dom-collections.iterator.js");
|
|
@@ -308,7 +310,9 @@ const useSingleOrderArticles = exports.useSingleOrderArticles = function useSing
|
|
|
308
310
|
totalArticles: 0
|
|
309
311
|
};
|
|
310
312
|
}
|
|
311
|
-
const currentArticles = await (0, _singleOrderArticles.enrichArticlesWithBrandsAndPrices)(articles, branchId || null, branchId ? singleOrderFormula : singleOrderFormula || 'THL'
|
|
313
|
+
const currentArticles = await (0, _singleOrderArticles.enrichArticlesWithBrandsAndPrices)(articles, branchId || null, branchId ? singleOrderFormula : singleOrderFormula || 'THL', {
|
|
314
|
+
useArticleNumberForPricing: true
|
|
315
|
+
});
|
|
312
316
|
const pricedArticles = currentArticles.filter(article => {
|
|
313
317
|
const {
|
|
314
318
|
priceExclVat,
|
|
@@ -392,23 +396,33 @@ const useSingleOrderCart = () => {
|
|
|
392
396
|
})).toString();
|
|
393
397
|
const cartQuery = (0, _reactQuery.useQuery)(['singleOrderCart', cartOrderQuery, webshop], {
|
|
394
398
|
queryFn: async () => {
|
|
395
|
-
var
|
|
399
|
+
var _articleResponse$arti2;
|
|
400
|
+
const emptyTotals = {
|
|
401
|
+
totalQuantity: 0,
|
|
402
|
+
totalBtw: 0,
|
|
403
|
+
totalExclVat: 0,
|
|
404
|
+
totalInclVat: 0
|
|
405
|
+
};
|
|
396
406
|
if (!singleOrderCart.length) {
|
|
397
407
|
return {
|
|
398
408
|
articles: [],
|
|
399
|
-
totals:
|
|
409
|
+
totals: emptyTotals,
|
|
410
|
+
validationError: null
|
|
400
411
|
};
|
|
401
412
|
}
|
|
402
413
|
|
|
403
414
|
// If webshop is selected, use Shopify prices directly without API call
|
|
404
415
|
if (webshop) {
|
|
405
|
-
var
|
|
406
|
-
const
|
|
407
|
-
const
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
const
|
|
416
|
+
var _articleResponse$arti;
|
|
417
|
+
const articleResponse = await (0, _singleOrderArticles.fetchArticlesByArticleNumbers)(singleOrderCart.map(article => article.articleNumber), null, false, null, singleOrderFormula);
|
|
418
|
+
const articleLookup = Object.fromEntries(((_articleResponse$arti = articleResponse === null || articleResponse === void 0 ? void 0 : articleResponse.articles) !== null && _articleResponse$arti !== void 0 ? _articleResponse$arti : []).map(article => [article.articleNumber, article]));
|
|
419
|
+
const articlesWithPrice = singleOrderCart.map(cartItem => {
|
|
420
|
+
var _articleLookup$cartIt, _article$name, _cartItem$brandNumber;
|
|
421
|
+
const article = (_articleLookup$cartIt = articleLookup[cartItem.articleNumber]) !== null && _articleLookup$cartIt !== void 0 ? _articleLookup$cartIt : {};
|
|
422
|
+
const totals = cartTotalsLookup[cartItem.articleNumber];
|
|
411
423
|
return _objectSpread(_objectSpread({}, article), {}, {
|
|
424
|
+
articleNumber: cartItem.articleNumber,
|
|
425
|
+
name: (_article$name = article === null || article === void 0 ? void 0 : article.name) !== null && _article$name !== void 0 ? _article$name : cartItem.articleNumber,
|
|
412
426
|
price: cartItem !== null && cartItem !== void 0 && cartItem.productPriceInclVat ? Math.round(Number(cartItem === null || cartItem === void 0 ? void 0 : cartItem.productPriceInclVat) * 100) / 100 : 0,
|
|
413
427
|
quantity: Number(cartItem === null || cartItem === void 0 ? void 0 : cartItem.quantity),
|
|
414
428
|
// Add the calculated totals using Shopify prices
|
|
@@ -429,25 +443,47 @@ const useSingleOrderCart = () => {
|
|
|
429
443
|
totalBtw: Math.round(totalBtw * 100) / 100,
|
|
430
444
|
totalExclVat: Math.round(totalExclVat * 100) / 100,
|
|
431
445
|
totalInclVat: Math.round(totalInclVat * 100) / 100
|
|
432
|
-
}
|
|
446
|
+
},
|
|
447
|
+
validationError: null
|
|
433
448
|
};
|
|
434
449
|
}
|
|
435
450
|
|
|
436
|
-
// Original logic for non-webshop orders
|
|
437
|
-
|
|
438
|
-
|
|
451
|
+
// Original logic for non-webshop orders.
|
|
452
|
+
// If Hyper rejects a cart with ARTICLES_NOT_FOUND (404), keep rendering
|
|
453
|
+
// from the local session cart instead of breaking the entire cart query.
|
|
454
|
+
let cart = [];
|
|
455
|
+
let validationError = null;
|
|
456
|
+
try {
|
|
457
|
+
var _orderResults$data$ca, _orderResults$data;
|
|
458
|
+
const orderResults = await _authenticatedProxyApi.authenticatedProxyApi.getOrder(cartOrderQuery).then(res => res.data);
|
|
459
|
+
cart = (_orderResults$data$ca = orderResults === null || orderResults === void 0 || (_orderResults$data = orderResults.data) === null || _orderResults$data === void 0 ? void 0 : _orderResults$data.cart) !== null && _orderResults$data$ca !== void 0 ? _orderResults$data$ca : [];
|
|
460
|
+
} catch (error) {
|
|
461
|
+
var _error$response, _error$response2, _error$response3;
|
|
462
|
+
const isCartOrderLookup = cartOrderQuery.includes('cart=');
|
|
463
|
+
const isArticlesNotFoundError = (error === null || error === void 0 || (_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.status) === 404 && (error === null || error === void 0 || (_error$response2 = error.response) === null || _error$response2 === void 0 || (_error$response2 = _error$response2.data) === null || _error$response2 === void 0 ? void 0 : _error$response2.code) === 'ARTICLES_NOT_FOUND';
|
|
464
|
+
const isGenericNotFoundError = (error === null || error === void 0 || (_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.status) === 404;
|
|
465
|
+
if (!isCartOrderLookup || !isArticlesNotFoundError && !isGenericNotFoundError) {
|
|
466
|
+
throw error;
|
|
467
|
+
}
|
|
468
|
+
cart = apiCart;
|
|
469
|
+
validationError = 'Een of meer artikelen in de winkelwagen zijn momenteel niet bestelbaar voor deze formule.';
|
|
470
|
+
}
|
|
471
|
+
if (!cart.length) {
|
|
439
472
|
return {
|
|
440
|
-
|
|
473
|
+
articles: [],
|
|
474
|
+
totals: emptyTotals,
|
|
475
|
+
validationError
|
|
441
476
|
};
|
|
442
477
|
}
|
|
443
|
-
const
|
|
444
|
-
const
|
|
445
|
-
const
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
const
|
|
449
|
-
const totals = cartTotalsLookup[article.articleNumber];
|
|
478
|
+
const articleResponse = await (0, _singleOrderArticles.fetchArticlesByArticleNumbers)(cart.map(article => article.articleNumber), null, false, null, singleOrderFormula);
|
|
479
|
+
const articleLookup = Object.fromEntries(((_articleResponse$arti2 = articleResponse === null || articleResponse === void 0 ? void 0 : articleResponse.articles) !== null && _articleResponse$arti2 !== void 0 ? _articleResponse$arti2 : []).map(article => [article.articleNumber, article]));
|
|
480
|
+
const articlesWithPrice = cart.map(cartItem => {
|
|
481
|
+
var _articleLookup$cartIt2, _article$name2, _cartItem$brandNumber2;
|
|
482
|
+
const article = (_articleLookup$cartIt2 = articleLookup[cartItem.articleNumber]) !== null && _articleLookup$cartIt2 !== void 0 ? _articleLookup$cartIt2 : {};
|
|
483
|
+
const totals = cartTotalsLookup[cartItem.articleNumber];
|
|
450
484
|
return _objectSpread(_objectSpread({}, article), {}, {
|
|
485
|
+
articleNumber: cartItem.articleNumber,
|
|
486
|
+
name: (_article$name2 = article === null || article === void 0 ? void 0 : article.name) !== null && _article$name2 !== void 0 ? _article$name2 : cartItem.articleNumber,
|
|
451
487
|
price: cartItem !== null && cartItem !== void 0 && cartItem.consumerTotal ? Math.round(Number(cartItem === null || cartItem === void 0 ? void 0 : cartItem.consumerTotal) * 100) / 100 : 0,
|
|
452
488
|
quantity: Number(cartItem === null || cartItem === void 0 ? void 0 : cartItem.quantity),
|
|
453
489
|
// Add the calculated totals
|
|
@@ -468,7 +504,8 @@ const useSingleOrderCart = () => {
|
|
|
468
504
|
totalBtw: Math.round(totalBtw * 100) / 100,
|
|
469
505
|
totalExclVat: Math.round(totalExclVat * 100) / 100,
|
|
470
506
|
totalInclVat: Math.round(totalInclVat * 100) / 100
|
|
471
|
-
}
|
|
507
|
+
},
|
|
508
|
+
validationError
|
|
472
509
|
};
|
|
473
510
|
}
|
|
474
511
|
});
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.weak-map.js");
|
|
4
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
5
|
+
require("core-js/modules/es.weak-map.js");
|
|
6
|
+
require("core-js/modules/web.dom-collections.iterator.js");
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
12
|
+
var _helpers__ = require("../../__helpers__");
|
|
13
|
+
function _getRequireWildcardCache(e) {
|
|
14
|
+
if ("function" != typeof WeakMap) return null;
|
|
15
|
+
var r = new WeakMap(),
|
|
16
|
+
t = new WeakMap();
|
|
17
|
+
return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
|
|
18
|
+
return e ? t : r;
|
|
19
|
+
})(e);
|
|
20
|
+
}
|
|
21
|
+
function _interopRequireWildcard(e, r) {
|
|
22
|
+
if (!r && e && e.__esModule) return e;
|
|
23
|
+
if (null === e || "object" != typeof e && "function" != typeof e) return {
|
|
24
|
+
default: e
|
|
25
|
+
};
|
|
26
|
+
var t = _getRequireWildcardCache(r);
|
|
27
|
+
if (t && t.has(e)) return t.get(e);
|
|
28
|
+
var n = {
|
|
29
|
+
__proto__: null
|
|
30
|
+
},
|
|
31
|
+
a = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
32
|
+
for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
|
|
33
|
+
var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
|
|
34
|
+
i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
|
|
35
|
+
}
|
|
36
|
+
return n.default = e, t && t.set(e, n), n;
|
|
37
|
+
}
|
|
38
|
+
const ProductCardDiscountAlert = _ref => {
|
|
39
|
+
let {
|
|
40
|
+
label,
|
|
41
|
+
price,
|
|
42
|
+
discountedPrice
|
|
43
|
+
} = _ref;
|
|
44
|
+
if (!discountedPrice || !price || discountedPrice >= price) {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
const discountLabel = (0, _react.useMemo)(() => {
|
|
48
|
+
if (label) {
|
|
49
|
+
return label;
|
|
50
|
+
}
|
|
51
|
+
return "\u20AC".concat((0, _helpers__.formatPrice)(price - discountedPrice), " Korting");
|
|
52
|
+
}, []);
|
|
53
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
54
|
+
className: (0, _helpers__.withStyle)('alert alert-danger card--discount-label')
|
|
55
|
+
}, discountLabel);
|
|
56
|
+
};
|
|
57
|
+
var _default = exports.default = ProductCardDiscountAlert;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _helpers__ = require("../../__helpers__");
|
|
9
|
+
function _interopRequireDefault(e) {
|
|
10
|
+
return e && e.__esModule ? e : {
|
|
11
|
+
default: e
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const ProductCardImage = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
image,
|
|
17
|
+
isBoardComputer
|
|
18
|
+
} = _ref;
|
|
19
|
+
if (!image) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
|
23
|
+
src: image,
|
|
24
|
+
className: (0, _helpers__.withStyle)("card__image img-fluid ".concat(isBoardComputer ? 'mb-2' : '')),
|
|
25
|
+
alt: "product afbeelding"
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var _default = exports.default = ProductCardImage;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _helpers__ = require("../../__helpers__");
|
|
9
|
+
function _interopRequireDefault(e) {
|
|
10
|
+
return e && e.__esModule ? e : {
|
|
11
|
+
default: e
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
const ProductCardPrice = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
price,
|
|
17
|
+
discountedPrice
|
|
18
|
+
} = _ref;
|
|
19
|
+
if (!discountedPrice) {
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement("span", {
|
|
21
|
+
className: (0, _helpers__.withStyle)('card__price')
|
|
22
|
+
}, (0, _helpers__.formatPrice)(price));
|
|
23
|
+
}
|
|
24
|
+
if (discountedPrice < price) {
|
|
25
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
|
|
26
|
+
className: (0, _helpers__.withStyle)('card__price')
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement("span", {
|
|
28
|
+
className: (0, _helpers__.withStyle)('strikethrough card-price-label')
|
|
29
|
+
}, (0, _helpers__.formatPrice)(price))), /*#__PURE__*/_react.default.createElement("div", {
|
|
30
|
+
className: (0, _helpers__.withStyle)('card__price text-danger')
|
|
31
|
+
}, (0, _helpers__.formatPrice)(discountedPrice)));
|
|
32
|
+
}
|
|
33
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
34
|
+
className: (0, _helpers__.withStyle)('card__price')
|
|
35
|
+
}, (0, _helpers__.formatPrice)(price));
|
|
36
|
+
};
|
|
37
|
+
var _default = exports.default = ProductCardPrice;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _labelBesteKeuze = _interopRequireDefault(require("../../../../public/assets/images/label-beste-keuze.png"));
|
|
9
|
+
var _helpers__ = require("../../__helpers__");
|
|
10
|
+
function _interopRequireDefault(e) {
|
|
11
|
+
return e && e.__esModule ? e : {
|
|
12
|
+
default: e
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
const ProductCardRibbon = _ref => {
|
|
16
|
+
let {
|
|
17
|
+
isRecommended
|
|
18
|
+
} = _ref;
|
|
19
|
+
if (!isRecommended) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement("img", {
|
|
23
|
+
src: _labelBesteKeuze.default,
|
|
24
|
+
className: (0, _helpers__.withStyle)('card-img__best-choice position-absolute'),
|
|
25
|
+
alt: "Beste keuze"
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
var _default = exports.default = ProductCardRibbon;
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/es.array.includes.js");
|
|
4
|
+
require("core-js/modules/es.string.includes.js");
|
|
5
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
6
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
7
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
8
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
+
Object.defineProperty(exports, "__esModule", {
|
|
10
|
+
value: true
|
|
11
|
+
});
|
|
12
|
+
exports.default = void 0;
|
|
13
|
+
require("core-js/modules/es.array.includes.js");
|
|
14
|
+
require("core-js/modules/es.string.includes.js");
|
|
15
|
+
require("core-js/modules/esnext.iterator.constructor.js");
|
|
16
|
+
require("core-js/modules/esnext.iterator.filter.js");
|
|
17
|
+
require("core-js/modules/esnext.iterator.find.js");
|
|
18
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
19
|
+
var _react = _interopRequireDefault(require("react"));
|
|
20
|
+
var _constants__ = require("../../__constants__");
|
|
21
|
+
var _helpers__ = require("../../__helpers__");
|
|
22
|
+
function _interopRequireDefault(e) {
|
|
23
|
+
return e && e.__esModule ? e : {
|
|
24
|
+
default: e
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
const ProductCardSpecifications = _ref => {
|
|
28
|
+
let {
|
|
29
|
+
specifications = [],
|
|
30
|
+
className = '',
|
|
31
|
+
excludeKeys = []
|
|
32
|
+
} = _ref;
|
|
33
|
+
if (!specifications.length) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// convert the key to a human readable format
|
|
38
|
+
const convertedSpecifications = specifications.filter(_ref2 => {
|
|
39
|
+
let {
|
|
40
|
+
key
|
|
41
|
+
} = _ref2;
|
|
42
|
+
return key !== 'Weight';
|
|
43
|
+
}).map(_ref3 => {
|
|
44
|
+
let {
|
|
45
|
+
key,
|
|
46
|
+
value
|
|
47
|
+
} = _ref3;
|
|
48
|
+
const translation = _constants__.ARTICLE_SPECS_TRANSLATIONS.find(_ref4 => {
|
|
49
|
+
let {
|
|
50
|
+
key: translationKey
|
|
51
|
+
} = _ref4;
|
|
52
|
+
return translationKey === key;
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
key: (translation === null || translation === void 0 ? void 0 : translation.value) || key,
|
|
56
|
+
value
|
|
57
|
+
};
|
|
58
|
+
});
|
|
59
|
+
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
60
|
+
className: (0, _helpers__.withStyle)("col-md-6 list-unstyled product-critera__text mb-2 ".concat(className))
|
|
61
|
+
}, convertedSpecifications.filter(_ref5 => {
|
|
62
|
+
let {
|
|
63
|
+
key
|
|
64
|
+
} = _ref5;
|
|
65
|
+
return !excludeKeys.includes(key);
|
|
66
|
+
}).map(_ref6 => {
|
|
67
|
+
let {
|
|
68
|
+
key,
|
|
69
|
+
value
|
|
70
|
+
} = _ref6;
|
|
71
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
72
|
+
key: key + value,
|
|
73
|
+
className: (0, _helpers__.withStyle)('d-flex justify-content-between card-text__criterea')
|
|
74
|
+
}, Number.isInteger(Number(key)) ? value : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("strong", null, key, ":"), " ", value));
|
|
75
|
+
}));
|
|
76
|
+
};
|
|
77
|
+
var _default = exports.default = ProductCardSpecifications;
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
require("core-js/modules/esnext.iterator.map.js");
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _helpers__ = require("../../__helpers__");
|
|
11
|
+
function _interopRequireDefault(e) {
|
|
12
|
+
return e && e.__esModule ? e : {
|
|
13
|
+
default: e
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
const ProductCardUspInclude = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
text
|
|
19
|
+
} = _ref;
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement("li", null, "Geschikt voor ", text);
|
|
21
|
+
};
|
|
22
|
+
const ProductCardUspRemark = _ref2 => {
|
|
23
|
+
let {
|
|
24
|
+
text
|
|
25
|
+
} = _ref2;
|
|
26
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
27
|
+
className: (0, _helpers__.withStyle)('info')
|
|
28
|
+
}, "Opmerking ", text);
|
|
29
|
+
};
|
|
30
|
+
const ProductCardUspExclude = _ref3 => {
|
|
31
|
+
let {
|
|
32
|
+
text
|
|
33
|
+
} = _ref3;
|
|
34
|
+
return /*#__PURE__*/_react.default.createElement("li", {
|
|
35
|
+
className: (0, _helpers__.withStyle)('x-mark')
|
|
36
|
+
}, "Niet geschikt voor ", text);
|
|
37
|
+
};
|
|
38
|
+
const ProductCardUSPS = _ref4 => {
|
|
39
|
+
let {
|
|
40
|
+
usps = [],
|
|
41
|
+
className = ''
|
|
42
|
+
} = _ref4;
|
|
43
|
+
if (!usps.length) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement("ul", {
|
|
47
|
+
className: (0, _helpers__.withStyle)("list-check mt-2 col-12 col-md-6 ".concat(className))
|
|
48
|
+
}, usps.map((usp, key) => {
|
|
49
|
+
const {
|
|
50
|
+
type,
|
|
51
|
+
text
|
|
52
|
+
} = usp;
|
|
53
|
+
if (!type || !text) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
switch (type) {
|
|
57
|
+
case 'incl':
|
|
58
|
+
{
|
|
59
|
+
return /*#__PURE__*/_react.default.createElement(ProductCardUspInclude, {
|
|
60
|
+
key: text,
|
|
61
|
+
text: text
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
case 'excl':
|
|
65
|
+
{
|
|
66
|
+
return /*#__PURE__*/_react.default.createElement(ProductCardUspExclude, {
|
|
67
|
+
key: text,
|
|
68
|
+
text: text
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
default:
|
|
72
|
+
case 'remark':
|
|
73
|
+
{
|
|
74
|
+
return /*#__PURE__*/_react.default.createElement(ProductCardUspRemark, {
|
|
75
|
+
key: text,
|
|
76
|
+
text: text
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
};
|
|
82
|
+
var _default = exports.default = ProductCardUSPS;
|