thm-p3-configurator 0.0.394 → 0.0.396

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 (51) hide show
  1. package/dist/src/shared/__api__/queries.js +1 -3
  2. package/dist/src/shared/__helpers__/image.js +28 -1
  3. package/dist/src/shared/__helpers__/product.js +2 -5
  4. package/dist/src/shared/__helpers__/singleOrderArticles.js +1 -3
  5. package/package.json +1 -1
  6. package/dist/src/shared/__components__/ProductCard/ProductCardDiscountAlert.js +0 -57
  7. package/dist/src/shared/__components__/ProductCard/ProductCardImage.js +0 -28
  8. package/dist/src/shared/__components__/ProductCard/ProductCardPrice.js +0 -37
  9. package/dist/src/shared/__components__/ProductCard/ProductCardRibbon.js +0 -28
  10. package/dist/src/shared/__components__/ProductCard/ProductCardSpecifications.js +0 -77
  11. package/dist/src/shared/__components__/ProductCard/ProductCardUsps.js +0 -82
  12. package/dist/src/shared/__components__/ProductCard/index.js +0 -228
  13. package/dist/src/shared/__components__/ProductTable/ProductTableEditableRow.js +0 -66
  14. package/dist/src/shared/__components__/ProductTable/ProductTableHead.js +0 -32
  15. package/dist/src/shared/__components__/ProductTable/ProductTableSection.js +0 -25
  16. package/dist/src/shared/__components__/ProductTable/ProductTableSectionTotal.js +0 -46
  17. package/dist/src/shared/__components__/ProductTable/ProductTableStaticRow.js +0 -47
  18. package/dist/src/shared/__components__/ProductTable/ProductTableTotal.js +0 -41
  19. package/dist/src/shared/__components__/ProductTable/index.js +0 -127
  20. package/dist/src/shared/__components__/SingleOrderCartCard.js +0 -79
  21. package/dist/src/shared/__components__/SingleOrderProductCard.js +0 -356
  22. package/dist/src/shared/__components__/Spinners/FullPageSpinner.js +0 -73
  23. package/dist/src/shared/__components__/Spinners/InlineSpinner.js +0 -26
  24. package/dist/src/shared/__components__/Spinners/TextSpinner.js +0 -31
  25. package/dist/src/shared/__components__/UspsList.js +0 -27
  26. package/dist/src/shared/__components__/internal/InternalCustomerDetailsForm.js +0 -990
  27. package/dist/src/shared/__constants__/__tests__/index.test.js +0 -20
  28. package/dist/src/shared/__constants__/cartTable.js +0 -35
  29. package/dist/src/shared/__constants__/cookiebot.js +0 -7
  30. package/dist/src/shared/__constants__/index.js +0 -380
  31. package/dist/src/shared/__constants__/sentry.js +0 -20
  32. package/dist/src/shared/__containers__/ANWBMembershipInput.js +0 -170
  33. package/dist/src/shared/__containers__/AppointmentForm.js +0 -535
  34. package/dist/src/shared/__containers__/BoardComputerCard.js +0 -139
  35. package/dist/src/shared/__containers__/BottomNavigationBar.js +0 -182
  36. package/dist/src/shared/__containers__/DiscountProductsSelector.js +0 -151
  37. package/dist/src/shared/__containers__/ExitIntentModal.js +0 -403
  38. package/dist/src/shared/__containers__/ExtraProductsOverview.js +0 -202
  39. package/dist/src/shared/__containers__/LicensePlateForm.js +0 -169
  40. package/dist/src/shared/__containers__/ManualSelectionForm.js +0 -277
  41. package/dist/src/shared/__containers__/ProductCartSide.js +0 -362
  42. package/dist/src/shared/__containers__/ProductDiscountCard.js +0 -169
  43. package/dist/src/shared/__containers__/ProductsCartOverview.js +0 -914
  44. package/dist/src/shared/__containers__/ProductsOverview.js +0 -440
  45. package/dist/src/shared/__containers__/QuestionsForm.js +0 -494
  46. package/dist/src/shared/__containers__/QuotationForm.js +0 -520
  47. package/dist/src/shared/__containers__/QuotationSuccessModal.js +0 -34
  48. package/dist/src/shared/__containers__/SentryWrapper.js +0 -60
  49. package/dist/src/shared/__containers__/StyleWrapper.js +0 -81
  50. package/dist/src/shared/__containers__/VehicleData.js +0 -218
  51. package/dist/src/shared/__containers__/internal/DirectVehicleSelectorModal.js +0 -125
@@ -308,9 +308,7 @@ const useSingleOrderArticles = exports.useSingleOrderArticles = function useSing
308
308
  totalArticles: 0
309
309
  };
310
310
  }
311
- const currentArticles = await (0, _singleOrderArticles.enrichArticlesWithBrandsAndPrices)(articles, branchId || null, branchId ? singleOrderFormula : singleOrderFormula || 'THL', {
312
- useArticleNumberForPricing: true
313
- });
311
+ const currentArticles = await (0, _singleOrderArticles.enrichArticlesWithBrandsAndPrices)(articles, branchId || null, branchId ? singleOrderFormula : singleOrderFormula || 'THL');
314
312
  const pricedArticles = currentArticles.filter(article => {
315
313
  const {
316
314
  priceExclVat,
@@ -1,7 +1,11 @@
1
1
  "use strict";
2
2
 
3
+ require("core-js/modules/es.array.includes.js");
3
4
  require("core-js/modules/es.json.stringify.js");
5
+ require("core-js/modules/es.regexp.exec.js");
4
6
  require("core-js/modules/es.regexp.to-string.js");
7
+ require("core-js/modules/es.string.includes.js");
8
+ require("core-js/modules/es.string.replace.js");
5
9
  require("core-js/modules/esnext.iterator.constructor.js");
6
10
  require("core-js/modules/esnext.iterator.filter.js");
7
11
  require("core-js/modules/esnext.iterator.for-each.js");
@@ -12,8 +16,12 @@ Object.defineProperty(exports, "__esModule", {
12
16
  value: true
13
17
  });
14
18
  exports.getImageFromHyper = void 0;
19
+ require("core-js/modules/es.array.includes.js");
15
20
  require("core-js/modules/es.json.stringify.js");
21
+ require("core-js/modules/es.regexp.exec.js");
16
22
  require("core-js/modules/es.regexp.to-string.js");
23
+ require("core-js/modules/es.string.includes.js");
24
+ require("core-js/modules/es.string.replace.js");
17
25
  var _buffer = require("buffer");
18
26
  function ownKeys(e, r) {
19
27
  var t = Object.keys(e);
@@ -58,6 +66,24 @@ function _toPrimitive(t, r) {
58
66
  }
59
67
  return ("string" === r ? String : Number)(t);
60
68
  }
69
+ const HYPER_IMAGES_STAGING_ORIGIN = 'https://images.hyper1.net';
70
+ const HYPER_IMAGES_PRODUCTION_ORIGIN = 'https://images.hyperportal.org';
71
+
72
+ /**
73
+ * Staging hosts use "stg-" in the hostname (see terraform); otherwise production CDN.
74
+ */
75
+ const resolveHyperImagesOrigin = () => {
76
+ var _window$location;
77
+ if (typeof window !== 'undefined' && (_window$location = window.location) !== null && _window$location !== void 0 && _window$location.hostname) {
78
+ const host = window.location.hostname.toLowerCase();
79
+ if (host.includes('stg-') || host === 'localhost' || host === '127.0.0.1') {
80
+ return HYPER_IMAGES_STAGING_ORIGIN;
81
+ }
82
+ return HYPER_IMAGES_PRODUCTION_ORIGIN;
83
+ }
84
+ return HYPER_IMAGES_STAGING_ORIGIN;
85
+ };
86
+
61
87
  /**
62
88
  * @description Creates an image URL based with an imageId originating from Hyper API
63
89
  */
@@ -83,6 +109,7 @@ const getImageFromHyper = _ref => {
83
109
  },
84
110
  outputFormat: 'webp'
85
111
  };
86
- return "https://images.hyper1.net/".concat(_buffer.Buffer.from(JSON.stringify(request), 'utf-8').toString('base64'));
112
+ const base = resolveHyperImagesOrigin().replace(/\/$/, '');
113
+ return "".concat(base, "/").concat(_buffer.Buffer.from(JSON.stringify(request), 'utf-8').toString('base64'));
87
114
  };
88
115
  exports.getImageFromHyper = getImageFromHyper;
@@ -27,7 +27,6 @@ require("core-js/modules/esnext.iterator.map.js");
27
27
  require("core-js/modules/esnext.iterator.some.js");
28
28
  require("core-js/modules/web.dom-collections.iterator.js");
29
29
  var _constants__ = require("../__constants__");
30
- var _cartTable = require("../__constants__/cartTable");
31
30
  function ownKeys(e, r) {
32
31
  var t = Object.keys(e);
33
32
  if (Object.getOwnPropertySymbols) {
@@ -127,11 +126,9 @@ const firstFiniteNumber = function firstFiniteNumber() {
127
126
  const resolveSingleOrderArticlePrices = exports.resolveSingleOrderArticlePrices = function resolveSingleOrderArticlePrices() {
128
127
  var _article$locationPric, _article$consumerPric, _article$locationPric2, _article$consumerPric2;
129
128
  let article = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
130
- const fallbackInclVat = firstFiniteNumber(article === null || article === void 0 ? void 0 : article.price);
131
- const fallbackExclVat = fallbackInclVat ? fallbackInclVat / _cartTable.VAT_RATE : 0;
132
129
  return {
133
- priceExclVat: firstFiniteNumber(article === null || article === void 0 || (_article$locationPric = article.locationPrices) === null || _article$locationPric === void 0 ? void 0 : _article$locationPric.priceExclVat, article === null || article === void 0 || (_article$consumerPric = article.consumerPrices) === null || _article$consumerPric === void 0 ? void 0 : _article$consumerPric.priceExclVat, fallbackExclVat),
134
- priceInclVat: firstFiniteNumber(article === null || article === void 0 || (_article$locationPric2 = article.locationPrices) === null || _article$locationPric2 === void 0 ? void 0 : _article$locationPric2.priceInclVat, article === null || article === void 0 || (_article$consumerPric2 = article.consumerPrices) === null || _article$consumerPric2 === void 0 ? void 0 : _article$consumerPric2.priceInclVat, fallbackInclVat)
130
+ priceExclVat: firstFiniteNumber(article === null || article === void 0 || (_article$locationPric = article.locationPrices) === null || _article$locationPric === void 0 ? void 0 : _article$locationPric.priceExclVat, article === null || article === void 0 || (_article$consumerPric = article.consumerPrices) === null || _article$consumerPric === void 0 ? void 0 : _article$consumerPric.priceExclVat),
131
+ priceInclVat: firstFiniteNumber(article === null || article === void 0 || (_article$locationPric2 = article.locationPrices) === null || _article$locationPric2 === void 0 ? void 0 : _article$locationPric2.priceInclVat, article === null || article === void 0 || (_article$consumerPric2 = article.consumerPrices) === null || _article$consumerPric2 === void 0 ? void 0 : _article$consumerPric2.priceInclVat)
135
132
  };
136
133
  };
137
134
 
@@ -272,9 +272,7 @@ const fetchArticlesByLicensePlateAndModel = async (filters, formula, branchId) =
272
272
  const articlesByArticleNumbers = await fetchArticlesByArticleNumbers(articleNumbers, null, false, null, formula);
273
273
  const articlesWithParts = modelArticles.map(article => {
274
274
  var _articlesByArticleNum;
275
- return _objectSpread(_objectSpread({}, article), {}, {
276
- parts: (_articlesByArticleNum = articlesByArticleNumbers.articles.find(a => a.articleNumber === article.articleNumber)) === null || _articlesByArticleNum === void 0 ? void 0 : _articlesByArticleNum.parts
277
- });
275
+ return _objectSpread(_objectSpread({}, article), (_articlesByArticleNum = articlesByArticleNumbers.articles.find(a => a.articleNumber === article.articleNumber)) !== null && _articlesByArticleNum !== void 0 ? _articlesByArticleNum : {});
278
276
  });
279
277
  return {
280
278
  articles: articlesWithParts,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "thm-p3-configurator",
3
- "version": "0.0.394",
3
+ "version": "0.0.396",
4
4
  "main": "dist/index.js",
5
5
  "module": "dist/index.js",
6
6
  "author": "EnoRm.",
@@ -1,57 +0,0 @@
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;
@@ -1,28 +0,0 @@
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;
@@ -1,37 +0,0 @@
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;
@@ -1,28 +0,0 @@
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;
@@ -1,77 +0,0 @@
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;
@@ -1,82 +0,0 @@
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;
@@ -1,228 +0,0 @@
1
- "use strict";
2
-
3
- require("core-js/modules/es.weak-map.js");
4
- require("core-js/modules/esnext.iterator.constructor.js");
5
- require("core-js/modules/esnext.iterator.filter.js");
6
- require("core-js/modules/esnext.iterator.for-each.js");
7
- require("core-js/modules/esnext.iterator.map.js");
8
- require("core-js/modules/web.dom-collections.iterator.js");
9
- require("core-js/modules/es.weak-map.js");
10
- require("core-js/modules/esnext.iterator.constructor.js");
11
- require("core-js/modules/esnext.iterator.filter.js");
12
- require("core-js/modules/esnext.iterator.for-each.js");
13
- Object.defineProperty(exports, "__esModule", {
14
- value: true
15
- });
16
- exports.default = void 0;
17
- require("core-js/modules/esnext.iterator.map.js");
18
- require("core-js/modules/web.dom-collections.iterator.js");
19
- var _react = _interopRequireWildcard(require("react"));
20
- var _queries = require("../../__api__/queries");
21
- var _constants__ = require("../../__constants__");
22
- var _helpers__ = require("../../__helpers__");
23
- var _singleOrderArticles = require("../../__helpers__/singleOrderArticles");
24
- var _ProductCardCheckbox = _interopRequireDefault(require("./ProductCardCheckbox"));
25
- var _ProductCardDescription = _interopRequireDefault(require("./ProductCardDescription"));
26
- var _ProductCardDiscountAlert = _interopRequireDefault(require("./ProductCardDiscountAlert"));
27
- var _ProductCardImage = _interopRequireDefault(require("./ProductCardImage"));
28
- var _ProductCardPrice = _interopRequireDefault(require("./ProductCardPrice"));
29
- var _ProductCardRibbon = _interopRequireDefault(require("./ProductCardRibbon"));
30
- var _ProductCardSpecifications = _interopRequireDefault(require("./ProductCardSpecifications"));
31
- var _ProductCardUsps = _interopRequireDefault(require("./ProductCardUsps"));
32
- function _interopRequireDefault(e) {
33
- return e && e.__esModule ? e : {
34
- default: e
35
- };
36
- }
37
- function _getRequireWildcardCache(e) {
38
- if ("function" != typeof WeakMap) return null;
39
- var r = new WeakMap(),
40
- t = new WeakMap();
41
- return (_getRequireWildcardCache = function _getRequireWildcardCache(e) {
42
- return e ? t : r;
43
- })(e);
44
- }
45
- function _interopRequireWildcard(e, r) {
46
- if (!r && e && e.__esModule) return e;
47
- if (null === e || "object" != typeof e && "function" != typeof e) return {
48
- default: e
49
- };
50
- var t = _getRequireWildcardCache(r);
51
- if (t && t.has(e)) return t.get(e);
52
- var n = {
53
- __proto__: null
54
- },
55
- a = Object.defineProperty && Object.getOwnPropertyDescriptor;
56
- for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) {
57
- var i = a ? Object.getOwnPropertyDescriptor(e, u) : null;
58
- i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u];
59
- }
60
- return n.default = e, t && t.set(e, n), n;
61
- }
62
- function ownKeys(e, r) {
63
- var t = Object.keys(e);
64
- if (Object.getOwnPropertySymbols) {
65
- var o = Object.getOwnPropertySymbols(e);
66
- r && (o = o.filter(function (r) {
67
- return Object.getOwnPropertyDescriptor(e, r).enumerable;
68
- })), t.push.apply(t, o);
69
- }
70
- return t;
71
- }
72
- function _objectSpread(e) {
73
- for (var r = 1; r < arguments.length; r++) {
74
- var t = null != arguments[r] ? arguments[r] : {};
75
- r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
76
- _defineProperty(e, r, t[r]);
77
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
78
- Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
79
- });
80
- }
81
- return e;
82
- }
83
- function _defineProperty(e, r, t) {
84
- return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
85
- value: t,
86
- enumerable: !0,
87
- configurable: !0,
88
- writable: !0
89
- }) : e[r] = t, e;
90
- }
91
- function _toPropertyKey(t) {
92
- var i = _toPrimitive(t, "string");
93
- return "symbol" == typeof i ? i : i + "";
94
- }
95
- function _toPrimitive(t, r) {
96
- if ("object" != typeof t || !t) return t;
97
- var e = t[Symbol.toPrimitive];
98
- if (void 0 !== e) {
99
- var i = e.call(t, r || "default");
100
- if ("object" != typeof i) return i;
101
- throw new TypeError("@@toPrimitive must return a primitive value.");
102
- }
103
- return ("string" === r ? String : Number)(t);
104
- }
105
- const ProductCard = _ref => {
106
- var _normalizedStock$quan, _normalizedStock$quan2;
107
- let {
108
- hasCheckbox = true,
109
- isRecommended = false,
110
- productId,
111
- productTitle,
112
- productDescription,
113
- stock = null,
114
- productUsps = [],
115
- productImage = null,
116
- isDisabled = false,
117
- defaultSelected = false,
118
- productPrice = null,
119
- productDiscountedPrice = null,
120
- productDiscountedLabel = null,
121
- productSpecifications = [],
122
- showPrice = false,
123
- canUnselect = true,
124
- onSelect = () => {},
125
- onDescriptionToggle = () => {},
126
- isOnlyProductInCategory = false,
127
- isAnotherProductSelected = true,
128
- isTmg = false,
129
- isBoardComputer = false
130
- } = _ref;
131
- const [isSelected, setIsSelected] = (0, _react.useState)(defaultSelected);
132
- const {
133
- productFieldLabels
134
- } = (0, _queries.useProductFieldLabels)();
135
- const normalizedStock = stock && stock.status ? _objectSpread(_objectSpread({}, stock), {}, {
136
- status: (0, _singleOrderArticles.mapApiStockStatusToStockStatus)(stock.status)
137
- }) : stock;
138
- const handleSelected = isSelected => {
139
- if (!canUnselect && !isSelected) {
140
- // Do not update local state, only call onSelect
141
- onSelect({
142
- isSelected: isSelected
143
- });
144
- return;
145
- }
146
- setIsSelected(isSelected);
147
- onSelect({
148
- productId,
149
- isSelected: isSelected
150
- });
151
- };
152
- (0, _react.useEffect)(() => {
153
- setIsSelected(defaultSelected);
154
- }, [defaultSelected]);
155
- (0, _react.useEffect)(() => {
156
- if (isOnlyProductInCategory || !isAnotherProductSelected && isRecommended) {
157
- handleSelected(true);
158
- }
159
- }, [isOnlyProductInCategory, isRecommended]);
160
- return /*#__PURE__*/_react.default.createElement("div", {
161
- key: productId,
162
- className: (0, _helpers__.withStyle)("card card__horizontal card__link ".concat(isSelected ? 'active' : '', " container-fluid g-0")),
163
- disabled: isDisabled,
164
- onClick: () => handleSelected(!isSelected)
165
- }, /*#__PURE__*/_react.default.createElement(_ProductCardRibbon.default, {
166
- isRecommended: isRecommended
167
- }), /*#__PURE__*/_react.default.createElement("div", {
168
- className: (0, _helpers__.withStyle)('row g-0')
169
- }, /*#__PURE__*/_react.default.createElement("div", {
170
- className: (0, _helpers__.withStyle)('col-md-4 d-flex justify-content-center position-relative')
171
- }, /*#__PURE__*/_react.default.createElement(_ProductCardImage.default, {
172
- image: productImage,
173
- isBoardComputer: isBoardComputer
174
- }), /*#__PURE__*/_react.default.createElement(_ProductCardDiscountAlert.default, {
175
- label: productDiscountedLabel,
176
- price: productDiscountedPrice,
177
- discountedPrice: productPrice
178
- })), /*#__PURE__*/_react.default.createElement("div", {
179
- className: (0, _helpers__.withStyle)("".concat(productImage ? 'col-md-8' : 'col-12', " d-flex flex-wrap"))
180
- }, /*#__PURE__*/_react.default.createElement("div", {
181
- className: (0, _helpers__.withStyle)('card-body')
182
- }, /*#__PURE__*/_react.default.createElement("h5", {
183
- className: (0, _helpers__.withStyle)('card-title')
184
- }, productTitle, showPrice && /*#__PURE__*/_react.default.createElement("div", {
185
- className: (0, _helpers__.withStyle)('col-12 col-md-auto d-flex flex-xxl-column my-2 my-xxl-0')
186
- }, /*#__PURE__*/_react.default.createElement(_ProductCardPrice.default, {
187
- price: productDiscountedPrice < productPrice ? productPrice : productDiscountedPrice,
188
- discountedPrice: productDiscountedPrice < productPrice ? productDiscountedPrice : productPrice
189
- }))), /*#__PURE__*/_react.default.createElement("div", {
190
- className: (0, _helpers__.withStyle)('card-text row no-gutters flex-wrap align-items-bottom justify-content-start')
191
- }, /*#__PURE__*/_react.default.createElement(_ProductCardUsps.default, {
192
- usps: productUsps
193
- }), /*#__PURE__*/_react.default.createElement(_ProductCardSpecifications.default, {
194
- specifications: [...(productId ? [{
195
- key: 'Artikel',
196
- value: productId
197
- }] : []), ...productSpecifications.map(_ref2 => {
198
- let {
199
- key,
200
- value
201
- } = _ref2;
202
- return {
203
- key: (productFieldLabels === null || productFieldLabels === void 0 ? void 0 : productFieldLabels[key]) || key,
204
- value
205
- };
206
- })],
207
- excludeKeys: ['brand', 'brandName']
208
- }), /*#__PURE__*/_react.default.createElement(_ProductCardDescription.default, {
209
- description: productDescription,
210
- onDescriptionToggle: onDescriptionToggle
211
- })), /*#__PURE__*/_react.default.createElement("div", {
212
- className: (0, _helpers__.withStyle)('card-footer pt-2 col-12 col-md-8 col-xxl-6 pb-0 justify-content-end')
213
- }, /*#__PURE__*/_react.default.createElement("div", {
214
- className: (0, _helpers__.withStyle)('d-flex flex-column align-items-end')
215
- }, showPrice && normalizedStock && /*#__PURE__*/_react.default.createElement("div", null, normalizedStock.status === _constants__.StockStatus.OutOfStock ? /*#__PURE__*/_react.default.createElement("div", {
216
- className: (0, _helpers__.withStyle)('text-danger mb-1')
217
- }, "Niet op voorraad") : normalizedStock.status === _constants__.StockStatus.InsufficientStock ? /*#__PURE__*/_react.default.createElement("div", {
218
- className: (0, _helpers__.withStyle)('text-warning mb-1')
219
- }, isTmg ? "".concat((_normalizedStock$quan = normalizedStock.quantity) !== null && _normalizedStock$quan !== void 0 ? _normalizedStock$quan : 0, " op voorraad") : 'Weinig op voorraad') : /*#__PURE__*/_react.default.createElement("div", {
220
- className: (0, _helpers__.withStyle)('text-success mb-1')
221
- }, isTmg ? "".concat((_normalizedStock$quan2 = normalizedStock.quantity) !== null && _normalizedStock$quan2 !== void 0 ? _normalizedStock$quan2 : 0, " op voorraad") : 'Op voorraad')), hasCheckbox && /*#__PURE__*/_react.default.createElement(_ProductCardCheckbox.default, {
222
- id: productId,
223
- isDisabled: isDisabled,
224
- defaultChecked: isSelected,
225
- isTmg: isTmg
226
- })))))));
227
- };
228
- var _default = exports.default = ProductCard;