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.
Files changed (49) hide show
  1. package/dist/src/shared/__api__/queries.js +61 -24
  2. package/dist/src/shared/__components__/ProductCard/ProductCardDiscountAlert.js +57 -0
  3. package/dist/src/shared/__components__/ProductCard/ProductCardImage.js +28 -0
  4. package/dist/src/shared/__components__/ProductCard/ProductCardPrice.js +37 -0
  5. package/dist/src/shared/__components__/ProductCard/ProductCardRibbon.js +28 -0
  6. package/dist/src/shared/__components__/ProductCard/ProductCardSpecifications.js +77 -0
  7. package/dist/src/shared/__components__/ProductCard/ProductCardUsps.js +82 -0
  8. package/dist/src/shared/__components__/ProductCard/index.js +228 -0
  9. package/dist/src/shared/__components__/ProductTable/ProductTableEditableRow.js +66 -0
  10. package/dist/src/shared/__components__/ProductTable/ProductTableHead.js +32 -0
  11. package/dist/src/shared/__components__/ProductTable/ProductTableSection.js +25 -0
  12. package/dist/src/shared/__components__/ProductTable/ProductTableSectionTotal.js +46 -0
  13. package/dist/src/shared/__components__/ProductTable/ProductTableStaticRow.js +47 -0
  14. package/dist/src/shared/__components__/ProductTable/ProductTableTotal.js +41 -0
  15. package/dist/src/shared/__components__/ProductTable/index.js +127 -0
  16. package/dist/src/shared/__components__/SingleOrderCartCard.js +79 -0
  17. package/dist/src/shared/__components__/SingleOrderProductCard.js +356 -0
  18. package/dist/src/shared/__components__/Spinners/FullPageSpinner.js +73 -0
  19. package/dist/src/shared/__components__/Spinners/InlineSpinner.js +26 -0
  20. package/dist/src/shared/__components__/Spinners/TextSpinner.js +31 -0
  21. package/dist/src/shared/__components__/UspsList.js +27 -0
  22. package/dist/src/shared/__components__/internal/InternalCustomerDetailsForm.js +990 -0
  23. package/dist/src/shared/__constants__/__tests__/index.test.js +20 -0
  24. package/dist/src/shared/__constants__/cartTable.js +35 -0
  25. package/dist/src/shared/__constants__/cookiebot.js +7 -0
  26. package/dist/src/shared/__constants__/index.js +380 -0
  27. package/dist/src/shared/__constants__/sentry.js +20 -0
  28. package/dist/src/shared/__containers__/ANWBMembershipInput.js +170 -0
  29. package/dist/src/shared/__containers__/AppointmentForm.js +535 -0
  30. package/dist/src/shared/__containers__/BoardComputerCard.js +139 -0
  31. package/dist/src/shared/__containers__/BottomNavigationBar.js +182 -0
  32. package/dist/src/shared/__containers__/DiscountProductsSelector.js +151 -0
  33. package/dist/src/shared/__containers__/ExitIntentModal.js +403 -0
  34. package/dist/src/shared/__containers__/ExtraProductsOverview.js +202 -0
  35. package/dist/src/shared/__containers__/LicensePlateForm.js +169 -0
  36. package/dist/src/shared/__containers__/ManualSelectionForm.js +277 -0
  37. package/dist/src/shared/__containers__/ProductCartSide.js +362 -0
  38. package/dist/src/shared/__containers__/ProductDiscountCard.js +169 -0
  39. package/dist/src/shared/__containers__/ProductsCartOverview.js +914 -0
  40. package/dist/src/shared/__containers__/ProductsOverview.js +440 -0
  41. package/dist/src/shared/__containers__/QuestionsForm.js +494 -0
  42. package/dist/src/shared/__containers__/QuotationForm.js +520 -0
  43. package/dist/src/shared/__containers__/QuotationSuccessModal.js +34 -0
  44. package/dist/src/shared/__containers__/SentryWrapper.js +60 -0
  45. package/dist/src/shared/__containers__/StyleWrapper.js +81 -0
  46. package/dist/src/shared/__containers__/VehicleData.js +218 -0
  47. package/dist/src/shared/__containers__/internal/DirectVehicleSelectorModal.js +125 -0
  48. package/dist/src/shared/__containers__/internal/InternalSingleOrderCart.js +7 -2
  49. 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 _articles$articles2;
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 _articles$articles;
406
- const articles = await (0, _singleOrderArticles.fetchArticlesByArticleNumbers)(singleOrderCart.map(article => article.articleNumber), null, false, null, singleOrderFormula);
407
- const articlesWithPrice = articles === null || articles === void 0 || (_articles$articles = articles.articles) === null || _articles$articles === void 0 ? void 0 : _articles$articles.map(article => {
408
- var _cartItem$brandNumber;
409
- const cartItem = singleOrderCart.find(item => item.articleNumber === article.articleNumber);
410
- const totals = cartTotalsLookup[article.articleNumber];
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
- const orderResults = await _authenticatedProxyApi.authenticatedProxyApi.getOrder(cartOrderQuery).then(res => res.data);
438
- if (!orderResults.data.cart) {
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
- cart: []
473
+ articles: [],
474
+ totals: emptyTotals,
475
+ validationError
441
476
  };
442
477
  }
443
- const cart = orderResults.data.cart;
444
- const articles = await (0, _singleOrderArticles.fetchArticlesByArticleNumbers)(cart.map(article => article.articleNumber), null, false, null, singleOrderFormula);
445
- const cartLookup = Object.fromEntries(cart.map(item => [item.articleNumber, item]));
446
- const articlesWithPrice = articles === null || articles === void 0 || (_articles$articles2 = articles.articles) === null || _articles$articles2 === void 0 ? void 0 : _articles$articles2.map(article => {
447
- var _cartItem$brandNumber2;
448
- const cartItem = cartLookup[article.articleNumber];
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;